/*
 Theme Name:   WP Sentinel Child
 Theme URI:    https://wpsentinel.io
 Description:  Child theme for WP Sentinel - built on Astra
 Author:       Julien Therin
 Author URI:   https://wpsentinel.io
 Template:     astra
 Version:      1.0.0
 Text Domain:  wpsentinel-child
*/

/* ─────────────────────────────────────────
   DESIGN TOKENS
───────────────────────────────────────── */
:root {
  --wps-navy:     #000F1E;
  --wps-blue:     #303c48;
  --wps-blue-d:   #1e2830;
  --wps-blue-l:   #F0F2F4;
  --wps-blue-b:   #D0D4D8;
  --wps-text:     #0f172a;
  --wps-muted:    #64748b;
  --wps-border:   #e2e8f0;
  --wps-surface:  #f8fafc;
  --wps-white:    #ffffff;
  --wps-red:      #DB0A40;
  --wps-red-d:    #C3093B;
  --wps-green:    #16a34a;
  --wps-r:        8px;
  --wps-container: 1200px;
  --wps-nav-h:    68px;
}

/* ─────────────────────────────────────────
   BASE
───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { overflow-x: clip; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--wps-text);
  background: var(--wps-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', sans-serif;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--wps-text);
}

a { text-decoration: none; -webkit-tap-highlight-color: transparent; }

img { max-width: 100%; height: auto; }

/* ─────────────────────────────────────────
   WRAPPER GLOBAL
───────────────────────────────────────── */
.wps-wrap {
  max-width: var(--wps-container);
  margin: 0 auto;
  padding: 0 32px;
}

/* ─────────────────────────────────────────
   NAV
───────────────────────────────────────── */
.wps-nav {
  position: sticky;
  top: 0;
  z-index: 200;
  height: var(--wps-nav-h);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--wps-border);
  transition: background 0.3s, box-shadow 0.3s;
}

.wps-nav--scrolled {
  background: var(--wps-white);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07);
}

/* Barre admin WordPress - décaler la nav sticky */
.admin-bar .wps-nav {
  top: 32px;
}

.wps-nav__inner {
  height: var(--wps-nav-h);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
}

/* Logo */
.wps-nav__logo {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
  text-decoration: none;
}

.wps-nav__logo-mark {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: var(--wps-red);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wps-nav__logo-mark svg {
  width: 16px;
  height: 16px;
}

.wps-nav__logo-text {
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--wps-text);
}

/* Liens nav */
.wps-nav__links {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
}

.wps-nav__menu {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.wps-nav__link {
  font-size: 14px;
  font-weight: 500;
  color: var(--wps-muted) !important;
  padding: 6px 13px;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s;
  display: block;
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  user-select: none;
  -webkit-user-drag: none;
}

.wps-nav__link:hover,
.wps-nav__link--active {
  background: #f0f4f9 !important;
  color: var(--wps-text) !important;
}

.wps-nav__link--active { font-weight: 600; }

/* Dropdown nav (Tarifs) */
.wps-nav__dropdown-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.wps-nav__link--parent {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: none;
  box-shadow: none;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--wps-muted);
  padding: 6px 13px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: background 0.15s, color 0.15s;
  outline: none;
}

.wps-nav__link--parent {
  background: transparent !important;
  color: var(--wps-muted) !important;
}

.wps-nav__link--parent:hover,
.wps-nav__link--parent[aria-expanded="true"],
.wps-nav__link--parent.wps-nav__link--active {
  background: #f0f4f9 !important;
  color: var(--wps-text) !important;
}

.wps-nav__link--parent.wps-nav__link--active { font-weight: 600; }

.wps-nav__dd-chevron {
  width: 10px;
  height: 10px;
  transition: transform 0.2s;
  flex-shrink: 0;
}

.wps-nav__link--parent[aria-expanded="true"] .wps-nav__dd-chevron {
  transform: rotate(180deg);
}

.wps-nav__dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--wps-white);
  border: 1px solid var(--wps-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  padding: 4px;
  min-width: 220px;
  z-index: 300;
}

.wps-nav__dropdown::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  height: 8px;
}

.wps-nav__dropdown-link {
  display: block;
  padding: 7px 10px;
  font-size: 14px;
  font-weight: 500;
  color: var(--wps-text) !important;
  border-radius: 5px;
  transition: background 0.15s;
  text-decoration: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.wps-nav__dropdown-link:hover,
.wps-nav__dropdown-link:focus {
  background: #f0f4f9;
  color: var(--wps-text) !important;
}

/* Actions droite */
.wps-nav__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  justify-content: flex-end;
}

/* Sélecteur de langue */
.wps-lang-drop {
  position: relative;
}

.wps-lang-current {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 11px;
  line-height: 1.6;
  background: transparent;
  border: 1px solid var(--wps-border);
  border-radius: 6px;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  color: var(--wps-muted);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  user-select: none;
}

.wps-lang-current:hover {
  background: #f0f4f9;
  color: var(--wps-text);
  border-color: var(--wps-blue-b);
}

.wps-lang-flag {
  border-radius: 2px;
  display: block;
  object-fit: cover;
}

.wps-lang-code {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.wps-lang-chevron {
  width: 10px;
  height: 10px;
  transition: transform 0.2s;
  flex-shrink: 0;
}

.wps-lang-current[aria-expanded="true"] .wps-lang-chevron {
  transform: rotate(180deg);
}

.wps-lang-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--wps-white);
  border: 1px solid var(--wps-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  padding: 4px;
  list-style: none;
  margin: 0;
  min-width: 130px;
  z-index: 300;
}

.wps-lang-list::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  height: 8px;
}

.wps-lang-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 500;
  color: var(--wps-text);
  transition: background 0.15s;
  white-space: nowrap;
}

.wps-lang-option:hover { background: #f0f4f9; }

.wps-lang-option img {
  border-radius: 2px;
  flex-shrink: 0;
}

/* Bouton burger mobile */
.wps-nav__burger {
  display: none;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
  appearance: none;
  cursor: pointer;
  padding: 0;
  height: var(--wps-nav-h);
}
.wps-nav__burger:focus,
.wps-nav__burger:focus-visible,
.wps-nav__burger:active {
  outline: none !important;
  box-shadow: none !important;
  background: none !important;
}

/* Les 3 barres */
.wps-nav__burger-bars {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 5px;
  width: 20px;
}
.wps-nav__burger-bars span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--wps-text);
  border-radius: 1px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* Animation barres → croix */
.wps-nav__burger--open .wps-nav__burger-bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.wps-nav__burger--open .wps-nav__burger-bars span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.wps-nav__burger--open .wps-nav__burger-bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Label "Fermer le menu" */
.wps-nav__burger-close {
  font-size: 13px;
  font-weight: 500;
  font-family: 'Inter', sans-serif;
  color: var(--wps-text);
  white-space: nowrap;
  opacity: 0;
  max-width: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, max-width 0.25s ease;
}

/* État ouvert */
.wps-nav__burger--open .wps-nav__burger-close {
  opacity: 1;
  max-width: 200px;
  pointer-events: auto;
}

/* Menu mobile - drawer latéral */
.wps-mobile-overlay {
  display: none;
  position: fixed;
  inset: 0;
  top: var(--wps-nav-h);
  background: rgba(0, 0, 0, 0.35);
  z-index: 189;
  opacity: 0;
  touch-action: none;
  transition: opacity 0.3s ease;
}

.wps-mobile-overlay--visible {
  display: block;
  opacity: 1;
}

.wps-mobile-menu {
  position: fixed;
  top: var(--wps-nav-h);
  left: 0;
  height: calc(100dvh - var(--wps-nav-h));
  width: 280px;
  background: var(--wps-white);
  border-right: 1px solid var(--wps-border);
  padding: 12px 16px 24px;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.08);
  z-index: 190;
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

.wps-mobile-menu--open {
  transform: translateX(0);
}

.wps-mobile-menu__list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.wps-mobile-menu__list a {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--wps-text);
  padding: 7px 12px;
  border-radius: 6px;
  transition: background 0.15s;
}

.wps-mobile-menu__list a:hover { background: #f0f4f9; }

.wps-mobile-menu__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--wps-border);
  padding-top: 16px;
}

.wps-btn--full { display: block; text-align: center; }

/* Mobile menu - sous-items et lang */
.wps-mobile-menu__group {
  display: flex;
  flex-direction: column;
}

.wps-mobile-menu__parent {
  display: block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--wps-muted);
  padding: 10px 12px 4px;
}

.wps-mobile-menu__sub {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 12px;
  margin-bottom: 6px;
}

.wps-mobile-menu__sub-link {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--wps-text);
  padding: 4px 12px;
  border-radius: 6px;
  transition: background 0.15s;
}

.wps-mobile-menu__sub-link:hover { background: #f0f4f9; }

.wps-mobile-menu__link {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--wps-text);
  padding: 5px 12px;
  border-radius: 6px;
  transition: background 0.15s;
}

.wps-mobile-menu__link:hover { background: #f0f4f9; }
.wps-mobile-menu__link--active { font-weight: 600; }

.wps-mobile-menu__lang {
  display: flex;
  gap: 8px;
  padding: 8px 12px;
  border-top: 1px solid var(--wps-border);
  margin-top: 8px;
}

.wps-mobile-menu__lang-opt {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--wps-muted);
  padding: 6px 10px;
  border-radius: 6px;
  transition: background 0.15s;
}

.wps-mobile-menu__lang-opt:hover { background: #f0f4f9; }
.wps-mobile-menu__lang-opt--active { color: var(--wps-text); font-weight: 600; }

/* ─────────────────────────────────────────
   ASTRA OVERRIDES - Reset defaults
───────────────────────────────────────── */
.ast-container,
.ast-container-fluid {
  max-width: var(--wps-container);
  padding-left: 32px;
  padding-right: 32px;
}

/* ─────────────────────────────────────────
   HEADER / NAV
───────────────────────────────────────── */
#masthead,
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  height: var(--wps-nav-h);
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom: 1px solid var(--wps-border);
  box-shadow: none;
  transition: background 0.3s, box-shadow 0.3s;
}

.site-header.scrolled,
.ast-header-sticked {
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07);
}

/* Firefox : backdrop-filter crée un flou parasite + coupe les débordements — fond semi-opaque à la place */
@supports (-moz-appearance: none) {
  #masthead, .site-header, .wps-nav {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: white !important;
    overflow: visible !important;
  }
}

/* Logo */
.site-title a,
.ast-site-identity .site-title a {
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--wps-text) !important;
  text-decoration: none;
}

/* Nav links */
.main-navigation a,
.ast-main-navigation a,
.main-header-menu a {
  font-size: 14px;
  font-weight: 500;
  color: var(--wps-muted);
  padding: 6px 13px;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s;
}

.main-navigation a:hover,
.ast-main-navigation a:hover,
.main-header-menu a:hover {
  background: #f0f4f9;
  color: var(--wps-text);
}

.main-navigation .current-menu-item > a,
.main-header-menu .current-menu-item > a {
  background: #f0f4f9;
  color: var(--wps-text);
  font-weight: 600;
}

/* Bouton "Site piraté ?" */
.wps-btn-urgence,
.menu-item.btn-urgence a,
a.wps-btn-urgence {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--wps-red) !important;
  padding: 7px 13px !important;
  border-radius: 6px !important;
  border: 1px solid rgba(219, 10, 64, 0.25) !important;
  background: rgba(219, 10, 64, 0.07) !important;
  transition: background 0.15s !important;
}

