/* ═══════════════════════════════════════════
   DESIGN TOKENS — marque conservée, rendu plus éditorial & moins « template »
═══════════════════════════════════════════ */
:root {
  --g-blue:   #1A73E8;
  --g-blue2:  #4285F4;
  --g-red:    #EA4335;
  --g-yellow: #FBBC04;
  --g-green:  #34A853;
  --g-blue-lt:  #E4EDFA;
  --g-red-lt:   #FCEEEC;
  --g-yel-lt:   #FDF6DD;
  --g-grn-lt:   #E4F2EA;
  --paper:    #FEFDFB;
  --white:    #FFFFFF;
  --bg:       #F2EFE9;
  --bg2:      #E8E5DF;
  --border:   #DAD7D1;
  /* Contours UI lisibles sur fond clair / Retina (collapses, cartes fines) */
  --border-strong:#c4bfb6;
  --text:     #16181D;
  --text2:    #383E49;
  --text3:    #5A616E;
  --text4:    #878E98;
  --shadow-sm:  0 1px 2px rgba(22,24,29,.04), 0 4px 14px rgba(22,24,29,.05);
  --shadow-md:  0 6px 20px rgba(22,24,29,.07), 0 2px 6px rgba(22,24,29,.03);
  --shadow-lg:  0 14px 40px rgba(22,24,29,.09), 0 4px 12px rgba(22,24,29,.04);
  --shadow-blue:0 6px 18px rgba(26,115,232,.20), 0 2px 6px rgba(26,115,232,.08);
  /* Boutons primaires — relief léger, moins « aplati générique » */
  --cta-gradient:linear-gradient(165deg,#4f96f8 0%,#2580eb 38%,#1A73E8 62%,#1566cf 100%);
  --cta-gradient-hover:linear-gradient(165deg,#64a4fa 0%,#2f89ec 38%,#1c7aeb 62%,#176fd8 100%);
  --cta-shadow:
    0 1px 0 rgba(255,255,255,.22) inset,
    0 2px 4px rgba(21,86,168,.14),
    0 10px 28px rgba(26,115,232,.22);
  --cta-shadow-hover:
    0 1px 0 rgba(255,255,255,.26) inset,
    0 4px 12px rgba(21,86,168,.18),
    0 14px 36px rgba(26,115,232,.28);
  --ease-out: cubic-bezier(.33, 1, .32, 1);
  /* Cartes / accordéons — indépendant des ombres mobile allégées et des boutons CTA */
  --shadow-card:
    0 1px 2px rgba(22,24,29,.05),
    0 4px 16px rgba(22,24,29,.06);
  --radius-sm:  11px;
  --radius-md:  16px;
  --radius-lg:  20px;
  --fs-h1:  clamp(32px,3.5vw,40px);
  --fs-h2:  clamp(24px,3.5vw,44px);
  --fs-h3:  clamp(18px,2.2vw,26px);
  --fs-body:clamp(14px,1.5vw,16px);
  --page-tint: #EBE8E2;
  --warm-tint: #F4F1EB;
  --surface-soft: rgba(255,252,248,.92);
  --font-body: 'DM Sans', system-ui, sans-serif;
  --font-heading: 'Sora', sans-serif;
  /* Palette Google : barres horizontales + titres en dégradé lisible */
  --grad-google: linear-gradient(90deg, #4285F4 0%, #EA4335 34%, #FBBC04 67%, #34A853 100%);
  --grad-bar: var(--grad-google);
  --grad-logo: var(--grad-google);
  --grad-hero-line: linear-gradient(90deg, #4285F4 0%, #EA4335 28%, #FBBC04 56%, #34A853 84%, #4285F4 100%);
  --grad-text: linear-gradient(135deg, #4285F4 0%, #1A73E8 22%, #EA4335 48%, #F9AB00 68%, #34A853 95%);
}

/* ═══════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; overscroll-behavior-x:none; }
body {
  background:var(--paper);
  color:var(--text);
  font-family:var(--font-body);
  overflow-x:hidden;
  overscroll-behavior-x:none;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  line-height:1.62;
}
body.menu-open { overflow:hidden; }
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }
button {
  font-family:var(--font-body);
  box-sizing:border-box;
  -webkit-appearance:none;
  appearance:none;
}

/* ═══════════════════════════════════════════
   NAVBAR
═══════════════════════════════════════════ */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:64px;
  background:rgba(254,253,251,.94);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(218,215,209,.85);
  display:flex; align-items:center;
  animation:slideDown .45s ease;
}
@keyframes slideDown { from{transform:translateY(-100%);opacity:0} to{transform:translateY(0);opacity:1} }

.nav-inner {
  max-width:1200px; margin:0 auto;
  padding:0 clamp(14px,3vw,36px);
  width:100%; display:flex; align-items:center; gap:8px;
}

/* ── Logo SVG ── */
.nav-logo {
  display:flex; align-items:center; gap:12px;
  margin-right:auto; flex-shrink:0; text-decoration:none;
}
.nav-logo-icon {
  width:36px; height:36px; flex-shrink:0;
}
.nav-logo-text {
  display:flex; flex-direction:column; gap:0;
}
.nav-logo-name {
  font-family:var(--font-heading);
  font-size:18px; font-weight:900;
  letter-spacing:-.5px; color:var(--text);
  line-height:1;
}
.nav-logo-bar {
  height:2.5px; border-radius:2px;
  background:var(--grad-logo);
  margin-top:3px;
}
.nav-logo-sub {
  font-size:8px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; color:var(--text4); line-height:1; margin-top:3px;
}

.nav-links { display:flex; list-style:none; gap:0; margin-right:8px; }
.nav-links a {
  color:var(--text3); font-size:13px; font-weight:500;
  padding:7px 11px; border-radius:20px;
  transition:all .15s; white-space:nowrap; display:block;
}
.nav-links a:hover { background:var(--bg2); color:var(--text); }

.nav-cta {
  background:var(--cta-gradient); color:white !important;
  font-weight:700; padding:9px 18px;
  border-radius:20px; font-size:13px;
  white-space:nowrap; transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .18s var(--ease-out); flex-shrink:0;
  box-shadow:var(--cta-shadow);
  border:1px solid rgba(255,255,255,.12);
  display:inline-flex; align-items:center; gap:6px;
}
.nav-cta:hover {
  background:var(--cta-gradient-hover);
  transform:translateY(-1px);
  box-shadow:var(--cta-shadow-hover);
}
.nav-cta:active { transform:translateY(0); }

/* Hamburger */
.hamburger {
  display:none; flex-direction:column; gap:5px; cursor:pointer;
  padding:8px; border:none; background:none; min-width:44px; min-height:44px;
  justify-content:center; align-items:center;
}
.hamburger span {
  width:22px; height:2px; background:var(--text);
  border-radius:2px; transition:all .25s; display:block;
}
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Menu mobile : panneau latéral droit (ne couvre pas tout l'écran) */
.mobile-menu-scrim {
  position:fixed; inset:0; z-index:198;
  background:rgba(22,24,29,.42);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0; visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease, visibility .28s ease;
}
body.menu-open .mobile-menu-scrim {
  opacity:1; visibility:visible; pointer-events:auto;
}
.mobile-menu {
  display:flex; flex-direction:column; gap:2px;
  position:fixed; top:64px; right:0; bottom:0; left:auto;
  width:min(300px,88vw);
  max-width:100%;
  margin:0; padding:18px 14px max(24px, env(safe-area-inset-bottom));
  background:linear-gradient(180deg,#fffefb 0%,var(--paper) 40%,#faf8f5 100%);
  border-left:1px solid rgba(218,215,209,.95);
  border-radius:0;
  box-shadow:-16px 0 48px rgba(22,24,29,.11),-4px 0 16px rgba(22,24,29,.05);
  z-index:199;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  transform:translateX(100%);
  visibility:hidden;
  pointer-events:none;
  transition:transform .3s cubic-bezier(.4,0,.2,1), visibility .3s;
}
.mobile-menu.open {
  transform:translateX(0);
  visibility:visible;
  pointer-events:auto;
}
.mobile-menu a {
  padding:13px 14px; border-radius:12px;
  font-size:15px; font-weight:600; color:var(--text2);
  letter-spacing:-.01em;
  transition:background .18s var(--ease-out), color .18s; min-height:46px;
  display:flex; align-items:center;
}
.mobile-menu a:hover { background:rgba(232,229,223,.65); color:var(--text); }
.mobile-menu .mob-cta {
  background:var(--cta-gradient); color:white !important;
  text-align:center; font-weight:700;
  margin-top:12px; margin-bottom:4px; border-radius:var(--radius-md);
  justify-content:center;
  box-shadow:var(--cta-shadow);
  border:1px solid rgba(255,255,255,.12);
  transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .18s var(--ease-out);
}
.mobile-menu .mob-cta:hover {
  background:var(--cta-gradient-hover);
  box-shadow:var(--cta-shadow-hover);
}
.mobile-menu .mob-cta:active { transform:translateY(1px); }

/* ═══════════════════════════════════════════
   HERO — 2 colonnes
═══════════════════════════════════════════ */
.hero {
  min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:clamp(80px,10vw,120px) clamp(16px,5vw,60px) clamp(48px,6vw,80px);
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 95% 70% at 12% -12%, rgba(66,133,244,.09), transparent 52%),
    radial-gradient(ellipse 70% 55% at 96% 8%, rgba(52,168,83,.07), transparent 48%),
    radial-gradient(ellipse 58% 48% at 88% 58%, rgba(251,188,4,.07), transparent 52%),
    radial-gradient(ellipse 52% 42% at 6% 78%, rgba(234,67,53,.06), transparent 50%),
    linear-gradient(180deg, var(--page-tint) 0%, var(--paper) 52%, var(--warm-tint) 100%);
}
.hero::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--grad-hero-line);
}
.hero-grid {
  max-width:1200px; margin:0 auto; width:100%;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px); align-items:start;
  position:relative; z-index:2; flex-shrink:0;
}
.hero-left { max-width:620px; order:1; }
.hero-dots {
  position:absolute; inset:0;
  background-image:radial-gradient(circle,#CDC9C3 1px,transparent 1px);
  background-size:28px 28px; opacity:.28;
  mask-image:radial-gradient(ellipse 80% 80% at 30% 50%,black 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 30% 50%,black 20%,transparent 80%);
}

.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(252,251,249,.88) 100%);
  border:1px solid rgba(26,115,232,.12);
  box-shadow:0 4px 16px rgba(26,115,232,.06),0 1px 0 rgba(255,255,255,.9) inset;
  padding:8px 17px; border-radius:100px;
  font-size:11px; font-weight:700; letter-spacing:.06em; color:#155fbc;
  margin-bottom:26px; animation:fadeUp .7s ease .2s both;
}
.hero-badge__short { display:none; }
.badge-dot {
  width:7px; height:7px; background:var(--g-green);
  border-radius:50%; flex-shrink:0;
  animation:pulse 2s ease infinite;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.75)} }

