:root{
  --ink: #0B0B0C;
  --ink-soft: #5B5F5D;
  --line: #E4E4E1;
  --bg: #FFFFFF;
  --bg-alt: #F7F7F5;
  --accent: #1D4ED8;
  --accent-soft: #EEF2FF;
  --bad: #E1112B;
  --bad-soft: #FCE4E7;
  --mid: #FF7900;
  --mid-soft: #FFEDDD;
  --good: #1D7A4C;
  --good-soft: #E8F5EE;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Inter', sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:960px; margin:0 auto; padding:0 24px; }
h1,h2,h3{ font-weight:700; letter-spacing:-0.02em; margin:0; }

/* ---- nav ---- */
.topbar{ display:flex; align-items:center; justify-content:space-between; padding:20px 24px; max-width:1040px; margin:0 auto; }
.topbar-left{ display:flex; align-items:center; gap:12px; }
.brand{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:1.15rem; }
.brand img{ height:76px; display:block; }
.brand-tagline{
  font-size:0.78rem; color:var(--ink-soft); border-left:1px solid var(--line);
  padding-left:12px; line-height:1.25; max-width:22ch;
}
.nav-links{ display:flex; gap:28px; font-size:0.88rem; color:var(--ink-soft); }
.nav-links a:hover{ color:var(--ink); }
@media (max-width:640px){
  .topbar{ padding:16px 18px; }
  .brand img{ height:36px; }
  .brand-tagline{ font-size:0.68rem; max-width:16ch; padding-left:9px; line-height:1.2; }
  .nav-links{ display:none; }
}

/* ---- hero ---- */
.hero{ padding:40px 0 20px; text-align:center; }
.hero h1{ font-size:clamp(2rem,4.6vw,2.9rem); line-height:1.12; max-width:18ch; margin:0 auto; }
.hero .lede{ margin:16px auto 0; max-width:44ch; color:var(--ink-soft); font-size:1.05rem; }

/* ---- search ---- */
.search-panel{ max-width:600px; margin:32px auto 0; }
.search-row{ position:relative; display:flex; gap:8px; }
.search-row input{
  flex:1; padding:15px 16px; border:1.5px solid var(--ink); border-radius:8px;
  font-family:'Inter', sans-serif; font-size:1rem; background:#fff; color:var(--ink);
}
.search-row input:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); border-color:var(--accent); }
.search-row button{
  background:var(--accent); color:#fff; border:none; padding:0 22px; border-radius:8px;
  font-weight:600; font-size:0.92rem; cursor:pointer; white-space:nowrap;
}
.search-row button:hover{ background:#173fb0; }
.search-row button:disabled{ opacity:0.6; cursor:default; }
.search-hint{ font-size:0.8rem; color:var(--ink-soft); margin-top:10px; }

.autocomplete-list{
  position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff; border:1px solid var(--line);
  border-radius:8px; z-index:20; max-height:220px; overflow-y:auto; display:none; box-shadow:0 8px 20px rgba(0,0,0,0.06);
}
.autocomplete-list.show{ display:block; }
.autocomplete-list div{ padding:11px 16px; font-size:0.9rem; cursor:pointer; }
.autocomplete-list div:hover{ background:var(--bg-alt); }

.config-banner{
  max-width:600px; margin:14px auto 0; background:var(--bg-alt); border:1px solid var(--line);
  color:var(--ink-soft); font-size:0.8rem; padding:9px 14px; border-radius:8px; text-align:center; display:none;
}
.config-banner.show{ display:block; }

.stat-line{ display:flex; justify-content:center; gap:36px; margin-top:36px; flex-wrap:wrap; }
.stat-line div{ text-align:center; }
.stat-line .num{ font-size:1.5rem; font-weight:700; }
.stat-line .lbl{ font-size:0.78rem; color:var(--ink-soft); max-width:18ch; display:block; margin-top:2px; }

/* ---- diagnostic stage: mock Google Business card, builds tension ---- */
.gbp-stage{
  max-width:600px; margin:20px auto 0; border:1px solid var(--line); border-radius:10px;
  padding:24px; display:none; background:#fff; overflow:hidden;
}
.gbp-stage.show{ display:block; }

.gbp-row2{ display:flex; align-items:flex-start; gap:14px; }
.gbp-photo{
  width:60px; height:60px; border-radius:8px; background:var(--bg-alt); border:1px solid var(--line);
  flex-shrink:0; opacity:0; transition:opacity 0.6s ease;
}
.gbp-photo.in{ opacity:1; }
.gbp-photo svg{ width:100%; height:100%; padding:14px; box-sizing:border-box; color:var(--line); }

.gbp-name2{ font-weight:700; font-size:1.05rem; min-height:1.3em; }
.gbp-name2 .cursor{ display:inline-block; width:2px; background:var(--ink); margin-left:1px; animation:blink 0.9s step-end infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.gbp-cat2{ font-size:0.8rem; color:var(--ink-soft); margin-top:2px; opacity:0; transition:opacity 0.4s ease; }
.gbp-cat2.in{ opacity:1; }

.gbp-stars-row2{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.gbp-stars2{ display:flex; gap:3px; }
.gbp-star{ position:relative; width:20px; height:20px; opacity:0; transition:opacity 0.35s ease; }
.gbp-star.in{ opacity:1; }
.gbp-star svg{ width:100%; height:100%; display:block; }
.gbp-star .bg-star{ fill:#E4E4E1; }
.gbp-star .fg-clip{ overflow:hidden; position:absolute; inset:0; width:100%; }
.gbp-star .fg-star{ fill:#B8860B; }

.gbp-rating-num2{ font-weight:700; font-size:1rem; }
.gbp-review-count2{ font-size:0.82rem; color:var(--ink-soft); }

.gbp-meta{ margin-top:14px; display:grid; gap:8px; }
.gbp-meta-line{ font-size:0.82rem; color:var(--ink-soft); position:relative; height:14px; }
.gbp-meta-line .skeleton-bar{
  position:absolute; inset:0; background:var(--bg-alt); border-radius:3px; width:70%;
  animation:shimmer 1.3s ease-in-out infinite; transition:opacity 0.3s ease;
}
.gbp-meta-line .real-text{ position:absolute; inset:0; opacity:0; transition:opacity 0.3s ease; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gbp-meta-line.resolved .skeleton-bar{ opacity:0; }
.gbp-meta-line.resolved .real-text{ opacity:1; }
@keyframes shimmer{ 0%,100%{ opacity:0.6; } 50%{ opacity:1; } }

.gbp-reviews{ margin-top:16px; display:grid; gap:10px; }
.gbp-review-skel{ display:flex; gap:10px; align-items:center; opacity:0; transform:translateY(6px); transition:opacity 0.4s ease, transform 0.4s ease; }
.gbp-review-skel.in{ opacity:1; transform:none; }
.gbp-review-avatar{ width:26px; height:26px; border-radius:50%; background:var(--bg-alt); flex-shrink:0; }
.gbp-review-lines{ flex:1; display:grid; gap:5px; }
.gbp-review-line{ height:8px; background:var(--bg-alt); border-radius:3px; }
.gbp-review-line.short{ width:40%; }

.gbp-competitors{ margin-top:16px; font-size:0.8rem; color:var(--ink-soft); min-height:1.4em; }
.gbp-competitors b{ color:var(--ink); }

.gbp-progress2{ height:3px; background:var(--bg-alt); border-radius:2px; margin-top:18px; overflow:hidden; }
.gbp-progress-fg2{ height:100%; width:0%; background:var(--ink); transition:width 0.2s linear; }
.gbp-loading-text2{ margin-top:10px; font-size:0.83rem; color:var(--ink-soft); text-align:center; }
.spinner{ display:inline-block; width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:spin 0.8s linear infinite; margin-right:8px; vertical-align:-2px; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---- sections ---- */
section.block{ padding:56px 0; border-top:1px solid var(--line); }
.block-head{ max-width:52ch; margin:0 auto 34px; text-align:center; }
.block-head h2{ font-size:clamp(1.4rem,2.4vw,1.85rem); }
.block-head p{ color:var(--ink-soft); margin-top:12px; font-size:0.98rem; }

.stat-trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:820px; margin:0 auto; }
@media (max-width:700px){ .stat-trio{ grid-template-columns:1fr; } }
.stat-box{ border-top:2px solid var(--ink); padding-top:14px; }
.stat-box .big{ font-size:2.1rem; font-weight:700; }
.stat-box p{ font-size:0.86rem; color:var(--ink-soft); margin:6px 0 4px; }
.stat-box .src{ font-size:0.7rem; color:var(--ink-soft); opacity:0.7; }

.comp-table{ width:100%; border-collapse:collapse; margin-top:6px; font-size:0.87rem; }
.comp-table th, .comp-table td{ padding:9px 10px; border-bottom:1px solid var(--line); text-align:left; }
.comp-table th{ font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); font-weight:600; }
.comp-table tr.self{ background:var(--accent-soft); font-weight:600; }
.comp-note{ font-size:0.78rem; color:var(--ink-soft); margin-top:10px; }

.diff-num{ font-size:2.8rem; font-weight:700; text-align:center; color:var(--bad); }
.diff-cap{ text-align:center; max-width:44ch; margin:6px auto 0; color:var(--ink-soft); font-size:0.9rem; }

.steps-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:760px){ .steps-grid{ grid-template-columns:1fr; } }
.step-item .idx{ font-size:0.72rem; color:var(--accent); display:block; margin-bottom:8px; font-weight:700; }
.step-item h4{ font-size:0.98rem; font-weight:700; margin:0 0 6px; }
.step-item p{ font-size:0.84rem; color:var(--ink-soft); margin:0; }

.faq-item{ border-bottom:1px solid var(--line); padding:18px 0; }
.faq-item h4{ font-size:0.98rem; font-weight:700; margin-bottom:6px; }
.faq-item p{ font-size:0.87rem; color:var(--ink-soft); margin:0; }
.faq-item .tag{ font-size:0.72rem; color:var(--accent); margin-top:6px; display:block; font-weight:500; }

.tag-row{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:6px; }
.tag-pill{ font-size:0.78rem; border:1px solid var(--line); padding:6px 12px; border-radius:20px; color:var(--ink-soft); }

footer{ padding:36px 0 44px; border-top:1px solid var(--line); }
footer .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
footer img{ height:44px; opacity:0.85; }
footer p{ font-size:0.78rem; color:var(--ink-soft); margin:0; max-width:52ch; }

.reveal{ opacity:0; transform:translateY(10px); transition:opacity 0.5s ease, transform 0.5s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ==================== SOLUTION PAGE ==================== */
.diag-summary{
  max-width:720px; margin:20px auto 0; border:1px solid var(--line); border-radius:12px; padding:20px;
}
.diag-summary-top{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }

.diag-ring{ position:relative; width:76px; height:76px; flex-shrink:0; }
.diag-ring svg{ width:76px; height:76px; transform:rotate(-90deg); }
.diag-ring .ring-bg{ fill:none; stroke:var(--line); stroke-width:8; }
.diag-ring .ring-fg{ fill:none; stroke-width:8; stroke-linecap:round; transition:stroke-dashoffset 1.1s cubic-bezier(.3,.8,.3,1), stroke 0.4s ease; }
.diag-ring .ring-num{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:1.1rem;
}
.diag-ring .ring-num.bad{ color:var(--bad); }
.diag-ring .ring-num.mid{ color:var(--mid); }
.diag-ring .ring-num.good{ color:var(--good); }

.diag-status{
  display:inline-block; margin-top:12px; padding:6px 14px; border-radius:20px;
  font-size:0.8rem; font-weight:700;
}
.diag-status.bad{ background:var(--bad-soft); color:var(--bad); }
.diag-status.mid{ background:var(--mid-soft); color:var(--mid); }
.diag-status.good{ background:var(--good-soft); color:var(--good); }

.diag-summary-title{ font-size:1.05rem; font-weight:700; }
.diag-summary-sub{ font-size:0.85rem; color:var(--ink-soft); margin-top:2px; }
.diag-summary-address{ font-size:0.8rem; color:var(--ink-soft); margin-top:1px; }

.diag-tips{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.diag-tips-label{ font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--accent); font-weight:700; margin-bottom:6px; }
.diag-tip{
  display:flex; gap:9px; align-items:flex-start; font-size:0.88rem; color:var(--ink);
  padding:2px 0;
}
.diag-tip::before{ content:"→"; color:var(--accent); font-weight:700; flex-shrink:0; }
.diag-tips-note{ font-size:0.74rem; color:var(--ink-soft); margin-top:8px; font-style:italic; }

.diag-facts{ margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
@media (max-width:480px){ .diag-facts{ grid-template-columns:1fr; } }
.diag-fact{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px;
  background:var(--bg-alt); border-radius:8px; font-size:0.85rem;
}
.diag-fact .label{ color:var(--ink); }
.diag-fact .value{ font-weight:700; text-align:right; }
.diag-fact .value .vs{ color:var(--ink-soft); font-weight:400; font-size:0.85rem; display:block; margin-top:2px; }
.val-good{ color:var(--good); }
.val-mid{ color:var(--mid); }
.val-bad{ color:var(--bad); }

.diag-verdict{
  margin-top:12px; padding:11px 14px; border-radius:8px; font-size:0.88rem; font-weight:600; text-align:center;
}
.diag-verdict.bad{ background:var(--bad-soft); color:var(--bad); }
.diag-verdict.mid{ background:var(--mid-soft); color:var(--mid); }
.diag-verdict.good{ background:var(--good-soft); color:var(--good); }

.solution-head{ text-align:center; max-width:60ch; margin:32px auto 24px; }
.solution-head .eyebrow2{
  display:inline-block; font-size:0.95rem; color:#fff; background:var(--accent); font-weight:800;
  text-transform:uppercase; letter-spacing:0.06em; padding:8px 20px; border-radius:30px;
}
.solution-head h2{ font-size:clamp(2rem,4.2vw,2.9rem); margin-top:20px; line-height:1.15; }
.solution-head .solution-context{ font-size:1.15rem; color:var(--ink-soft); margin-top:16px; }
.solution-head .solution-context b{ color:var(--ink); }
.solution-arrow{ margin:22px auto 0; width:28px; height:28px; color:var(--accent); animation:bounce-down 1.4s ease-in-out infinite; }
@keyframes bounce-down{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(8px); } }
@media (prefers-reduced-motion:reduce){ .solution-arrow{ animation:none; } }

.price-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; margin:0 auto; }
@media (max-width:760px){ .price-grid{ grid-template-columns:1fr; } }
.price-grid-3{ grid-template-columns:repeat(3,1fr); max-width:1080px; }
@media (max-width:980px){ .price-grid-3{ grid-template-columns:1fr; } }
.price-card{
  border:1px solid var(--line); padding:26px; border-radius:12px; display:flex; flex-direction:column;
  transition:transform 0.2s ease, box-shadow 0.2s ease; position:relative;
}
.price-card:hover{ transform:translateY(-4px); box-shadow:0 12px 28px rgba(11,11,12,0.08); }
.price-card.highlight{
  border:2px solid var(--ink); box-shadow:0 8px 24px rgba(29,78,216,0.12);
}
.price-card.highlight:hover{ box-shadow:0 16px 34px rgba(29,78,216,0.18); }
.price-card .ribbon{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--accent); color:#fff; font-size:0.72rem; font-weight:700; letter-spacing:0.03em;
  padding:5px 14px; border-radius:20px; display:flex; align-items:center; gap:6px; white-space:nowrap;
  box-shadow:0 4px 10px rgba(29,78,216,0.3);
}
.price-card .ribbon .dot{ width:6px; height:6px; border-radius:50%; background:#fff; animation:ribbon-pulse 1.6s ease-in-out infinite; }
@keyframes ribbon-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:0.35; } }
.price-card .tag{ font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
.price-card h3{ font-size:1.15rem; margin-top:8px; font-weight:700; }
.price-card .amount{ font-size:1.9rem; margin:10px 0 4px; font-weight:800; }
.price-card .amount span{ font-size:0.85rem; color:var(--ink-soft); font-weight:400; }
.price-card .grp{ font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--accent); margin:14px 0 6px; font-weight:600; }
.price-card ul{ list-style:none; padding:0; margin:0; font-size:0.85rem; display:grid; gap:7px; color:var(--ink-soft); }
.price-card ul li::before{ content:"— "; color:var(--ink); }
.price-card button{ margin-top:18px; }
.btn-secondary{
  background:#fff; border:1.5px solid var(--ink); color:var(--ink); padding:13px 16px;
  border-radius:8px; font-size:0.92rem; cursor:pointer; font-family:'Inter', sans-serif; font-weight:600;
  transition:transform 0.15s ease, background 0.15s ease;
}
.btn-secondary:hover{ background:var(--bg-alt); transform:scale(1.02); }
.btn-audit{
  width:100%; background:var(--accent); color:#fff; border:none; padding:14px 16px;
  font-weight:700; font-size:0.95rem; border-radius:8px; cursor:pointer; font-family:'Inter', sans-serif;
  transition:transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.btn-audit:hover{ background:#173fb0; transform:scale(1.03); box-shadow:0 8px 18px rgba(29,78,216,0.28); }
.btn-audit .arrow{ transition:transform 0.15s ease; }
.btn-audit:hover .arrow{ transform:translateX(3px); }

.back-link{ display:block; text-align:center; margin:28px auto 0; font-size:0.85rem; color:var(--ink-soft); }
.back-link:hover{ color:var(--ink); text-decoration:underline; }

/* ==================== ACTUALITÉS ==================== */
.article-grid{ display:grid; gap:18px; max-width:760px; margin:0 auto; }
.article-card{
  display:block; border:1px solid var(--line); border-radius:10px; padding:24px;
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.article-card:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(11,11,12,0.06); }
.article-card .article-date{ font-size:0.76rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.04em; }
.article-card h3{ font-size:1.15rem; margin-top:8px; }
.article-card p{ font-size:0.92rem; color:var(--ink-soft); margin-top:8px; }
.article-card .read-more{ font-size:0.85rem; color:var(--accent); font-weight:600; margin-top:12px; display:inline-block; }

.article-body{ max-width:680px; margin:0 auto; }
.article-body .article-date{ font-size:0.8rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.04em; text-align:center; display:block; }
.article-body h1{ font-size:clamp(1.6rem,3.2vw,2.2rem); text-align:center; margin-top:10px; line-height:1.2; }
.article-body .lede{ text-align:center; color:var(--ink-soft); font-size:1.05rem; margin-top:14px; }
.article-body .content{ margin-top:36px; font-size:1.02rem; }
.article-body .content h2{ font-size:1.2rem; margin-top:32px; margin-bottom:10px; }
.article-body .content p{ margin:0 0 18px; color:var(--ink); }