.wps-btn-urgence:hover,
a.wps-btn-urgence:hover {
  background: rgba(219, 10, 64, 0.14) !important;
  border-color: rgba(219, 10, 64, 0.4) !important;
}

/* Bouton "Scanner mon site →" */
.wps-btn-scan,
a.wps-btn-scan,
.menu-item.btn-scan a {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: white !important;
  padding: 8px 17px !important;
  border-radius: 6px !important;
  background: var(--wps-red) !important;
  transition: background 0.15s !important;
  white-space: nowrap;
}

.wps-btn-scan:hover,
a.wps-btn-scan:hover {
  background: var(--wps-red-d) !important;
}

/* ─────────────────────────────────────────
   HERO
───────────────────────────────────────── */
.wps-hero {
  position: relative;
  overflow: hidden;
  padding: 80px 0;
  background: white;
  text-align: center;
}

.wps-hero-bg-grad {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 90% 65% at 50% -8%, rgba(37, 99, 235, 0.10) 0%, transparent 68%);
}

.wps-hero-bg-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(37, 99, 235, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 85% 75% at 50% 0%, black 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 85% 75% at 50% 0%, black 30%, transparent 100%);
}

.wps-hero-content {
  position: relative;
  max-width: 740px;
  margin: 0 auto;
  padding: 0 24px;
}

.wps-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--wps-blue-l);
  color: var(--wps-blue);
  border: 1px solid var(--wps-blue-b);
  font-size: 12px;
  font-weight: 600;
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: 26px;
  letter-spacing: 0.01em;
}

.wps-hero-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wps-blue);
  flex-shrink: 0;
}

.wps-hero-title {
  font-size: clamp(38px, 6vw, 62px);
  font-weight: 800;
  color: var(--wps-text);
  margin-bottom: 22px;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.wps-hero-title em {
  font-style: normal;
  color: var(--wps-red);
}

.wps-hero-sub {
  font-size: 18px;
  color: var(--wps-muted);
  margin-bottom: 44px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 400;
}

/* Formulaire scan */
.wps-scan-form {
  display: flex;
  max-width: 560px;
  margin: 0 auto 14px;
  box-shadow: 0 4px 20px rgba(37, 99, 235, 0.12);
  border-radius: 9px;
  overflow: hidden;
}

.wps-scan-input {
  flex: 1;
  height: 54px !important;
  min-height: 54px;
  box-sizing: border-box;
  padding: 0 20px !important;
  font-size: 15px !important;
  font-family: 'Inter', sans-serif !important;
  border: 1.5px solid var(--wps-border) !important;
  border-right: none !important;
  border-radius: 9px 0 0 9px !important;
  outline: none !important;
  color: var(--wps-text) !important;
  background: white !important;
  transition: border-color 0.15s;
  box-shadow: none !important;
}

.wps-scan-input:focus { border-color: var(--wps-blue) !important; }
.wps-scan-input::placeholder { color: #94a3b8; }

.wps-scan-btn {
  height: 54px !important;
  min-height: 54px;
  box-sizing: border-box;
  padding: 0 26px !important;
  background: var(--wps-red) !important;
  color: white !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  font-family: 'Inter', sans-serif !important;
  border: none !important;
  border-radius: 0 9px 9px 0 !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
  outline: none;
  line-height: 1 !important;
}

.wps-scan-btn:hover { background: var(--wps-red-d) !important; }

.wps-scan-note {
  font-size: 12px;
  color: #94a3b8;
  margin: 0;
}

/* Trust badges */
.wps-hero-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  margin-top: 48px;
  flex-wrap: wrap;
}

.wps-trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--wps-muted);
  font-weight: 500;
}

.wps-trust-check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #dcfce7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wps-trust-check svg {
  width: 10px;
  height: 10px;
  stroke: var(--wps-green);
  stroke-width: 2.5;
  fill: none;
}

/* ─────────────────────────────────────────
   STATS BAR
───────────────────────────────────────── */
.wps-stats-bar {
  background: var(--wps-navy);
  padding: 28px 0;
}

.wps-stats-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  max-width: var(--wps-container);
  margin: 0 auto;
  padding: 0 32px;
}

.wps-stat-item {
  padding: 4px 48px;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.wps-stat-item:last-child { border-right: none; }

.wps-stat-num {
  font-family: 'Inter', sans-serif;
  font-size: 30px;
  font-weight: 800;
  color: white;
  letter-spacing: -1px;
  line-height: 1;
}

.wps-stat-lbl {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 4px;
  font-weight: 400;
}

/* ─────────────────────────────────────────
   SECTIONS - BASE
───────────────────────────────────────── */
.wps-section {
  padding: 64px 0;
}

.wps-section--no-pt { padding-top: 0; }

.wps-section-alt {
  background: var(--wps-surface);
}

.wps-section-hd {
  text-align: center;
  margin-bottom: 52px;
}

.wps-section-tag {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--wps-red);
  margin-bottom: 12px;
}

.wps-section-title {
  font-size: clamp(24px, 3.2vw, 36px);
  font-weight: 800;
  color: var(--wps-text);
  margin-bottom: 14px;
  letter-spacing: -0.02em;
}

.wps-section-sub {
  font-size: 16px;
  color: var(--wps-muted);
  max-width: 520px;
  line-height: 1.7;
  margin: 0 auto;
}

/* ─────────────────────────────────────────
   HOW IT WORKS - 3 étapes
───────────────────────────────────────── */
.wps-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
}

.wps-steps-grid::before {
  content: '';
  position: absolute;
  top: 22px;
  left: calc(16.66% + 18px);
  right: calc(16.66% + 18px);
  height: 1px;
  background: var(--wps-border);
  z-index: 0;
}

.wps-step {
  text-align: center;
  padding: 0 24px;
}

.wps-step-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--wps-blue);
  color: white;
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  position: relative;
  z-index: 1;
  border: 4px solid white;
}

.wps-step-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 10px;
}

.wps-step-desc {
  font-size: 14px;
  color: var(--wps-muted);
  line-height: 1.7;
  margin: 0;
}

/* ─────────────────────────────────────────
   CARDS VECTEURS (8 vecteurs d'attaque)
───────────────────────────────────────── */
.wps-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.wps-card {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: var(--wps-r);
  padding: 22px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.wps-card:hover {
  border-color: var(--wps-blue-b);
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.08);
}

.wps-card-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--wps-r);
  background: #E8EDF4;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  flex-shrink: 0;
}

.wps-card-icon svg {
  width: 20px;
  height: 20px;
  stroke: #00162B;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wps-card-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 6px;
}

.wps-card-desc {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.65;
  margin: 0;
}

/* ─────────────────────────────────────────
   PRICING CARDS
───────────────────────────────────────── */
.wps-offers-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 880px;
  margin: 0 auto;
}

.wps-offer-card {
  background: white;
  border: 1.5px solid var(--wps-border);
  border-radius: 12px;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s;
}

.wps-offer-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

/* Card recommandée */
.wps-offer-card--main {
  border-color: var(--wps-red);
  position: relative;
  overflow: hidden;
}

.wps-offer-card--main::after {
  content: 'Recommandé';
  position: absolute;
  top: 27px;
  right: -30px;
  width: 140px;
  text-align: center;
  background: var(--wps-red);
  color: white;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 5px 0;
  transform: rotate(45deg);
  white-space: nowrap;
}

.wps-offer-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: #E8EDF4;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.wps-offer-icon svg {
  width: 24px;
  height: 24px;
  stroke: #00162B;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wps-offer-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--wps-text);
  margin-bottom: 8px;
}

.wps-offer-desc {
  font-size: 14px;
  color: var(--wps-muted);
  margin-bottom: 24px;
  line-height: 1.7;
}

.wps-offer-price {
  margin-bottom: 24px;
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.wps-offer-price-from {
  font-size: 13px;
  color: var(--wps-muted);
}

.wps-offer-price-num {
  font-family: 'Inter', sans-serif;
  font-size: 38px;
  font-weight: 800;
  color: var(--wps-text);
  letter-spacing: -1.5px;
  line-height: 1;
}

.wps-offer-price-unit {
  font-size: 14px;
  color: var(--wps-muted);
}

.wps-offer-feats {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 0 0 32px 0;
  flex: 1;
  padding: 0;
}

.wps-offer-feats li {
  font-size: 13px;
  color: var(--wps-muted);
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.wps-offer-feats li::before {
  content: '✓';
  color: var(--wps-green);
  font-weight: 700;
  font-size: 11px;
  flex-shrink: 0;
  margin-top: 2px;
}

/* Boutons offres */
.wps-btn-offer {
  display: block;
  text-align: center;
  padding: 13px;
  border-radius: var(--wps-r);
  font-size: 14px;
  font-weight: 600;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  cursor: pointer;
}

.wps-btn-offer--primary {
  background: var(--wps-red);
  color: white !important;
  border: none;
}

.wps-btn-offer--primary:hover {
  background: var(--wps-red-d);
}

.wps-btn-offer--ghost {
  border: 1.5px solid var(--wps-border);
  color: var(--wps-muted) !important;
  background: transparent;
}

.wps-btn-offer--ghost:hover {
  border-color: var(--wps-blue);
  color: var(--wps-blue) !important;
}

/* ─────────────────────────────────────────
   CTA FINAL
───────────────────────────────────────── */
.wps-cta-final {
  background: var(--wps-navy);
  padding: 80px 0;
  text-align: center;
}

.wps-cta-final .wps-section-tag {
  color: rgba(255, 255, 255, 0.4);
}

.wps-cta-final .wps-section-title {
  color: white;
}

.wps-cta-final .wps-section-sub {
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 36px;
}

.wps-cta-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.wps-btn-cta-white {
  background: white;
  color: var(--wps-navy) !important;
  font-size: 15px;
  font-weight: 600;
  padding: 13px 28px;
  border-radius: var(--wps-r);
  transition: opacity 0.15s;
  display: inline-block;
}

.wps-btn-cta-white:hover { opacity: 0.9; }

.wps-btn-cta-outline {
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 15px;
  font-weight: 500;
  padding: 13px 28px;
  border-radius: var(--wps-r);
  transition: border-color 0.15s, color 0.15s;
  display: inline-block;
}

.wps-btn-cta-outline:hover {
  border-color: rgba(255, 255, 255, 0.6);
  color: white !important;
}

/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
.wps-footer {
  border-top: 1px solid var(--wps-border);
  padding: 56px 0 0;
  background: white;
}

.wps-footer__main {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 24px;
}

.wps-footer__logo-wrap {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
}

.wps-footer-logo-mark {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: var(--wps-red);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wps-footer-logo-mark svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: white;
  stroke-width: 2;
  stroke-linecap: round;
}

.wps-footer-logo-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--wps-text);
}

.wps-footer-slogan {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.65;
  max-width: 260px;
  margin-bottom: 20px;
}

.wps-footer-socials {
  display: flex;
  gap: 10px;
}

.wps-footer-social {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid var(--wps-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--wps-muted);
  transition: border-color 0.15s, color 0.15s;
}

.wps-footer-social:hover {
  border-color: var(--wps-blue);
  color: var(--wps-blue);
}

.wps-footer-social svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

.wps-footer-col-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wps-text);
  margin: 0 0 14px;
}