.hero h1 {
  font-family:var(--font-heading);
  font-size:var(--fs-h1); font-weight:900;
  line-height:1.02; letter-spacing:-2.4px;
  color:var(--text); margin-bottom:20px;
  animation:fadeUp .7s ease .3s both;
}
.hero h1 em {
  font-style:normal;
  background:var(--grad-text);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  padding-bottom:0.06em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.hero-stat-pill {
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(52,168,83,.1); border:1px solid rgba(52,168,83,.25);
  color:#137333; font-size:12px; font-weight:700;
  padding:5px 14px; border-radius:100px; margin-bottom:16px;
  animation:fadeUp .7s ease .25s both;
}

.hero-sub {
  font-size:clamp(15px,1.7vw,18px); color:var(--text3);
  max-width:620px; line-height:1.68; margin-bottom:30px;
  animation:fadeUp .7s ease .4s both;
  white-space:normal;
}
.hero-sub-break {
  display:block;
  height:0;
}
.hero-note {
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:18px;
  animation:fadeUp .7s ease .55s both;
}
.hero-note span {
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(32,33,36,.08);
  font-size:12px; font-weight:600; color:var(--text2);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.hero-actions {
  display:flex; gap:14px; flex-wrap:nowrap; align-items:center;
  animation:fadeUp .7s ease .5s both;
}
.hero-actions a { white-space:nowrap; flex-shrink:0; }
.hero-stats {
  display:grid; grid-template-columns:repeat(4,1fr);
  max-width:1200px; margin:36px auto 0; width:100%;
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff 0%,#fcfbfa 100%);
  border:1px solid rgba(218,215,209,.85);
  box-shadow:var(--shadow-sm),0 1px 0 rgba(255,255,255,.85) inset;
  overflow:hidden;
  position:relative; z-index:2;
  animation:fadeUp .7s ease .6s both;
}
.stat-item {
  text-align:center;
  padding:clamp(14px,2vw,20px) clamp(8px,2vw,16px);
  border-right:1px solid var(--border);
  position:relative;
}
.stat-item:last-child { border-right:none; }
.stat-item::before {
  content:'';
  position:absolute; top:0; left:0; right:0; height:3px;
}
.stat-item:nth-child(1)::before { background:var(--g-blue); }
.stat-item:nth-child(2)::before { background:var(--g-green); }
.stat-item:nth-child(3)::before { background:var(--g-red); }
.stat-item:nth-child(4)::before { background:var(--g-yellow); }
.stat-num {
  font-family:var(--font-heading);
  font-size:clamp(22px,3vw,32px); font-weight:900; line-height:1;
}
.stat-num .u { font-size:clamp(13px,1.6vw,17px); }
.stat-label { font-size:clamp(10px,1vw,11.5px); color:var(--text4); margin-top:6px; font-weight:600; line-height:1.35; }
.stat-item:nth-child(1) .stat-num { color:var(--g-blue); }
.stat-item:nth-child(2) .stat-num { color:var(--g-green); }
.stat-item:nth-child(3) .stat-num { color:var(--g-red); }
.stat-item:nth-child(4) .stat-num { color:#F9AB00; }

@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* Hero right — illustration */
.hero-visual {
  animation:fadeUp .8s ease .4s both;
  display:flex; justify-content:center; align-items:flex-start;
  padding-top:calc(6px + 1.5cm);
  order:2;
}
.review-mockup {
  width:100%; max-width:300px;
  background:#fff; border-radius:16px;
  box-shadow:0 4px 20px rgba(0,0,0,.12);
  overflow:hidden; position:relative;
}
.rm-map-bar { height:5px; background:var(--grad-bar); border-radius:2px 2px 0 0; }
.rm-header { padding:14px 16px 8px; border-bottom:1px solid #F1F3F4; }
.rm-header-row { display:flex; align-items:center; gap:10px; }
.rm-pin { width:36px; height:36px; background:#fff; border:2px solid #34A853; border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 2px 6px rgba(0,0,0,.15); }
.rm-pin span { transform:rotate(45deg); font-size:14px; font-weight:800; color:#34A853; font-family:var(--font-heading); }
.rm-biz-name { font-size:14px; font-weight:700; color:#202124; }
.rm-stars-row { display:flex; align-items:center; gap:4px; margin-top:2px; }
.rm-body { padding:10px 16px; display:flex; flex-direction:column; gap:6px; }
.rm-review { border-radius:8px; padding:8px 10px; border:1px solid #E8EAED; }
.rm-review.danger { background:#FFF8F7; border-color:#FDDCDA; opacity:.7; position:relative; }
.rm-review.danger::after { content:"SUPPRIMÉ"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) rotate(-8deg); font-size:12px; font-weight:800; color:#EA4335; border:2px solid #EA4335; padding:2px 8px; border-radius:4px; letter-spacing:1px; opacity:.8; }
.rm-review-top { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.rm-avatar { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:white; flex-shrink:0; }
.rm-author { font-size:12px; font-weight:600; color:#202124; flex:1; }
.rm-rev-date { font-size:10px; color:#9AA0A6; }
.rm-text { font-size:11.5px; color:#3C4043; line-height:1.5; }
.rm-review.danger .rm-text { filter:blur(1.5px); }
.rm-deleted { background:#E6F4EA; border-radius:8px; padding:8px 12px; font-size:11px; font-weight:700; color:#137333; display:flex; align-items:center; gap:6px; animation:slideIn .5s ease both 1s; }
@keyframes slideIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
.rm-review.ok { border:1px solid #E8EAED; background:#fff; }
.rm-footer { padding:10px 16px; background:#F8F9FA; display:flex; align-items:center; justify-content:space-between; }
.rm-rep-badge { background:#E6F4EA; color:#137333; font-size:10px; font-weight:700; padding:4px 10px; border-radius:20px; }
.rm-score { font-family:var(--font-heading); font-size:22px; font-weight:900; color:#137333; line-height:1; }
.rm-score-lbl { font-size:10px; color:#5F6368; font-weight:600; text-align:right; }
@keyframes badgePop { from{opacity:0;transform:scale(.5)} to{opacity:1;transform:scale(1)} }

/* ═══════════════════════════════════════════
   TRUST STRIP
═══════════════════════════════════════════ */
.trust-strip {
  background:linear-gradient(180deg, rgba(245,243,238,.92) 0%, rgba(254,253,251,.98) 100%);
  border-top:1px solid rgba(218,215,209,.65);
  border-bottom:1px solid rgba(218,215,209,.65);
  padding:22px 0;
}
.trust-inner {
  max-width:1120px; margin:0 auto;
  padding:0 clamp(16px,4vw,36px);
  display:flex; align-items:center; justify-content:center;
  gap:clamp(16px,3vw,40px); flex-wrap:wrap;
}
.trust-item {
  display:flex; align-items:center; gap:8px;
  font-size:12px; font-weight:600; color:var(--text3);
  white-space:nowrap;
  background:var(--surface-soft);
  border:1px solid rgba(218,220,224,.9);
  border-radius:999px;
  padding:10px 14px;
  box-shadow:0 10px 30px rgba(32,33,36,.04);
}
.trust-dot {
  width:8px; height:8px; border-radius:50%; flex-shrink:0;
}
.trust-sep {
  width:1px; height:20px; background:var(--border); flex-shrink:0;
}

/* ═══════════════════════════════════════════
   BOUTONS
═══════════════════════════════════════════ */
.btn-blue {
  background:var(--cta-gradient); color:white;
  padding:clamp(12px,1.5vw,15px) clamp(20px,3vw,32px);
  border-radius:var(--radius-md); font-size:clamp(13px,1.4vw,14px); font-weight:700;
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid rgba(255,255,255,.14); cursor:pointer; font-family:var(--font-body);
  transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .18s var(--ease-out); text-decoration:none;
  box-shadow:var(--cta-shadow);
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
}
.btn-blue:hover {
  background:var(--cta-gradient-hover);
  transform:translateY(-1px);
  box-shadow:var(--cta-shadow-hover);
}
.btn-blue:active { transform:translateY(0); }
.btn-blue:focus-visible {
  outline:2px solid var(--g-blue2);
  outline-offset:3px;
}
.btn-outline {
  background:rgba(255,255,255,.92); color:#155fbc;
  padding:clamp(12px,1.5vw,15px) clamp(20px,3vw,32px);
  border-radius:var(--radius-md); font-size:clamp(13px,1.4vw,14px); font-weight:700;
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid rgba(26,115,232,.32);
  box-shadow:0 1px 2px rgba(22,24,29,.05),0 1px 0 rgba(255,255,255,.8) inset;
  transition:background .2s var(--ease-out), border-color .2s, box-shadow .2s, transform .18s var(--ease-out);
  font-family:var(--font-body); text-decoration:none;
  cursor:pointer; -webkit-appearance:none; appearance:none; box-sizing:border-box;
}
.btn-outline:hover {
  background:var(--g-blue-lt);
  border-color:rgba(26,115,232,.48);
  box-shadow:0 4px 16px rgba(26,115,232,.1);
  transform:translateY(-1px);
}
.btn-outline:active { transform:translateY(0); }
.btn-outline:focus-visible { outline:2px solid var(--g-blue2); outline-offset:3px; }
.btn-wide { width:100%; justify-content:center; border-radius:var(--radius-md); padding:16px; font-size:15px; }

/* ═══════════════════════════════════════════
   COMMUNS
═══════════════════════════════════════════ */
section { padding:clamp(48px,7vw,96px) 0; }
section > .container { padding:0 clamp(16px,4vw,36px); }
.container { max-width:1120px; margin:0 auto; }
.sec-title {
  font-family:var(--font-heading); font-size:clamp(28px,4vw,40px);
  font-weight:800; line-height:1.08; letter-spacing:-.035em;
  color:var(--text); margin-bottom:18px;
  text-align:center; max-width:700px; margin-left:auto; margin-right:auto;
}
.sec-title em {
  font-style:normal;
  background:var(--grad-text);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
/* Tarifs : deux lignes lisibles ; ligne 1 assez large sur desktop pour éviter une césure au milieu du titre */
.sec-title.sec-title--tarifs-head {
  max-width:min(960px, 100%);
  text-wrap: balance;
}
.sec-title--tarifs-head {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(6px, 1.2vw, 12px);
  line-height:1.14;
}
.sec-title__tarifs-line {
  display:block;
  max-width:100%;
}
.sec-title__tarifs-line--main {
  font-size:clamp(26px, 3.6vw, 38px);
  letter-spacing:-0.038em;
}
.sec-title__tarifs-line--sub {
  font-size:clamp(20px, 2.65vw, 28px);
  font-weight:700;
  letter-spacing:-0.03em;
  line-height:1.22;
  opacity:0.96;
}
/* Une seule ligne pour le titre principal sur grands écrans (évite une césure au milieu du groupe nominal) */
@media (min-width:992px) {
  .sec-title__tarifs-line--main {
    white-space:nowrap;
  }
}
.sec-title__lead-in {
  font-style:normal;
  color:var(--text);
  -webkit-text-fill-color:var(--text);
  background:none;
}
.sec-desc { font-size:var(--fs-body); color:var(--text3); max-width:540px; line-height:1.7; text-align:center; margin-left:auto; margin-right:auto; }
.g4bar { margin-left:auto; margin-right:auto; }
.g4bar {
  height:3px;
  background:var(--grad-bar);
  border-radius:99px; width:56px; margin-bottom:24px;
  opacity:.95;
}

/* ═══════════════════════════════════════════
   AUDIT
═══════════════════════════════════════════ */
.audit-section { background:var(--bg); }
.audit-section .container { text-align:center; }
.audit-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:clamp(24px,4vw,40px);
  max-width:820px; box-shadow:var(--shadow-md); margin:44px auto 0;
}
.audit-card h3 { font-family:var(--font-heading); font-size:var(--fs-h3); font-weight:800; color:var(--text); margin-bottom:8px; }
.audit-card p { font-size:14px; color:var(--text3); margin-bottom:28px; }
.pac-container { border-radius:12px !important; box-shadow:0 8px 32px rgba(0,0,0,.12) !important; border:1px solid var(--border) !important; overflow:hidden; font-family:var(--font-body) !important; }
.pac-item { padding:12px 16px !important; font-size:14px !important; cursor:pointer !important; }
.pac-item:hover { background:var(--bg) !important; }
.pac-item-query { font-size:14px !important; color:var(--text) !important; font-weight:600 !important; }
.pac-matched { font-weight:700 !important; color:var(--g-blue) !important; }
@media(max-width:768px){
  .pac-container { left:16px !important; right:16px !important; width:auto !important; margin:0 !important; box-sizing:border-box !important; border-radius:10px !important; max-width:calc(100vw - 32px) !important; }
}
.search-wrap { position:relative; margin-bottom:0; }
.search-box {
  display:flex; background:var(--white); border:1.5px solid var(--border);
  border-radius:50px; overflow:visible; align-items:center;
  transition:box-shadow .2s,border-color .2s;
  box-shadow:0 1px 6px rgba(0,0,0,.08);
}
.search-box:focus-within { border-color:var(--g-blue); box-shadow:0 1px 12px rgba(26,115,232,.2); }
.search-google-icon { padding:0 14px 0 18px; color:var(--text4); font-size:18px; flex-shrink:0; }
.search-input {
  flex:1; border:none; outline:none; background:transparent;
  padding:14px 0; font-family:var(--font-body); font-size:15px; color:var(--text);
}
.search-input::placeholder { color:var(--text4); }
.result-panel {
  margin-top:28px; display:none;
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:clamp(20px,3vw,28px);
}
.result-panel.visible { display:block; animation:fadeUp .4s ease; }
.result-head { display:flex; align-items:flex-start; gap:16px; margin-bottom:22px; flex-wrap:wrap; }
.result-biz-icon {
  width:52px; height:52px; background:var(--g-red-lt); border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; flex-shrink:0; overflow:hidden;
}
.result-biz-icon img { width:100%; height:100%; object-fit:cover; }
.result-biz-name { font-family:var(--font-heading); font-size:clamp(16px,2.5vw,20px); font-weight:800; color:var(--text); }
.result-biz-addr { font-size:13px; color:var(--text4); margin-top:3px; }
.metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:22px; }
.metric-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:12px; padding:clamp(12px,2vw,18px); text-align:center;
  box-shadow:var(--shadow-sm);
}
.metric-val { font-family:var(--font-heading); font-size:clamp(22px,3vw,30px); font-weight:900; line-height:1; }
.metric-lbl { font-size:10px; color:var(--text4); margin-top:4px; letter-spacing:.4px; }
.mv-yellow{color:#F9AB00;} .mv-blue{color:var(--g-blue);} .mv-red{color:var(--g-red);} .mv-green{color:var(--g-green);}
.calc-zone {
  background:var(--white); border:1px solid var(--border);
  border-radius:14px; padding:clamp(18px,3vw,24px);
  box-shadow:var(--shadow-sm);
}
.calc-zone h4 { font-family:var(--font-heading); font-size:16px; font-weight:800; color:var(--text); margin-bottom:16px; display:flex; align-items:center; gap:8px; justify-content:center; }
.calc-row { display:flex; flex-direction:column; gap:16px; align-items:center; }
.calc-field { width:100%; max-width:320px; }
.calc-field label { font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--text4); margin-bottom:7px; display:block; text-align:center; }
.calc-field input {
  width:100%; background:var(--bg); border:1px solid var(--border); border-radius:10px;
  padding:11px 14px; font-family:var(--font-body); font-size:15px; color:var(--text);
  outline:none; transition:border-color .2s,box-shadow .2s; text-align:center;
}
.calc-field input:focus { border-color:var(--g-blue); box-shadow:0 0 0 3px rgba(26,115,232,.12); background:white; }
.calc-result-display {
  margin-top:18px; border-radius:12px; padding:20px 22px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.calc-result-display.danger { background:var(--g-red-lt); border:1px solid rgba(234,67,53,.25); }
.calc-result-display.warning { background:var(--g-yel-lt); border:1px solid rgba(251,188,4,.4); }
.calc-result-display.ok { background:var(--g-grn-lt); border:1px solid rgba(52,168,83,.25); }
.crd-left { flex-shrink:0; }
.crd-amount { font-family:var(--font-heading); font-size:clamp(28px,4vw,38px); font-weight:900; line-height:1; }
.crd-amount.danger-txt{color:var(--g-red);} .crd-amount.warning-txt{color:#F9AB00;} .crd-amount.ok-txt{color:var(--g-green);}
.crd-period { font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; margin-top:2px; opacity:.7; }
.crd-right { flex:1; min-width:200px; }
.crd-message { font-size:13.5px; color:var(--text3); line-height:1.6; }
.crd-message strong { color:var(--text); }
.crd-annual { font-size:12px; margin-top:6px; font-weight:600; }
.danger-txt{color:var(--g-red);} .warning-txt{color:#F9AB00;} .ok-txt{color:var(--g-green);}
.result-cta { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; justify-content:center; }
.a-box { border-radius:12px; padding:16px 20px; display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.a-danger{background:var(--g-red-lt);border:1px solid rgba(234,67,53,.25);}
.a-warning{background:var(--g-yel-lt);border:1px solid rgba(251,188,4,.4);}
.a-ok{background:var(--g-grn-lt);border:1px solid rgba(52,168,83,.25);}
.a-icon{font-size:20px;flex-shrink:0;margin-top:1px;}
.a-title{font-size:14px;font-weight:700;margin-bottom:3px;}
.a-body{font-size:13px;color:var(--text3);line-height:1.55;}

/* ═══════════════════════════════════════════
   PROBLÈME
═══════════════════════════════════════════ */
.probleme { background:var(--white); }
.probleme .container { text-align:center; }
.warn-banner {
  background:var(--g-yel-lt); border:1.5px solid rgba(251,188,4,.5);
  border-radius:14px; padding:18px 22px;
  display:flex; align-items:flex-start; gap:12px;
  margin-top:28px; margin-bottom:44px; max-width:780px;
  box-shadow:var(--shadow-sm);
  margin-left:auto; margin-right:auto; text-align:left;
}
.pb-intro { font-size:var(--fs-body); color:var(--text3); max-width:700px; line-height:1.7; margin-bottom:10px; text-align:center; margin-left:auto; margin-right:auto; }
.pb-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:32px; }
.pb-card {
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:clamp(20px,3vw,28px);
  transition:box-shadow .2s,transform .2s;
  display:flex; gap:16px; align-items:flex-start;
}
.pb-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.pb-card-body { display:flex; flex-direction:column; flex:1; }
.pb-num {
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-size:17px; font-weight:900; margin-bottom:16px;
}
.n1{background:var(--g-red-lt);color:var(--g-red);}
.n2{background:var(--g-yel-lt);color:#F9AB00;}
.n3{background:var(--g-blue-lt);color:var(--g-blue);}
.n4{background:var(--g-grn-lt);color:var(--g-green);}
.pb-card-title { font-size:15px; font-weight:700; color:var(--text); margin-bottom:8px; }
.pb-card-text { font-size:13px; color:var(--text3); line-height:1.6; }
.ia-strip {
  background:linear-gradient(135deg,var(--g-blue-lt),#F0F4FF);
  border:1px solid rgba(26,115,232,.25); border-radius:14px;
  padding:22px 26px; margin-top:32px;
  display:flex; align-items:flex-start; gap:14px; max-width:780px;
  box-shadow:var(--shadow-sm);
  margin-left:auto; margin-right:auto;
}
.ia-title { font-size:15px; font-weight:700; color:var(--g-blue); margin-bottom:5px; }
.ia-body { font-size:13px; color:var(--text3); line-height:1.6; }

/* ═══════════════════════════════════════════
   MÉTHODE
═══════════════════════════════════════════ */
.methode { background:var(--bg); }
.methode > .container { text-align:center; }
.steps-row {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:0; margin-top:52px; position:relative;
}
.steps-row::before {
  content:''; position:absolute; top:27px;
  left:calc(12.5% + 27px); right:calc(12.5% + 27px); height:2px;
  background:var(--grad-bar);
  opacity:.85;
}
.step { text-align:center; padding:0 clamp(8px,2vw,16px); }
.step-c {
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:22px; margin:0 auto 20px;
  position:relative; z-index:1; border:2px solid white;
}
.step:nth-child(1) .step-c{background:var(--g-blue-lt);box-shadow:0 0 0 3px rgba(26,115,232,.2);}
.step:nth-child(2) .step-c{background:var(--g-red-lt);box-shadow:0 0 0 3px rgba(234,67,53,.2);}
.step:nth-child(3) .step-c{background:var(--g-yel-lt);box-shadow:0 0 0 3px rgba(251,188,4,.2);}
.step:nth-child(4) .step-c{background:var(--g-grn-lt);box-shadow:0 0 0 3px rgba(52,168,83,.2);}
.step-title { font-size:15px; font-weight:700; color:var(--text); margin-bottom:8px; }
.step-desc { font-size:13px; color:var(--text3); line-height:1.6; }

/* Suppression fiche GMB — encart « Pourquoi ce service » (sans picto cheap) */
.gmb-insight-card {
  max-width: 680px;
  margin: 0 auto 36px;
  display: grid;
  grid-template-columns: 5px 1fr;
  border-radius: 16px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--border);
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.07), 0 1px 0 rgba(15, 23, 42, 0.04);
  text-align: left;
}
.gmb-insight-card__accent {
  background: linear-gradient(180deg, var(--g-blue) 0%, #124faa 55%, #0c3d86 100%);
  min-height: 100%;
}
.gmb-insight-card__inner {
  padding: clamp(22px, 4vw, 30px) clamp(22px, 4vw, 32px) clamp(24px, 4vw, 32px) clamp(20px, 3vw, 26px);
}
.gmb-insight-card__title {
  font-family: var(--font-heading);
  font-size: clamp(17px, 2.4vw, 21px);
  font-weight: 800;
  color: var(--text);
  margin: 0 0 14px;
  line-height: 1.28;
  letter-spacing: -0.02em;
}
.gmb-insight-card__lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.68;
  color: var(--text3);
}
.gmb-insight-card__lead strong {
  color: var(--text);
  font-weight: 700;
}
@media (max-width: 480px) {
  .gmb-insight-card {
    grid-template-columns: 4px 1fr;
    border-radius: 14px;
  }
}

/* Suppression fiche GMB — bloc « Notre méthode de suppression » */
.fiche-methode-title {
  font-family:var(--font-heading);
  font-size:clamp(15px,4.2vw,17px);
  font-weight:800;
  color:var(--text);
  text-align:center;
  margin-bottom:20px;
  padding:0 clamp(8px,3vw,20px);
  line-height:1.25;
}
.fiche-methode-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  max-width:680px;
  margin:0 auto;
}
.fiche-methode-card {
  background:var(--white);
  border:1.5px solid rgba(26,115,232,.2);
  border-radius:14px;
  padding:20px 22px;
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  display:flex;
  gap:14px;
  align-items:flex-start;
  min-width:0;
}
.fiche-methode-card--green { border-color:rgba(52,168,83,.25); }
.fiche-methode-card__rule {
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
}
.fiche-methode-card__rule--blue { background:var(--g-blue); }
.fiche-methode-card__rule--green { background:var(--g-green); }
.fiche-methode-card__icon {
  width:40px;
  height:40px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
  margin-top:6px;
}
.fiche-methode-card__icon--blue { background:rgba(26,115,232,.1); }
.fiche-methode-card__icon--green { background:rgba(52,168,83,.1); }
.fiche-methode-card__body {
  padding-top:10px;
  min-width:0;
  flex:1;
}
.fiche-methode-card__body strong {
  display:block;
  margin-bottom:6px;
  color:var(--text);
  font-size:14px;
}
.fiche-methode-card__body p {
  font-size:13.5px;
  color:var(--text3);
  margin:0;
  line-height:1.55;
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (max-width:680px) {
  .fiche-methode-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .fiche-methode-card {
    padding:16px 14px;
    gap:12px;
  }
}

/* ═══════════════════════════════════════════
   TARIFS
═══════════════════════════════════════════ */
.tarifs { background:var(--white); }
.tarifs > .container { text-align:center; }
.tarifs-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:20px; margin-top:48px;
}
.tarif-card {
  background:var(--white); border:1.5px solid var(--border);
  border-radius:20px; padding:clamp(28px,4vw,40px);
  position:relative; transition:box-shadow .2s,transform .2s;
  display:flex; flex-direction:column;
  box-shadow:var(--shadow-sm);
}
.tarif-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.tarif-card.featured {
  border-color:rgba(26,115,232,.35); border-width:2px;
  background:linear-gradient(165deg, rgba(228,237,250,.45) 0%, var(--white) 58%);
  box-shadow:0 0 0 1px rgba(26,115,232,.06), var(--shadow-md);
}
.feat-badge {
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--g-blue); color:white; font-size:10px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  padding:5px 16px; border-radius:100px; white-space:nowrap;
  box-shadow:0 2px 8px rgba(26,115,232,.4);
  max-width:calc(100% - 32px);
}
.tarif-label { font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--text4); margin-bottom:10px; height:28px; display:flex; align-items:center; justify-content:center; }
.tarif-type {
  display:inline-flex; align-items:center; justify-content:center; gap:6px; text-align:center;
  font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  padding:5px 12px; border-radius:100px; margin-bottom:16px;
  height:52px; box-sizing:border-box; white-space:normal; line-height:1.3;
}
.tarif-type-avis { background:rgba(26,115,232,.1); color:var(--g-blue); }
.tarif-type-fiche { background:rgba(251,188,4,.15); color:#9A6E00; }
.tarif-price { font-family:var(--font-heading); font-size:clamp(44px,5vw,58px); font-weight:900; line-height:1; color:var(--text); margin-bottom:4px; }
.tarif-price sup { font-size:22px; vertical-align:super; }
.tarif-note { font-size:12px; color:var(--text4); margin-bottom:24px; height:36px; display:flex; align-items:center; justify-content:center; }
.tarif-div { height:1px; background:var(--border); margin-bottom:22px; }
.tarif-features { list-style:none; margin-bottom:28px; flex:1; }
.tarif-features li { display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--text3); margin-bottom:11px; line-height:1.45; }
.fck { width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; margin-top:1px; }
.fck-b{background:var(--g-blue-lt);color:var(--g-blue);} .fck-g{background:var(--g-grn-lt);color:var(--g-green);}
.btn-tarif {
  width:100%; padding:13px; border-radius:24px; font-size:14px; font-weight:700;
  cursor:pointer; font-family:var(--font-body); transition:all .2s;
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
}
.btn-tarif-o { background:white; color:var(--g-blue); border:1.5px solid var(--g-blue); }
.btn-tarif-o:hover { background:var(--g-blue-lt); }
.btn-tarif-f {
  background:var(--cta-gradient); color:white; border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--cta-shadow);
}
.btn-tarif-f:hover {
  background:var(--cta-gradient-hover);
  transform:translateY(-1px);
  box-shadow:var(--cta-shadow-hover);
}

/* ═══════════════════════════════════════════
   EXPERTISE
═══════════════════════════════════════════ */
.expertise { background:var(--bg); }
.expertise > .container { text-align:center; }
.legal > .container { text-align:center; }
.temoignages > .container { text-align:center; }
.exp-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:48px; }
.exp-card {
  background:var(--white); border:1px solid var(--border); border-radius:14px;
  padding:clamp(18px,2.5vw,24px); display:flex; align-items:flex-start; gap:14px;
  transition:box-shadow .2s,transform .2s; box-shadow:var(--shadow-sm);
}
.exp-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.exp-icon { font-size:24px; flex-shrink:0; margin-top:2px; }
.exp-title { font-size:14px; font-weight:700; color:var(--text); margin-bottom:5px; }
.exp-text { font-size:13px; color:var(--text3); line-height:1.6; }

/* ═══════════════════════════════════════════
   CADRE LÉGAL
═══════════════════════════════════════════ */
.legal { background:var(--white); }
.legal-table-wrap { width:100%; overflow-x:auto; margin-top:48px; border-radius:16px; border:1px solid var(--border); }
.legal-table { width:100%; border-collapse:collapse; min-width:520px; }
.legal-table th { background:var(--g-blue); color:white; text-align:left; padding:15px 18px; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; }
.legal-table td { padding:16px 18px; font-size:13px; color:var(--text3); line-height:1.6; border-top:1px solid var(--border); vertical-align:top; }
.legal-table tr:hover td { background:var(--bg); }
.legal-law { font-weight:700; color:var(--text); font-size:13px; }
.legal-tag { display:inline-block; background:var(--g-blue-lt); color:var(--g-blue); font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:2px 10px; border-radius:100px; margin-top:4px; }

/* ═══════════════════════════════════════════
   ACCORDÉONS MOBILE (details.ca-mcoll)
   Desktop : toujours ouverts, résumé masqué (JS met open=true)
═══════════════════════════════════════════ */
.ca-mcoll {
  border:1px solid var(--border-strong);
  border-radius:18px;
  background:var(--white);
  /* clips le fond du summary sur le rayon du cadre (sinon coins « cassés » / débordement beige) */
  overflow:hidden;
  box-shadow:var(--shadow-card);
  margin-top:clamp(18px,4vw,28px);
  text-align:left;
  isolation:isolate;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.ca-mcoll__summary {
  list-style:none;
  cursor:pointer;
  padding:16px 18px;
  padding-right:20px;
  font-family:var(--font-heading);
  font-size:clamp(14px,3.8vw,16px);
  font-weight:700;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:52px;
  background:var(--bg);
  border-bottom:1px solid transparent;
  line-height:1.35;
  transition:background .15s ease;
  /* Rayon intérieur = 18px − 1px bordure (évite traits blancs WebKit aux coins) */
  border-radius:17px 17px 0 0;
}
.ca-mcoll:not([open]) > .ca-mcoll__summary {
  border-radius:17px;
}
.ca-mcoll[open] > .ca-mcoll__body {
  border-radius:0 0 16px 16px;
}
.ca-mcoll__summary:hover { background:#ebe8e2; }
.ca-mcoll__summary:focus-visible {
  outline:2px solid rgba(26,115,232,.35);
  outline-offset:2px;
}
.ca-mcoll__summary::-webkit-details-marker { display:none; }
.ca-mcoll__summary::after {
  content:'';
  width:9px;
  height:9px;
  border-right:2px solid var(--text4);
  border-bottom:2px solid var(--text4);
  opacity:.85;
  transform:rotate(45deg);
  transition:transform .25s ease, opacity .15s ease;
  flex-shrink:0;
  margin-top:-4px;
}
.ca-mcoll[open] > .ca-mcoll__summary {
  border-bottom-color:var(--border-strong);
}
.ca-mcoll[open] > .ca-mcoll__summary::after {
  transform:rotate(225deg);
  margin-top:4px;
}
.ca-mcoll__body {
  padding:clamp(18px,4vw,26px);
}
.ca-mcoll__body--flush {
  padding:clamp(12px,3vw,18px);
}
.ca-mcoll__body--center .pb-intro,
.ca-mcoll__body--center .sec-desc {
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.ca-mcoll__body--center .steps-row {
  margin-top:clamp(20px,5vw,40px);
}
.ca-mcoll__body--pj {
  padding-top:clamp(12px,3vw,20px);
}
@media (max-width:640px) {
  .pj-two-col {
    grid-template-columns:1fr !important;
  }
}
@media (min-width:901px) {
  .ca-mcoll {
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    margin-top:0;
    overflow:visible;
  }
  .ca-mcoll > .ca-mcoll__summary {
    display:none !important;
  }
  .ca-mcoll__body,
  .ca-mcoll__body--flush {
    padding:0;
  }
}

/* ═══════════════════════════════════════════
   TÉMOIGNAGES
═══════════════════════════════════════════ */
.temoignages { background:var(--bg); }
.temo-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:48px;
}
.temo-card {
  min-width:0;
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:clamp(20px,3vw,28px);
  transition:box-shadow .2s,transform .2s; box-shadow:var(--shadow-sm);
}
.temo-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); }
.temo-stars { font-size:15px; letter-spacing:2px; margin-bottom:14px; color:#F9AB00; }
.temo-quote {
  font-size:13.5px; color:var(--text3); line-height:1.65; margin-bottom:20px; font-style:italic;
  overflow-wrap:anywhere; word-break:break-word;
}
.temo-sep { height:1px; background:var(--border); margin-bottom:16px; }
.temo-author { display:flex; align-items:center; gap:12px; }
.temo-author > div:nth-child(2) { flex:1; min-width:0; text-align:left; }
.temo-avatar {
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-size:15px; font-weight:800; flex-shrink:0;
}
.temo-name { font-size:13px; font-weight:700; color:var(--text); }
.temo-role { font-size:11px; color:var(--text4); }
.temo-pkg { margin-left:auto; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; border-radius:100px; }
.pkg-s{background:var(--g-blue-lt);color:var(--g-blue);} .pkg-a{background:var(--g-grn-lt);color:var(--g-green);}

/* ═══════════════════════════════════════════
   FAQ
═══════════════════════════════════════════ */
.faq { background:var(--white); }
.faq > .container { text-align:center; }
.faq-list { margin:48px auto 0; max-width:820px; display:flex; flex-direction:column; gap:10px; }
.faq-item {
  background:var(--white);
  border:1px solid var(--border-strong);
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
  isolation:isolate;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.faq-q {
  appearance:none; -webkit-appearance:none;
  width:100%; background:var(--white); border:none; outline:none;
  margin:0; box-sizing:border-box;
  padding:18px 22px; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between;
  font-family:var(--font-body); font-size:15px; font-weight:600;
  color:var(--text); text-align:left;
  user-select:none; transition:background .15s ease; gap:12px; line-height:1.4;
  min-height:48px;
  border-radius:13px;
}
.faq-item.open .faq-q {
  border-radius:13px 13px 0 0;
}
.faq-q:hover { background:var(--bg); }
.faq-q:focus-visible {
  outline:2px solid rgba(26,115,232,.35);
  outline-offset:-2px;
  background:var(--bg);
}
.faq-arrow {
  width:28px; height:28px;
  background:var(--bg2);
  border-radius:50%;
  border:1px solid var(--border-strong);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; color:var(--text3); flex-shrink:0;
  transition:transform .25s ease, background .15s ease; pointer-events:none;
}
.faq-q:hover .faq-arrow { background:#e4e1da; color:var(--text2); }
.faq-item.open .faq-arrow { transform:rotate(180deg); }
.faq-a {
  padding:0 22px 0; font-size:14px; color:var(--text3);
  line-height:1.75; border-top:1px solid var(--border-strong);
  max-height:0; overflow:hidden;
  transition:max-height .35s ease, padding .35s ease;
}
.faq-item.open .faq-a {
  max-height:600px;
  padding-top:18px;
  padding-bottom:20px;
  border-radius:0 0 12px 12px;
}

/* ═══════════════════════════════════════════
   FORMULAIRE DE CONTACT
═══════════════════════════════════════════ */
.contact-section { background:var(--bg); }
.contact-section > .container { text-align:center; }
.contact-section .sec-title { max-width:620px; margin:0 auto 14px; }
.contact-section .sec-desc { max-width:500px; margin:0 auto 44px; }
.contact-card {
  background:var(--white); border:1px solid var(--border); border-radius:20px;
  padding:clamp(24px,5vw,48px); max-width:640px; margin:0 auto; text-align:left;
  box-shadow:var(--shadow-lg);
}

/* ── Section contact : proposition design (étapes, fond, carte accentuée) ── */
.contact-section--redesign {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, #E6E2DC 0%, var(--bg) 44%, var(--warm-tint) 100%);
}
.contact-section__mesh {
  pointer-events:none;
  position:absolute;
  inset:0;
  opacity:.65;
  background:
    radial-gradient(ellipse 85% 55% at 50% -15%, rgba(26,115,232,.2), transparent 58%),
    radial-gradient(ellipse 50% 35% at 100% 70%, rgba(66,133,244,.1), transparent 55%);
}
.contact-section__container {
  position:relative;
  z-index:1;
}
.contact-hero {
  text-align:center;
  margin-bottom:clamp(28px,5vw,44px);
}
.contact-hero__bar {
  margin:0 auto 22px;
}
.contact-hero__title {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.12em;
  max-width:680px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:14px;
}
.contact-hero__line {
  display:block;
}
.contact-hero__line--accent em {
  font-style:normal;
  background:var(--grad-text);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.contact-hero__desc {
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
}
.contact-card--stacked {
  padding:0;
  max-width:680px;
  overflow:hidden;
  border:1px solid rgba(26,115,232,.12);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}
.contact-card__accent {
  height:4px;
  background:var(--grad-bar);
}
.contact-card__inner {
  padding:clamp(18px,4vw,38px);
  text-align:left;
}
.contact-step {
  padding:clamp(18px,3vw,26px) 0;
  border-bottom:1px solid var(--border);
}
.contact-step:last-child {
  border-bottom:none;
  padding-bottom:0;
}
.contact-step:first-child {
  padding-top:6px;
}
.contact-step__header {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
  text-align:left;
}
.contact-step__num {
  flex-shrink:0;
  width:38px;
  height:38px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-heading);
  font-size:15px;
  font-weight:800;
  color:#fff;
  background:linear-gradient(145deg,#1557B0 0%,#1A73E8 55%,#3D8FE8 100%);
  box-shadow:0 4px 14px rgba(26,115,232,.35);
}
.contact-step__titles {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}
.contact-step__kicker {
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text4);
}
.contact-step__name {
  font-family:var(--font-heading);
  font-weight:700;
  font-size:clamp(15px,2.5vw,17px);
  color:var(--text);
  line-height:1.25;
}
.contact-step__body .form-group:last-child {
  margin-bottom:0;
}

/* Assistant multi-étapes — formulaire contact (large + progression) */
.contact-card.contact-card--wizard {
  max-width:min(920px,100%);
}
.contact-card__inner--wizard {
  padding-top:clamp(12px,3vw,22px);
}
.contact-wizard {
  position:relative;
  min-height:260px;
}
.contact-wizard__progress-wrap {
  margin-bottom:clamp(18px,4vw,30px);
  overflow-x:auto;
  padding-bottom:6px;
}
.contact-wizard__progress {
  display:flex;
  gap:8px;
  justify-content:space-between;
  list-style:none;
  margin:0;
  padding:0;
  min-width:min(860px,100%);
}
.contact-wizard__prog-item {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  text-align:center;
  opacity:.42;
  transition:opacity .2s;
}
.contact-wizard__prog-item.is-active,
.contact-wizard__prog-item.is-done {
  opacity:1;
}
.contact-wizard__prog-num {
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  border:2px solid var(--border);
  background:var(--white);
  color:var(--text3);
  transition:background .2s,border-color .2s,color .2s,box-shadow .2s;
}
.contact-wizard__prog-item.is-active .contact-wizard__prog-num {
  border-color:var(--g-blue);
  background:var(--g-blue);
  color:#fff;
  box-shadow:0 4px 12px rgba(26,115,232,.35);
}
.contact-wizard__prog-item.is-done .contact-wizard__prog-num {
  border-color:var(--g-green);
  background:var(--g-green);
  color:#fff;
}
.contact-wizard__prog-label {
  font-size:9px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text4);
  line-height:1.2;
  max-width:76px;
}
.contact-wizard-panel {
  position:absolute;
  left:0;
  right:0;
  top:0;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
}
.contact-wizard-panel.is-active {
  position:relative;
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  z-index:2;
}
.contact-wizard-panel__intro {
  text-align:left;
  margin-bottom:20px;
}
.contact-wizard-panel__title {
  font-family:var(--font-heading);
  font-size:clamp(17px,2.6vw,22px);
  font-weight:800;
  color:var(--text);
  margin:0 0 8px;
  letter-spacing:-.02em;
}
.contact-wizard-panel__hint {
  font-size:14px;
  color:var(--text3);
  line-height:1.55;
  margin:0;
}
.contact-wizard-panel__micro {
  font-size:11px;
  color:var(--text4);
  margin-top:6px;
}
.contact-payment-auto-hint {
  font-size:14px;
  color:var(--text3);
  text-align:center;
  margin:0 0 14px;
  line-height:1.45;
}
.contact-payment-loading {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:20px 16px;
  margin:8px 0 16px;
  font-size:15px;
  color:var(--text2);
  border-radius:var(--radius-md);
  border:1px dashed var(--border);
  background:var(--white);
}
.contact-payment-loading__spinner {
  width:22px;
  height:22px;
  border:2px solid var(--border);
  border-top-color:var(--g-blue);
  border-radius:50%;
  animation:ca-spin 0.75s linear infinite;
}
@keyframes ca-spin {
  to { transform:rotate(360deg); }
}
/* Stripe Embedded Checkout (iframe hébergé par Stripe, affiché dans la page) */
.stripe-checkout-embed-wrap { margin:8px 0 16px; }
.stripe-checkout-embed-wrap__intro { margin-bottom:12px; }
.stripe-checkout-embed {
  min-height:min(480px,70vh);
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:var(--white);
  overflow:hidden;
}
.contact-wizard__nav {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid var(--border);
}
.contact-wizard__nav--end {
  justify-content:flex-end;
}
.contact-wizard__nav--single-prev {
  justify-content:center;
  border-top:none;
  margin-top:14px;
  padding-top:0;
}
.btn-wizard-next {
  min-width:128px;
}

/* Mobile / tablette étroite : Suivant pleine largeur comme Retour (section « Reprenez le contrôle ») */
@media(max-width:768px){
  .contact-wizard__nav {
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .contact-wizard__nav--end {
    justify-content:stretch;
  }
  .contact-wizard__nav .btn-blue,
  .contact-wizard__nav .btn-outline {
    width:100%;
    justify-content:center;
    text-align:center;
    box-sizing:border-box;
  }
  .contact-wizard__nav .btn-wizard-next {
    min-width:0;
  }
}

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--text4); margin-bottom:7px; }
.req { color:var(--g-red); }
.form-group input,.form-group select,.form-group textarea {
  width:100%; background:var(--bg); border:1px solid var(--border); border-radius:10px;
  padding:12px 14px; color:var(--text); font-family:var(--font-body); font-size:14px;
  outline:none; transition:border-color .2s,box-shadow .2s; appearance:none;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus {
  border-color:var(--g-blue); box-shadow:0 0 0 3px rgba(26,115,232,.12); background:white;
}
.form-group select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2380868B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
  cursor:pointer;
}
.form-group input.err { border-color:var(--g-red); }
.form-group textarea { resize:vertical; min-height:100px; }
.url-wrap { position:relative; }
.url-wrap input { padding-left:14px; }
.url-pfx { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:16px; color:var(--text4); pointer-events:none; }
.url-ok { position:absolute; right:12px; top:50%; transform:translateY(-50%); font-size:15px; display:none; }
.url-err-msg { font-size:11px; color:var(--g-red); margin-top:5px; display:none; }
.tt-btn {
  width:17px; height:17px; border-radius:50%;
  background:var(--g-blue); color:white;
  font-size:10px; font-weight:800;
  border:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  vertical-align:middle; margin-left:6px; margin-bottom:2px;
  transition:background .2s; font-family:var(--font-body); flex-shrink:0;
}
.tt-btn:hover,.tt-btn:focus { background:var(--g-blue2); outline:none; box-shadow:0 0 0 3px rgba(26,115,232,.25); }
.tt-wrap { position:relative; display:inline-block; }
.tt-box {
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%);
  width:320px; background:#1e2023; color:white;
  border-radius:14px; padding:16px 18px;
  font-size:12px; line-height:1.55;
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  z-index:400; display:none; text-align:left;
  border:1px solid rgba(255,255,255,.08);
}
.tt-box::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:8px solid transparent; border-top-color:#1e2023; }
.tt-box.open { display:block; animation:ttFade .18s ease; }
@keyframes ttFade { from{opacity:0;transform:translateX(-50%) translateY(5px)} to{opacity:1;transform:translateX(-50%) translateY(0)} }
.tt-title { font-weight:700; font-size:13px; margin-bottom:12px; display:flex; align-items:center; gap:6px; color:#fff; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:10px; }
.tt-step { display:flex; align-items:flex-start; gap:9px; margin-bottom:9px; }
.tt-step:last-of-type { margin-bottom:0; }
.tt-num { min-width:20px; height:20px; border-radius:50%; background:var(--g-blue); font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px; color:white; }
.tt-text { color:rgba(255,255,255,.88); }
.tt-text strong { color:#fff; }
.tt-alt { margin-top:12px; padding:9px 11px; background:rgba(255,255,255,.06); border-radius:8px; font-size:11px; color:rgba(255,255,255,.78); border-left:3px solid #FBBC04; }
.tt-alt strong { color:#FBBC04; }
@media(max-width:500px){
  .tt-box { position:fixed; left:16px; right:16px; width:auto; bottom:16px; top:auto; transform:none; }
  .tt-box::after { display:none; }
  .tt-box.open { animation:ttFadeMob .18s ease; }
  @keyframes ttFadeMob { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
}
#review-preview { margin-top:12px; display:none; }
.rp-card { border:1.5px solid var(--border); border-radius:12px; overflow:hidden; background:var(--white); animation:rpFade .25s ease; }
@keyframes rpFade { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
.rp-head { background:linear-gradient(135deg,#1A73E8 0%,#4285F4 100%); padding:12px 16px; display:flex; align-items:center; gap:12px; }
.rp-biz-icon { width:40px; height:40px; border-radius:8px; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; overflow:hidden; }
.rp-biz-icon img { width:100%; height:100%; object-fit:cover; border-radius:8px; }
.rp-biz-name { font-weight:700; font-size:14px; color:white; line-height:1.2; }
.rp-biz-meta { font-size:11px; color:rgba(255,255,255,.8); margin-top:3px; }
.rp-biz-stars { color:#FBBC04; letter-spacing:1px; }
.rp-loading { padding:20px; text-align:center; font-size:13px; color:var(--text4); }
.rp-loading-spinner { width:20px; height:20px; border:2px solid var(--border); border-top-color:var(--g-blue); border-radius:50%; animation:spin .7s linear infinite; display:inline-block; vertical-align:middle; margin-right:8px; }
@keyframes spin { to{transform:rotate(360deg)} }
.rp-reviews { padding:12px 16px; display:flex; flex-direction:column; gap:10px; }
.rp-review-item { border:1px solid var(--border); border-radius:9px; padding:10px 12px; background:var(--bg); cursor:default; transition:border-color .15s,background .15s; }
.rp-review-item:hover { border-color:var(--g-blue); background:var(--g-blue-lt); }
.rp-review-top { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.rp-avatar { width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,#4285F4,#1A73E8); color:white; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden; }
.rp-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.rp-author { font-size:12px; font-weight:600; color:var(--text2); }
.rp-date { font-size:10px; color:var(--text4); margin-left:auto; }
.rp-stars { color:#FBBC04; font-size:11px; letter-spacing:.5px; margin-bottom:5px; }
.rp-text { font-size:12px; color:var(--text3); line-height:1.5; display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.rp-empty { padding:16px; text-align:center; font-size:12px; color:var(--text4); }
.rp-footer { padding:10px 16px; border-top:1px solid var(--border); font-size:11px; color:var(--text4); background:var(--bg2); display:flex; align-items:center; gap:6px; }
.rp-short-msg { padding:14px 16px; font-size:12.5px; color:var(--text3); display:flex; align-items:center; gap:8px; }
.upload-zone { border:2px dashed var(--border); border-radius:10px; padding:18px; text-align:center; cursor:pointer; transition:all .2s; background:var(--bg); }
.upload-zone:hover { border-color:var(--g-blue); background:var(--g-blue-lt); }
.secure-note { display:flex; align-items:center; justify-content:center; gap:8px; font-size:12px; color:var(--text4); margin-top:14px; }
.secure-icon { width:18px; height:18px; background:var(--g-grn-lt); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; }
.form-biz-wrap {
  display:flex; align-items:center;
  background:var(--white); border:1.5px solid var(--border);
  border-radius:12px; overflow:hidden;
  transition:border-color .2s,box-shadow .2s;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.form-biz-wrap:focus-within { border-color:var(--g-blue); box-shadow:0 0 0 3px rgba(26,115,232,.12); }
.form-biz-icon { padding:0 12px 0 14px; font-size:18px; color:var(--text4); flex-shrink:0; }
.form-biz-wrap input { flex:1; border:none !important; outline:none !important; background:transparent !important; box-shadow:none !important; padding:13px 14px 13px 0 !important; font-family:var(--font-body); font-size:14px; color:var(--text); }
.form-biz-wrap input::placeholder { color:var(--text4); }
#form-insight-panel { margin:18px 0 22px; border-radius:16px; overflow:hidden; border:1.5px solid rgba(26,115,232,.25); box-shadow:0 4px 24px rgba(26,115,232,.1); animation:fadeUp .45s ease; }
.fi-header { background:linear-gradient(135deg,#1A73E8 0%,#1557B0 100%); padding:20px 24px; display:flex; align-items:center; gap:14px; }
.fi-biz-icon { width:48px; height:48px; border-radius:12px; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; overflow:hidden; }
.fi-biz-icon img { width:100%; height:100%; object-fit:cover; border-radius:12px; }
.fi-biz-name { font-family:var(--font-heading); font-size:17px; font-weight:800; color:white; line-height:1.2; }
.fi-biz-addr { font-size:12px; color:rgba(255,255,255,.75); margin-top:3px; }
.fi-body { background:var(--white); padding:22px 24px; }
.fi-gauge-wrap { margin-bottom:22px; }
.fi-gauge-label { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.fi-gauge-note { font-family:var(--font-heading); font-size:26px; font-weight:900; }
.fi-gauge-stars { font-size:15px; letter-spacing:1px; color:#F9AB00; }
.fi-gauge-seuil { font-size:11px; color:var(--text4); font-weight:600; }
.fi-gauge-track { height:10px; background:var(--bg2); border-radius:10px; overflow:hidden; position:relative; }
.fi-gauge-fill { height:100%; border-radius:10px; transition:width .8s cubic-bezier(.4,0,.2,1); }
.fi-gauge-target { position:absolute; top:-4px; height:18px; width:2px; background:rgba(0,0,0,.25); border-radius:2px; }
.fi-gauge-target::after { content:'4.2★ objectif'; position:absolute; top:-18px; left:50%; transform:translateX(-50%); font-size:9px; color:var(--text4); white-space:nowrap; font-weight:600; letter-spacing:.3px; }
.fi-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
.fi-stat { background:var(--bg); border:1px solid var(--border); border-radius:12px; padding:14px; text-align:center; }
.fi-stat-val { font-family:var(--font-heading); font-size:22px; font-weight:900; line-height:1; margin-bottom:4px; }
.fi-stat-lbl { font-size:10px; color:var(--text4); letter-spacing:.4px; font-weight:600; }
.fi-urgency { border-radius:12px; padding:16px 18px; display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.fi-urgency-icon { font-size:22px; flex-shrink:0; margin-top:1px; }
.fi-urgency-title { font-size:13px; font-weight:700; margin-bottom:4px; }
.fi-urgency-body { font-size:12.5px; color:var(--text3); line-height:1.6; }
.fi-recommendation { background:linear-gradient(135deg,var(--g-blue-lt),#EEF3FF); border:1.5px solid rgba(26,115,232,.2); border-radius:12px; padding:16px 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.fi-rec-tag { font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--g-blue); margin-bottom:6px; }
.fi-rec-title { font-size:14px; font-weight:700; color:var(--text); }
.fi-rec-roi { font-size:12px; color:var(--g-green); font-weight:700; margin-top:3px; }
.fi-rec-price { font-family:var(--font-heading); font-size:32px; font-weight:900; color:var(--g-blue); white-space:nowrap; flex-shrink:0; }
.fi-rec-price sup { font-size:16px; vertical-align:super; }
.fi-cta {
  width:100%; padding:14px; border-radius:12px;
  background:var(--cta-gradient); color:white;
  border:1px solid rgba(255,255,255,.12);
  font-family:var(--font-heading); font-size:15px; font-weight:800; cursor:pointer;
  transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .18s var(--ease-out);
  box-shadow:var(--cta-shadow);
  display:flex; align-items:center; justify-content:center; gap:8px;
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
}
.fi-cta:hover {
  background:var(--cta-gradient-hover);
  transform:translateY(-1px);
  box-shadow:var(--cta-shadow-hover);
}
.fi-addr-filled { background:var(--g-grn-lt) !important; border-color:var(--g-green) !important; color:var(--text3) !important; font-size:13px !important; }

/* ═══════════════════════════════════════════
   COOKIE BANNER
═══════════════════════════════════════════ */
#cookie-banner {
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:9998;
  background:white; border-top:1px solid var(--border);
  box-shadow:0 -4px 24px rgba(0,0,0,.1);
  padding:16px clamp(16px,4vw,40px);
  align-items:center; gap:16px; flex-wrap:wrap;
  font-family:var(--font-body);
}
.cookie-text { flex:1; min-width:220px; }
.cookie-text strong { font-size:14px; color:var(--text); display:block; margin-bottom:4px; }
.cookie-text p { font-size:12px; color:var(--text3); line-height:1.5; margin:0; }
.cookie-text a { color:var(--g-blue); text-decoration:underline; font-size:12px; }
.cookie-btns { display:flex; gap:10px; flex-shrink:0; flex-wrap:wrap; }
.cookie-btn-accept {
  background:var(--cta-gradient); color:white;
  border:1px solid rgba(255,255,255,.12);
  padding:10px 22px; border-radius:20px; font-size:13px; font-weight:600; cursor:pointer;
  font-family:var(--font-body); transition:background .2s var(--ease-out), box-shadow .2s; white-space:nowrap; min-height:44px;
  box-shadow:var(--cta-shadow);
}
.cookie-btn-accept:hover {
  background:var(--cta-gradient-hover);
  box-shadow:var(--cta-shadow-hover);
}
.cookie-btn-refuse { background:transparent; color:var(--text3); border:1.5px solid var(--border); padding:10px 22px; border-radius:20px; font-size:13px; font-weight:500; cursor:pointer; font-family:var(--font-body); transition:all .15s; white-space:nowrap; min-height:44px; }
.cookie-btn-refuse:hover { border-color:var(--text3); color:var(--text); }

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
footer { background:var(--bg); border-top:1px solid var(--border); }
.footer-links-top { border-bottom:1px solid var(--border); padding:18px 0; }
.footer-links-top-inner { max-width:1120px; margin:0 auto; padding:0 clamp(16px,4vw,36px); display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px 28px; }
.footer-links-top-inner a { font-size:13px; font-weight:600; color:var(--text3); padding:6px 14px; border-radius:20px; transition:all .15s; }
.footer-links-top-inner a:hover { background:var(--g-blue-lt); color:var(--g-blue); }
.footer-bottom { padding:24px 0 20px; }
.footer-bottom-inner { max-width:1120px; margin:0 auto; padding:0 clamp(16px,4vw,36px); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.footer-logo-txt { font-family:var(--font-heading); font-size:16px; font-weight:900; }
.footer-disclaimer { font-size:11px; color:var(--text4); max-width:440px; line-height:1.6; text-align:center; }
.footer-copy { font-size:11px; color:var(--text4); }

/* ═══════════════════════════════════════════
   REVEAL
═══════════════════════════════════════════ */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .45s ease,transform .45s ease; will-change:transform,opacity; }
.reveal.visible { opacity:1; transform:translateY(0); will-change:auto; }
.reveal[data-reveal-idx="1"] { transition-delay:.07s; }
.reveal[data-reveal-idx="2"] { transition-delay:.14s; }
.reveal[data-reveal-idx="3"] { transition-delay:.21s; }

/* ═══════════════════════════════════════════
   RESPONSIVE — TABLET ≤ 900px
═══════════════════════════════════════════ */
@media(max-width:900px){
  /* Un seul flux de scroll : pas de « sous-scroll » (section/contact/iOS WebKit) */
  .contact-section--redesign {
    overflow:visible;
  }
  .contact-wizard__progress-wrap {
    overscroll-behavior-x:contain;
    touch-action:pan-x;
  }
  .legal-table-wrap {
    overscroll-behavior-x:contain;
    touch-action:pan-x;
  }
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-visual { display:none; }
  .hero { min-height:auto; padding-top:92px; }
  .hero-left { max-width:none; }
  .hero-stats {
    display:grid; grid-template-columns:repeat(4,1fr);
    max-width:100%; margin:30px 0 0;
    border-radius:12px;
    overflow:hidden;
  }
  .stat-item {
    padding:12px 6px;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    overflow:hidden;
  }
  .stat-item::before { height:3px; }
  .stat-num { font-size:17px !important; line-height:1; }
  .stat-num .u { font-size:10px !important; }
  .stat-label { font-size:8.5px !important; text-align:center; line-height:1.3; margin-top:3px; padding:0 2px; }
  .metrics-grid { grid-template-columns:1fr 1fr; }
  .pb-grid { grid-template-columns:1fr; }
  .tarifs-grid { grid-template-columns:1fr; max-width:520px; margin-left:auto; margin-right:auto; }
  .tarif-card.featured { margin-top:24px; }
  .exp-grid { grid-template-columns:1fr; }
  .steps-row { grid-template-columns:1fr 1fr; gap:20px; }
  .steps-row::before { display:none; }
  /* Une colonne : les cartes restent lisibles (textes longs) */
  .temo-grid {
    grid-template-columns:1fr;
    max-width:560px;
    margin-left:auto;
    margin-right:auto;
    gap:14px;
    margin-top:clamp(28px,6vw,48px);
  }
  .form-row { grid-template-columns:1fr; }
  .calc-row { grid-template-columns:1fr; }
  .trust-inner { gap:16px; }
  .trust-sep { display:none; }
  .trust-strip { display:none; }
}

@media(max-width:768px){
  .hero {
    padding:92px 18px 34px !important;
  }
  .hero-grid {
    gap:20px;
  }
  .hero-visual {
    margin-bottom:0;
  }
  .review-mockup {
    max-width:292px;
    border-radius:16px;
    box-shadow:0 8px 24px rgba(32,33,36,.10);
  }
  .trust-inner {
    justify-content:stretch;
  }
  .trust-item {
    width:calc(50% - 8px);
    justify-content:center;
    white-space:normal;
    text-align:center;
    min-height:64px;
  }
  .tarifs-grid { grid-template-columns:1fr; max-width:480px; }
  .temo-grid { grid-template-columns:1fr; }
  .steps-row { grid-template-columns:1fr; gap:14px; }
  .steps-row::before { display:none; }
  .exp-grid { grid-template-columns:1fr; }
  .pb-grid { grid-template-columns:1fr; }
  .metrics-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .audit-card { padding:20px 16px; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:10px; }
  .hero-actions a { width:100%; justify-content:center; white-space:normal; text-align:center; }
  .hero-note { gap:8px; }
  .hero-note span {
    flex:1 1 calc(50% - 8px);
    justify-content:center;
    text-align:center;
  }
  .result-cta { flex-direction:column; gap:10px; }
  .result-cta a { width:100%; justify-content:center; }
  .result-head,
  .fi-header,
  .fi-gauge-label,
  .fi-recommendation,
  .temo-author,
  .warn-banner,
  .ia-strip,
  .rp-head,
  .rp-review-top,
  .rm-review-top {
    flex-direction:column;
    align-items:flex-start;
  }
  .rp-date { margin-left:0; }
  .temo-author .temo-pkg { margin-left:0; }
  .temoignages .temo-author {
    align-items:center;
  }
  .temoignages .temo-author > div:nth-child(2) {
    text-align:center;
  }
  .temoignages .temo-author .temo-pkg {
    align-self:center;
  }
  .hero-dots { opacity:.18; }
  .hero-badge,
  .hero-note span,
  .trust-item {
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .reveal,
  .review-mockup,
  .rm-deleted,
  .rm-badge.removed {
    animation:none !important;
    transition:none !important;
  }
}

@media(max-width:768px){
  .hero-badge__full { display:none !important; }
  .hero-badge__short {
    display:inline;
    font-size:11px;
    font-weight:700;
    letter-spacing:.02em;
    line-height:1.35;
    max-width:min(380px,92vw);
  }
}

@media(max-width:600px){
  body { line-height:1.65; }
  .hero { padding:80px 16px 24px !important; }
  .hero h1.hero-heading {
    font-size:clamp(30px,8.5vw,40px);
    letter-spacing:-0.035em;
    line-height:1.09;
    margin-bottom:22px;
    padding:0 6px;
    max-width:min(22rem,100%);
    margin-left:auto;
    margin-right:auto;
    text-wrap:balance;
    font-feature-settings:"kern" 1,"liga" 1;
  }
  .hero-badge {
    font-size:10px;
    padding:9px 14px;
    margin-bottom:16px;
    white-space:normal;
    line-height:1.35;
    border-radius:14px;
    max-width:100%;
    justify-content:center;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .hero-sub { font-size:17px; line-height:1.78; margin-bottom:20px; max-width:none; }
  .sec-desc { font-size:16px; }
  .pb-intro { font-size:16px; }
  .pb-card-text { font-size:14px; }
  .exp-text { font-size:14px; }
  .faq-a { font-size:14px !important; }
  .temo-quote { font-size:14px; }
  .hero-sub-break {
    height:12px;
  }
  .trust-strip {
    display:none;
  }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions a { width:100%; justify-content:center; white-space:normal; text-align:center; }
  .hero-note { display:none; }
  .hero-left {
    text-align:center;
    align-items:center;
    margin:0 auto;
  }
  .hero h1,
  .hero-sub {
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .hero-stats {
    grid-template-columns:1fr 1fr;
    margin-top:16px;
  }
  .stat-item { width:auto; flex:none; padding:10px 6px; border-right:none; border-bottom:1px solid var(--border); }
  .stat-item:nth-child(odd) { border-right:1px solid var(--border); }
  .stat-item:nth-child(3),.stat-item:nth-child(4) { border-bottom:none; }
  .stat-num { font-size:19px !important; }
  .stat-num .u { font-size:11px !important; }
  .stat-label { font-size:9px !important; }
  section { padding:40px 0 !important; }
  section > .container { padding:0 clamp(16px,5vw,20px) !important; }
  .audit-card { padding:16px 14px; margin-top:18px; }
  .metrics-grid { grid-template-columns:1fr 1fr; gap:8px; }
  .metric-card { padding:10px 6px; }
  .metric-val { font-size:18px; }
  .result-cta { flex-direction:column; }
  .result-cta a { width:100%; justify-content:center; }
  .calc-result-display { flex-direction:column; gap:8px; }
  .pb-grid { gap:14px; margin-top:20px; }
  .pb-card { padding:14px 12px; }
  .steps-row { grid-template-columns:1fr; gap:12px; margin-top:20px; }
  .tarifs-grid { grid-template-columns:1fr; margin-top:20px; max-width:100%; }
  .tarif-card { padding:20px 16px; }
  .tarif-card.featured { margin-top:0; overflow:hidden; padding-top:48px; }
  .feat-badge { top:0; left:0; right:0; transform:none; border-radius:18px 18px 0 0; padding:10px 16px; white-space:normal; text-align:center; line-height:1.35; max-width:none; font-size:9px; }
  .exp-grid { gap:10px; margin-top:18px; }
  .temo-grid { grid-template-columns:1fr; }
  .legal-table-wrap {
    overflow:visible;
    border:none;
    border-radius:0;
    margin-top:20px;
  }
  .legal-table,
  .legal-table thead,
  .legal-table tbody,
  .legal-table tr,
  .legal-table th,
  .legal-table td {
    display:block;
    width:100%;
    min-width:0;
  }
  .legal-table thead {
    display:none;
  }
  .legal-table tr {
    background:var(--white);
    border:1px solid var(--border);
    border-radius:14px;
    overflow:hidden;
    margin-bottom:12px;
    box-shadow:var(--shadow-sm);
  }
  .legal-table td {
    padding:12px 14px;
    font-size:12px;
    border-top:none;
  }
  .legal-table td + td {
    border-top:1px solid var(--border);
    background:var(--bg);
  }
  .faq-list { margin-top:18px; }
  .faq-q { padding:13px 14px; font-size:14px; }
  .faq-a { padding:0 14px 0; font-size:13px; }
  .faq-item.open .faq-a { padding-top:11px; padding-bottom:13px; }
  .contact-card:not(.contact-card--stacked) { padding:16px 14px; }
  .contact-card--stacked .contact-card__inner { padding:16px 14px; }
  .form-group { margin-bottom:10px; }
  .trust-strip { padding:16px 0; }
  .trust-inner {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .trust-item {
    width:100%;
    justify-content:flex-start;
    min-height:auto;
    border-radius:16px;
    padding:12px 14px;
  }
  .footer-links-top-inner { flex-direction:column; align-items:center; gap:2px; }
  .footer-links-top-inner a { width:100%; text-align:center; }
  .footer-bottom-inner { flex-direction:column; align-items:center; text-align:center; gap:10px; }
  /* Ne pas mettre overflow-x sur section/.container : scroll piégé sur mobile (WebKit) */
  section,.container { max-width:100%; }
  .contact-card,.audit-card,.tarif-card { max-width:100%; overflow-x:hidden; }
  .btn-blue.btn-wide,.btn-outline { width:100%; justify-content:center; text-align:center; }
  .fi-stats { grid-template-columns:1fr 1fr; }
  .calc-result-display,
  .fi-urgency,
  .rp-short-msg,
  .secure-note {
    align-items:flex-start;
    text-align:left;
  }
  .btn-blue,
  .btn-outline,
  .btn-tarif,
  .fi-cta {
    min-height:48px;
  }
  .secure-note { flex-wrap:wrap; text-align:center; justify-content:center; font-size:11px; }
}

@media(max-width:600px){
  .form-group input,.form-group select,.form-group textarea,
  .form-biz-wrap input,.search-input { font-size:16px !important; }
}
@media(max-width:900px){
  .hamburger { min-width:44px; min-height:44px; }
  .mobile-menu a { min-height:44px; }
  .faq-q { min-height:48px; }
  .cookie-btn-accept,.cookie-btn-refuse { min-height:44px; }
  /* Ombres allégées sur mobile pour fluidifier le scroll */
  :root {
    --shadow-sm: 0 1px 4px rgba(0,0,0,.07);
    --shadow-md: 0 2px 8px rgba(0,0,0,.09);
    --shadow-lg: 0 4px 14px rgba(0,0,0,.1);
    --shadow-blue: 0 2px 8px rgba(26,115,232,.2);
    /* Accordéons / FAQ : même rendu d’ombre que le reste des cartes (évite halo ≠ bordure) */
    --shadow-card: var(--shadow-sm);
  }
  .exp-card:hover, .temo-card:hover, .tarif-card:hover { transform:none; }
}
@media(max-width:390px){
  .hero h1.hero-heading {
    font-size:clamp(26px,7.8vw,34px);
    letter-spacing:-0.03em;
    line-height:1.1;
    padding:0 4px;
  }
  .hero-badge { font-size:10px; padding:8px 11px; }
  .hero-badge__short { font-size:10px; max-width:min(300px,94vw); }
  .hero-sub { font-size:15px; }
  .stat-num { font-size:17px !important; }
  .stat-num .u { font-size:10px !important; }
  .stat-label { font-size:8px !important; }
  .tarif-card { padding:18px 14px; }
  .contact-card:not(.contact-card--stacked) { padding:14px 12px; }
  .contact-card--stacked .contact-card__inner { padding:14px 12px; }
  .form-group input,.form-group select,.form-group textarea { padding:11px 12px; }
  .sec-title { font-size:20px; }
  .sec-desc { font-size:15px; }
  .temo-card { padding:16px 14px; }
  .faq-q { font-size:13px; padding:12px 12px; }
  .faq-a { font-size:13px; padding:0 12px 0; }
  .pb-card-text { font-size:13px; }
  .exp-text { font-size:13px; }
}
@media(max-width:500px){
  #cookie-banner { flex-direction:column; align-items:flex-start; }
  .cookie-btns { width:100%; }
  .cookie-btn-accept,.cookie-btn-refuse { flex:1; text-align:center; }
}
@media(max-height:500px) and (max-width:900px){
  .hero { padding:64px 20px 24px !important; }
}