.wps-footer-col-links {
  display: flex;
  flex-direction: column;
  gap: 9px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.wps-footer-link {
  font-size: 13px;
  color: var(--wps-muted);
  transition: color 0.15s;
}

.wps-footer-link:hover { color: var(--wps-text); }

.wps-footer-bottom {
  border-top: 1px solid var(--wps-border);
  padding: 14px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.wps-footer-copy {
  font-size: 12px;
  color: #94a3b8;
  margin: 0;
}

/* ─────────────────────────────────────────
   BLOG - LISTING
───────────────────────────────────────── */
.wps-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.wps-post-card {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.wps-post-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  border-color: var(--wps-blue-b);
}

.wps-post-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}

.wps-post-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.wps-post-card__cat {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wps-red);
  margin-bottom: 8px;
}

.wps-post-card__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--wps-text);
  line-height: 1.3;
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

.wps-post-card__title a { color: inherit; }
.wps-post-card__title a:hover { color: var(--wps-red); }

.wps-post-card__excerpt {
  font-size: 14px;
  color: var(--wps-muted);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 20px;
}

.wps-post-card__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 12px;
  color: #94a3b8;
  border-top: 1px solid var(--wps-border);
  padding-top: 14px;
  margin-top: auto;
}

.wps-post-card__meta-sep { color: var(--wps-border); }

/* Pagination */
.wps-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 52px;
}

.wps-pagination a,
.wps-pagination span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid var(--wps-border);
  color: var(--wps-muted);
  transition: all 0.15s;
}

.wps-pagination a:hover { border-color: var(--wps-red); color: var(--wps-red); }
.wps-pagination .current { background: var(--wps-red); color: white; border-color: var(--wps-red); }

/* ─────────────────────────────────────────
   BLOG - SINGLE POST
───────────────────────────────────────── */
.wps-single-header {
  padding: 56px 0 40px;
  text-align: center;
  border-bottom: 1px solid var(--wps-border);
  margin-bottom: 52px;
}

.wps-single-header .wps-post-card__cat { margin-bottom: 16px; }

.wps-single-title {
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 800;
  color: var(--wps-text);
  line-height: 1.15;
  letter-spacing: -0.025em;
  max-width: 760px;
  margin: 0 auto 20px;
}

.wps-single-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 13px;
  color: #94a3b8;
  flex-wrap: wrap;
}

.wps-single-meta-sep { color: var(--wps-border); }

.wps-single-thumb {
  width: 100%;
  max-width: 880px;
  margin: 0 auto 52px;
  border-radius: 12px;
  overflow: hidden;
  display: block;
}

.wps-single-thumb img {
  width: 100%;
  display: block;
}

/* Contenu article */
.wps-entry-content {
  max-width: 720px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.8;
  color: var(--wps-text);
}

.wps-entry-content h2 {
  font-size: 26px;
  font-weight: 800;
  margin: 48px 0 16px;
  letter-spacing: -0.02em;
}

.wps-entry-content h3 {
  font-size: 20px;
  font-weight: 700;
  margin: 36px 0 12px;
}

.wps-entry-content p { margin-bottom: 20px; }

.wps-entry-content a {
  color: var(--wps-red);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.wps-entry-content ul,
.wps-entry-content ol {
  padding-left: 20px;
  margin-bottom: 20px;
}

.wps-entry-content li { margin-bottom: 6px; }

.wps-entry-content blockquote {
  border-left: 3px solid var(--wps-red);
  padding: 12px 0 12px 24px;
  margin: 28px 0;
  color: var(--wps-muted);
  font-style: italic;
}

.wps-entry-content code {
  background: var(--wps-surface);
  border: 1px solid var(--wps-border);
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 0.875em;
  font-family: 'Fira Code', 'Courier New', monospace;
}

.wps-entry-content pre {
  background: var(--wps-navy);
  border-radius: var(--wps-r);
  padding: 24px;
  overflow-x: auto;
  margin-bottom: 24px;
}

.wps-entry-content pre code {
  background: none;
  border: none;
  padding: 0;
  color: #e2e8f0;
  font-size: 14px;
  line-height: 1.7;
}

.wps-entry-content img {
  border-radius: var(--wps-r);
  margin: 8px 0 24px;
}

/* Author bio */
.wps-author-box {
  max-width: 720px;
  margin: 52px auto 0;
  padding: 28px;
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.wps-author-box__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex-shrink: 0;
}

.wps-author-box__name {
  font-size: 15px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 4px;
}

.wps-author-box__bio {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.6;
}

/* ─────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────── */
@media (max-width: 1024px) {
  .wps-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .wps-blog-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .wps-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .wps-offers-grid { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  .wps-steps-grid { grid-template-columns: 1fr; gap: 32px; }
  .wps-steps-grid::before { display: none; }
  .wps-stat-item { padding: 4px 28px; }
  .wps-footer__main { grid-template-columns: 1fr 1fr; gap: 32px; }
  .wps-footer__brand { grid-column: 1 / -1; }
  .wps-footer__col:last-child { grid-column: 1 / -1; }
}

@media (max-width: 880px) {
  /* Nav */
  .wps-nav__links { display: none; }
  .wps-nav__actions .wps-btn-urgence,
  .wps-nav__actions .wps-btn-scan,
  .wps-nav__actions .wps-lang-drop { display: none; }
  .wps-nav__burger { display: flex; transform: translateX(4px); }
  .wps-nav__inner { padding-right: 2px; }

  /* Hero - compact pour que le formulaire de scan soit visible sans scroll */
  .wps-hero { padding: 48px 0 36px; }
  .wps-hero-badge { margin-bottom: 14px; }
  .wps-hero-title { font-size: clamp(26px, 7vw, 36px); margin-bottom: 16px; }
  .wps-hero-sub { font-size: 16px; margin-bottom: 20px; }
  .wps-hero-trust { margin-top: 28px; gap: 12px; }

  /* Formulaire scan */
  .wps-scan-form { flex-direction: column; box-shadow: none; border-radius: 0; overflow: visible; }
  .wps-scan-input {
    border-right: 1.5px solid var(--wps-border) !important;
    border-radius: 9px !important;
    margin-bottom: 10px;
    box-shadow: 0 2px 12px rgba(37, 99, 235, 0.1);
  }
  .wps-scan-btn { border-radius: 9px !important; width: 100%; height: 50px !important; }

  /* Sections */
  .wps-section { padding: 52px 0; }
  .wps-section-hd { margin-bottom: 36px; }
  .wps-section-title { font-size: clamp(20px, 5vw, 28px); }

  /* Blog, footer, single */
  .wps-blog-grid { grid-template-columns: 1fr; }
  .wps-footer__main { gap: 24px; margin-bottom: 20px; }
  .wps-single-header { padding: 40px 0 28px; }
}

@media (max-width: 640px) {
  .wps-wrap { padding: 0 20px; }
  .ast-container,
  .ast-container-fluid { padding-left: 20px; padding-right: 20px; }
  .wps-cards-grid { grid-template-columns: 1fr 1fr; }
  .wps-section { padding: 44px 0; }
  .wps-section-hd { margin-bottom: 28px; }
  .wps-stat-item { padding: 4px 18px; }
  .wps-stats-inner { gap: 8px; }
  .wps-cta-actions { flex-direction: column; width: 100%; padding: 0 20px; }
  .wps-btn-cta-white,
  .wps-btn-cta-outline { width: 100%; text-align: center; }
}

@media (max-width: 480px) {
  /* Hero badge - retour à la ligne propre sur petits écrans */
  .wps-hero-badge {
    font-size: 11px;
    border-radius: 8px;
    white-space: normal;
    text-align: center;
    max-width: 100%;
    line-height: 1.5;
    padding: 6px 14px;
  }
  .wps-hero-badge-dot { display: none; }

  /* Trust items - empilés verticalement */
  .wps-hero-trust { flex-direction: column; align-items: flex-start; gap: 8px; }

  /* Stats bar - grille 2×2 */
  .wps-stats-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 0 24px;
  }
  .wps-stat-item {
    padding: 16px 12px;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .wps-stat-item:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, 0.08); }
  .wps-stat-item:nth-last-child(-n+2) { border-bottom: none; }
  .wps-stat-num { font-size: 26px; }
  .wps-stat-lbl { font-size: 11px; }

  /* Cards & pricing */
  .wps-cards-grid { grid-template-columns: 1fr; }
  .wps-offer-card { padding: 28px 24px; }
}

/* ─────────────────────────────────────────
   FIL D'ARIANE - articles de blog
───────────────────────────────────────── */
.ast-breadcrumbs-wrapper {
  background: transparent;
  padding: 10px 0 0;
}

.ast-breadcrumbs,
.ast-breadcrumbs .trail-items {
  font-size: 13px;
  color: var(--wps-muted);
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.ast-breadcrumbs a,
.ast-breadcrumbs .trail-items a {
  color: var(--wps-muted);
  text-decoration: none;
  transition: color 0.15s;
}

.ast-breadcrumbs a:hover { color: var(--wps-text); }

.ast-breadcrumbs .trail-sep,
.ast-breadcrumbs .separator {
  color: var(--wps-border);
  margin: 0 2px;
}

.ast-breadcrumbs .trail-end,
.ast-breadcrumbs .trail-items li:last-child {
  color: var(--wps-text);
  font-weight: 500;
}

/* ─────────────────────────────────────────
   HERO - INNER (pages intérieures)
───────────────────────────────────────── */
.wps-hero--inner {
  padding: 48px 0 36px;
}

.wps-hero-bg-grad--red {
  background: radial-gradient(ellipse 90% 65% at 50% -8%, rgba(219, 10, 64, 0.07) 0%, transparent 68%);
}

.wps-hero-checks {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 auto 32px;
  max-width: 400px;
  text-align: left;
}

.wps-hero-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--wps-muted);
}

.wps-hero-check-dot {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--wps-green);
}

.wps-hero-check-dot svg {
  width: 10px;
  height: 10px;
}

.wps-hero-ctas {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.wps-hero-btn-primary {
  display: inline-block;
  background: var(--wps-red);
  color: white !important;
  font-size: 15px;
  font-weight: 600;
  padding: 13px 28px;
  border-radius: var(--wps-r);
  transition: background 0.15s;
}

.wps-hero-btn-primary:hover { background: var(--wps-red-d); }

.wps-hero-btn-ghost {
  display: inline-block;
  border: 1.5px solid var(--wps-border);
  color: var(--wps-muted) !important;
  font-size: 15px;
  font-weight: 500;
  padding: 13px 28px;
  border-radius: var(--wps-r);
  transition: border-color 0.15s, color 0.15s;
}

.wps-hero-btn-ghost:hover {
  border-color: var(--wps-blue);
  color: var(--wps-text) !important;
}

/* ─────────────────────────────────────────
   16 POINTS DE CONTRÔLE
───────────────────────────────────────── */
.wps-checks-categories {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.wps-check-cat {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  overflow: hidden;
}

.wps-check-cat-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--wps-border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.wps-check-cat-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #E8EDF4;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wps-check-cat-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: #00162B;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wps-check-cat-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--wps-text);
}

.wps-check-cat-count {
  font-size: 11px;
  color: var(--wps-muted);
  font-weight: 500;
}

.wps-check-list {
  display: flex;
  flex-direction: column;
}

.wps-check-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 20px;
  border-bottom: 1px solid var(--wps-border);
}

.wps-check-item:last-child { border-bottom: none; }

.wps-check-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.wps-check-dot--high   { background: var(--wps-red); }
.wps-check-dot--medium { background: #f59e0b; }
.wps-check-dot--low    { background: #64748b; }

.wps-check-item-name {
  flex: 1;
  font-size: 12px;
  color: var(--wps-text);
  line-height: 1.4;
}

.wps-check-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

.wps-check-badge--high   { background: rgba(219, 10, 64, 0.08); color: var(--wps-red); }
.wps-check-badge--medium { background: rgba(245, 158, 11, 0.1); color: #b45309; }
.wps-check-badge--low    { background: var(--wps-blue-l); color: var(--wps-blue); }

/* ─────────────────────────────────────────
   MÉTHODE - 3 étapes
───────────────────────────────────────── */
.wps-method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.wps-method-card {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  padding: 28px;
}

.wps-method-num {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wps-red);
  margin-bottom: 12px;
}

.wps-method-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 10px;
}

.wps-method-desc {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.7;
  margin: 0;
}

/* ─────────────────────────────────────────
   MENACES
───────────────────────────────────────── */
.wps-threats {
  padding: 64px 0;
}

.wps-threats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.wps-threats-stats {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 28px;
}

.wps-threat-stat {
  display: flex;
  align-items: center;
  gap: 12px;
}

.wps-threat-stat-label {
  font-size: 13px;
  color: var(--wps-text);
  width: 190px;
  flex-shrink: 0;
  line-height: 1.4;
}

.wps-threat-stat-bar-wrap {
  flex: 1;
  height: 6px;
  background: var(--wps-blue-l);
  border-radius: 3px;
  overflow: hidden;
}

.wps-threat-stat-bar {
  height: 100%;
  background: var(--wps-red);
  border-radius: 3px;
}

.wps-threat-stat-pct {
  font-size: 12px;
  font-weight: 700;
  color: var(--wps-text);
  width: 36px;
  text-align: right;
  flex-shrink: 0;
}

.wps-threats-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.wps-threat-card {
  background: var(--wps-navy);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
}

.wps-threat-card-num {
  font-size: 28px;
  font-weight: 800;
  color: white;
  letter-spacing: -1px;
  line-height: 1.1;
  margin-bottom: 6px;
}

.wps-threat-card-lbl {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
}

/* ─────────────────────────────────────────
   HERO SCAN - split navy (gauche) / blanc (droite)
   Même pattern que page-site-pirate : outer full-width, grid 1fr 1fr centré 1200px
───────────────────────────────────────── */
.wps-hero--scan {
  padding: 0;
  text-align: left;
  background: linear-gradient(to right, var(--wps-navy) 50%, white 50%);
}

.wps-hero--scan .wps-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  align-items: stretch;
  gap: 0;
}

/* Colonne gauche - navy, texte blanc */
.wps-hero--scan .wps-hero-left {
  padding: 56px 24px 56px 32px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
  overflow: hidden;
  min-width: 0;
}

.wps-hero--scan .wps-hero-left::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 90% 65% at 50% -8%, rgba(37, 99, 235, 0.15) 0%, transparent 68%);
}

.wps-hero--scan .wps-hero-left-content { position: relative; }

/* Colonne droite - blanc, widget semi-frameless */
.wps-hero--scan .wps-hero-right {
  padding: 56px 32px 56px 40px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  background: white;
  min-width: 0;
}

/* Intro PHP (eyebrow + titre + sous-titre) au-dessus du widget */
.wps-hscan-eyebrow {
  font-size: 13px;
  font-weight: 700;
  color: var(--wps-muted);
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: 14px;
}
.wps-hscan-title {
  font-size: clamp(20px, 1.8vw, 26px);
  font-weight: 800;
  color: var(--wps-text);
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin-bottom: 8px;
}
.wps-hscan-intro {
  font-size: 14px;
  color: var(--wps-muted);
  line-height: 1.6;
  margin-bottom: 20px;
}

/* Masquer l'intro PHP en phases scan/résultats */
.wps-hero--scan.wps-scanning .wps-hscan-eyebrow,
.wps-hero--scan.wps-scanning .wps-hscan-title,
.wps-hero--scan.wps-scanning .wps-hscan-intro,
.wps-hero--scan.wps-results .wps-hscan-eyebrow,
.wps-hero--scan.wps-results .wps-hscan-title,
.wps-hero--scan.wps-results .wps-hscan-intro { display: none; }

/* Supprimer tout le padding de .wps-hero-right en scan/résultats :
   la grille 45/55 gère l'espacement interne */
.wps-hero--scan.wps-scanning .wps-hero-right,
.wps-hero--scan.wps-results .wps-hero-right {
  padding: 0;
}

/* Badge — style section-tag adapté fond navy */
.wps-hero--scan .wps-hero-badge {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  gap: 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 20px;
}
.wps-hero--scan .wps-hero-badge-dot { display: none; }

/* Titre */
.wps-hero--scan .wps-hero-title {
  color: white;
  font-size: clamp(24px, 2.4vw, 36px);
  margin-bottom: 16px;
  text-align: left;
}
.wps-hero--scan .wps-hero-title em { color: var(--wps-red); }

/* Sous-titre */
.wps-hero--scan .wps-hero-sub {
  color: rgba(255, 255, 255, 0.65);
  font-size: 15px;
  margin-bottom: 24px;
  max-width: 420px;
  text-align: left;
  margin-left: 0;
}

/* Checks */
.wps-hero--scan .wps-hero-checks {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
  align-items: flex-start;
}
.wps-hero--scan .wps-hero-check { color: rgba(255, 255, 255, 0.8); }
.wps-hero--scan .wps-hero-check-icon {
  background: rgba(37, 99, 235, 0.2);
  border-color: rgba(37, 99, 235, 0.35);
}
.wps-hero--scan .wps-hero-check-icon svg { stroke: #93c5fd; }

/* Trust */
.wps-hero--scan .wps-hero-trust {
  justify-content: flex-start;
  margin-top: 0;
  flex-wrap: nowrap;
  gap: 65px;
  align-items: flex-start;
}
.wps-hero--scan .wps-trust-item {
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  text-align: left;
  color: rgba(255, 255, 255, 0.55);
}
.wps-hero--scan .wps-trust-item svg {
  width: 20px;
  height: 20px;
  stroke: rgba(255, 255, 255, 0.45);
}

/* Widget sans cadre : supprimer border/radius/shadow, masquer l'en-tête navy */
.wps-hero--scan .wps-hero-right .sa-fhdr { display: none; }
.wps-hero--scan .sa-widget-wrap {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  overflow: visible;
}
.wps-hero--scan .sa-fsteps { background: transparent; }
.wps-hero--scan .sa-fstep-tab.sa-fstep-active { margin-bottom: -1px; }
.wps-hero--scan .sa-fbody { padding-left: 0; padding-right: 0; }
.wps-hero--scan .sa-finput { padding-left: 42px; background: #fff; }
.wps-hero--scan .sa-finput-icon { font-size: 13px; }
.wps-hero--scan .sa-fotp-digit { width: 48px !important; flex: 0 0 48px; }

/* Phase scan/résultats : pleine largeur, fond blanc */
.wps-hero--scan.wps-scanning .wps-hero-left,
.wps-hero--scan.wps-results .wps-hero-left { display: none; }
.wps-hero--scan.wps-scanning .wps-hero-grid,
.wps-hero--scan.wps-results .wps-hero-grid { grid-template-columns: 1fr; }
.wps-hero--scan.wps-scanning,
.wps-hero--scan.wps-results { background: white; }

/* Icônes check (globales) */
.wps-hero-check-icon {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wps-hero-check-icon svg {
  width: 10px;
  height: 10px;
  fill: none;
  stroke: var(--wps-green);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ─────────────────────────────────────────
   SCAN CARD
───────────────────────────────────────── */
.wps-scan-card {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08);
}

.wps-card-head {
  background: var(--wps-navy);
  padding: 22px 26px 20px;
}

.wps-card-head-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 10px;
}

.wps-card-head-url-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wps-card-head-icon {
  width: 34px;
  height: 34px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wps-card-head-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: rgba(255, 255, 255, 0.65);
  stroke-width: 1.8;
  stroke-linecap: round;
}

.wps-card-head-url {
  font-size: 15px;
  font-weight: 700;
  color: white;
  word-break: break-all;
  line-height: 1.3;
}

.wps-card-head-url--empty {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 400;
  font-style: italic;
}

.wps-card-head-meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 3px;
}

.wps-card-body { padding: 24px 26px 28px; }

.wps-card-body-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 4px;
}

.wps-card-body-sub {
  font-size: 12px;
  color: var(--wps-muted);
  margin-bottom: 20px;
}

/* Form */
.wps-form-scan {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.wps-form-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.wps-form-field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--wps-text);
}

.wps-form-field input {
  height: 44px;
  padding: 0 14px;
  border: 1.5px solid var(--wps-border);
  border-radius: 7px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  color: var(--wps-text);
  outline: none;
  background: white;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.wps-form-field input:focus {
  border-color: var(--wps-blue);
  box-shadow: 0 0 0 3px rgba(48, 60, 72, 0.08);
}

.wps-form-field input::placeholder { color: #cbd5e1; }

.wps-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.wps-form-notice {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 11px;
  color: #92400e;
  line-height: 1.55;
}

.wps-form-notice strong { font-weight: 700; }

.wps-form-cgu {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.wps-form-cgu input[type="checkbox"] {
  width: 15px;
  height: 15px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--wps-blue);
  cursor: pointer;
}

.wps-form-cgu label {
  font-size: 11px;
  color: var(--wps-muted);
  line-height: 1.5;
  cursor: pointer;
  font-weight: 400;
}

.wps-form-cgu a { color: var(--wps-blue); text-decoration: underline; }

.wps-form-error {
  font-size: 11px;
  color: var(--wps-red);
  margin-top: 3px;
  display: none;
}

.wps-form-error--show { display: block; }

.wps-form-submit {
  height: 48px;
  background: var(--wps-red);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  font-family: 'Inter', sans-serif;
  cursor: pointer;
  transition: background 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}

.wps-form-submit:hover { background: var(--wps-red-d); }
.wps-form-submit:disabled { opacity: 0.7; cursor: default; }

/* OTP */
.wps-otp-state { display: none; }
.wps-otp-state--active { display: block; }

.wps-otp-desc {
  font-size: 12px;
  color: var(--wps-muted);
  margin-bottom: 16px;
  line-height: 1.6;
  background: var(--wps-surface);
  border-radius: 6px;
  padding: 10px 12px;
}

.wps-otp-desc strong { color: var(--wps-text); font-weight: 600; }

.wps-otp-hint {
  font-size: 11px;
  color: #94a3b8;
  margin-top: 4px;
  display: block;
}

.wps-otp-actions {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}

.wps-otp-link {
  font-size: 12px;
  color: var(--wps-blue);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: 'Inter', sans-serif;
  text-decoration: underline;
}

.wps-otp-link:disabled { color: var(--wps-muted); text-decoration: none; cursor: default; }

.wps-edit-email-form { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--wps-border); }
.wps-edit-email-form--show { display: block; }
.wps-edit-email-actions { display: flex; gap: 8px; margin-top: 8px; }

.wps-btn-sm {
  height: 36px;
  padding: 0 14px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  font-family: 'Inter', sans-serif;
  cursor: pointer;
  border: none;
}

.wps-btn-sm--blue  { background: var(--wps-blue); color: white; }
.wps-btn-sm--ghost { background: none; color: var(--wps-muted); border: 1px solid var(--wps-border); }

/* Loading */
.wps-loading-state { display: none; text-align: center; padding: 4px 0 8px; }
.wps-loading-state--active { display: block; }

.wps-loader-ring { width: 48px; height: 48px; margin: 0 auto 14px; }
.wps-loader-ring svg { animation: wps-spin 1.2s linear infinite; }
@keyframes wps-spin { to { transform: rotate(360deg); } }

.wps-loading-title { font-size: 15px; font-weight: 700; color: var(--wps-text); margin-bottom: 4px; }
.wps-loading-domain { font-size: 12px; color: var(--wps-muted); margin-bottom: 20px; }
.wps-loading-steps { display: flex; flex-direction: column; gap: 5px; text-align: left; }

.wps-loading-step {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--wps-muted);
  padding: 7px 10px;
  border-radius: 6px;
  transition: background 0.3s, color 0.3s;
}

.wps-loading-step--done   { background: #f0fdf4; color: var(--wps-green); }
.wps-loading-step--active { background: var(--wps-blue-l); color: var(--wps-blue); font-weight: 600; }

.wps-step-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

@keyframes wps-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
.wps-loading-step--active .wps-step-dot { animation: wps-pulse 1s ease-in-out infinite; }

.wps-queued-msg {
  display: none;
  font-size: 12px;
  color: var(--wps-blue);
  background: var(--wps-blue-l);
  border-radius: 6px;
  padding: 7px 12px;
  margin-bottom: 14px;
  text-align: center;
}

.wps-loading-error {
  display: none;
  font-size: 12px;
  color: var(--wps-red);
  background: #fff0f3;
  border-radius: 6px;
  padding: 8px 12px;
  margin-top: 14px;
  text-align: center;
}

/* Done state */
.wps-done-state { display: none; text-align: center; padding: 8px 0 4px; }
.wps-done-state--active { display: block; }

.wps-done-score-wrap {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-bottom: 10px;
}
.wps-done-score-num { font-size: 52px; font-weight: 800; color: var(--wps-text); line-height: 1; }
.wps-done-score-sub { font-size: 18px; color: var(--wps-muted); font-weight: 600; }

.wps-done-grade-badge {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  border-radius: 6px;
  padding: 3px 12px;
  margin-bottom: 14px;
  background: var(--wps-border);
  color: var(--wps-text);
}
.wps-done-grade-badge--a { background: #d1fae5; color: #065f46; }
.wps-done-grade-badge--b { background: #d1fae5; color: #065f46; }
.wps-done-grade-badge--c { background: #fef9c3; color: #713f12; }
.wps-done-grade-badge--d { background: #ffedd5; color: #9a3412; }
.wps-done-grade-badge--e { background: #fee2e2; color: #7f1d1d; }
.wps-done-grade-badge--f { background: #fee2e2; color: #7f1d1d; }

.wps-done-email-sent { font-size: 12px; color: var(--wps-muted); margin: 0 0 16px; }
.wps-done-email-sent strong { color: var(--wps-text); }

.wps-done-cta { display: none; }

/* ─────────────────────────────────────────
   GRILLE ANALYSE (page scan)
───────────────────────────────────────── */
.wps-analyse-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.wps-analyse-card {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 10px;
  padding: 24px;
}

.wps-analyse-icon {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  background: #E8EDF4;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.wps-analyse-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #00162B;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wps-analyse-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--wps-text);
  margin-bottom: 8px;
}

.wps-analyse-desc {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

.wps-analyse-tags { display: flex; flex-wrap: wrap; gap: 5px; }

.wps-analyse-tag {
  font-size: 11px;
  font-weight: 500;
  color: var(--wps-blue);
  background: var(--wps-blue-l);
  padding: 3px 8px;
  border-radius: 4px;
}

/* ─────────────────────────────────────────
   STATS BAND (page scan - 4 stats larges)
───────────────────────────────────────── */
.wps-stats-band {
  background: var(--wps-navy);
  padding: 56px 0;
}

.wps-stats-band-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.wps-stat-band-item {
  text-align: center;
  padding: 0 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.wps-stat-band-item:last-child { border-right: none; }

.wps-stat-band-num {
  font-size: 36px;
  font-weight: 800;
  color: white;
  letter-spacing: -1.5px;
  line-height: 1;
  margin-bottom: 6px;
}

.wps-stat-band-num span { font-size: 22px; }

.wps-stat-band-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}

/* ─────────────────────────────────────────
   FAQ
───────────────────────────────────────── */
.wps-faq-list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--wps-border);
  border-radius: 10px;
  overflow: hidden;
  max-width: 860px;
  margin: 0 auto;
}

.wps-faq-item { border-bottom: 1px solid var(--wps-border); }
.wps-faq-item:last-child { border-bottom: none; }

.wps-faq-q {
  width: 100%;
  background: white;
  border: none;
  text-align: left;
  padding: 18px 22px;
  font-size: 14px;
  font-weight: 600;
  color: var(--wps-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: 'Inter', sans-serif;
  transition: background 0.15s;
}

.wps-faq-q:hover { background: var(--wps-surface); color: var(--wps-text) !important; }

.wps-faq-q-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1.5px solid var(--wps-border);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.25s;
}

.wps-faq-item--open .wps-faq-q { background: var(--wps-surface); }

.wps-faq-item--open .wps-faq-q-icon {
  background: var(--wps-blue);
  border-color: var(--wps-blue);
  color: white;
  transform: rotate(180deg);
}

.wps-faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.wps-faq-item--open .wps-faq-body { max-height: 400px; }

.wps-faq-a {
  padding: 10px 22px 18px;
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.7;
  background: white;
}

.wps-faq-a a { color: var(--wps-red); text-decoration: underline; text-underline-offset: 2px; }

/* ─────────────────────────────────────────
   RESPONSIVE - pages intérieures
───────────────────────────────────────── */
@media (max-width: 1100px) {
  .wps-checks-categories { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 960px) {
  .wps-method-grid { grid-template-columns: 1fr; gap: 20px; }
  .wps-threats-grid { grid-template-columns: 1fr; gap: 40px; }
  .wps-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .wps-hero--scan { background: var(--wps-navy); }
  .wps-hero--scan .wps-hero-grid { grid-template-columns: 1fr; min-height: auto; }
  .wps-hero--scan .wps-hero-left { padding: 56px 24px 40px; text-align: center; }
  .wps-hero--scan .wps-hero-checks { align-items: center; max-width: 100%; }
  .wps-hero--scan .wps-hero-trust { justify-content: center; }
  .wps-hero--scan .wps-hero-right { background: white; border-radius: 12px; margin: 0 16px 40px; padding: 32px 24px; }
  .wps-analyse-grid { grid-template-columns: repeat(2, 1fr); }
  .wps-stats-band-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 0; }
  .wps-stat-band-item { border-right: none; }
}

@media (max-width: 640px) {
  .wps-checks-categories { grid-template-columns: 1fr; }
  .wps-analyse-grid { grid-template-columns: 1fr; }
  .wps-hero--scan .wps-hero-checks { text-align: left; }
  .wps-threat-stat-label { width: 140px; font-size: 12px; }
}

/* ─────────────────────────────────────────
   PAGE CONTACT
───────────────────────────────────────── */
.wps-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  align-items: start;
}

/* Infos gauche */
.wps-contact-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: calc(var(--wps-nav-h) + 24px);
}

.wps-contact-info-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 10px;
}

.wps-contact-info-card--urgence {
  border-color: rgba(219, 10, 64, 0.2);
  background: rgba(219, 10, 64, 0.03);
}

.wps-contact-info-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #E8EDF4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wps-contact-info-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: #00162B;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wps-contact-info-icon--red {
  background: rgba(219, 10, 64, 0.08);
}

.wps-contact-info-icon--red svg {
  stroke: var(--wps-red);
}

.wps-contact-info-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--wps-muted);
  margin-bottom: 4px;
}

.wps-contact-info-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--wps-text);
  display: block;
}

a.wps-contact-info-value:hover { text-decoration: underline; }

.wps-contact-info-value--red { color: var(--wps-red); }

.wps-contact-info-note {
  font-size: 12px;
  color: var(--wps-muted);
  margin-top: 3px;
  line-height: 1.5;
}

.wps-contact-info-sep {
  height: 1px;
  background: var(--wps-border);
  margin: 4px 0;
}

.wps-contact-info-mention {
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0;
}

.wps-contact-info-mention a {
  color: #94a3b8;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Formulaire droite */
.wps-contact-form-wrap {
  background: white;
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  padding: 36px 40px;
}

.wps-contact-form-placeholder {
  font-size: 14px;
  color: var(--wps-muted);
  text-align: center;
  padding: 40px 0;
}

.wps-contact-form-placeholder code {
  background: var(--wps-surface);
  border: 1px solid var(--wps-border);
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 12px;
}

/* ── Fluent Forms overrides ──────────────────────────────────────── */
.wps-contact-form-wrap .ff-el-group {
  margin-bottom: 18px !important;
}

.wps-contact-form-wrap .ff-el-input--label label,
.wps-contact-form-wrap .ff-el-input--label .ff-el-form-label {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--wps-text) !important;
  margin-bottom: 6px !important;
  font-family: 'Inter', sans-serif !important;
}

.wps-contact-form-wrap .ff-el-input--content input[type="text"],
.wps-contact-form-wrap .ff-el-input--content input[type="email"],
.wps-contact-form-wrap .ff-el-input--content input[type="url"],
.wps-contact-form-wrap .ff-el-input--content select,
.wps-contact-form-wrap .ff-el-input--content textarea {
  height: auto !important;
  min-height: 44px !important;
  padding: 10px 14px !important;
  border: 1.5px solid var(--wps-border) !important;
  border-radius: 7px !important;
  font-size: 14px !important;
  font-family: 'Inter', sans-serif !important;
  color: var(--wps-text) !important;
  background: white !important;
  box-shadow: none !important;
  transition: border-color 0.15s !important;
  outline: none !important;
  width: 100% !important;
}

.wps-contact-form-wrap .ff-el-input--content input:focus,
.wps-contact-form-wrap .ff-el-input--content select:focus,
.wps-contact-form-wrap .ff-el-input--content textarea:focus {
  border-color: var(--wps-blue) !important;
  box-shadow: 0 0 0 3px rgba(48, 60, 72, 0.08) !important;
}

.wps-contact-form-wrap .ff-el-input--content input::placeholder,
.wps-contact-form-wrap .ff-el-input--content textarea::placeholder {
  color: #cbd5e1 !important;
}

.wps-contact-form-wrap .ff-el-input--content textarea {
  min-height: 120px !important;
  resize: vertical !important;
  line-height: 1.6 !important;
}

.wps-contact-form-wrap .ff-el-input--content select {
  appearance: auto !important;
}

/* Checkbox CGU */
.wps-contact-form-wrap .ff_accept_terms_wrap,
.wps-contact-form-wrap .ff-el-input--content .ff_list_buttons {
  font-size: 12px !important;
  color: var(--wps-muted) !important;
  line-height: 1.5 !important;
}

.wps-contact-form-wrap .ff_accept_terms_wrap a,
.wps-contact-form-wrap .ff-el-input--content a {
  color: var(--wps-blue) !important;
  text-decoration: underline !important;
}

/* Bouton submit */
.wps-contact-form-wrap .ff-btn-submit,
.wps-contact-form-wrap .ff_submit_btn_wrapper .ff-btn {
  height: 48px !important;
  padding: 0 28px !important;
  background: var(--wps-red) !important;
  color: white !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  font-family: 'Inter', sans-serif !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.wps-contact-form-wrap .ff-btn-submit:hover,
.wps-contact-form-wrap .ff_submit_btn_wrapper .ff-btn:hover {
  background: var(--wps-red-d) !important;
}

/* Erreurs de validation */
.wps-contact-form-wrap .error,
.wps-contact-form-wrap .ff-el-is-error .error {
  font-size: 11px !important;
  color: var(--wps-red) !important;
  margin-top: 4px !important;
  font-family: 'Inter', sans-serif !important;
}

/* Message de succès */
.wps-contact-form-wrap .ff-message-success {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-radius: 8px !important;
  padding: 20px 24px !important;
  font-size: 14px !important;
  color: var(--wps-green) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
}

/* ── Responsive contact ─────────────────────────────────────── */
@media (max-width: 900px) {
  .wps-contact-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .wps-contact-info {
    position: static;
  }
}

@media (max-width: 640px) {
  .wps-contact-form-wrap {
    padding: 24px 20px;
  }
}

/* ─────────────────────────────────────────
   SURECART - Override couleurs parasites
───────────────────────────────────────── */
.sc-checkout .sc-button--primary,
.surecart .sc-button--primary,
[data-sc-component] .sc-button--primary {
  background: var(--wps-red) !important;
  border-color: var(--wps-red) !important;
  color: white !important;
}

[data-sc-component] .sc-button--primary:hover {
  background: var(--wps-red-d) !important;
  border-color: var(--wps-red-d) !important;
}

/* ─────────────────────────────────────────
   ASTRA - Reset styles parasites
───────────────────────────────────────── */
.ast-page-builder-template .entry-content,
.ast-page-builder-template .entry-header { padding: 0; }

.entry-content .wp-block-button__link {
  border-radius: var(--wps-r);
}

/* ─────────────────────────────────────────
   BLOG - Archive (home.php)
───────────────────────────────────────── */
body.wps-page-archive,
body.wps-page-single {
  background: var(--wps-surface);
}

.wps-blog-archive { padding-bottom: 80px; }

.wps-blog-header {
  text-align: center;
  padding: 64px 0 48px;
  border-bottom: 1px solid var(--wps-border);
  margin-bottom: 56px;
}

.wps-blog-header__back {
  margin-bottom: 16px;
}
.wps-blog-header__back a {
  font-size: 13px;
  color: var(--wps-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.wps-blog-header__back a:hover { color: var(--wps-text) !important; }

.wps-blog-header__title {
  font-size: 42px;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin: 0 0 12px;
}

.wps-blog-header__subtitle {
  font-size: 18px;
  color: var(--wps-muted);
  margin: 0;
}

/* Grid 3 colonnes */
.wps-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 56px;
}

/* ─── Card ─── */
.wps-card {
  background: var(--wps-white);
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.wps-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border-color: var(--wps-blue-b);
}

.wps-card__img-wrap {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--wps-surface);
}

.wps-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.wps-card:hover .wps-card__img { transform: scale(1.03); }

.wps-card__img-wrap--placeholder { background: var(--wps-blue-l); }

.wps-card__img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wps-card__img-placeholder svg {
  width: 32px;
  height: 32px;
  color: var(--wps-muted);
  opacity: 0.35;
}

.wps-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}

.wps-card__cat {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--wps-red);
  background: rgba(219,10,64,0.07);
  padding: 3px 10px;
  border-radius: 20px;
  align-self: flex-start;
  text-decoration: none;
  transition: background 0.15s;
}

.wps-card__cat:hover {
  background: rgba(219,10,64,0.13);
  color: var(--wps-red);
}

.wps-card__title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  margin: 0;
}

.wps-card__title a {
  color: var(--wps-text);
  text-decoration: none;
}

.wps-card__title a:hover,
.wps-card:hover .wps-card__title a { color: var(--wps-red); }

.wps-card__excerpt {
  font-size: 14px;
  color: var(--wps-muted);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

.wps-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--wps-muted);
}

.wps-card__sep { opacity: 0.45; }

.wps-card__cta {
  font-size: 13px;
  font-weight: 600;
  color: var(--wps-red);
  text-decoration: none;
  margin-top: 4px;
}

.wps-card__cta:hover {
  color: var(--wps-red-d);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Pagination */
.wps-pagination .nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 32px 0 64px;
}

.wps-pagination .page-numbers {
  padding: 8px 14px;
  border: 1px solid var(--wps-border);
  border-radius: 6px;
  font-size: 14px;
  color: var(--wps-text);
  text-decoration: none;
  transition: all 0.15s;
}

.wps-pagination .page-numbers.current,
.wps-pagination .page-numbers:hover:not(.dots) {
  background: var(--wps-red);
  color: white;
  border-color: var(--wps-red);
}

.wps-pagination .page-numbers.dots {
  border: none;
  color: var(--wps-muted);
}

.wps-blog-empty {
  text-align: center;
  color: var(--wps-muted);
  padding: 80px 0;
}

/* ─────────────────────────────────────────
   BLOG - Single post (single.php)
───────────────────────────────────────── */

/* Barre de progression de lecture */
.wps-progress-bar {
  position: fixed;
  top: var(--wps-nav-h);
  left: 0;
  height: 3px;
  width: 0%;
  background: var(--wps-red);
  z-index: 150;
  transition: width 0.08s linear;
  pointer-events: none;
}
.admin-bar .wps-progress-bar { top: calc(var(--wps-nav-h) + 32px); }

.wps-single { padding-bottom: 80px; }

.wps-single .wps-breadcrumb { padding-top: 32px; }

/* Layout 70/30 */
.wps-single__layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 56px;
  align-items: start;
  padding-top: 32px;
}

/* Section commentaires */
.wps-comments {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid var(--wps-border);
}

.wps-single__comments {
  color: var(--wps-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.wps-single__comments:hover { color: var(--wps-text) !important; }

.wps-comments #respond { margin-top: 48px; }

.wps-comments .comment-reply-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--wps-text);
  margin: 0 0 24px;
  letter-spacing: -0.01em;
}
.wps-comments .comment-reply-title small { font-size: 14px; font-weight: 400; }

.wps-comments .comment-form p { margin-bottom: 16px; }

.wps-comments .comment-form label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--wps-text);
  margin-bottom: 6px;
}

.wps-comments .comment-form input[type="text"],
.wps-comments .comment-form input[type="email"],
.wps-comments .comment-form input[type="url"],
.wps-comments .comment-form textarea {
  width: 100%;
  background: white;
  border: 1.5px solid var(--wps-border);
  border-radius: 7px;
  padding: 10px 14px;
  font-size: 14px;
  color: var(--wps-text);
  font-family: inherit;
  transition: border-color 0.15s;
  outline: none;
  box-sizing: border-box;
}
.wps-comments .comment-form input[type="text"]:focus,
.wps-comments .comment-form input[type="email"]:focus,
.wps-comments .comment-form input[type="url"]:focus,
.wps-comments .comment-form textarea:focus { border-color: var(--wps-blue); }

.wps-comments .comment-form textarea { min-height: 120px; resize: vertical; }

.wps-comments .comment-form .submit {
  background: var(--wps-red) !important;
  color: white !important;
  border: none !important;
  padding: 11px 26px !important;
  border-radius: 7px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  font-family: inherit !important;
}
.wps-comments .comment-form .submit:hover { background: var(--wps-red-d) !important; color: white !important; }

/* En-tête article */
.wps-single__header { margin-bottom: 40px; }

.wps-single__cat {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--wps-red);
  background: rgba(219,10,64,0.07);
  padding: 3px 10px;
  border-radius: 20px;
  display: inline-block;
  margin-bottom: 16px;
  text-decoration: none;
  transition: background 0.15s;
}

.wps-single__cat:hover {
  background: rgba(219,10,64,0.13);
  color: var(--wps-red);
}

.wps-single__title {
  font-size: 36px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.025em;
  margin: 0 0 20px;
}

.wps-single__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--wps-muted);
  margin-bottom: 32px;
}

.wps-single__sep { opacity: 0.45; }

.wps-single__thumb {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 40px;
}

.wps-single__thumb-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Corps de l'article */
.wps-single__content {
  font-size: 17px;
  line-height: 1.78;
  color: var(--wps-text);
}

.wps-single__content h2 {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 52px 0 16px;
  color: var(--wps-text);
}

.wps-single__content h3 {
  font-size: 19px;
  font-weight: 700;
  margin: 40px 0 12px;
  color: var(--wps-text);
}

.wps-single__content p { margin: 0 0 24px; }

.wps-single__content code {
  font-size: 14px;
  background: var(--wps-surface);
  border: 1px solid var(--wps-border);
  padding: 2px 6px;
  border-radius: 4px;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  color: var(--wps-red);
  word-break: break-word;
}

.wps-single__content ul,
.wps-single__content ol {
  padding-left: 24px;
  margin: 0 0 24px;
}

.wps-single__content li { margin-bottom: 8px; }

.wps-single__content a {
  color: var(--wps-red);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.wps-single__content a:hover { color: var(--wps-red-d); }

/* Footer article - partage */
.wps-single__footer {
  margin-top: 48px;
  padding-top: 32px;
  padding-bottom: 32px;
  border-top: 1px solid var(--wps-border);
  border-bottom: 1px solid var(--wps-border);
}

.wps-share {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.wps-share__label {
  font-size: 14px;
  font-weight: 600;
  color: var(--wps-muted);
  margin-right: 2px;
}

.wps-share__btn {
  width: 38px;
  height: 38px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: opacity 0.15s;
  flex-shrink: 0;
}

.wps-share__btn:hover { opacity: 0.82; }

.wps-share__btn svg {
  width: 17px;
  height: 17px;
  fill: white;
  flex-shrink: 0;
}

.wps-share__btn--linkedin  { background: #0077B5; }
.wps-share__btn--facebook  { background: #1877F2; }
.wps-share__btn--whatsapp  { background: #25D366; }
.wps-share__btn--x         { background: #000; }

/* ─── Sidebar sticky ─── */
.wps-single__sidebar {
  position: sticky;
  top: calc(var(--wps-nav-h) + 40px);
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-height: calc(100dvh - var(--wps-nav-h) - 56px);
  overflow-y: auto;
  scrollbar-width: none;
}
.wps-single__sidebar::-webkit-scrollbar { display: none; }

.wps-sidebar-cta {
  background: var(--wps-white);
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  padding: 24px;
}

.wps-sidebar-cta--scan {
  background: var(--wps-navy);
  border-color: transparent;
}

.wps-sidebar-cta--urgence {
  border-color: rgba(219,10,64,0.2);
  background: rgba(219,10,64,0.03);
}

.wps-sidebar-cta__icon {
  margin-bottom: 12px;
}

.wps-sidebar-cta__icon svg {
  width: 30px;
  height: 30px;
  color: rgba(255,255,255,0.5);
}

.wps-sidebar-cta__title {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 8px;
  line-height: 1.3;
  color: var(--wps-text);
}

.wps-sidebar-cta--scan .wps-sidebar-cta__title { color: white; }

.wps-sidebar-cta__text {
  font-size: 13px;
  color: var(--wps-muted);
  margin: 0 0 16px;
  line-height: 1.55;
}

.wps-sidebar-cta--scan .wps-sidebar-cta__text { color: rgba(255,255,255,0.6); }

.wps-sidebar-cta__btn {
  display: block;
  text-align: center;
  padding: 10px 16px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.15s;
}

.wps-sidebar-cta__btn--primary {
  background: var(--wps-red);
  color: white;
}

.wps-sidebar-cta__btn--primary:hover {
  background: var(--wps-red-d);
  color: white;
}

.wps-sidebar-cta__btn--outline {
  border: 1.5px solid var(--wps-border);
  color: var(--wps-text);
}

.wps-sidebar-cta__btn--outline:hover {
  border-color: var(--wps-text);
  background: var(--wps-blue-l);
}

/* ─── Articles liés ─── */
.wps-related {
  margin-top: 48px;
}

.wps-related__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 32px;
  letter-spacing: -0.01em;
}

.wps-related .wps-blog-grid { margin-bottom: 0; }

/* ─── Responsive blog ─── */
@media (max-width: 1024px) {
  .wps-single__title { font-size: 30px; }
  .wps-single__layout { grid-template-columns: 1fr 260px; gap: 36px; }
}

@media (max-width: 768px) {
  .wps-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .wps-single__layout { grid-template-columns: 1fr; }
  .wps-single__sidebar { position: static; }
  .wps-single__title { font-size: 26px; }
  .wps-single__content { font-size: 16px; }
  .wps-related .wps-blog-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .wps-blog-grid { grid-template-columns: 1fr; }
  .wps-blog-header__title { font-size: 30px; }
  .wps-blog-header { padding: 40px 0 32px; margin-bottom: 32px; }
  .wps-single__title { font-size: 22px; }
}

/* ─────────────────────────────────────────
   GLOSSAIRE - Archive (/glossaire/)
───────────────────────────────────────── */
.wps-glossaire-archive { padding-bottom: 80px; }

/* Grille 4 colonnes - compacte, sans image */
.wps-gterm-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 56px;
}

/* Card terme */
.wps-gterm-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px;
  background: var(--wps-white);
  border: 1px solid var(--wps-border);
  border-radius: 10px;
  text-decoration: none;
  transition: box-shadow 0.18s, border-color 0.18s;
}

.wps-gterm-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.07);
  border-color: var(--wps-blue-b);
}

.wps-gterm-card__title {
  font-size: 15px;
  font-weight: 700;
  color: var(--wps-text);
  letter-spacing: -0.01em;
  line-height: 1.3;
}

.wps-gterm-card__excerpt {
  font-size: 13px;
  color: var(--wps-muted);
  line-height: 1.5;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wps-gterm-card__cta {
  font-size: 12px;
  font-weight: 600;
  color: var(--wps-red);
  margin-top: 4px;
}

/* ─────────────────────────────────────────
   GLOSSAIRE - Single (/glossaire/terme/)
───────────────────────────────────────── */
.wps-glossaire-single { padding-bottom: 80px; }

/* Fil d'Ariane */
.wps-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--wps-muted);
  padding: 20px 0 0;
  flex-wrap: nowrap;
  overflow: hidden;
}

.wps-breadcrumb a {
  color: var(--wps-muted);
  text-decoration: none;
  transition: color 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}

.wps-breadcrumb a:hover { color: var(--wps-text); }

.wps-breadcrumb span[aria-hidden] { opacity: 0.4; flex-shrink: 0; }

.wps-breadcrumb span[aria-current] {
  color: var(--wps-text);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

/* Layout 70/30 */
.wps-glossaire-single__layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 56px;
  align-items: start;
  padding-top: 40px;
}

/* En-tête terme */
.wps-glossaire-single__header { margin-bottom: 36px; }

.wps-glossaire-single__badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--wps-muted);
  background: var(--wps-surface);
  border: 1px solid var(--wps-border);
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 16px;
}

.wps-glossaire-single__title {
  font-size: 38px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  margin: 0 0 16px;
}

.wps-glossaire-single__intro {
  font-size: 17px;
  color: var(--wps-muted);
  line-height: 1.65;
  margin: 0;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--wps-border);
}

/* Section FAQ */
.wps-glossaire-faq {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid var(--wps-border);
}

.wps-glossaire-faq__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 28px;
  letter-spacing: -0.01em;
}


/* Termes associés (sidebar) */
.wps-glossaire-related {
  background: var(--wps-surface);
  border: 1px solid var(--wps-border);
  border-radius: 12px;
  padding: 24px;
}

.wps-glossaire-related__title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--wps-muted);
  margin: 0 0 16px;
}

.wps-glossaire-related__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.wps-glossaire-related__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--wps-text) !important;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}

.wps-glossaire-related__link:visited,
.wps-glossaire-related__link:focus,
.wps-glossaire-related__link:focus-visible,
.wps-glossaire-related__link:active { color: var(--wps-text) !important; }

.wps-glossaire-related__link:hover {
  background: white;
  color: var(--wps-red) !important;
}

.wps-glossaire-related__link span { color: var(--wps-muted); font-size: 12px; }

/* ─── Responsive glossaire ─── */
@media (max-width: 1100px) {
  .wps-gterm-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
  .wps-glossaire-single__title { font-size: 30px; }
  .wps-glossaire-single__layout { grid-template-columns: 1fr 260px; gap: 36px; }
}

@media (max-width: 768px) {
  .wps-gterm-grid { grid-template-columns: repeat(2, 1fr); }
  .wps-glossaire-single__layout { grid-template-columns: 1fr; }
  .wps-glossaire-single__sidebar { position: static !important; }
  .wps-glossaire-single__title { font-size: 26px; }
}

@media (max-width: 480px) {
  .wps-gterm-grid { grid-template-columns: 1fr; }
  .wps-glossaire-single__title { font-size: 22px; }
}

/* ─────────────────────────────────────────
   404
───────────────────────────────────────── */

.wps-404 {
  min-height: calc(100dvh - var(--wps-nav-h) - 180px);
  display: flex;
  align-items: center;
  padding: 80px 0;
}

.wps-404__inner {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.wps-404__badge {
  font-size: clamp(96px, 18vw, 160px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--wps-red) 0%, #ff6b6b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
  margin-bottom: 8px;
  user-select: none;
}

.wps-404__title {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 800;
  letter-spacing: -0.025em;
  margin: 0 0 16px;
}

.wps-404__desc {
  font-size: 17px;
  color: var(--wps-muted);
  line-height: 1.6;
  margin: 0 0 40px;
}

.wps-404__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 56px;
}

.wps-404__btn {
  display: inline-flex;
  align-items: center;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.15s;
  white-space: nowrap;
}

.wps-404__btn--primary {
  background: var(--wps-red);
  color: white;
}

.wps-404__btn--primary:hover {
  background: var(--wps-red-d);
  color: white;
  transform: translateY(-1px);
}

.wps-404__btn--outline {
  border: 1.5px solid var(--wps-border);
  color: var(--wps-text);
  background: transparent;
}

.wps-404__btn--outline:hover {
  border-color: var(--wps-text);
  background: var(--wps-surface);
}

.wps-404__links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

.wps-404__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid var(--wps-border);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--wps-text);
  text-decoration: none;
  background: var(--wps-white);
  transition: all 0.15s;
}

.wps-404__link:hover {
  border-color: var(--wps-red);
  color: var(--wps-red);
  background: rgba(219,10,64,0.04);
  transform: translateY(-1px);
}

.wps-404__link-icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.wps-404__link-icon svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
}

@media (max-width: 480px) {
  .wps-404 { padding: 48px 0; }
  .wps-404__badge { margin-bottom: 4px; }
  .wps-404__actions { flex-direction: column; }
  .wps-404__btn { width: 100%; justify-content: center; }
}

/* ─────────────────────────────────────────
   SCROLL ANCHOR - offset barre fixe
───────────────────────────────────────── */
#methode { scroll-margin-top: calc(var(--wps-nav-h) + 20px); }

/* ─────────────────────────────────────────
   FOND - page glossaire single
───────────────────────────────────────── */
body.single-glossaire { background: var(--wps-surface); }

/* ─────────────────────────────────────────
   OVERRIDE ASTRA - hover boutons/liens
   Astra Pro injecte button:hover {color:white;background:#045CB4}
   et a:hover {color:#045CB4} qui écrasent nos styles custom.
───────────────────────────────────────── */
.wps-hero-btn-primary:hover,
.wps-hero-btn-primary:focus,
.wps-hero-btn-primary:active { background: var(--wps-red-d) !important; color: white !important; }

.wps-btn-offer--primary:hover,
.wps-btn-offer--primary:focus,
.wps-btn-offer--primary:active { background: var(--wps-red-d) !important; color: white !important; }

.wps-btn-cta-white:hover,
.wps-btn-cta-white:focus { background: white !important; color: var(--wps-navy) !important; }

.wps-sidebar-cta__btn--primary:hover,
.wps-sidebar-cta__btn--primary:focus,
.wps-sidebar-cta__btn--primary:active { background: var(--wps-red-d) !important; color: white !important; }

.wps-sidebar-cta__btn--outline:hover,
.wps-sidebar-cta__btn--outline:focus { border-color: var(--wps-text) !important; background: var(--wps-blue-l) !important; color: var(--wps-text) !important; }

/* ─── Outline focus souris — supprimer partout, conserver navigation clavier ── */
a:not(:focus-visible),
button:not(:focus-visible),
[role="button"]:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* ─── Outline inputs/textarea/select — supprimé globalement (indicateur visuel via border-color) ── */
input:focus,
input:focus-visible,
textarea:focus,
textarea:focus-visible,
select:focus,
select:focus-visible,
body input:focus,
body input:focus-visible,
body textarea:focus,
body textarea:focus-visible,
body select:focus,
body select:focus-visible {
  outline: none !important;
  outline-style: none !important;
  outline-width: 0 !important;
}

/* ─── Scanner widget inputs — spécificité renforcée ── */
.sa-finput:focus,
.sa-finput:focus-visible,
.sa-fotp-digit:focus,
.sa-fotp-digit:focus-visible {
  outline: none !important;
  outline-style: none !important;
  outline-width: 0 !important;
  border-color: #DB0A40 !important;
  box-shadow: 0 0 0 3px rgba(219,10,64,.08) !important;
}

/* ─── FAQ glossaires — anti-override Astra focus/active ── */
.wps-faq-q { background: white !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }
.wps-faq-item--open .wps-faq-q { background: var(--wps-surface) !important; color: var(--wps-text) !important; }
.wps-faq-q:focus,
.wps-faq-q:focus-visible,
.wps-faq-q:active { background: white !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }
.wps-faq-item--open .wps-faq-q:focus,
.wps-faq-item--open .wps-faq-q:focus-visible,
.wps-faq-item--open .wps-faq-q:active { background: var(--wps-surface) !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }

/* ─── FAQ maintenance + site piraté — anti-override Astra focus/active ── */
.maint-faq-q,
.sp-faq-q { background: white !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }
/* État ouvert : fond gris maintenu même hors focus */
.maint-faq-item.open .maint-faq-q,
.sp-faq-item.open .sp-faq-q { background: var(--wps-surface) !important; color: var(--wps-text) !important; }
/* États focus/active sur item fermé */
.maint-faq-q:focus,
.maint-faq-q:focus-visible,
.maint-faq-q:active,
.sp-faq-q:focus,
.sp-faq-q:focus-visible,
.sp-faq-q:active { background: white !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }
/* États focus/active sur item ouvert */
.maint-faq-item.open .maint-faq-q:focus,
.maint-faq-item.open .maint-faq-q:focus-visible,
.maint-faq-item.open .maint-faq-q:active,
.sp-faq-item.open .sp-faq-q:focus,
.sp-faq-item.open .sp-faq-q:focus-visible,
.sp-faq-item.open .sp-faq-q:active { background: var(--wps-surface) !important; color: var(--wps-text) !important; outline: none !important; box-shadow: none !important; }

/* ─── Tableau comparaison maintenance — annuler bordures Astra parasites ── */
/* Astra injecte table, td, th { border: 1px solid } et peut changer border-collapse */
.maint-ct {
  border: none !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.maint-ct td,
.maint-ct th {
  border: none !important;
}

/* Réappliquer border-bottom sur les lignes de données */
.maint-ct .ct-row td {
  border-bottom: 1px solid var(--wps-border) !important;
}
.maint-ct .ct-row:last-of-type td {
  border-bottom: none !important;
}
/* Pas de border-top sur ct-section : la séparation visuelle vient du border-bottom de
   la ligne précédente (évite la double barre sans dépendre de :has()) */

/* Header tableau toujours au-dessus des sections sticky (thead rendu avant tbody → même z-index = tbody gagne) */
.maint-ct-head {
  z-index: 21 !important;
}
/* Frame sous les ct-section sticky (z-index: 20) pour éviter que ses bordures bleues
   s'affichent par-dessus les sections en mode sticky */
.maint-pro-frame {
  z-index: 19 !important;
}

/* Rétablir col-feat (colonne Pro) : header + body + dernière ligne */
.maint-ct-head th.col-feat {
  border-top: 2px solid var(--wps-blue) !important;
  border-left: 2px solid var(--wps-blue) !important;
  border-right: 2px solid var(--wps-blue) !important;
  border-radius: 10px 10px 0 0;
}
/* Quand sticky actif : coins plats + border-top masqué (le frame fournit le cadre) */
.maint-ct-head th.col-feat.is-stuck {
  border-radius: 0 !important;
  border-top: none !important;
}
/* border-bottom sur les th normaux uniquement — th.col-feat n'en a pas dans le template
   (une border-bottom grise sur col-feat coupe la continuité visuelle avec le maint-pro-frame) */
.maint-ct-head th:not(.col-feat) {
  border-bottom: 1px solid var(--wps-border) !important;
}
/* Sur mobile uniquement : maint-pro-frame masqué → bordures bleues sur les cellules */
@media (max-width: 768px) {
  .maint-ct .ct-section td.col-feat,
  .maint-ct .ct-row td.col-feat {
    border-left: 2px solid var(--wps-blue) !important;
    border-right: 2px solid var(--wps-blue) !important;
  }
  .maint-ct .ct-row:last-of-type td.col-feat {
    border-bottom: 2px solid var(--wps-blue) !important;
    border-radius: 0 0 10px 10px !important;
  }
}

/* ─── Tableau comparaison maintenance — liens dans première colonne (anti-Astra bleu) ── */
.maint-ct .ct-row td:first-child a,
.maint-ct .ct-row td:first-child a:visited,
.maint-ct .ct-row td:first-child a:hover { color: var(--wps-text) !important; text-decoration: none !important; }

/* ─── Boutons maintenance — anti-override Astra focus/active ── */
body .maint-plan-btn-red,
body .maint-ct-plan-btn-red { background: var(--wps-red) !important; color: white !important; border: none !important; }
body .maint-plan-btn-red:hover,
body .maint-plan-btn-red:focus,
body .maint-plan-btn-red:focus-visible,
body .maint-plan-btn-red:active,
body .maint-ct-plan-btn-red:hover,
body .maint-ct-plan-btn-red:focus,
body .maint-ct-plan-btn-red:focus-visible,
body .maint-ct-plan-btn-red:active { background: var(--wps-red-d) !important; color: white !important; border: none !important; outline: none !important; box-shadow: none !important; }

body .maint-plan-btn-ghost,
body .maint-ct-plan-btn-ghost { background: transparent !important; color: var(--wps-muted) !important; border: 1.5px solid var(--wps-border) !important; outline: none !important; box-shadow: none !important; }
body .maint-plan-btn-ghost:hover,
body .maint-ct-plan-btn-ghost:hover { background: transparent !important; border-color: var(--wps-red) !important; color: var(--wps-red) !important; outline: none !important; box-shadow: none !important; }
body .maint-plan-btn-ghost:focus,
body .maint-plan-btn-ghost:focus-visible,
body .maint-plan-btn-ghost:active,
body .maint-ct-plan-btn-ghost:focus,
body .maint-ct-plan-btn-ghost:focus-visible,
body .maint-ct-plan-btn-ghost:active { background: transparent !important; color: var(--wps-muted) !important; border: 1.5px solid var(--wps-border) !important; outline: none !important; box-shadow: none !important; }

/* ─── Zone commentaires — liens (anti-couleur bleue Astra) ── */
.comments-area a,
.comment-form a,
#respond a { color: var(--wps-red) !important; }
.comments-area a:hover,
.comment-form a:hover,
#respond a:hover { color: var(--wps-red-d) !important; }

/* ─── Scroll to top (Astra) ─── */
#ast-scroll-top {
  right: 20px !important;
  border-radius: 3px !important;
  width: 33px !important;
  height: 33px !important;
  line-height: 33px !important;
  text-align: center !important;
}
html body #ast-scroll-top,
html body #ast-scroll-top:hover,
html body #ast-scroll-top:focus,
html body #ast-scroll-top:focus-visible,
html body #ast-scroll-top:active {
  outline: none !important;
  outline-style: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* ─────────────────────────────────────────
   CART ICON - Panier nav
───────────────────────────────────────── */
.wps-btn-cart {
  position: relative;
  display: none;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: 1px solid var(--wps-border);
  color: var(--wps-text);
  background: transparent;
  text-decoration: none;
  flex-shrink: 0;
  transition: background .15s;
}
.wps-btn-cart--visible {
  display: flex;
  animation: wpsCartAppear .38s cubic-bezier(.34,1.56,.64,1) both;
}
.wps-btn-cart:hover { background: #f0f4f9; }
.wps-btn-cart svg { width: 17px; height: 17px; position: relative; left: -1px; top: 1px; }
.wps-cart-count {
  position: absolute; top: -6px; right: -6px;
  background: var(--wps-red); color: white;
  font-size: 10px; font-weight: 700;
  min-width: 18px; height: 18px; border-radius: 100px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 4px; border: 2px solid white; line-height: 1;
}
.wps-fly-dot {
  position: fixed; width: 9px; height: 9px;
  background: var(--wps-red); border-radius: 50%;
  pointer-events: none; z-index: 9999;
}
@keyframes wpsCartAppear {
  from { transform: scale(.3) rotate(-15deg); opacity: 0; }
  to   { transform: scale(1)  rotate(0deg);   opacity: 1; }
}
@keyframes wpsCartBadgeBump {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.55); }
  100% { transform: scale(1); }
}
@keyframes wpsCartWiggle {
  0%,100% { transform: rotate(0);    }
  25%     { transform: rotate(-9deg); }
  75%     { transform: rotate( 9deg); }
}
.wps-cart-bump   { animation: wpsCartBadgeBump .32s cubic-bezier(.34,1.56,.64,1) both; }
.wps-cart-wiggle { animation: wpsCartWiggle .4s ease !important; }

/* ─────────────────────────────────────────
   CHECKOUT PAGE - Layout & titre
───────────────────────────────────────── */

/* Masquer titre, breadcrumb, et tout texte "Checkout" flottant */
body.wps-checkout-page .entry-header,
body.wps-checkout-page .entry-title,
body.wps-checkout-page .ast-breadcrumbs-wrapper,
body.wps-checkout-page .ast-breadcrumbs-wrap,
body.wps-checkout-page .rank-math-breadcrumb,
body.wps-checkout-page .breadcrumbs,
body.wps-checkout-page .breadcrumb-trail { display: none !important; }

/* Pleine largeur — pas de sidebar sur checkout */
body.wps-checkout-page #primary,
body.wps-checkout-page .content-area {
  width: 100% !important;
  float: none !important;
  max-width: none !important;
}
body.wps-checkout-page #secondary,
body.wps-checkout-page .widget-area { display: none !important; }

body.wps-checkout-page .site-primary,
body.wps-checkout-page .ast-article-single { padding: 0 !important; }

body.wps-checkout-page .entry-content {
  padding: 40px 32px !important;
  max-width: var(--wps-container) !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

body.wps-checkout-page .wp-block-surecart-checkout-form {
  min-height: calc(100vh - var(--wps-nav-h) - 80px);
}

@media (max-width: 640px) {
  body.wps-checkout-page .entry-content { padding: 24px 20px !important; }
}

/* ─────────────────────────────────────────
   CHECKOUT - Bannière plan sélectionné
───────────────────────────────────────── */
.wps-checkout-banner {
  margin: 0 0 24px;
}

.wps-co-plan {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: white;
  border: 1.5px solid var(--wps-border);
  border-radius: var(--wps-r);
  padding: 16px 20px;
  margin-bottom: 12px;
}

.wps-co-plan-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.wps-co-plan-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--wps-text);
}

.wps-co-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 100px;
  white-space: nowrap;
}
.wps-co-badge--monthly  { background: rgba(48,60,72,.1); color: var(--wps-blue); }
.wps-co-badge--annual   { background: rgba(22,163,74,.12); color: var(--wps-green); }
.wps-co-badge--gift     { background: rgba(22,163,74,.08); color: #15803d; }
.wps-co-badge--hosting  { background: rgba(48,60,72,.08); color: var(--wps-blue); }

.wps-co-plan-price {
  font-size: 20px;
  font-weight: 800;
  color: var(--wps-text);
  white-space: nowrap;
  letter-spacing: -.5px;
  flex-shrink: 0;
}
.wps-co-plan-price span {
  font-size: 13px;
  font-weight: 500;
  color: var(--wps-muted);
}

/* Upsell hébergement dans le checkout */
.wps-co-upsell {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-left: 3px solid var(--wps-green);
  border-radius: 0 var(--wps-r) var(--wps-r) 0;
  padding: 14px 16px;
}

.wps-co-upsell-icon { font-size: 24px; flex-shrink: 0; line-height: 1; }

.wps-co-upsell-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.wps-co-upsell-body strong {
  font-size: 13px;
  font-weight: 700;
  color: #14532d;
}
.wps-co-upsell-body span {
  font-size: 12px;
  color: #166534;
}

.wps-co-upsell-btn {
  background: var(--wps-green);
  color: white;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: var(--wps-r);
  white-space: nowrap;
  transition: background .15s;
  text-decoration: none;
  flex-shrink: 0;
}
.wps-co-upsell-btn:hover { background: #15803d; color: white; }

@media (max-width: 640px) {
  .wps-co-upsell { flex-wrap: wrap; }
  .wps-co-upsell-btn { width: 100%; text-align: center; }
}


