/* RED-K MOTORS - Styles CSS */
:root {
  --color-red: #b31217;
  --color-red-dark: #8a0e12;
  --color-red-light: #d41e24;
  --color-accent: #b31217;
  --color-link: var(--color-red-light);
  --color-link-hover: #ff6b6f;
  --color-black: #1f1f1f;
  --color-gray-dark: #2a2a2a;
  --color-gray: #555;
  --color-gray-light: #ececec;
  --color-white: #ffffff;
  --font-primary: 'Montserrat', sans-serif;
  --font-secondary: 'Open Sans', sans-serif;
  --cta-sticky-height: 72px;
  /* Conversion (surchargés par design-stitch) */
  --conv-bg: #ffffff;
  --conv-bg-alt: #ececec;
  --conv-card: #f7f7f7;
  --conv-card-hover: #ffffff;
  --conv-text: #1f1f1f;
  --conv-text-muted: #444;
  --conv-border: rgba(0, 0, 0, 0.1);
  --conv-band-bg: #e8e8e8;
  --conv-band-footer: #1f1f1f;
  --conv-band-card: #ffffff;
  --conv-band-footer-card: rgba(255, 255, 255, 0.06);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  overflow-x: clip;
}

body {
  font-family: var(--font-secondary);
  color: var(--color-black);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-width: 0;
  overflow-x: clip;
}

/* Liens inline dans le texte uniquement */
body :is(
  #main p,
  .faq__answer,
  .article-body,
  .article-excerpt,
  .article-byline,
  .legal-content,
  .direct-answer,
  .presta-listing__intro,
  .pricing-section__intro,
  .service-focus__inner > div > p,
  .conversion-contact p,
  .lead-strip__text
) a:is(:link, :visited):not(.btn):not([class*="btn--"]):not(.service-focus__problem-link):not(.site-footer a) {
  color: var(--color-link);
}

body :is(
  #main p,
  .faq__answer,
  .article-body,
  .article-excerpt,
  .article-byline,
  .legal-content,
  .direct-answer,
  .presta-listing__intro,
  .pricing-section__intro,
  .service-focus__inner > div > p,
  .conversion-contact p,
  .lead-strip__text
) a:is(:hover, :focus-visible):not(.btn):not([class*="btn--"]):not(.service-focus__problem-link):not(.site-footer a) {
  color: var(--color-link-hover);
}

body a.btn,
body a[class*="btn--"] {
  text-decoration: none;
}

#main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  text-align: center;
}

#main .container,
#main section,
#main h1, #main h2, #main h3, #main h4, #main h5, #main h6,
#main p, #main ul, #main ol, #main li, #main dl, #main dt, #main dd,
#main .promesse__item, #main .card, #main .checklist,
#main .tabs__panel, #main .tabs__panels, #main .about__inner, #main .tech-lab__content,
#main .tabs, #main .tabs__trigger, #main .tabs__panel-inner,
#main .atelier-suite, #main .section-header, #main .section-header > div {
  text-align: center;
}

#main .tabs__panel-inner > div {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: fit-content !important;
  max-width: 100%;
}

#main .checklist {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-left: 0;
  padding-inline-start: 0;
  list-style: none;
}

#main .checklist li {
  padding-left: 0;
  padding-right: 0;
  list-style: none;
}

#main .checklist li::before {
  content: '✓ ';
  color: var(--color-red);
  font-weight: bold;
  margin-right: 8px;
  position: static;
}

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

iframe, .map-frame {
  max-width: 100%;
}

.hero__video-player,
.hero__video-bg video {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.hero__video-player.is-video-skipped {
  display: none;
}

p, li, td, th, span, a, h1, h2, h3, h4 {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* Touch Targets - Minimum 44x44px for mobile */
@media (max-width: 768px) {
  button,
  a.btn,
  input[type="submit"],
  input[type="button"],
  .main-nav__toggle {
    min-height: 44px;
    min-width: 44px;
  }
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Skip Link */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--color-red);
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 100;
}

/* Header */
.main-header {
  background: rgba(31, 31, 31, 0.95);
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 2px solid var(--color-red);
}

.main-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 20px;
}

.logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  text-decoration: none;
  background: transparent;
}

.main-header .logo {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: 0;
}

.logo__img {
  /* Intrinsèque 676×129 après détourage ; hauteur pilote l’échelle */
  height: 52px;
  width: auto;
  max-width: min(82vw, 340px);
  aspect-ratio: 676 / 129;
  object-fit: contain;
  object-position: left center;
  display: block;
  background: transparent;
}

.logo__img--footer {
  height: 52px;
  max-width: min(100%, 280px);
}

.site-footer__brand {
  max-width: 320px;
}

.site-footer__logo {
  display: inline-flex;
  margin-bottom: 1rem;
}

.site-footer__brand .logo__img--footer {
  opacity: 1;
  width: auto;
  aspect-ratio: 676 / 129;
  object-fit: contain;
  object-position: left center;
}

.site-footer__bio {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92);
  max-width: 28rem;
}

.site-footer__bio a:is(:link, :visited) {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 2px;
}

.site-footer__bio a:is(:hover, :focus-visible) {
  color: #fff;
  text-decoration: underline;
}

.site-footer__credit-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  color: inherit;
  text-decoration: none;
  font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  opacity: 0.8;
  transition: opacity 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.site-footer__credit-link:active,
.site-footer__credit-link:focus-visible {
  opacity: 1;
}

@media (hover: hover) {
  .site-footer__credit-link:hover {
    opacity: 1;
  }
}

.merci-page__code {
  font-size: clamp(2.75rem, 14vw, 4rem);
  font-weight: 700;
  color: var(--color-red);
  margin-bottom: 0.5rem;
  line-height: 1;
}

.main-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  margin-left: auto;
}

.main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-nav__bar-links {
  display: none;
  align-items: center;
  gap: 8px;
  flex-shrink: 1;
  min-width: 0;
}

.main-nav__google-rating {
  display: none;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 1.55rem 0.45rem 0.55rem;
  min-height: 40px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.14);
  text-decoration: none;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: nowrap;
  flex: 0 0 auto;
  width: max-content;
  max-width: none;
  overflow: visible;
  box-sizing: border-box;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.main-nav__google-rating:hover,
.main-nav__google-rating:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--color-white);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  transform: translateY(-1px);
}

.main-nav__google-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 50%;
  flex-shrink: 0;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.main-nav__google-logo svg {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
}

.main-nav__google-stars {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  color: #fbbc04;
}

.main-nav__google-star {
  display: block;
  width: 0.72rem;
  height: 0.72rem;
  flex-shrink: 0;
}

.main-nav__google-meta {
  display: inline-flex;
  align-items: baseline;
  gap: 0.28rem;
  flex: 0 0 auto;
  min-width: 0;
  overflow: visible;
}

.main-nav__google-score {
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.01em;
  flex-shrink: 0;
}

.main-nav__google-sep {
  color: rgba(255, 255, 255, 0.35);
  font-weight: 400;
  flex-shrink: 0;
}

.main-nav__google-count {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.7rem;
  font-weight: 500;
  flex-shrink: 0;
  white-space: nowrap;
}

@media (min-width: 1100px) {
  .main-nav__google-rating {
    display: inline-flex;
  }

  .main-nav__bar-links {
    display: flex;
  }

  .main-nav #primary-menu > .main-nav__item--bar-fallback {
    display: none;
  }

  .main-nav .main-nav__toggle.btn {
    display: none;
  }
}

@media (max-width: 1099px) {
  .main-nav__bar-links {
    display: none !important;
  }

  .main-nav__phone {
    display: none !important;
  }

  .main-nav__toggle {
    display: inline-flex !important;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    align-items: center;
    justify-content: center;
  }

  .main-nav__google-rating {
    display: none;
    align-items: center;
  }

  .main-header__inner {
    gap: 10px;
    align-items: center;
  }

  .main-header .logo {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
  }

  .main-nav {
    flex: 0 0 auto;
    margin-left: auto;
    gap: 8px;
    align-items: center;
  }
}

@media (min-width: 768px) and (max-width: 1099px) {
  .main-nav__google-rating {
    display: inline-flex;
    padding: 0.35rem 0.55rem 0.35rem 0.35rem;
    gap: 0.35rem;
    min-height: 36px;
  }

  .main-nav__google-count,
  .main-nav__google-sep {
    display: none;
  }

  .main-header .logo {
    flex: 1 1 0;
    max-width: calc(100% - 9.5rem);
  }
}

@media (min-width: 1280px) {
  .main-nav__google-rating {
    padding: 0.5rem 1.75rem 0.5rem 0.6rem;
    gap: 0.5rem;
  }

  .main-nav__google-star {
    width: 0.78rem;
    height: 0.78rem;
  }
}

.main-nav__bar-link {
  flex-shrink: 0;
  z-index: 1003;
  position: relative;
  white-space: nowrap;
}

.main-nav__bar-item {
  position: relative;
  list-style: none;
}

.main-nav__bar-trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

.main-nav__bar-item--has-sub.is-open > .main-nav__bar-trigger.btn {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
  box-shadow: 0 6px 20px rgba(179, 18, 23, 0.4);
}

.main-nav__bar-item--has-sub.is-open > .main-nav__bar-trigger .main-nav__caret {
  transform: rotate(180deg);
}

.main-nav__bar-panel {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  min-width: 288px;
  max-width: min(92vw, 340px);
  transform: translateX(-50%) translateY(8px) scale(0.98);
  transform-origin: top center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.22s;
  z-index: 1004;
}

.main-nav__bar-panel::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 50%;
  width: 10px;
  height: 10px;
  transform: translateX(-50%) rotate(45deg);
  background: rgba(24, 24, 28, 0.96);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: -2px -2px 8px rgba(0, 0, 0, 0.12);
}

.main-nav__bar-item--has-sub.is-open > .main-nav__bar-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
}

.main-nav__bar-panel-inner {
  position: relative;
  overflow: hidden;
  padding: 10px;
  border-radius: 16px;
  background: rgba(24, 24, 28, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 8px 16px rgba(0, 0, 0, 0.18),
    0 24px 48px rgba(0, 0, 0, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.main-nav__bar-panel-inner::after {
  content: "";
  position: absolute;
  top: 0;
  left: 12%;
  right: 12%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(179, 18, 23, 0.85), transparent);
  pointer-events: none;
}

.main-nav__bar-panel-label {
  margin: 0 0 8px;
  padding: 6px 10px 0;
  font-family: var(--font-primary);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

.main-nav__bar-sub {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.main-nav__bar-sub-item {
  margin: 0;
}

.main-nav__bar-sub a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  white-space: normal;
  border: 1px solid transparent;
  transition:
    color 0.18s ease,
    background 0.18s ease,
    border-color 0.18s ease,
    transform 0.18s ease;
}

.main-nav__bar-sub a::after {
  content: "→";
  flex-shrink: 0;
  font-size: 0.85rem;
  line-height: 1;
  color: var(--color-red-light);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.main-nav__bar-sub-item--hub a {
  background: rgba(179, 18, 23, 0.14);
  border-color: rgba(179, 18, 23, 0.28);
  font-weight: 600;
  color: var(--color-white);
}

.main-nav__bar-sub a:hover,
.main-nav__bar-sub a:focus-visible {
  color: var(--color-white);
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.1);
  transform: translateX(2px);
}

.main-nav__bar-sub a:hover::after,
.main-nav__bar-sub a:focus-visible::after {
  opacity: 1;
  transform: translateX(0);
}

.main-nav__bar-sub-item--hub a:hover,
.main-nav__bar-sub-item--hub a:focus-visible {
  background: rgba(179, 18, 23, 0.24);
  border-color: rgba(179, 18, 23, 0.45);
}

.main-nav__bar-sub a[aria-current="page"] {
  color: var(--color-white);
  background: rgba(179, 18, 23, 0.22);
  border-color: rgba(179, 18, 23, 0.4);
  box-shadow: inset 3px 0 0 var(--color-red-light);
}

.main-nav__bar-sub a[aria-current="page"]::after {
  opacity: 1;
  transform: translateX(0);
}

.main-nav__cta {
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.35;
  white-space: normal;
  flex-shrink: 0;
  min-height: 48px;
  max-width: 100%;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.main-nav__phone {
  flex-shrink: 0;
  border-radius: 999px;
  z-index: 1003;
  position: relative;
  white-space: nowrap;
}

.main-nav__item--cta {
  display: list-item;
  width: 100%;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  margin-bottom: 4px;
  padding: 4px 0 12px;
}

.main-nav__item {
  position: relative;
}

.main-nav a,
.main-nav__trigger {
  color: var(--color-white);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s, background 0.2s ease;
  background: none;
  border: none;
  font: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
}

.main-nav a:hover,
.main-nav a[aria-current="page"],
.main-nav__trigger:hover,
.main-nav__item.is-active > .main-nav__trigger {
  color: var(--color-red);
}

.main-nav__caret {
  font-size: 0.65em;
  line-height: 1;
  opacity: 0.85;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.main-nav__item--has-sub.is-open > .main-nav__trigger .main-nav__caret,
.main-nav__item--has-sub:focus-within > .main-nav__trigger .main-nav__caret {
  transform: rotate(180deg);
}

.main-nav__sub {
  list-style: none;
  margin: 0 0 6px;
  padding: 0 0 4px 10px;
  min-width: 0;
  width: 100%;
  position: static;
  transform: none;
  background: rgba(0, 0, 0, 0.2);
  border: none;
  border-left: 2px solid rgba(179, 18, 23, 0.45);
  border-radius: 0 0 10px 10px;
  box-shadow: none;
  opacity: 1;
  visibility: hidden;
  pointer-events: none;
  display: none;
}

.main-nav__item--has-sub.is-open > .main-nav__sub,
.main-nav__item--has-sub.is-active.is-open > .main-nav__sub {
  display: block;
  visibility: visible;
  pointer-events: auto;
}

.main-nav__sub li {
  margin: 0;
  border-bottom: none;
}

.main-nav__sub a {
  display: flex;
  align-items: center;
  padding: 12px 10px;
  font-size: 14px;
  min-height: 44px;
  border-radius: 8px;
  width: 100%;
  white-space: normal;
  color: rgba(255, 255, 255, 0.88);
}

.main-nav__sub a:hover,
.main-nav__sub a[aria-current="page"] {
  color: var(--color-red);
  background: rgba(179, 18, 23, 0.1);
}

.main-nav__toggle {
  /* display défini par breakpoint (mobile/tablette uniquement) — voir @media max-width 1099px */
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
  z-index: 1003;
  position: relative;
  border-radius: 999px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.main-nav__toggle-label {
  font-family: var(--font-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.main-nav__bars {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 22px;
  height: 18px;
}

.main-nav__bar {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform 0.25s ease, opacity 0.2s ease, width 0.25s ease;
  transform-origin: center;
}

.main-nav__toggle[aria-expanded="true"] .main-nav__bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.main-nav__toggle[aria-expanded="true"] .main-nav__bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.main-nav__toggle[aria-expanded="true"] .main-nav__bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.main-nav__backdrop {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 1001;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.main-nav__backdrop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.main-nav #primary-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  left: auto;
  transform: none;
  width: min(100dvw, 360px);
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: calc(72px + env(safe-area-inset-top, 0px)) 20px max(24px, env(safe-area-inset-bottom));
  flex-direction: column;
  gap: 0;
  background: rgba(19, 19, 23, 0.98);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.45);
  border: none;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  z-index: 1002;
}

.main-nav #primary-menu.is-open {
  display: flex;
}

.main-nav #primary-menu > .main-nav__item {
  width: 100%;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.main-nav #primary-menu > .main-nav__item:last-child {
  border-bottom: none;
}

.main-nav__trigger,
.main-nav #primary-menu > .main-nav__item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 10px;
  font-size: 15px;
  min-height: 48px;
  text-align: left;
  border-radius: 10px;
}

.main-nav #primary-menu > .main-nav__item > a {
  justify-content: flex-start;
}

.main-nav #primary-menu .main-nav__caret {
  font-size: 12px;
  margin-left: 8px;
}

.main-nav #primary-menu a:hover,
.main-nav #primary-menu a[aria-current="page"],
.main-nav #primary-menu .main-nav__trigger:hover,
.main-nav #primary-menu .main-nav__item.is-active > .main-nav__trigger,
.main-nav #primary-menu .main-nav__trigger[aria-expanded="true"] {
  color: var(--color-red);
  background: rgba(179, 18, 23, 0.1);
}

body.is-nav-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
  left: 0;
  right: 0;
}

/*
  body top:-scrollY keeps page content visually stable, but the sticky
  header (in-flow at document y=0) would leave the viewport. Offset it
  back with the same scroll lock value; position:relative keeps layout
  space and does not create a fixed containing block for the drawer.
*/
body.is-nav-open .main-header {
  position: relative;
  top: var(--nav-scroll-lock, 0px);
  z-index: 10053;
}

body.is-nav-open .main-nav__toggle {
  position: relative;
  z-index: 10054;
}

body.is-nav-open .main-nav__backdrop.is-visible {
  z-index: 10051;
}

body.is-nav-open .main-nav #primary-menu.is-open {
  z-index: 10052;
}

@media (min-width: 768px) {
  .main-nav #primary-menu {
    width: min(100dvw, 420px);
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* Nav desktop : barre horizontale sans drawer ni doublons bar/mobile */
@media (min-width: 1100px) {
  .main-header__inner {
    align-items: center;
    gap: clamp(8px, 1.1vw, 14px);
  }

  .main-header .logo {
    flex: 0 1 auto;
    min-width: 0;
    max-width: min(300px, 34vw);
  }

  .main-nav {
    flex: 0 1 auto;
    min-width: 0;
    flex-wrap: nowrap;
  }

  .main-nav__bar-links {
    flex: 0 1 auto;
    min-width: 0;
  }

  .main-nav .main-nav__toggle.btn {
    display: none;
  }

  .main-nav #primary-menu:not(.is-open) {
    display: none;
  }

  .main-nav #primary-menu > .main-nav__item--bar-fallback {
    display: none;
  }
}

@media (min-width: 1100px) and (max-width: 1279px) {
  .main-nav__google-count,
  .main-nav__google-sep {
    display: none;
  }

  .main-nav__google-rating {
    padding: 0.42rem 0.7rem 0.42rem 0.48rem;
    gap: 0.38rem;
  }

  .main-nav .main-nav__phone.btn,
  .main-nav .main-nav__bar-link.btn {
    padding: 8px 16px;
    font-size: 0.78rem;
    min-height: 42px;
  }

  .main-nav {
    gap: 6px;
  }
}

/* Hero Section */
.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  overflow: clip;
  touch-action: pan-y;
}

.hero__video-bg,
.hero__img-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: clip;
  pointer-events: none;
  background: linear-gradient(135deg, var(--color-black) 0%, var(--color-red-dark) 50%, var(--color-red) 100%);
}

.hero__img-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(179, 18, 23, 0.6) 0%, rgba(31, 31, 31, 0.5) 100%);
  z-index: 2;
  pointer-events: none;
}

.hero__content {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 80px 20px;
}

.hero__kicker {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 20px;
  color: rgba(255, 255, 255, 0.9);
}

.hero h1 {
  font-family: var(--font-primary);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 20px;
}

.hero p {
  font-size: 18px;
  max-width: 800px;
  margin: 0 auto 30px;
  color: rgba(255, 255, 255, 0.95);
}

.hero__actions {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Accueil — hero CRO : texte et CTA visibles tôt sur mobile */
.hero--home-cro .hero__content {
  padding-top: clamp(48px, 10vh, 80px);
  padding-bottom: clamp(28px, 6vh, 48px);
}

.hero--home-cro .hero h1 {
  font-size: clamp(1.45rem, 5.2vw, 2.6rem);
  line-height: 1.12;
  margin-bottom: 12px;
}

.hero h1 .hero__title-main,
.hero h1 .hero__title-sub {
  display: block;
}

.hero h1 .hero__title-sub {
  font-size: 0.72em;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-top: 0.2em;
  color: rgba(255, 255, 255, 0.92);
}

.hero--home-cro .hero .hero__lede {
  font-size: clamp(0.92rem, 3.1vw, 1.08rem);
  line-height: 1.45;
  max-width: 26rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}

.hero--home-cro .hero__actions--cro {
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
}

.hero--home-cro .hero__actions--cro .btn {
  width: 100%;
  text-align: center;
  min-height: 48px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 480px) {
  .hero--home-cro .hero__actions--cro {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    max-width: none;
    width: auto;
  }

  .hero--home-cro .hero__actions--cro .btn {
    width: auto;
    min-width: 196px;
  }
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 38px;
  min-height: 48px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s ease, background 0.25s ease;
  border: 2px solid transparent;
  cursor: pointer;
}

.btn--primary {
  background: var(--color-red);
  color: var(--color-white);
  border-color: var(--color-red);
  box-shadow: 0 4px 14px rgba(179, 18, 23, 0.25);
}

.btn--primary:hover {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(179, 18, 23, 0.45);
}

.main-nav .main-nav__phone.btn,
.main-nav .main-nav__bar-link.btn,
.main-nav .main-nav__toggle.btn {
  padding: 10px 22px;
  min-height: 44px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  border-radius: 999px;
  color: var(--color-white);
}

.main-nav .main-nav__toggle.btn {
  padding: 10px 18px 10px 16px;
}

.main-nav .main-nav__bar-link.btn[aria-current="page"] {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
}

.main-nav .btn.btn--primary:hover {
  transform: none;
}

@media (min-width: 992px) {
  .main-nav {
    gap: 12px;
  }

  .main-nav__bar-links {
    gap: 10px;
  }

  .main-nav .main-nav__phone.btn,
  .main-nav .main-nav__bar-link.btn {
    padding: 10px 24px;
  }

  .main-nav .main-nav__toggle.btn {
    padding: 10px 20px 10px 18px;
  }
}

@media (max-width: 420px) {
  .main-nav .main-nav__toggle.btn {
    padding: 10px;
    min-width: 44px;
    justify-content: center;
  }

  .main-nav__toggle-label {
    display: none;
  }
}

.btn--secondary {
  background: transparent;
  color: var(--color-white);
  border-color: var(--color-white);
}

.btn--secondary:hover {
  background: var(--color-white);
  color: var(--color-black);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(255, 255, 255, 0.15);
}

.btn--ghost {
  background: transparent;
  color: var(--color-white);
  border-color: var(--color-white);
  padding: 8px 20px;
  font-size: 14px;
}

/* Services Section */
.services {
  padding: 100px 0;
  background: var(--color-white);
}

.services h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  text-align: center;
  margin-bottom: 50px;
  color: var(--color-black);
}

.grid {
  display: grid;
  gap: 30px;
}

.grid--four {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.grid--three {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.card {
  background: var(--color-gray-light);
  padding: 40px;
  border-radius: 12px;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.card--link {
  display: block;
  text-decoration: none;
  color: inherit;
  border-left: 3px solid var(--color-accent, #b31217);
}

.card--link h3 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  transition: color 0.2s;
}

.card--link:hover h3 {
  color: var(--color-accent, #b31217);
}

.card--link p {
  font-size: 0.95rem;
  opacity: 0.85;
}

.related-articles {
  padding: 4rem 0 2rem;
}

.related-articles h2 {
  margin-bottom: 2rem;
}

.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.card h3 {
  font-family: var(--font-primary);
  font-size: 24px;
  margin-bottom: 15px;
  color: var(--color-red);
}

/* Accueil — cartes services : même couleur que le titre (pas bleu / violet visité) */
.services .card h3 a,
.services .card h3 a:link,
.services .card h3 a:visited {
  color: var(--color-red);
  text-decoration: none;
}

.services .card h3 a:hover,
.services .card h3 a:focus-visible {
  color: var(--color-red-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.services .card .pill-list a,
.services .card .pill-list a:visited {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}

.services .card .pill-list a:hover,
.services .card .pill-list a:focus-visible {
  color: var(--color-red);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pill-list {
  list-style: none;
  margin-top: 20px;
}

.pill-list li {
  display: inline-block;
  background: var(--color-white);
  padding: 5px 15px;
  border-radius: 20px;
  margin: 5px 5px 5px 0;
  font-size: 14px;
  color: var(--color-gray);
}

/* Scroll Progress */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: rgba(0, 0, 0, 0.1);
  z-index: 9999;
}

.scroll-progress__indicator {
  display: block;
  height: 100%;
  background: var(--color-red);
  width: 0%;
  transition: width 0.1s;
}

/* Footer */
.site-footer {
  background: var(--color-black);
  color: var(--color-white);
  padding: 60px 0 20px;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) repeat(auto-fit, minmax(180px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
  align-items: start;
}

.site-footer h3 {
  font-family: var(--font-primary);
  color: #d41e24;
  margin-bottom: 20px;
  font-weight: 700;
}

.site-footer ul {
  list-style: none;
}

.site-footer ul li {
  margin-bottom: 10px;
}

.site-footer a:is(:link, :visited) {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  transition: color 0.3s;
}

.site-footer a:is(:hover, :focus-visible) {
  color: var(--color-red-light);
}

.site-footer__nap {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.75);
}

.site-footer__nap a {
  color: inherit;
}

.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.site-footer__bottom p {
  margin: 0;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
}

.site-footer__bottom p:last-child {
  margin-top: 15px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  opacity: 1;
  letter-spacing: 0.5px;
}

.site-footer__bottom p:nth-child(2) a:is(:link, :visited),
.site-footer__bottom a:is(:link, :visited) {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: color 0.3s ease;
}

.site-footer__bottom p:nth-child(2) a:is(:hover, :focus-visible),
.site-footer__bottom a:is(:hover, :focus-visible) {
  color: var(--color-red-light);
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Pages légales (confidentialité, cookies) — lisibilité + alignement gauche
   (surcharge #main qui centre tout le reste du site)
   -------------------------------------------------------------------------- */
#main .legal-content {
  text-align: left;
  background: linear-gradient(180deg, #f0f0f2 0%, var(--color-gray-light) 40%, #ebecef 100%);
  padding: 2.5rem 0 4rem;
}

#main .legal-content .container {
  text-align: left;
}

#main .legal-content .legal-content__inner {
  text-align: left;
  max-width: 46rem;
  margin-left: auto;
  margin-right: auto;
  background: var(--color-white);
  padding: 2.25rem 2.5rem 2.75rem;
  border-radius: 14px;
  border: 1px solid rgba(31, 31, 31, 0.08);
  box-shadow:
    0 1px 2px rgba(31, 31, 31, 0.04),
    0 12px 40px rgba(31, 31, 31, 0.06);
}

#main .legal-content .legal-content__intro {
  font-family: var(--font-secondary);
  font-size: 0.9rem;
  color: var(--color-gray);
  margin: 0 0 2rem;
  padding: 0.85rem 1.1rem;
  background: rgba(179, 18, 23, 0.06);
  border-left: 4px solid var(--color-red);
  border-radius: 0 8px 8px 0;
  line-height: 1.5;
}

#main .legal-content .legal-content__intro strong {
  color: var(--color-black);
  font-weight: 700;
}

#main .legal-content .legal-content__related {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: -0.25rem 0 1.75rem;
}

#main .legal-content .legal-content__related-link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.95rem;
  font-family: var(--font-primary);
  font-size: 0.82rem;
  font-weight: 600;
  border: 1px solid rgba(179, 18, 23, 0.35);
  border-radius: 999px;
  color: var(--color-red-dark);
  background: rgba(255, 255, 255, 0.9);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

#main .legal-content .legal-content__related-link:hover {
  background: rgba(179, 18, 23, 0.08);
  border-color: var(--color-red);
  color: var(--color-red);
}

#main .legal-content h2 {
  font-family: var(--font-primary);
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  font-weight: 700;
  color: var(--color-black);
  margin: 2rem 0 0.75rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid rgba(179, 18, 23, 0.2);
  text-align: left;
  letter-spacing: -0.02em;
}

#main .legal-content h2:first-of-type {
  margin-top: 0;
}

#main .legal-content h3 {
  font-family: var(--font-primary);
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--color-red-dark);
  margin: 1.35rem 0 0.5rem;
  text-align: left;
}

#main .legal-content p {
  font-family: var(--font-secondary);
  font-size: 0.98rem;
  line-height: 1.75;
  color: #2c2c2c;
  margin: 0 0 1rem;
  text-align: left;
  max-width: none;
}

#main .legal-content ul {
  font-family: var(--font-secondary);
  font-size: 0.98rem;
  line-height: 1.65;
  color: #2c2c2c;
  margin: 0 0 1.15rem;
  padding-left: 1.35rem;
  list-style-type: disc;
  list-style-position: outside;
  text-align: left;
}

#main .legal-content li {
  margin-bottom: 0.45rem;
  text-align: left;
}

#main .legal-content li::marker {
  color: var(--color-red);
}

#main .legal-content a:link,
#main .legal-content a:visited {
  color: var(--color-red-light, #d41e24);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

#main .legal-content a:hover,
#main .legal-content a:focus-visible {
  color: var(--color-red-dark);
  text-decoration-color: var(--color-red-dark);
}

#main .legal-content .legal-content__related-link,
#main .legal-content .legal-content__related-link:hover {
  text-decoration: none;
}

#main .legal-content .legal-content__callout {
  margin: 1rem 0 1.5rem;
  padding: 1.1rem 1.25rem;
  background: var(--color-gray-light);
  border-radius: 10px;
  border: 1px solid rgba(31, 31, 31, 0.08);
}

#main .legal-content .legal-content__callout p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

#main .legal-content .legal-content__callout a {
  word-break: break-word;
}

/* Back to Top */
.back-to-top {
  position: fixed;
  bottom: 100px;
  right: 30px;
  width: 50px;
  height: 50px;
  background: var(--color-red);
  color: white;
  border: none;
  border-radius: 50%;
  font-size: 24px;
  cursor: pointer;
  display: none;
  z-index: 1001;
  transition: all 0.3s;
}

.back-to-top:hover {
  background: var(--color-red-dark);
  transform: translateY(-5px);
}

.back-to-top.visible {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* WhatsApp Float Button */
.whatsapp-float {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 60px;
  height: 60px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
  z-index: 1000;
  transition: all 0.3s ease;
  text-decoration: none;
}

.whatsapp-float:hover {
  background: #20BA5A;
  transform: translateY(-5px) scale(1.05);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.6);
}

.whatsapp-float svg {
  width: 32px;
  height: 32px;
}

.back-to-top:focus-visible {
  outline: 3px solid var(--color-white);
  outline-offset: 2px;
}

/* ========== RESPONSIVE MOBILE ========== */

/* Announce Bar Mobile */
.announce-bar {
  padding: 10px 0;
  background: var(--color-red);
  color: var(--color-white);
  font-size: 14px;
  text-align: center;
}

.announce-bar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

.announce-bar__text {
  font-weight: 600;
}

.announce-bar__cta {
  color: var(--color-white);
  text-decoration: underline;
  font-weight: 700;
  white-space: nowrap;
}

/* Trust Bar */
.trust-bar {
  background: var(--color-black);
  padding: 30px 0;
}

.trust-bar__inner {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}

.trust-bar__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: var(--color-white);
  gap: 5px;
}

.trust-bar__icon {
  font-size: 28px;
}

.trust-bar__item strong {
  font-family: var(--font-primary);
  font-size: 16px;
}

.trust-bar__item span:last-child {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
}

/* Guarantees Block */
.guarantees-block {
  background: var(--color-gray-light);
  padding: 40px 0;
  text-align: center;
}

.guarantees-block__title {
  font-family: var(--font-primary);
  font-size: 28px;
  margin-bottom: 20px;
  color: var(--color-black);
}

.guarantees-block__list {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.guarantees-block__list li {
  font-weight: 600;
  color: var(--color-red);
  font-size: 16px;
}

/* Promesse */
.promesse {
  padding: 60px 0;
  background: var(--color-white);
}

.promesse__title {
  font-family: var(--font-primary);
  font-size: 32px;
  text-align: center;
  margin-bottom: 40px;
  color: var(--color-black);
}

.promesse__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
}

.promesse__item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 20px;
}

.promesse__icon {
  color: var(--color-red);
  font-size: 24px;
  font-weight: bold;
  flex-shrink: 0;
}

/* Launch Offer */
.launch-offer {
  padding: 60px 0;
  background: var(--color-black);
  color: var(--color-white);
  text-align: center;
}

.launch-offer__inner {
  max-width: 700px;
  margin: 0 auto;
}

.launch-offer__title {
  font-family: var(--font-primary);
  font-size: 28px;
  margin-bottom: 20px;
}

.launch-offer__text {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 30px;
  line-height: 1.7;
}

.launch-offer__actions {
  display: flex;
  gap: 15px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Tablet breakpoint */
@media (max-width: 1024px) {
  .hero h1 {
    font-size: 40px;
  }

  .services h2,
  .services-links h2,
  .why-us h2,
  .about h2,
  .faq-section h2,
  .appointment h2 {
    font-size: 32px;
  }

  .about__inner,
  .appointment__inner,
  .tech-lab__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .trust-bar__inner {
    gap: 25px;
  }
}

/* Mobile breakpoint */
@media (max-width: 768px) {
  html {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }

  button,
  a,
  .main-nav__trigger,
  .faq__question {
    touch-action: manipulation;
  }

  .scroll-progress {
    top: env(safe-area-inset-top, 0px);
  }

  html, body {
    overflow-x: clip;
  }

  body {
    line-height: 1.7;
    letter-spacing: 0.01em;
  }

  p, li, dd {
    font-size: 15px;
    line-height: 1.75;
  }

  .container {
    padding: 0 16px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .site-footer a,
  .socials a,
  .whatsapp-link,
  .services .card .pill-list a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
  }

  .faq__question {
    min-height: 48px;
    text-align: left;
  }

  /* Flex/Grid enfants : autoriser le rétrécissement pour éviter débordement */
  .grid, .promesse__grid, .services-links__grid, .why-us__grid, .appointment__inner, .tech-lab__inner {
    min-width: 0;
  }

  /* Tables : scroll horizontal si trop large */
  .process-matrix__table,
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Sections : pas de débordement */
  section {
    overflow-x: clip;
    max-width: 100%;
  }

  /* Announce Bar */
  .announce-bar {
    padding: 8px 0;
    font-size: 12px;
  }

  .announce-bar__inner {
    flex-direction: column;
    gap: 8px;
  }

  .announce-bar__text {
    font-size: 12px;
    line-height: 1.4;
  }

  .announce-bar__cta {
    font-size: 13px;
    padding: 10px 16px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 20px;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  /* Header */
  .main-header__inner {
    padding: 12px 16px;
  }

  .logo__img {
    height: 44px;
    max-width: 100%;
  }

  .logo__img--footer {
    height: 38px;
    max-width: min(70vw, 240px);
  }

  #main .legal-content {
    padding: 1.5rem 0 3rem;
  }

  #main .legal-content .legal-content__inner {
    padding: 1.5rem 1.15rem 2rem;
    border-radius: 10px;
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
  }

  #main .legal-content h2 {
    font-size: 1.12rem;
  }

  /* Hero */
  .hero {
    min-height: 80vh;
    min-height: 80dvh;
  }

  .hero--expanded {
    min-height: 85vh;
    min-height: 85dvh;
  }

  .hero--subpage {
    min-height: 50vh;
    min-height: 50dvh;
  }

  .hero__content {
    padding: 60px 16px 40px;
  }

  .hero__kicker {
    font-size: 11px;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
  }

  .hero h1 {
    font-size: 26px;
    line-height: 1.3;
    margin-bottom: 12px;
  }

  .hero p {
    font-size: 14px;
    margin-bottom: 24px;
    line-height: 1.6;
  }

  .hero__actions {
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  /* Buttons — pleine largeur sauf header / nav */
  .btn {
    width: 100%;
    text-align: center;
    padding: 14px 24px;
    font-size: 15px;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .main-header .btn,
  .main-nav .btn {
    width: auto;
    min-width: 0;
    flex-shrink: 0;
  }

  /* Trust Bar */
  .trust-bar {
    padding: 20px 0;
  }

  .trust-bar__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1rem;
    justify-items: center;
    align-items: start;
  }

  .trust-bar__item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: none;
    gap: 5px;
  }

  .trust-bar__icon {
    font-size: 24px;
    flex-shrink: 0;
  }

  .trust-bar__item strong {
    font-size: 14px;
  }

  .trust-bar__item span:last-child {
    font-size: 12px;
  }

  /* Guarantees */
  .guarantees-block {
    padding: 25px 0;
  }

  .guarantees-block__title {
    font-size: 22px;
  }

  .guarantees-block__list {
    flex-direction: column;
    gap: 10px;
  }

  .guarantees-block__list li {
    font-size: 14px;
  }

  /* Promesse */
  .promesse {
    padding: 40px 0;
  }

  .promesse__title {
    font-size: 24px;
    margin-bottom: 25px;
  }

  .promesse__grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .promesse__item {
    padding: 15px;
  }

  /* Sections */
  .services,
  .services-links,
  .why-us,
  .about,
  .faq-section,
  .appointment,
  .service-focus,
  .atelier-suite,
  .workflow,
  .tech-lab,
  .process-intro,
  .process-timeline,
  .process-modules,
  .process-matrix,
  .process-cta {
    padding: 40px 0;
  }

  .services h2,
  .services-links h2,
  .why-us h2,
  .about h2,
  .faq-section h2,
  .appointment h2,
  .service-focus h2,
  .section-header h2,
  .workflow__intro h2,
  .tech-lab__content h2,
  .process-modules__intro h2,
  .process-matrix__content h2,
  .process-cta__inner h2 {
    font-size: 24px;
    margin-bottom: 25px;
  }

  /* Cards */
  .card {
    padding: 24px 18px;
  }

  .card h3 {
    font-size: 18px;
  }

  .card p {
    font-size: 14px;
    line-height: 1.6;
  }

  .services-links__card {
    padding: 24px 18px;
  }

  .services-links__icon {
    font-size: 36px;
    margin-bottom: 12px;
  }

  .services-links__card strong {
    font-size: 17px;
  }

  /* Grids */
  .grid--four,
  .grid--three {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .services-links__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .why-us__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .why-us article {
    padding: 20px;
  }

  .why-us article h3 {
    font-size: 18px;
  }

  /* About & Appointment */
  .about__inner,
  .appointment__inner,
  .service-focus__inner,
  .tabs__panel-inner,
  .tech-lab__inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .about h2,
  .appointment h2 {
    font-size: 24px;
    margin-bottom: 15px;
  }

  .about p {
    font-size: 14px;
    line-height: 1.7;
  }

  /* Forms */
  .form {
    padding: 20px 16px;
  }

  .form__group {
    margin-bottom: 16px;
  }

  .form label {
    font-size: 14px;
    margin-bottom: 6px;
  }

  .form input,
  .form select,
  .form textarea {
    padding: 14px 14px;
    font-size: 16px;
    min-height: 48px;
    border-radius: 10px;
  }

  /* Launch Offer */
  .launch-offer {
    padding: 40px 0;
  }

  .launch-offer__inner {
    max-width: 100%;
  }

  .launch-offer__title {
    font-size: 22px;
  }

  .launch-offer__text {
    font-size: 14px;
  }

  .launch-offer__cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .launch-offer__card {
    padding: 20px 16px;
  }

  .launch-offer__actions {
    flex-direction: column;
    width: 100%;
  }

  .launch-offer__btn {
    width: 100%;
  }

  /* Tabs */
  .tabs {
    flex-wrap: wrap;
    gap: 5px;
    border-bottom: 2px solid #e0e0e0;
  }

  .tabs__trigger {
    padding: 10px 16px;
    font-size: 13px;
    flex: 1;
    min-width: calc(50% - 5px);
    text-align: center;
  }

  /* Workflow */
  .workflow__steps {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .workflow__step-number {
    font-size: 36px;
  }

  .workflow__steps > li {
    padding: 24px 18px;
  }

  .workflow__steps > li h3 {
    font-size: 17px;
  }

  /* Process */
  .process-timeline__track::before {
    left: 25px;
  }

  .process-timeline__track > li {
    padding-left: 70px;
  }

  .process-step__badge {
    width: 50px;
    height: 50px;
    font-size: 18px;
  }

  .process-timeline__track > li h3 {
    font-size: 18px;
  }

  .process-matrix__row {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 15px;
  }

  .process-matrix__row--head {
    display: none;
  }

  .process-matrix__row span:first-child {
    font-weight: 700;
    color: var(--color-red);
    margin-bottom: 8px;
    display: block;
  }

  .process-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .process-cta__actions .btn {
    width: 100%;
  }

  /* Footer */
  .site-footer {
    padding: 40px 0 20px;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 25px;
    text-align: center;
  }

  .site-footer__brand {
    max-width: none;
    margin: 0 auto;
  }

  .site-footer__logo {
    justify-content: center;
  }

  .site-footer h3 {
    text-align: center;
    font-size: 16px;
  }

  .site-footer p {
    font-size: 14px;
  }

  .site-footer__bottom {
    flex-direction: column;
    text-align: center;
    gap: 10px;
  }

  .site-footer__bottom p:nth-child(2) {
    font-size: 12px;
  }

  .site-footer__bottom p:last-child {
    font-size: 13px;
    margin-top: 10px;
  }

  .socials {
    align-items: center;
  }

  /* Barre sticky = Appeler + WhatsApp : masquer la bulle flottante */
  .whatsapp-float {
    display: none;
  }

  .back-to-top {
    width: 44px;
    height: 44px;
    bottom: max(calc(var(--cta-sticky-height) + 12px), calc(var(--cta-sticky-height) + env(safe-area-inset-bottom, 0px)));
    right: calc(14px + env(safe-area-inset-right, 0px));
    font-size: 18px;
  }

  #main .tabs__panel-inner > div {
    width: 100% !important;
    max-width: 100%;
  }

  .blog-filter-chip {
    padding: 0.65rem 0.9rem;
    min-height: 44px;
  }

  .form__chip {
    padding: 12px 18px;
    min-height: 44px;
  }

  .pricing-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .pricing-table tbody td {
    white-space: normal;
  }

  /* About — 1 colonne sur mobile */
  .about__inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .about__highlights {
    gap: 16px;
  }

  .highlight-card {
    padding: 20px;
  }

  .highlight-card h3 {
    font-size: 17px;
  }

  /* Map */
  .map-frame {
    height: 250px;
  }

  /* Highlights */
  .highlight {
    padding: 18px;
  }

  .highlight strong {
    font-size: 28px;
  }

  /* Section Kicker */
  .section-kicker {
    font-size: 11px;
  }

  /* Pill List */
  .pill-list {
    margin-top: 12px;
  }

  .pill-list li {
    font-size: 12px;
    padding: 4px 10px;
    margin: 3px 3px 3px 0;
  }

  /* Process Cards */
  .process-modules__cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .process-card {
    padding: 20px 18px;
  }

  .process-card h3 {
    font-size: 17px;
  }

  /* Process Hero */
  .process-hero__meta {
    flex-direction: column;
    gap: 12px;
  }

  .process-hero__meta-card {
    padding: 10px 18px;
    font-size: 13px;
  }

  /* Service Focus Visual */
  .service-focus__visual {
    font-size: 80px;
  }

  /* Tabs Panel Visual — visible en premier sur mobile (modules HUD) */
  .tabs__panel-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .tabs__panel-visual {
    order: -1;
    padding: 24px 16px;
    min-height: 100px;
    margin-bottom: 20px;
  }

  .hud {
    font-size: 14px;
    text-align: center;
    line-height: 1.3;
  }

  /* Workflow Intro */
  .workflow__intro {
    margin-bottom: 30px;
  }

  /* FAQ */
  .faq__question {
    padding: 14px 16px;
    font-size: 15px;
    gap: 10px;
  }

  .faq__question::after {
    font-size: 20px;
    flex-shrink: 0;
  }

  .faq__answer {
    padding: 0 16px;
    font-size: 14px;
  }

  .faq__answer.is-open {
    padding: 0 16px 14px;
  }

  /* Highlight Cards */
  .highlight-card {
    padding: 18px;
  }

  .highlight-card h3 {
    font-size: 17px;
  }

  /* Pill */
  .pill {
    padding: 15px;
  }

  .pill h3 {
    font-size: 17px;
  }

  /* Section Header */
  .section-header {
    margin-bottom: 25px;
  }

  /* Process CTA */
  .process-cta__inner {
    padding: 0 16px;
  }

  /* Appointment info — empilé sur mobile */
  .appointment__info {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  /* Offer banner mobile */
  .offer-banner {
    font-size: 12px;
  }

  .offer-banner__inner {
    padding: 6px 36px 6px 12px;
    text-align: center;
  }

  /* Trust block mobile */
  .trust-block {
    padding: 40px 0;
  }

  .trust-block__title {
    font-size: 22px;
    margin-bottom: 24px;
  }

  .trust-block__grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .trust-block__item {
    padding: 18px 12px;
  }

  /* Why-us grid forced 1 col */
  .why-us__grid {
    grid-template-columns: 1fr;
  }

  /* iOS zoom prevention on inputs */
  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }

  /* Better tap targets */
  a,
  button {
    -webkit-tap-highlight-color: rgba(179, 18, 23, 0.15);
  }

}

/* Very Small Screens (iPhone SE, etc.) */
@media (max-width: 480px) {
  .services-links__grid {
    grid-template-columns: 1fr;
  }

  .hero {
    min-height: 75vh;
    min-height: 75dvh;
  }

  .hero--expanded {
    min-height: 80vh;
    min-height: 80dvh;
  }

  .hero h1 {
    font-size: 22px;
  }

  .hero p {
    font-size: 13px;
  }

  .hero__kicker {
    font-size: 11px;
    letter-spacing: 0.08em;
  }

  .hero__content {
    padding: 50px 14px 30px;
  }

  .services h2,
  .services-links h2,
  .why-us h2,
  .about h2,
  .faq-section h2,
  .appointment h2,
  .service-focus h2 {
    font-size: 21px;
  }

  .card h3,
  .services-links__card strong {
    font-size: 16px;
  }

  .process-step__badge {
    width: 42px;
    height: 42px;
    font-size: 16px;
  }

  .process-timeline__track > li {
    padding-left: 60px;
  }

  .process-timeline__track::before {
    left: 21px;
  }

  .workflow__step-number {
    font-size: 30px;
  }

  .service-focus__visual {
    font-size: 60px;
  }

  .announce-bar__text {
    font-size: 11px;
  }

  .trust-bar__item {
    max-width: 280px;
  }

  .guarantees-block__title {
    font-size: 20px;
  }

  .promesse__title {
    font-size: 21px;
  }

  .launch-offer__title {
    font-size: 20px;
  }

  .btn {
    padding: 12px 20px;
    font-size: 14px;
  }

  .faq__question {
    font-size: 14px;
    padding: 12px 14px;
  }

  .trust-block__grid {
    grid-template-columns: 1fr;
  }

  .trust-block__item {
    padding: 16px;
  }
}

/* Services Links */
.services-links {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.services-links__inner {
  text-align: center;
}

.services-links h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin: 20px 0 50px;
  color: var(--color-black);
}

.services-links__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 40px;
}

.services-links__card {
  background: var(--color-white);
  padding: 40px 30px;
  border-radius: 15px;
  text-decoration: none;
  color: var(--color-black);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease, border-color 0.3s ease;
  border: 2px solid transparent;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.services-links__card:hover {
  transform: translateY(-6px);
  border-color: var(--color-red);
  box-shadow: 0 10px 30px rgba(179, 18, 23, 0.15);
}

.services-links__icon {
  font-size: 52px;
  margin-bottom: 20px;
  transition: transform 0.3s ease;
}

.services-links__card:hover .services-links__icon {
  transform: scale(1.1);
}

.services-links__card strong {
  font-family: var(--font-primary);
  font-size: 20px;
  color: var(--color-red);
  display: block;
  margin-bottom: 10px;
}

.services-links__card span:last-child {
  color: var(--color-gray);
  font-size: 14px;
}

/* Why Us */
.why-us {
  padding: 100px 0;
  background: var(--color-white);
}

.why-us__inner {
  text-align: center;
}

.why-us h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 50px;
  color: var(--color-black);
}

.why-us__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
  margin-top: 50px;
}

.why-us article {
  padding: 30px;
}

.why-us article h3 {
  font-family: var(--font-primary);
  font-size: 22px;
  color: var(--color-red);
  margin-bottom: 15px;
}

/* About Section */
.about {
  padding: 100px 0;
  background: var(--color-gray-light);
}

.about__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.about h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 30px;
  color: var(--color-black);
}

.about__highlights {
  display: grid;
  gap: 30px;
}

.highlight-card {
  background: var(--color-white);
  padding: 30px;
  border-radius: 10px;
  border-left: 4px solid var(--color-red);
}

.highlight-card h3 {
  font-family: var(--font-primary);
  font-size: 20px;
  color: var(--color-red);
  margin-bottom: 10px;
}

/* FAQ Section */
.faq-section {
  padding: 100px 0;
  background: var(--color-white);
}

.faq-section h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  text-align: center;
  margin-bottom: 50px;
  color: var(--color-black);
}

.faq__item {
  margin-bottom: 20px;
  background: var(--color-gray-light);
  border-radius: 10px;
  overflow: hidden;
}

.faq__question {
  width: 100%;
  padding: 20px 30px;
  background: none;
  border: none;
  text-align: center;
  font-family: var(--font-primary);
  font-size: 18px;
  font-weight: 600;
  color: var(--color-black);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background 0.3s;
}

.faq__question:hover {
  background: rgba(179, 18, 23, 0.1);
}

.faq__question::after {
  content: '';
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid var(--color-red);
  border-bottom: 2px solid var(--color-red);
  transform: rotate(45deg);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  flex-shrink: 0;
}

.faq__question[aria-expanded="true"]::after {
  transform: rotate(-135deg);
}

.faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  padding: 0 30px;
  color: var(--color-gray);
  line-height: 1.8;
  transition: grid-template-rows 0.35s cubic-bezier(0.22, 1, 0.36, 1), padding 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq__answer > * {
  overflow: hidden;
  min-height: 0;
}

.faq__answer.is-open {
  grid-template-rows: 1fr;
  padding: 0 30px 20px;
}

/* Appointment Section */
.appointment {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.appointment__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.appointment__centered {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.appointment__centered h2 {
  margin-bottom: 20px;
}

.appointment__centered > p {
  color: var(--color-gray);
  margin-bottom: 40px;
  line-height: 1.7;
}

.appointment__info {
  display: flex;
  justify-content: center;
  gap: 50px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.appointment__info > div {
  text-align: center;
}

.appointment__info dt {
  font-weight: 600;
  color: var(--color-red);
  margin-bottom: 5px;
  font-family: var(--font-primary);
}

.appointment__info dd {
  color: var(--color-black);
}

.appointment__info dd a {
  color: var(--color-black);
  text-decoration: none;
  transition: color 0.3s;
}

.appointment__info dd a:hover {
  color: var(--color-red);
}

.appointment h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 20px;
  color: var(--color-black);
}

.appointment dl {
  margin-top: 30px;
}

.appointment dl > div {
  margin-bottom: 20px;
}

.appointment dt {
  font-weight: 600;
  color: var(--color-red);
  margin-bottom: 5px;
}

.appointment dd {
  color: var(--color-gray);
}

.appointment dd a {
  color: var(--color-black);
  text-decoration: none;
}

.appointment dd a:hover {
  color: var(--color-red);
}

/* Form */
.form {
  background: var(--color-white);
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.form__message {
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
  display: none;
}

.form__group {
  margin-bottom: 25px;
}

.form__group--full {
  grid-column: 1 / -1;
}

.form label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--color-black);
}

.form input,
.form select,
.form textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-family: var(--font-secondary);
  font-size: 16px;
  transition: border-color 0.3s;
}

.form input:focus,
.form select:focus,
.form textarea:focus {
  outline: none;
  border-color: var(--color-red);
}

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

/* Service Focus */
.service-focus {
  padding: 80px 0;
  background: var(--color-white);
}

.service-focus--alt {
  background: var(--color-gray-light);
}

.service-focus--compact {
  padding: 48px 0;
}

.service-focus--compact h2 {
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  margin-bottom: 0.75rem;
}

.service-focus--compact p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

.service-focus__subhead {
  font-size: 1.05rem;
  margin: 1.25rem 0 0.65rem;
}

.service-focus__problem-list {
  list-style: none;
  margin: 0.65rem auto 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  max-width: 34rem;
  width: 100%;
}

.service-focus__problem-list > li {
  padding: 0 !important;
  padding-left: 0 !important;
  position: static;
  min-width: 0;
}

.service-focus__problem-list > li::before {
  content: none !important;
  display: none !important;
}

.service-focus__problem-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.4rem;
  padding: 0.45rem 0.65rem;
  box-sizing: border-box;
  border-radius: 8px;
  border: 1px solid var(--conv-border, #e5e5e5);
  background: var(--conv-card, #fff);
  color: var(--conv-text, #1a1a1a);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}

a.service-focus__problem-link:hover,
a.service-focus__problem-link:focus-visible {
  border-color: rgba(179, 18, 23, 0.4);
  color: var(--color-red, #b31217);
}

.promesse--services .promesse__lead {
  margin: 0 0 1.25rem;
  max-width: 42rem;
  color: var(--color-text-muted, #5c5c66);
}

.promesse--services .promesse__item h3 a {
  color: inherit;
  text-decoration: none;
}

.promesse--services .promesse__item h3 a:hover,
.promesse--services .promesse__item h3 a:focus-visible {
  color: var(--color-accent, #e10600);
}

body.conversion-page .presta-listing__intro {
  margin-bottom: 0;
  max-width: none;
}

body.conversion-page .presta-listing__intro-links a {
  color: var(--color-link);
}

/* Direct answer — citabilité GEO (réponse extractible IA) */
.direct-answer {
  border-top: 3px solid var(--color-primary, #c41e1e);
}

.direct-answer__lead {
  font-size: 1.05rem;
  line-height: 1.65;
  max-width: 72ch;
  margin: 0 0 1.25rem;
  color: var(--color-text, #1a1a1a);
}

.direct-answer__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
  gap: 0.75rem 1.25rem;
  margin: 0 0 1rem;
  padding: 0;
}

.direct-answer__fact {
  margin: 0;
  padding: 0.75rem 1rem;
  background: var(--stitch-surface, rgba(31, 31, 35, 0.95));
  border-radius: 6px;
  border: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
}

.service-focus--alt .direct-answer__fact {
  background: var(--stitch-surface-high, var(--stitch-surface, #2a292e));
}

.direct-answer__fact dt {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--stitch-on-variant, #d4c8c4);
  margin: 0 0 0.25rem;
}

.direct-answer__fact dd {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--stitch-on-surface, #fafafa);
}

.direct-answer__contact {
  font-size: 0.9rem;
  margin: 0.5rem 0 0;
  line-height: 1.6;
}

.service-focus .service-areas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 0.625rem;
  margin: 1rem auto 0;
  padding: 0;
  list-style: none;
  max-width: 36rem;
}

.service-focus .service-areas li {
  padding: 0;
  position: static;
}

.service-focus .service-areas li::before {
  display: none;
}

.service-focus .service-areas a,
.service-focus .service-areas a:visited {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  font-size: 0.875rem;
  line-height: 1.3;
  border-radius: 999px;
  background: var(--color-white);
  color: var(--color-gray);
  text-decoration: none;
  border: 1px solid rgba(0, 0, 0, 0.08);
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}

.service-focus .service-areas a:hover,
.service-focus .service-areas a:focus-visible {
  color: var(--color-red);
  border-color: rgba(179, 18, 23, 0.35);
}

.service-focus__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.service-focus h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 20px;
  color: var(--color-black);
}

.service-focus ul:not(.service-areas):not(.service-focus__problem-list) {
  list-style: none;
  margin-top: 20px;
  text-align: center;
  display: inline-block;
}

.service-focus ul:not(.service-areas):not(.service-focus__problem-list) li {
  padding: 10px 0;
  padding-left: 25px;
  position: relative;
}

.service-focus ul:not(.service-areas):not(.service-focus__problem-list) li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--color-red);
  font-weight: bold;
}

.service-focus__visual {
  font-size: 120px;
  font-weight: 700;
  color: rgba(179, 18, 23, 0.1);
  text-align: center;
  font-family: var(--font-primary);
}

/* Atelier Suite */
.atelier-suite {
  padding: 80px 0;
  background: var(--color-white);
}

.atelier-suite .container {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.atelier-suite .tabs,
.atelier-suite .tabs__panels {
  width: 100%;
}

.atelier-suite .section-header {
  width: 100%;
}

.section-header {
  margin-bottom: 40px;
  text-align: center;
}

.section-kicker {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-red);
  font-weight: 600;
  margin-bottom: 10px;
}

.section-header h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 15px;
  color: var(--color-black);
}

/* Tabs */
.tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 30px;
  border-bottom: 2px solid #e0e0e0;
  justify-content: center;
}

.tabs__trigger {
  padding: 15px 30px;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  font-family: var(--font-primary);
  font-weight: 600;
  color: var(--color-gray);
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  bottom: -2px;
  text-align: center;
}

.tabs__trigger:hover,
.tabs__trigger.is-active,
.tabs__trigger[aria-selected="true"] {
  color: var(--color-red);
  border-bottom-color: var(--color-red);
}

.tabs__panels {
  margin-top: 30px;
}

.tabs__panel {
  display: none;
}

.tabs__panel.is-active,
.tabs__panel:not([hidden]) {
  display: block;
}

.tabs__panel-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
}

.tabs__panel h3 {
  font-family: var(--font-primary);
  font-size: 24px;
  color: var(--color-red);
  margin-bottom: 15px;
}

.checklist {
  list-style: none;
  margin-top: 20px;
}

.checklist li {
  padding: 10px 0;
  padding-left: 30px;
  position: relative;
}

.checklist li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--color-red);
  font-weight: bold;
  font-size: 18px;
}

/* Override pour #main : checklist centrée */
#main .atelier-suite .checklist,
#main .atelier-suite .checklist li {
  padding-left: 0 !important;
  text-align: center !important;
}

#main .atelier-suite .checklist li::before {
  position: static !important;
  content: '✓ ' !important;
  margin-right: 8px;
}

.tabs__panel-visual {
  background: var(--color-gray-light);
  padding: 60px;
  border-radius: 15px;
  text-align: center;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hud {
  font-family: var(--font-primary);
  font-size: 24px;
  font-weight: 700;
  color: var(--color-red);
  text-transform: uppercase;
  letter-spacing: 2px;
}

.hud--planning,
.hud--support {
  color: var(--color-red);
}

/* Workflow */
.workflow {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.workflow__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.workflow__intro {
  text-align: center;
  margin-bottom: 60px;
}

.workflow__intro h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin: 20px 0 20px;
  color: var(--color-black);
}

.workflow__steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 30px;
  counter-reset: step-counter;
}

.workflow__steps > li {
  background: var(--color-white);
  padding: 30px;
  border-radius: 15px;
  position: relative;
  counter-increment: step-counter;
}

.workflow__step-number {
  display: block;
  font-family: var(--font-primary);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-red);
  margin-bottom: 15px;
}

.workflow__steps > li h3 {
  font-family: var(--font-primary);
  font-size: 20px;
  margin-bottom: 10px;
  color: var(--color-black);
}

.workflow__chip {
  display: inline-block;
  background: var(--color-red);
  color: var(--color-white);
  padding: 5px 15px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  margin-top: 15px;
}

/* Hero Subpage */
.hero--subpage {
  min-height: 60vh;
  min-height: 60dvh;
}

.hero--expanded {
  min-height: 100vh;
  min-height: 100dvh;
}

/* Utilities */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.whatsapp-link {
  background: #25D366;
  color: white;
  padding: 8px 15px;
  border-radius: 20px;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  transition: background 0.3s;
}

.whatsapp-link:hover {
  background: #20BA5A;
}

.socials {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
}

.socials a:is(:link, :visited) {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  transition: color 0.3s;
}

.socials a:is(:hover, :focus-visible) {
  color: var(--color-red-light);
}

.socials__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.socials__icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.socials__icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

/* Link */
.link {
  color: var(--color-red);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s;
  display: inline-block;
  margin-top: 10px;
}

.link:hover {
  color: var(--color-red-dark);
  text-decoration: underline;
}

/* Media Card */
.media-card {
  background: var(--color-white);
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.media-card__label {
  padding: 15px 20px;
  background: var(--color-red);
  color: var(--color-white);
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.map-frame {
  width: 100%;
  height: 400px;
  border: none;
  display: block;
}

/* Tech Lab */
.tech-lab {
  padding: 80px 0;
  background: var(--color-white);
}

.tech-lab__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.tech-lab__content h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 20px;
  color: var(--color-black);
}

.tech-lab__status {
  margin-top: 20px;
  padding: 15px;
  background: var(--color-gray-light);
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--color-gray);
}

.status-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
}

.status-dot--online {
  background: #4CAF50;
  box-shadow: 0 0 8px rgba(76, 175, 80, 0.5);
}

/* Featured Vehicles */
.featured-vehicles {
  padding: 80px 0;
  background: var(--color-white);
}

/* Process Styles */
.process-intro {
  padding: 40px 0;
  background: var(--color-white);
}

.process-hero__meta {
  display: flex;
  gap: 30px;
  justify-content: center;
  flex-wrap: wrap;
}

.process-hero__meta-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 25px;
  background: var(--color-gray-light);
  border-radius: 50px;
  font-weight: 600;
}

.process-timeline {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.process-timeline__wrapper {
  margin-top: 50px;
}

.process-timeline__track {
  list-style: none;
  display: grid;
  gap: 40px;
  counter-reset: step;
  position: relative;
}

.process-timeline__track::before {
  content: '';
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-red);
  opacity: 0.3;
}

.process-timeline__track > li {
  position: relative;
  padding-left: 80px;
  counter-increment: step;
}

.process-step__badge {
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 60px;
  background: var(--color-red);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-primary);
  font-size: 24px;
  font-weight: 700;
  z-index: 2;
}

.process-timeline__track > li h3 {
  font-family: var(--font-primary);
  font-size: 24px;
  margin-bottom: 10px;
  color: var(--color-black);
}

.process-modules {
  padding: 80px 0;
  background: var(--color-white);
}

.process-modules__grid {
  display: grid;
  gap: 60px;
}

.process-modules__intro {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.process-modules__intro h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin: 20px 0 20px;
  color: var(--color-black);
}

.process-modules__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.process-card {
  background: var(--color-gray-light);
  padding: 40px;
  border-radius: 15px;
  transition: transform 0.3s, box-shadow 0.3s;
}

.process-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.process-card header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}

.process-card__icon {
  font-size: 32px;
}

.process-card h3 {
  font-family: var(--font-primary);
  font-size: 22px;
  color: var(--color-red);
}

.process-matrix {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.process-matrix__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.process-matrix__content {
  text-align: center;
  margin-bottom: 50px;
}

.process-matrix__content h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin: 20px 0 20px;
  color: var(--color-black);
}

.process-matrix__table {
  background: var(--color-white);
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.process-matrix__row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 20px;
  padding: 20px;
  border-bottom: 1px solid #e0e0e0;
}

.process-matrix__row:last-child {
  border-bottom: none;
}

.process-matrix__row--head {
  background: var(--color-red);
  color: var(--color-white);
  font-weight: 700;
  font-family: var(--font-primary);
}

.process-matrix__row--head span {
  color: var(--color-white);
}

.process-matrix__row span {
  color: var(--color-gray);
}

.process-cta {
  padding: 80px 0;
  background: var(--color-white);
}

.process-cta__inner {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.process-cta__inner h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin: 20px 0 20px;
  color: var(--color-black);
}

.process-cta__actions {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 40px;
  flex-wrap: wrap;
}

/* FAQ List */
.faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
}

.faq__inner > div:first-child {
  text-align: center;
  width: 100%;
  margin-bottom: 40px;
}

.faq__list {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}

/* Highlight */
.highlight {
  background: var(--color-white);
  padding: 30px;
  border-radius: 10px;
  text-align: center;
  border: 2px solid var(--color-red);
}

.highlight strong {
  display: block;
  font-family: var(--font-primary);
  font-size: 36px;
  color: var(--color-red);
  margin-bottom: 10px;
}

.highlight span {
  color: var(--color-gray);
  font-size: 14px;
}

.pill {
  background: var(--color-gray-light);
  padding: 20px;
  border-radius: 10px;
  text-align: center;
}

.pill h3 {
  font-family: var(--font-primary);
  font-size: 20px;
  color: var(--color-red);
  margin-bottom: 10px;
}

/* Newsletter */
.newsletter {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.newsletter__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.newsletter h2 {
  font-family: var(--font-primary);
  font-size: 36px;
  margin-bottom: 15px;
  color: var(--color-black);
}

.newsletter p {
  font-size: 18px;
  color: var(--color-gray);
  margin-bottom: 40px;
  line-height: 1.6;
}

.newsletter__form {
  display: flex;
  gap: 15px;
  width: 100%;
  max-width: 500px;
  flex-wrap: wrap;
  justify-content: center;
}

.newsletter__form input[type="email"] {
  flex: 1;
  min-width: 250px;
  padding: 15px 20px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 16px;
  font-family: var(--font-secondary);
  transition: all 0.3s ease;
  background: var(--color-white);
}

.newsletter__form input[type="email"]:focus {
  outline: none;
  border-color: var(--color-red);
  box-shadow: 0 0 0 3px rgba(179, 18, 23, 0.1);
}

.newsletter__form input[type="email"]::placeholder {
  color: #999;
}

.newsletter__form .btn {
  padding: 15px 40px;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .newsletter {
    padding: 60px 0;
  }

  .newsletter h2 {
    font-size: 28px;
  }

  .newsletter p {
    font-size: 16px;
    margin-bottom: 30px;
  }

  .newsletter__form {
    flex-direction: column;
    width: 100%;
  }

  .newsletter__form input[type="email"] {
    width: 100%;
    min-width: 100%;
  }

  .newsletter__form .btn {
    width: 100%;
  }
}

/* Animations */
[data-animate] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-animate].animated {
  opacity: 1;
  transform: translateY(0);
}

[data-animate="slide-left"] {
  transform: translateX(-30px);
}

[data-animate="slide-right"] {
  transform: translateX(30px);
}

[data-animate="slide-left"].animated,
[data-animate="slide-right"].animated {
  transform: translateX(0);
}

[data-animate="zoom-in"] {
  transform: scale(0.95);
}

[data-animate="zoom-in"].animated {
  transform: scale(1);
}

/* Lazy Loading Images */
img[loading="lazy"] {
  opacity: 0;
  transition: opacity 0.3s;
}

img[loading="lazy"].loaded {
  opacity: 1;
}

/* Focus Visible for Accessibility */
*:focus-visible {
  outline: 3px solid var(--color-red);
  outline-offset: 2px;
}

/* Skip Link Animation */
.skip-link:focus {
  top: 0;
  z-index: 10000;
}

/* ========== COOKIE BANNER ========== */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  background: var(--color-black);
  border-top: 2px solid var(--color-red);
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.35);
  transform: translateY(0);
  transition: transform 0.4s ease, opacity 0.4s ease;
  animation: cookieSlideUp 0.5s ease forwards;
}

@keyframes cookieSlideUp {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.cookie-banner.is-hidden {
  transform: translateY(100%);
  opacity: 0;
}

.cookie-banner__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 28px 30px;
  display: flex;
  align-items: center;
  gap: 30px;
}

.cookie-banner__title {
  font-family: var(--font-primary);
  font-size: 18px;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 8px;
}

.cookie-banner__text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
  margin-bottom: 6px;
}

.cookie-banner__text:last-child {
  margin-bottom: 0;
}

.cookie-banner__text a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

.cookie-banner__text a:hover {
  color: var(--color-red-light);
}

.cookie-banner__actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

.cookie-banner__btn {
  padding: 10px 22px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  min-height: 42px;
  width: auto;
}

.cookie-banner__btn.btn--primary {
  background: var(--color-red);
  color: var(--color-white);
  border: 2px solid var(--color-red);
}

.cookie-banner__btn.btn--primary:hover {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
}

.cookie-banner__btn.btn--ghost {
  background: transparent;
  color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.cookie-banner__btn.btn--ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.4);
}

/* Cookie Banner Mobile */
@media (max-width: 768px) {
  .cookie-banner__inner {
    flex-direction: column;
    padding: 20px 16px;
    gap: 16px;
    text-align: center;
  }

  .cookie-banner__title {
    font-size: 16px;
  }

  .cookie-banner__text {
    font-size: 12px;
  }

  .cookie-banner__actions {
    flex-direction: column;
    width: 100%;
    gap: 8px;
  }

  .cookie-banner__btn {
    width: 100%;
    padding: 12px 20px;
    font-size: 14px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* ========== COOKIE CUSTOMIZE PANEL ========== */
.cookie-customize-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.cookie-customize-panel.is-visible {
  opacity: 1;
  visibility: visible;
}

.cookie-customize-panel__inner {
  background: var(--color-white);
  border-radius: 16px;
  max-width: 520px;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  padding: 32px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  transform: scale(0.95) translateY(10px);
  transition: transform 0.3s ease;
}

.cookie-customize-panel.is-visible .cookie-customize-panel__inner {
  transform: scale(1) translateY(0);
}

.cookie-customize-panel__title {
  font-family: var(--font-primary);
  font-size: 22px;
  font-weight: 700;
  color: var(--color-black);
  margin-bottom: 24px;
}

.cookie-customize-panel__section {
  margin-bottom: 20px;
  padding: 16px;
  background: var(--color-gray-light);
  border-radius: 10px;
}

.cookie-option__header {
  margin-bottom: 6px;
}

.cookie-option__label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 15px;
  color: var(--color-black);
  cursor: pointer;
}

.cookie-option__label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--color-red);
  cursor: pointer;
  flex-shrink: 0;
}

.cookie-option__label input[type="checkbox"]:disabled {
  opacity: 0.6;
  cursor: default;
}

.cookie-option__description {
  font-size: 13px;
  color: var(--color-gray);
  line-height: 1.5;
  padding-left: 28px;
}

.cookie-customize-panel__actions {
  display: flex;
  gap: 10px;
  margin-top: 24px;
}

.cookie-customize-panel__actions .btn {
  flex: 1;
  padding: 12px 20px;
  font-size: 14px;
  border-radius: 8px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cookie-customize-panel__actions .btn--ghost {
  background: var(--color-gray-light);
  color: var(--color-black);
  border: none;
}

.cookie-customize-panel__actions .btn--ghost:hover {
  background: #e0e0e0;
}

/* Cookie Customize Panel Mobile */
@media (max-width: 768px) {
  .cookie-customize-panel__inner {
    padding: 24px 18px;
    width: 95%;
    max-height: 90vh;
  }

  .cookie-customize-panel__title {
    font-size: 19px;
  }

  .cookie-customize-panel__section {
    padding: 14px;
  }

  .cookie-customize-panel__actions {
    flex-direction: column;
  }

  .cookie-customize-panel__actions .btn {
    width: 100%;
  }
}

/* ========== COOKIE NOTIFICATION ========== */
.cookie-notification {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--color-black);
  color: var(--color-white);
  padding: 14px 28px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
  z-index: 10000;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  white-space: nowrap;
}

.cookie-notification.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

@media (max-width: 768px) {
  .cookie-notification {
    left: 16px;
    right: 16px;
    transform: translateX(0) translateY(20px);
    text-align: center;
    white-space: normal;
    font-size: 13px;
    padding: 12px 20px;
  }

  .cookie-notification.is-visible {
    transform: translateX(0) translateY(0);
  }
}

/* ========== BLOG INDEX & CARDS ========== */
/* Annule le centrage global #main pour une lecture confortable */
#main .blog-index {
  text-align: left;
}

#main .blog-index .blog-list > li,
#main .blog-index .blog-pagination li,
#main .blog-index .blog-card,
#main .blog-index .blog-card__body {
  text-align: left;
}

#main .blog-index__header h1,
#main .blog-index__header p {
  text-align: left;
}

.blog-index {
  padding: 2.5rem 0 3.5rem;
}

.blog-index .breadcrumb {
  margin-bottom: 1.5rem;
  padding-top: 0;
}

#main .blog-index .breadcrumb {
  color: rgba(255, 255, 255, 0.78);
}

#main .blog-index .breadcrumb li:not(:last-child)::after {
  color: rgba(255, 255, 255, 0.55);
}

#main .blog-index .breadcrumb a:is(:link, :visited) {
  color: rgba(255, 255, 255, 0.85);
}

#main .blog-index .breadcrumb a:is(:hover, :focus-visible) {
  color: var(--color-red-light);
}

#main .blog-index .breadcrumb [aria-current="page"] {
  color: rgba(255, 255, 255, 0.78);
}

.blog-index__header {
  margin-bottom: 2.5rem;
  padding-bottom: 1.75rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.blog-index__header h1 {
  font-family: var(--font-primary);
  font-size: clamp(1.85rem, 4vw, 2.4rem);
  margin-bottom: 0.65rem;
  line-height: 1.2;
  color: var(--color-black);
}

.blog-index__header p {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--color-gray);
  max-width: 42rem;
}

.blog-filters {
  margin-bottom: 2rem;
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
  border-radius: 12px;
  background: var(--stitch-surface, #1f1f23);
  display: grid;
  gap: 1.35rem;
}

.blog-filters__label {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  color: var(--stitch-on-variant, #d4c8c4);
  font-weight: 600;
}

.blog-filters__featured-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.blog-filters__featured-link {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-height: 100%;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
  border-radius: 10px;
  background: var(--stitch-bg-low, #1b1b1f);
  color: var(--stitch-on-surface, #e4e1e7);
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.blog-filters__featured-link:hover {
  border-color: var(--stitch-primary, #ffb4ab);
  background: rgba(130, 17, 17, 0.22);
  transform: translateY(-1px);
}

.blog-filters__featured-title {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
}

.blog-filters__featured-hint {
  font-size: 0.78rem;
  color: var(--stitch-on-variant, #d4c8c4);
  line-height: 1.35;
}

.blog-filters__themes {
  display: grid;
  gap: 1rem;
}

.blog-filters__all-row {
  margin-bottom: 0.15rem;
}

.blog-filters__group-label {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--stitch-on-variant, #d4c8c4);
}

.blog-filters__group + .blog-filters__group {
  padding-top: 0.85rem;
  border-top: 1px solid rgba(167, 138, 134, 0.12);
}

.blog-filters__group:has(.blog-filters__list:empty) {
  display: none;
}

.blog-filters__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.blog-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
  border-radius: 999px;
  background: var(--stitch-bg-low, #1b1b1f);
  color: var(--stitch-on-surface, #e4e1e7);
  font-size: 0.88rem;
  line-height: 1.2;
  text-decoration: none;
  transition: all 0.2s ease;
}

.blog-filter-chip:hover {
  border-color: var(--stitch-primary, #ffb4ab);
  color: var(--stitch-primary, #ffb4ab);
  background: rgba(130, 17, 17, 0.25);
}

.blog-filter-chip--all {
  border-color: var(--stitch-primary, #ffb4ab);
  color: var(--stitch-primary, #ffb4ab);
  font-weight: 600;
}

.blog-filter-chip.is-active {
  border-color: var(--stitch-primary, #ffb4ab);
  color: var(--stitch-primary, #ffb4ab);
  background: rgba(130, 17, 17, 0.3);
  font-weight: 600;
}

.blog-filter-chip__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.32rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  color: var(--stitch-on-surface, #e4e1e7);
  background: rgba(255, 255, 255, 0.1);
}

.blog-filter-chip.is-active .blog-filter-chip__count,
.blog-filter-chip--all .blog-filter-chip__count {
  color: #fff;
  background: var(--color-red);
}

.blog-list {
  list-style: none;
  display: grid;
  gap: 1.75rem;
}

.blog-card {
  display: block;
  padding: 0;
  background: var(--color-white);
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-left: 4px solid var(--color-red);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.blog-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.blog-card__body {
  padding: 1.35rem 1.5rem 1.5rem;
}

@media (max-width: 768px) {
  .blog-card__body {
    padding: 1.25rem;
  }
}

.blog-card__meta {
  display: flex;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--color-gray);
  margin-bottom: 0.5rem;
}

.blog-card__category {
  font-weight: 600;
  color: var(--color-red);
}

.blog-card__title {
  font-family: var(--font-primary);
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  line-height: 1.3;
  margin-bottom: 0.6rem;
}

.blog-card__title a {
  color: inherit;
  text-decoration: none;
}

.blog-card__title a:hover {
  color: var(--color-red);
}

.blog-card__excerpt {
  font-size: 0.98rem;
  line-height: 1.6;
  margin-bottom: 0.85rem;
  color: var(--color-gray-dark);
}

.blog-card__link {
  font-weight: 600;
  color: var(--color-red);
  text-decoration: none;
}

.blog-card__link:hover {
  text-decoration: underline;
}

.blog-pagination ul {
  list-style: none;
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-top: 2rem;
}

.blog-pagination a {
  color: var(--color-red);
  text-decoration: none;
  font-weight: 600;
}

.blog-pagination a:hover {
  text-decoration: underline;
}

@media (max-width: 900px) {
  .blog-filters__featured-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .blog-filters {
    padding: 1rem;
  }

  .blog-filters__featured-list {
    grid-template-columns: 1fr;
  }
}

.blog-pagination li {
  list-style: none;
}

.blog-index__back {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.blog-index__back a {
  font-weight: 600;
  color: var(--color-red);
  text-decoration: none;
}

.blog-index__back a:hover {
  text-decoration: underline;
}

/* ========== BLOG ARTICLE (prose & fil d'Ariane) ========== */
#main .breadcrumb {
  text-align: left;
  padding: 1.25rem 0 0;
  font-size: 0.875rem;
  color: var(--color-gray);
}

#main .breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0;
  margin: 0;
  padding: 0;
}

#main .breadcrumb li {
  display: inline-flex;
  align-items: center;
}

#main .breadcrumb li:not(:last-child)::after {
  content: "›";
  margin: 0 0.5rem;
  color: var(--color-gray);
  opacity: 0.65;
  font-size: 0.95rem;
  pointer-events: none;
}

#main .breadcrumb a:is(:link, :visited) {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-weight: 600;
}

#main .breadcrumb a:is(:hover, :focus-visible) {
  color: var(--color-red-light);
  text-decoration: underline;
}

#main .breadcrumb [aria-current="page"] {
  color: inherit;
  font-weight: 600;
  max-width: min(100%, 42rem);
}

#main .blog-article {
  text-align: left;
}

/* Bat #main p, #main h2, etc. (centrage global) */
#main .blog-article .article-header h1,
#main .blog-article .article-excerpt,
#main .blog-article .article-body h2,
#main .blog-article .article-body h3,
#main .blog-article .article-body p,
#main .blog-article .article-body li,
#main .blog-article .article-body ul,
#main .blog-article .article-body ol,
#main .blog-article .article-toc,
#main .blog-article .article-toc h2,
#main .blog-article .article-footer,
#main .blog-article .article-tags {
  text-align: left;
}

#main .blog-article .article-cta,
#main .blog-article .article-cta h3,
#main .blog-article .article-cta p {
  text-align: center;
}

.blog-article .article-header {
  padding: 1.5rem 0 1.25rem;
  background: linear-gradient(180deg, var(--color-gray-light) 0%, var(--color-white) 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.blog-article .article-header .container {
  max-width: 768px;
}

.blog-article .article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  font-size: 0.875rem;
  color: var(--color-gray);
  margin-bottom: 1rem;
}

.blog-article .article-category {
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-red);
  background: rgba(179, 18, 23, 0.09);
  padding: 0.4rem 0.75rem;
  border-radius: 4px;
}

.blog-article .article-updated,
.blog-card__updated {
  font-weight: 600;
  color: var(--color-gray-dark);
}

.blog-article .article-header h1 {
  font-family: var(--font-primary);
  font-size: clamp(1.65rem, 4.2vw, 2.35rem);
  line-height: 1.22;
  color: var(--color-black);
  margin-bottom: 1rem;
  text-align: left;
}

.blog-article .article-excerpt {
  font-size: 1.125rem;
  line-height: 1.65;
  color: var(--color-gray-dark);
  max-width: 48rem;
  text-align: left;
}

.blog-article .direct-answer--blog-head {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-left: 3px solid var(--color-primary, #c41e1e);
  background: rgba(196, 30, 30, 0.04);
  border-radius: 6px;
}

.blog-article .direct-answer--blog-head .direct-answer__inner {
  padding: 0.85rem 1rem 1rem;
}

.blog-article .direct-answer--blog-head h2 {
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  margin-bottom: 0.65rem;
}

.blog-article .direct-answer--blog-head .direct-answer__lead {
  margin-bottom: 0.85rem;
}

.blog-article .article-content {
  padding: 0 0 3rem;
}

.blog-article .article-body {
  max-width: 42rem;
  margin: 0 auto;
  font-size: 1.0625rem;
  line-height: 1.78;
  color: var(--color-black);
}

.blog-article .article-toc {
  background: var(--color-gray-light);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.blog-article .article-toc ol {
  margin: 0;
  padding-left: 1.35rem;
}

.blog-article .article-toc li {
  margin-bottom: 0.45rem;
}

.blog-article .article-toc a {
  color: var(--color-red-dark);
  text-decoration: none;
  font-weight: 600;
}

.blog-article .article-toc a:hover {
  text-decoration: underline;
}

.blog-article .article-body > section {
  margin-bottom: 2.25rem;
  scroll-margin-top: 96px;
}

.blog-article .article-body h2 {
  font-family: var(--font-primary);
  font-size: 1.45rem;
  line-height: 1.3;
  color: var(--color-black);
  margin: 2.25rem 0 1rem;
  padding-bottom: 0.45rem;
  border-bottom: 2px solid var(--color-red);
  text-align: left;
}

/* Sommaire : ne pas hériter des H2 de section (marge énorme + barre rouge) */
.blog-article .article-body .article-toc h2,
.blog-article .article-body .article-toc .article-toc__title {
  font-family: var(--font-primary);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--color-black);
  line-height: 1.35;
  margin: 0 0 0.85rem;
  padding-bottom: 0;
  border-bottom: none;
  text-align: left;
}

.blog-article .article-note {
  margin: 1.75rem 0;
  padding: 1.15rem 1.35rem;
  background: rgba(179, 18, 23, 0.06);
  border: 1px solid rgba(179, 18, 23, 0.2);
  border-left: 4px solid var(--color-red);
  border-radius: 0 10px 10px 0;
}

.blog-article .article-note__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-red-dark);
  margin: 0 0 0.5rem;
}

.blog-article .article-note p:last-child {
  margin-bottom: 0;
}

.blog-article .article-body .table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.25rem 0 1.75rem;
}

.blog-article .article-body .article-table {
  width: 100%;
  min-width: 280px;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.blog-article .article-body .article-table thead th {
  background: var(--color-gray-light);
  color: var(--color-black);
  font-weight: 700;
  text-align: left;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

.blog-article .article-body .article-table tbody td {
  padding: 0.6rem 0.85rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  vertical-align: top;
}

.blog-article .article-body .article-table tbody tr:nth-child(even) td {
  background: rgba(0, 0, 0, 0.02);
}

.blog-article .article-body h3 {
  font-family: var(--font-primary);
  font-size: 1.12rem;
  margin: 1.6rem 0 0.6rem;
  color: var(--color-gray-dark);
  text-align: left;
  line-height: 1.35;
}

.blog-article .article-body p {
  margin-bottom: 1rem;
  text-align: left;
}

.blog-article .article-body ul {
  list-style: disc;
  margin: 1rem 0 1.25rem;
  padding-left: 1.35rem;
  text-align: left;
}

.blog-article .article-body ol {
  list-style: decimal;
  margin: 1rem 0 1.25rem;
  padding-left: 1.35rem;
  text-align: left;
}

.blog-article .article-body li {
  margin-bottom: 0.45rem;
}

.blog-article .article-body a {
  color: var(--color-red);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-article .article-body a:hover {
  color: var(--color-red-dark);
}

.blog-article .article-body strong {
  font-weight: 700;
  color: #fafafa;
}

.blog-article .article-cta {
  margin-top: 2.75rem;
  padding: 2rem 1.5rem 1.85rem;
  background: linear-gradient(145deg, #1f1f23 0%, #131317 100%);
  color: var(--color-white);
  border-radius: 16px;
  text-align: center;
  border: 1px solid rgba(255, 180, 171, 0.12);
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.blog-article .article-cta::before {
  content: "Passer à l'action";
  display: block;
  font-family: var(--font-primary);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-red-light);
  margin-bottom: 0.85rem;
}

.blog-article .article-cta h3 {
  font-family: var(--font-primary);
  color: var(--color-white);
  margin: 0 0 0.75rem;
  font-size: clamp(1.1rem, 2.8vw, 1.3rem);
  line-height: 1.35;
  max-width: 34rem;
  margin-left: auto;
  margin-right: auto;
}

.blog-article .article-cta p {
  margin: 0 auto 1.35rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.98rem;
  line-height: 1.6;
  max-width: 36rem;
}

.blog-article .article-cta .btn {
  margin: 0.3rem 0.4rem;
  min-width: min(100%, 17.5rem);
  justify-content: center;
}

@media (min-width: 520px) {
  .blog-article .article-cta .btn {
    display: inline-flex;
    min-width: 15.5rem;
  }
}

.blog-article .article-cta a.btn,
.blog-article .article-cta a.btn:is(:link, :visited, :hover, :focus-visible) {
  color: #fff;
  text-decoration: none;
}

.blog-article .article-cta .btn--primary {
  background: linear-gradient(135deg, var(--color-red) 0%, var(--color-red-dark) 100%);
  border-color: transparent;
  box-shadow: 0 10px 28px rgba(130, 17, 17, 0.4);
}

.blog-article .article-cta .btn--primary:hover,
.blog-article .article-cta .btn--primary:focus-visible {
  background: linear-gradient(135deg, var(--color-red-light) 0%, var(--color-red) 100%);
  color: #fff;
}

.blog-article .article-cta .btn--secondary {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.35);
  color: #fafafa;
}

.blog-article .article-cta .btn--secondary:hover,
.blog-article .article-cta .btn--secondary:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 180, 171, 0.55);
  color: #fff;
}

.blog-article .article-footer {
  padding: 2rem 0 3rem;
  border-top: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
  background: var(--stitch-bg-low, #1b1b1f);
}

.blog-article .article-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
}

.blog-article .article-tags > span:first-child {
  font-weight: 700;
  color: var(--stitch-on-surface, #e4e1e7);
}

.blog-article .article-tags a {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  background: var(--stitch-surface, #1f1f23);
  border: 1px solid var(--stitch-outline, rgba(167, 138, 134, 0.15));
  border-radius: 999px;
  color: var(--stitch-primary, #ffb4ab);
  text-decoration: none;
  font-weight: 600;
}

.blog-article .article-tags a:hover {
  background: rgba(130, 17, 17, 0.45);
  color: #fff;
  border-color: var(--stitch-primary, #ffb4ab);
}

/* Pages /exemples/ — SEO Google, hors menu site */
.exemple-prix-article {
  color: var(--stitch-on-surface, #fafafa);
}

.exemple-prix-hero {
  padding: clamp(2rem, 5vw, 3rem) 0 1.5rem;
  background: linear-gradient(180deg, rgba(196, 30, 58, 0.12) 0%, var(--stitch-bg-low, #161618) 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.exemple-prix-hero__inner {
  max-width: 48rem;
}

.exemple-prix-hero h1 {
  margin: 0 0 1rem;
  font-family: var(--font-stitch-head, var(--font-primary));
  font-size: clamp(1.65rem, 5vw, 2.35rem);
  line-height: 1.15;
  text-wrap: balance;
}

.exemple-prix-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.exemple-prix-chip {
  display: inline-block;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.82);
}

.exemple-prix-hero__lead {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--stitch-on-variant, rgba(255, 255, 255, 0.72));
}

.exemple-model-intro {
  margin: 1rem 0 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.68);
}

.exemple-prix-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.25rem;
}

.exemple-tarifs-strip {
  margin: 1.5rem 0 2rem;
  padding: 1rem 1.15rem;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.exemple-tarifs-strip__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}

.exemple-tarifs-strip__link {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-red, #d41e24);
  text-decoration: none;
}

.exemple-tarifs-strip__link:hover,
.exemple-tarifs-strip__link:focus-visible {
  text-decoration: underline;
}

.exemples-models-hub {
  padding: clamp(1.5rem, 4vw, 2.5rem) 0;
}

.exemples-models-hub__lead,
.exemples-models-hub__footer {
  margin: 0.5rem 0 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.95rem;
  line-height: 1.5;
}

.exemples-models-hub__grid {
  margin-top: 1.25rem;
}

.pricing-table__guide {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--color-red, #d41e24);
  text-decoration: none;
}

.pricing-table__guide:hover,
.pricing-table__guide:focus-visible {
  text-decoration: underline;
}

.blog-conversion-strip {
  padding: clamp(1.75rem, 4vw, 2.5rem) 0;
  background: linear-gradient(180deg, rgba(196, 30, 58, 0.1) 0%, var(--color-black) 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.blog-conversion-strip__inner {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto;
}

.blog-conversion-strip__title {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
  font-weight: 700;
  color: #fafafa;
}

.blog-conversion-strip__lead {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.95rem;
}

.blog-conversion-strip__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin: 0;
}

.modele-hub-services__list {
  margin-top: 1rem;
}

.modele-hub-services h2 {
  margin: 0 0 0.5rem;
  font-size: 1.2rem;
  color: #fafafa;
}

.exemples-models-hub__footer a {
  color: var(--color-red, #d41e24);
  text-decoration: none;
  font-weight: 600;
}

.exemples-models-hub__footer a:hover,
.exemples-models-hub__footer a:focus-visible {
  text-decoration: underline;
}

.exemple-prix-body {
  padding: clamp(1.5rem, 4vw, 2.5rem) 0 3rem;
}

.exemple-prix-body .container {
  max-width: 52rem;
}

.exemple-pain {
  margin-bottom: 1.75rem;
  padding: 1.35rem 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(232, 93, 117, 0.28);
  background: rgba(232, 93, 117, 0.07);
}

.exemple-pain h2 {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  color: #fafafa;
  line-height: 1.35;
}

.exemple-pain__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.exemple-pain__item {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.94rem;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.45;
}

.exemple-pain__icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8rem;
  color: #fff;
  background: rgba(232, 93, 117, 0.85);
}

.exemple-solution {
  margin-bottom: 2rem;
  padding: 1.35rem 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(76, 175, 80, 0.35);
  background: rgba(76, 175, 80, 0.08);
}

.exemple-solution h2 {
  margin: 0 0 0.75rem;
  font-size: 1.15rem;
  color: #fafafa;
  line-height: 1.35;
}

.exemple-solution__lead {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.88);
}

.exemple-solution__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
}

.exemple-compare {
  padding-top: 1.5rem;
  margin-bottom: 2.25rem;
}

.exemple-compare h2 {
  margin: 0 0 0.5rem;
  font-family: var(--font-stitch-head, var(--font-primary));
  font-size: clamp(1.2rem, 3.5vw, 1.55rem);
  line-height: 1.25;
  text-wrap: balance;
}

.exemple-compare__intro {
  margin: 0 0 1.25rem;
  color: var(--stitch-on-variant, rgba(255, 255, 255, 0.72));
  line-height: 1.5;
}

.exemple-compare__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 720px) {
  .exemple-compare__grid {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  .exemple-compare__grid--solo {
    grid-template-columns: minmax(0, 28rem);
  }
}

.exemple-compare__card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: clamp(1.1rem, 3vw, 1.5rem);
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: var(--stitch-surface, rgba(255, 255, 255, 0.04));
}

.exemple-compare__card--network {
  opacity: 0.92;
}

.exemple-compare__card--redk {
  border-color: rgba(196, 30, 58, 0.55);
  background: linear-gradient(165deg, rgba(196, 30, 58, 0.16) 0%, var(--stitch-surface, rgba(255, 255, 255, 0.05)) 100%);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);
}

.exemple-compare__label,
.exemple-compare__badge {
  display: inline-block;
  width: fit-content;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.exemple-compare__label {
  color: rgba(255, 255, 255, 0.55);
}

.exemple-compare__badge {
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: var(--color-red);
  color: #fff;
}

.exemple-compare__price {
  margin: 0;
  font-family: var(--font-stitch-head, var(--font-primary));
  font-size: clamp(1.35rem, 4vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
  color: #fafafa;
}

.exemple-compare__card--redk .exemple-compare__price {
  color: var(--color-red);
}

.exemple-compare__highlight {
  margin: 0;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #fafafa;
}

.exemple-compare__note {
  margin: 0;
  flex: 1;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--stitch-on-variant, rgba(255, 255, 255, 0.72));
}

.exemple-compare__cta {
  margin-top: 0.5rem;
  width: 100%;
  text-align: center;
}

.exemple-compare__disclaimer {
  margin: 1rem 0 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.55);
}

.exemple-specifics {
  margin-bottom: 2rem;
}

.exemple-specifics h2 {
  margin: 0 0 1rem;
  font-size: 1.15rem;
}

.exemple-specifics__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .exemple-specifics__list {
    grid-template-columns: 1fr 1fr;
  }
}

.exemple-specifics__item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.92rem;
  line-height: 1.45;
}

.exemple-specifics__icon {
  flex-shrink: 0;
  color: var(--color-red);
  font-weight: 700;
}

.exemple-atelier {
  margin-bottom: 2rem;
}

.exemple-atelier__inner {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: 14px;
  background: var(--stitch-surface, rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 640px) {
  .exemple-atelier__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.exemple-atelier h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}

.exemple-atelier p {
  margin: 0;
  line-height: 1.5;
  color: var(--stitch-on-variant, rgba(255, 255, 255, 0.75));
}

.exemple-atelier__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
}

.exemple-prix-generic-link {
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
}

.exemple-prix-generic-link a {
  color: #e85d75;
  font-weight: 600;
  text-decoration: none;
}

.exemple-prix-generic-link a:hover,
.exemple-prix-generic-link a:focus-visible {
  text-decoration: underline;
}

.exemple-prix-related {
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.exemple-prix-related h2 {
  margin: 0 0 1rem;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.85);
}

.exemple-prix-related__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  max-width: 36rem;
}

.exemple-prix-related__grid > li {
  min-width: 0;
  display: flex;
}

.exemple-prix-related__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  flex: 1 1 auto;
  width: 100%;
  min-height: 4.25rem;
  padding: 0.85rem 1rem;
  text-align: center;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  box-sizing: border-box;
  transition: background 0.2s, border-color 0.2s, transform 0.12s ease;
}

.exemple-prix-related__link:hover,
.exemple-prix-related__link:focus-visible {
  border-color: rgba(196, 30, 58, 0.45);
  background: rgba(196, 30, 58, 0.1);
  transform: translateY(-1px);
}

@media (max-width: 900px) {
  .exemple-prix-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .exemple-prix-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.exemple-prix-related__brand {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.exemple-prix-related__model {
  font-size: 0.95rem;
  font-weight: 600;
  color: #fafafa;
}

.exemple-process {
  margin: 2rem 0 2.5rem;
}

.exemple-process h2 {
  margin: 0 0 0.75rem;
}

.exemple-process__list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.65rem;
  max-width: 42rem;
}

.exemple-process__list li {
  line-height: 1.45;
}

.exemple-pain__lead {
  margin: 0 0 1rem;
  max-width: 42rem;
  line-height: 1.5;
}

.exemple-prix-crosslinks {
  margin: 2rem 0;
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

.exemple-prix-crosslinks__title {
  margin: 0 0 0.75rem;
  font-size: 1.1rem;
}

.exemple-prix-crosslinks__list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.4rem;
}

.exemple-prix-crosslinks__list a {
  font-weight: 600;
}

.conversion-page .exemple-prix-body .direct-answer {
  margin-bottom: 0;
}

.breadcrumb--compact {
  padding-top: 0.75rem;
}

/* ========== OFFER BANNER ========== */

.offer-banner {
  background: var(--color-red);
  color: var(--color-white);
  font-size: 14px;
  text-align: center;
  position: relative;
  z-index: 1100;
}

.offer-banner__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 8px 40px 8px 16px;
}

.offer-banner p {
  margin: 0;
}

.offer-banner a {
  color: var(--color-white);
  text-decoration: underline;
  font-weight: 600;
}

.offer-banner__close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--color-white);
  font-size: 20px;
  cursor: pointer;
  padding: 4px 8px;
  line-height: 1;
  opacity: .8;
  transition: opacity .2s;
}

.offer-banner__close:hover {
  opacity: 1;
}

/* ========== CTA STICKY CALL (mobile only) ========== */

.cta-sticky {
  display: none;
}

@media (max-width: 768px) {
  .cta-sticky {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050;
    padding: 10px 14px max(10px, env(safe-area-inset-bottom, 0px));
    background: rgba(22, 22, 24, 0.94);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25);
  }

  .cta-sticky__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 16px;
    background: var(--color-red);
    color: var(--color-white);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    transition: background 0.2s, transform 0.12s ease;
    -webkit-tap-highlight-color: transparent;
  }

  .cta-sticky__btn:hover {
    background: #d41419;
  }

  .cta-sticky__btn:active {
    transform: scale(0.98);
  }

  body {
    padding-bottom: calc(var(--cta-sticky-height) + 4px + env(safe-area-inset-bottom, 0px));
    background-color: #e8e8ed;
  }

  body.is-cookie-visible {
    padding-bottom: calc(var(--cta-sticky-height) + 4px + env(safe-area-inset-bottom, 0px));
  }
}

/* ========== HEADER CALL BUTTON (desktop) ========== */

.header-call-btn {
  display: none;
  align-items: center;
  gap: 6px;
  color: var(--color-white);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  transition: border-color .2s, background .2s;
  white-space: nowrap;
}

.header-call-btn:hover {
  border-color: var(--color-red);
  background: rgba(179,18,23,.1);
}

@media (min-width: 769px) {
  .header-call-btn {
    display: inline-flex;
  }
}

/* ========== TRUST BLOCK ========== */

.trust-block {
  padding: 60px 0;
  background: var(--bg-section, #111);
  color: var(--color-white);
}

.trust-block__title {
  text-align: center;
  font-family: var(--font-primary);
  font-size: 28px;
  margin-bottom: 40px;
}

.trust-block__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.trust-block__item {
  text-align: center;
  padding: 24px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
}

.trust-block__icon {
  font-size: 28px;
  display: block;
  margin-bottom: 12px;
}

.trust-block__item h3 {
  font-size: 16px;
  margin-bottom: 8px;
}

.trust-block__item p {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  margin: 0;
  line-height: 1.5;
}

.trust-block__reviews {
  text-align: center;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.trust-block__reviews-text {
  font-size: 16px;
  margin-bottom: 16px;
  color: rgba(255,255,255,.8);
}

@media (max-width: 768px) {
  .trust-block__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .trust-block__title {
    font-size: 22px;
  }
}

.trust-block--reviews-only {
  padding: 40px 0 52px;
}

.trust-block--reviews-only__inner {
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
}

.trust-block--reviews-only__text {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 0 18px;
  line-height: 1.55;
}

/* ========== LAUNCH OFFER CARDS ========== */

.launch-offer__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 30px;
}

.launch-offer__card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 28px 20px;
  text-align: center;
}

.launch-offer__card-icon {
  font-size: 28px;
  display: block;
  margin-bottom: 10px;
}

.launch-offer__card h3 {
  font-size: 16px;
  margin-bottom: 8px;
}

.launch-offer__card p {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  margin: 0;
  line-height: 1.5;
}

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

/* ========== CONTACT FORM CHIPS ========== */

.form__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

.form__chip {
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px;
  background: transparent;
  color: var(--color-white);
  font-size: 13px;
  cursor: pointer;
  transition: background .2s, border-color .2s;
}

.form__chip:hover {
  border-color: var(--color-red);
}

.form__chip.is-active {
  background: var(--color-red);
  border-color: var(--color-red);
  color: var(--color-white);
}

.form__alternatives {
  margin-top: 24px;
  text-align: center;
}

.form__alternatives p {
  margin-bottom: 12px;
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-black);
}

.form__alt-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Bloc contact / RDV : fond clair (.appointment) — boutons secondaires lisibles */
.appointment .form__alt-btns .btn--primary {
  color: var(--color-white);
}

.appointment .form__alt-btns .btn--secondary {
  background: var(--color-white);
  color: var(--color-red);
  border: 2px solid var(--color-red);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.appointment .form__alt-btns .btn--secondary:hover {
  background: var(--color-red);
  color: var(--color-white);
  border-color: var(--color-red);
  box-shadow: 0 6px 20px rgba(179, 18, 23, 0.35);
}

/* Navbar mobile / tablette : hamburger toujours visible */
@media (max-width: 1099px) {
  .main-header {
    overflow: visible;
  }

  .main-header__inner {
    overflow: visible;
  }

  .main-nav__toggle {
    position: relative;
    z-index: 1004;
  }
}


@media (max-width: 1024px) {
  .about__inner,
  .appointment__inner,
  .tech-lab__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media (max-width: 768px) {
  /* Modules/visuels en premier sur mobile (toutes les pages) */
  .service-focus__visual {
    order: -1;
    margin-bottom: 24px;
  }

  .tech-lab__inner .media-card {
    order: -1;
  }

  .about__inner .about__highlights {
    order: -1;
    margin-bottom: 24px;
  }
}

/* Centrage final - toutes les pages avec onglets (mécanique, carrosserie, pneumatiques, entretien) */

#main .atelier-suite .tabs__panel-inner,
#main .atelier-suite .tabs__panel-inner > div,
#main .atelier-suite .tabs__panel-inner h3,
#main .atelier-suite .tabs__panel-inner p,
#main .atelier-suite .tabs__panel-inner .checklist,
#main .atelier-suite .tabs__panel-inner .checklist li {
  text-align: center !important;
}

/* Mobile : centrage forcé atelier-suite et onglets */
@media (max-width: 768px) {
  #main .atelier-suite .container {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  #main .atelier-suite .section-header,
  #main .atelier-suite .section-header *,
  #main .atelier-suite .tabs {
    text-align: center !important;
    justify-content: center !important;
  }

  #main .atelier-suite .tabs__panel-inner > div {
    width: fit-content !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  #main .atelier-suite .tabs__panel-inner,
  #main .atelier-suite .tabs__panel-inner .checklist {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  #main .atelier-suite .tabs__panel-inner h3,
  #main .atelier-suite .tabs__panel-inner p,
  #main .atelier-suite .tabs__panel-inner .checklist li {
    text-align: center !important;
  }

  #main .atelier-suite .tabs__panel-inner .checklist {
    padding-inline-start: 0 !important;
  }

  #main .atelier-suite .tabs__panel-inner .checklist li {
    padding-left: 0 !important;
    padding-inline-start: 0 !important;
  }

  #main .atelier-suite .tabs__panel-inner .checklist li::before {
    position: static !important;
  }
}

@media (max-width: 480px) {
  #main .atelier-suite .container,
  #main .atelier-suite .section-header,
  #main .atelier-suite .tabs,
  #main .atelier-suite .tabs__panels,
  #main .atelier-suite .tabs__panel-inner,
  #main .atelier-suite .tabs__panel-inner > div,
  #main .atelier-suite .tabs__panel-inner h3,
  #main .atelier-suite .tabs__panel-inner p,
  #main .atelier-suite .tabs__panel-inner .checklist,
  #main .atelier-suite .tabs__panel-inner .checklist li {
    text-align: center !important;
  }
}

/* ========== CTA Contact Block (include sur pages services) ========== */

.cta-block {
  padding: 3rem 0;
  background: var(--color-gray-dark);
  color: var(--color-white);
}

.cta-block__inner {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.cta-block__title {
  font-family: var(--font-primary);
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.cta-block__sub {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 1.5rem;
}

.cta-block__buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.cta-block__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 16px 32px;
  font-size: 1.05rem;
  font-weight: 600;
  border-radius: 10px;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}

.cta-block__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(179, 18, 23, 0.4);
}

.cta-block__btn svg {
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .cta-block__title {
    font-size: 1.3rem;
  }

  .cta-block__buttons {
    flex-direction: column;
  }

  .cta-block__btn {
    justify-content: center;
    width: 100%;
    padding: 14px 24px;
  }
}

/* ========== REVIEWS (Google) ========== */

.reviews-section {
  padding: 4rem 0;
  background: linear-gradient(180deg, var(--color-gray-light) 0%, #ebebeb 100%);
  color: var(--color-black);
}

.reviews-section__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.reviews-section__badge-wrap {
  display: flex;
  justify-content: center;
  margin-top: 0.75rem;
}

/* Badge pill Google (style widget social proof) */
.google-pill {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.6rem;
  padding: 0.5rem 0.95rem 0.5rem 1rem;
  background: #fff;
  border: 1px solid rgba(60, 64, 67, 0.12);
  border-radius: 999px;
  text-decoration: none;
  color: #3c4043;
  font-family: var(--font-secondary);
  font-size: 0.9375rem;
  line-height: 1.25;
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.08);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.google-pill:hover {
  box-shadow: 0 2px 10px rgba(60, 64, 67, 0.14);
  transform: translateY(-1px);
  color: #3c4043;
}

.google-pill__stars {
  display: inline-flex;
  gap: 1px;
  line-height: 1;
}

.google-pill__star {
  color: #fbbc04;
  font-size: 1rem;
}

.google-pill__score {
  font-weight: 600;
  color: #3c4043;
  white-space: nowrap;
}

.google-pill__count {
  color: #5f6368;
  white-space: nowrap;
}

.google-pill__logo {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}

.google-pill--hero {
  margin-top: 0.15rem;
}

.hero__google-badge {
  margin: 0.85rem 0 0.25rem;
}

.reviews-section__title {
  font-family: var(--font-primary);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  margin: 0 0 0.75rem;
  color: var(--color-black);
}

.reviews-section__intro {
  max-width: 36rem;
  margin: 0 auto 1.75rem;
  color: var(--color-gray);
  line-height: 1.6;
  font-size: 1rem;
}

.reviews-section__grid.google-reviews--loading {
  opacity: 0.72;
}

.review-card__name {
  font-size: 0.8rem;
  color: var(--color-gray);
  text-decoration: none;
}

a.review-card__name:hover {
  color: var(--color-red);
}

.reviews-section__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: center;
  align-items: center;
  margin-top: 1.75rem;
}

.reviews-section__btn-review {
  font-size: 0.95rem;
}

.reviews-section__note {
  max-width: 40rem;
  margin: 0 auto 1.25rem;
  text-align: center;
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--color-gray);
}

.reviews-section__note code {
  font-size: 0.8rem;
  background: rgba(0, 0, 0, 0.06);
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
}

.reviews-section__rating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.reviews-section__score-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.5rem 1rem;
}

.reviews-section__score {
  font-family: var(--font-primary);
  font-size: clamp(3rem, 8vw, 4.25rem);
  font-weight: 700;
  line-height: 1;
  color: var(--color-black);
  letter-spacing: -0.03em;
}

.reviews-section__stars-main {
  display: inline-flex;
  gap: 2px;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1;
}

.reviews-section__star {
  color: #fbbc04;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.reviews-section__badge-google {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 1rem 0.5rem 0.45rem;
  background: var(--color-white);
  border-radius: 999px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.reviews-section__google-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #4285f4 0%, #34a853 33%, #fbbc04 66%, #ea4335 100%);
  color: var(--color-white);
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1;
}

.reviews-section__badge-text {
  font-family: var(--font-secondary);
  font-size: 0.95rem;
  color: var(--color-gray-dark);
}

.reviews-section__badge-score {
  font-weight: 700;
  color: var(--color-black);
}

.reviews-section__badge-sep {
  color: var(--color-gray);
  margin: 0 0.15rem;
}

.reviews-section__badge-count {
  color: var(--color-gray);
}

.reviews-section__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-bottom: 2rem;
}

.review-card {
  background: var(--color-white);
  border-radius: 14px;
  padding: 1.35rem 1.25rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
  border: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  text-align: left;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.review-card:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.review-card__stars {
  font-size: 1rem;
  letter-spacing: 2px;
  color: #fbbc04;
  margin-bottom: 0.85rem;
  line-height: 1;
}

.review-card__text {
  flex: 1;
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-gray-dark);
  text-align: left;
}

.review-card__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
}

.review-card__source {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  background: linear-gradient(135deg, #e8f0fe 0%, #fce8e6 100%);
  color: #1a73e8;
  border: 1px solid rgba(26, 115, 232, 0.2);
}

.reviews-section__cta {
  text-align: center;
  margin: 0;
}

.reviews-section__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 1rem;
  color: var(--color-red);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.reviews-section__link:hover {
  color: var(--color-red-dark);
  border-bottom-color: var(--color-red-dark);
}

.review-card--featured {
  max-width: 40rem;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .reviews-section__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .reviews-section {
    padding: 3rem 0;
  }

  .reviews-section__header {
    gap: 0.9rem;
  }

  .reviews-section__rating {
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
  }

  .reviews-section__score {
    font-size: 1.8rem;
  }

  .reviews-section__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .review-card {
    padding: 1.1rem;
  }

  .review-card__text {
    font-size: 0.98rem;
    line-height: 1.7;
  }

  .reviews-section__badge-google {
    flex-wrap: wrap;
    justify-content: center;
    border-radius: 12px;
    padding: 0.65rem 1rem;
    width: 100%;
  }
}

/* ========== HOME CONVERSION: HERO META + LEDE ========== */

.hero__meta {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
  margin: 0 0 8px;
}

.hero .hero__lede {
  font-size: 18px;
  max-width: 800px;
  margin: 0 auto 30px;
  color: rgba(255, 255, 255, 0.95);
}

.hero--subpage .hero__lede--sub {
  margin-top: 12px;
  margin-bottom: 24px;
}

/* ========== HOOK OFFERS (HOME) ========== */

.hook-offers {
  background: var(--color-black);
  color: var(--color-white);
  padding: 28px 0 32px;
}

.hook-offers__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.hook-offers__card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.hook-offers__label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.85;
  font-weight: 600;
}

.hook-offers__price {
  font-family: var(--font-primary);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.1;
}

.hook-offers__hint {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.4;
  flex: 1;
}

.hook-offers__link {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-white);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hook-offers__link:hover {
  color: #ffb3b5;
}

.hook-offers--prominent {
  padding: 36px 0 42px;
}

.hook-offers--prominent .hook-offers__grid {
  gap: 20px;
}

.hook-offers--prominent .hook-offers__card {
  padding: 24px 20px;
  text-align: center;
  align-items: center;
}

.hook-offers--prominent .hook-offers__price {
  font-size: clamp(1.75rem, 5vw, 2.35rem);
}

@media (max-width: 768px) {
  .hook-offers__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .hook-offers__price {
    font-size: 26px;
  }

  .hook-offers--prominent .hook-offers__price {
    font-size: 1.85rem;
  }
}

/* ========== PRICING TABLE (HOME) ========== */

.pricing-section {
  padding: 88px 0;
  background: #f6f6f6;
}

.pricing-section h2 {
  font-family: var(--font-primary);
  font-size: 32px;
  text-align: center;
  margin-bottom: 16px;
  color: var(--color-black);
}

.pricing-section__intro {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 32px;
  font-size: 16px;
  line-height: 1.55;
  color: #333;
}

.pricing-table-wrap {
  max-width: 720px;
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: var(--color-white);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.pricing-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

.pricing-table thead th {
  background: var(--color-black);
  color: var(--color-white);
  text-align: left;
  padding: 14px 18px;
  font-weight: 600;
}

.pricing-table tbody th {
  font-weight: 500;
  text-align: left;
  padding: 12px 18px;
  border-bottom: 1px solid #eee;
  color: var(--color-black);
}

.pricing-table tbody td {
  padding: 12px 18px;
  border-bottom: 1px solid #eee;
  text-align: right;
  font-weight: 600;
  color: var(--color-red, #b31217);
  white-space: nowrap;
}

.pricing-section--readable .pricing-table thead th {
  padding: 16px 20px;
}

.pricing-section--readable .pricing-table tbody th,
.pricing-section--readable .pricing-table tbody td {
  padding: 15px 20px;
  line-height: 1.5;
}

.pricing-table tbody tr:last-child th,
.pricing-table tbody tr:last-child td {
  border-bottom: none;
}

.pricing-section__disclaimer {
  text-align: center;
  font-size: 14px;
  color: #555;
  margin: 20px auto 0;
  max-width: 560px;
}

.pricing-section__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 32px;
}

.pricing-section__actions .btn--secondary.btn--dark {
  border-color: var(--color-black);
  color: var(--color-black);
  background: transparent;
}

.pricing-section__actions .btn--secondary.btn--dark:hover {
  background: var(--color-black);
  color: var(--color-white);
}

@media (max-width: 640px) {
  .pricing-section {
    padding: 56px 0;
  }

  .pricing-section h2 {
    font-size: 24px;
  }

  .pricing-table {
    font-size: 14px;
  }

  .pricing-table thead th,
  .pricing-table tbody th,
  .pricing-table tbody td {
    padding: 10px 12px;
  }

  .pricing-table tbody td {
    white-space: normal;
  }
}

/* ========== REASSURANCE STRIP ========== */

.reassurance-strip {
  background: var(--color-black);
  color: var(--color-white);
  padding: 36px 0;
}

.reassurance-strip__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 28px;
  font-size: 15px;
  line-height: 1.5;
}

.reassurance-strip__list strong {
  color: var(--color-white);
}

@media (max-width: 640px) {
  .reassurance-strip__list {
    grid-template-columns: 1fr;
  }
}

/* ========== SERVICES BUCKETS + BUTTONS ========== */

.services--buckets .services__lead {
  text-align: center;
  max-width: 720px;
  margin: -24px auto 40px;
  font-size: 17px;
  line-height: 1.55;
  color: #333;
}

.card--bucket h3 {
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.card__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.btn--sm {
  padding: 12px 22px;
  font-size: 0.9rem;
  border-radius: 999px;
}

.btn--secondary.btn--dark {
  border-color: var(--color-black);
  color: var(--color-black);
  background: transparent;
}

.btn--secondary.btn--dark:hover {
  background: var(--color-black);
  color: var(--color-white);
}

/* 6 arguments : 2 lignes × 3 colonnes (desktop), 2 col. tablette, 1 col. mobile */
.why-us__grid.why-us__grid--six {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 899px) {
  .why-us__grid.why-us__grid--six {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .why-us__grid.why-us__grid--six {
    grid-template-columns: 1fr;
  }
}

.appointment--final .appointment__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 8px;
}

.appointment--final .appointment__hint {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.95rem;
  color: var(--color-gray-dark);
}

.appointment--final .appointment__hint a {
  color: var(--color-red);
  font-weight: 600;
  text-decoration: none;
}

.appointment--final .appointment__hint a:hover {
  text-decoration: underline;
}

/* Fond clair : les .btn--secondary (ghost blanc du hero) reprennent le rouge plein */
.appointment .appointment__actions .btn--secondary,
.appointment .appointment__actions .btn--whatsapp {
  background: var(--color-red);
  color: var(--color-white);
  border-color: var(--color-red);
  box-shadow: 0 4px 14px rgba(179, 18, 23, 0.25);
}

.appointment .appointment__actions .btn--secondary:hover,
.appointment .appointment__actions .btn--whatsapp:hover {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
  color: var(--color-white);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(179, 18, 23, 0.45);
}

.services-links--compact {
  padding: 56px 0;
  background: var(--color-white);
}

.services-links__heading {
  font-family: var(--font-primary);
  font-size: 22px;
  text-align: center;
  margin-bottom: 24px;
  color: var(--color-black);
}

.services-links__grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  max-width: 900px;
  margin: 0 auto;
}

.service-focus__cta {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.offer-banner__text {
  margin: 0;
  line-height: 1.45;
  padding-right: 8px;
}

@media (max-width: 640px) {
  .offer-banner__inner {
    flex-wrap: wrap;
    padding: 10px 40px 10px 14px;
  }
}

/* ========== CTA STICKY (mobile : appel — WhatsApp via bulle + header) ========== */

@media (max-width: 768px) {
  .cta-sticky__row {
    display: flex;
    gap: 10px;
    align-items: stretch;
  }

  .cta-sticky__btn {
    flex: 1;
    min-height: 48px;
  }

  .cta-sticky__btn--solo {
    flex: 1 1 100%;
  }

  .cta-sticky__btn--whatsapp {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 12px;
    background: #25d366;
    color: #fff;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    border: 2px solid #25d366;
    transition: background 0.2s, color 0.2s;
  }

  .cta-sticky__btn--whatsapp:hover {
    background: #1fb855;
    border-color: #1fb855;
    color: #fff;
  }

  .cta-sticky__btn--devis {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 12px;
    background: var(--color-white);
    color: var(--color-black);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    border: 2px solid rgba(255, 255, 255, 0.35);
    transition: background 0.2s, color 0.2s;
  }

  .cta-sticky__btn--devis:hover {
    background: #f0f0f0;
  }
}

/* ========== PAGE MERCI + CONTACT + SERVICES « BIENTÔT » ========== */

.merci-page {
  padding: 72px 0 96px;
  background: linear-gradient(180deg, #f8f8f8 0%, #fff 45%);
}

.merci-page__box {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
  padding: 40px 28px 36px;
  background: var(--color-white);
  border-radius: 16px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.merci-page__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: rgba(179, 18, 23, 0.12);
  color: var(--color-red, #b31217);
  font-size: 22px;
  font-weight: 700;
}

.merci-page__title {
  font-family: var(--font-primary);
  font-size: 26px;
  margin: 0 0 16px;
  line-height: 1.25;
  color: var(--color-black);
}

.merci-page__text,
.merci-page__sub,
.merci-page__hint {
  font-size: 16px;
  line-height: 1.55;
  color: #333;
  margin: 0 0 14px;
}

.merci-page__hint {
  font-size: 15px;
  color: #555;
}

.merci-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

.merci-page__btn {
  min-width: 160px;
}

.merci-page__back {
  margin: 28px 0 0;
  font-size: 15px;
}

.merci-page__back a {
  color: var(--color-red, #b31217);
  font-weight: 600;
  text-decoration: none;
}

.merci-page__back a:hover {
  text-decoration: underline;
}

/* —— Link hub /links/ (style Linktree) —— */
html:has(.page-link-hub) {
  background: #050508 !important;
  height: 100%;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
}

.page-link-hub {
  margin: 0;
  height: 100%;
  height: 100dvh;
  width: 100%;
  max-width: none;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: manipulation;
  background: #050508 !important;
}

.page-link-hub .skip-link {
  display: none;
}

.page-link-hub #main,
.main--link-hub {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  height: 100dvh;
  max-height: 100dvh;
  background: #050508 !important;
  overflow: hidden;
}

.link-hub {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  height: 100dvh;
  height: 100svh;
  max-height: 100dvh;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 1.25rem;
  padding-top: max(1.25rem, env(safe-area-inset-top, 0px));
  padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  padding-bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
  display: flex;
  justify-content: center;
  align-items: center;
  background: #050508;
}

/* Ciel étoilé — même stack que phantomdev.fr (static stars + codepen meteors) */
.link-hub__sky {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  contain: layout style paint;
  transform: translateZ(0);
}

.link-hub__sky-base {
  position: absolute;
  inset: 0;
  background-color: #050508;
}

.link-hub__halo {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(90% 65% at 50% 8%, rgba(130, 17, 17, 0.28) 0%, transparent 58%),
    radial-gradient(70% 55% at 50% 35%, rgba(130, 17, 17, 0.1) 0%, transparent 62%),
    radial-gradient(120% 100%, transparent 0%, rgba(5, 5, 8, 0.35) 68%, rgba(5, 5, 8, 0.7) 100%);
}

.link-hub__stars-field {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
  transform: translateZ(0);
}

.link-hub__static-star {
  position: absolute;
  opacity: var(--star-opacity, 0.8);
  background: #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 1px #fffc;
}

@media (prefers-reduced-motion: no-preference) {
  .link-hub__static-star {
    will-change: opacity;
    animation: link-hub-star-twinkle ease-in-out infinite;
  }
}

@keyframes link-hub-star-twinkle {
  0%,
  100% {
    opacity: calc(var(--star-opacity, 0.8) * 0.45);
  }
  50% {
    opacity: var(--star-opacity, 0.8);
  }
}

@keyframes link-hub-star-twinkle-glow {
  0%,
  100% {
    opacity: calc(var(--star-opacity, 0.8) * 0.5);
  }
  50% {
    opacity: min(1, calc(var(--star-opacity, 0.8) * 1.08));
  }
}

.link-hub__static-star--glow {
  box-shadow:
    0 0 4px 1px rgba(255, 255, 255, 0.7),
    0 0 10px 2px rgba(255, 180, 171, 0.35);
}

@media (prefers-reduced-motion: no-preference) {
  .link-hub__static-star--glow {
    animation-name: link-hub-star-twinkle-glow;
  }
}

/*
  Pure CSS Shooting Star Animation Effect
  Copyright (c) 2021 by Delroy Prithvi
  https://codepen.io/delroyprithvi/pen/LYyJROR
  Licensed under the MIT License.
  (variante codepen-meteors utilisée sur phantomdev.fr)
*/
.link-hub__meteors {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}

.link-hub__meteors span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow:
    0 0 0 4px rgba(255, 255, 255, 0.1),
    0 0 0 8px rgba(255, 255, 255, 0.1),
    0 0 20px rgba(255, 255, 255, 0.1);
  animation: 3s linear infinite link-hub-meteor;
  will-change: transform, opacity;
}

.link-hub__meteors span::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 300px;
  height: 1px;
  background: linear-gradient(90deg, #fff, transparent);
}

@keyframes link-hub-meteor {
  0% {
    opacity: 1;
    transform: rotate(315deg) translate(0);
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: rotate(315deg) translate(-1000px);
  }
}

.link-hub__meteors span:nth-child(1) {
  top: 0;
  left: auto;
  right: 0;
  animation-duration: 1s;
  animation-delay: 0s;
}
.link-hub__meteors span:nth-child(2) {
  top: 0;
  left: auto;
  right: 80px;
  animation-duration: 3s;
  animation-delay: 0.2s;
}
.link-hub__meteors span:nth-child(3) {
  top: 80px;
  left: auto;
  right: 0;
  animation-duration: 2s;
  animation-delay: 0.4s;
}
.link-hub__meteors span:nth-child(4) {
  top: 0;
  left: auto;
  right: 180px;
  animation-duration: 1.5s;
  animation-delay: 0.6s;
}
.link-hub__meteors span:nth-child(5) {
  top: 0;
  left: auto;
  right: 400px;
  animation-duration: 2.5s;
  animation-delay: 0.8s;
}
.link-hub__meteors span:nth-child(6) {
  top: 0;
  left: auto;
  right: 600px;
  animation-duration: 3s;
  animation-delay: 1s;
}
.link-hub__meteors span:nth-child(7) {
  top: 300px;
  left: auto;
  right: 0;
  animation-duration: 1.75s;
  animation-delay: 1.2s;
}
.link-hub__meteors span:nth-child(8) {
  top: 0;
  left: auto;
  right: 700px;
  animation-duration: 1.25s;
  animation-delay: 1.4s;
}
.link-hub__meteors span:nth-child(9) {
  top: 0;
  left: auto;
  right: 450px;
  animation-duration: 2.75s;
  animation-delay: 2.75s;
}
.link-hub__meteors span:nth-child(10) {
  top: 0;
  left: auto;
  right: 1000px;
  animation-duration: 2.25s;
  animation-delay: 0.75s;
}

@media (max-width: 767px) {
  .link-hub__static-star:nth-child(n + 71) {
    display: none;
  }

  .link-hub__static-star:nth-child(2n) {
    opacity: var(--star-opacity, 0.8);
    animation: none;
  }

  .link-hub__meteors span:nth-child(n + 5) {
    display: none;
  }

  .link-hub__halo {
    opacity: 0.85;
  }
}

@media (prefers-reduced-motion: reduce) {
  .link-hub__static-star:nth-child(n + 61) {
    display: none;
  }

  .link-hub__static-star {
    opacity: var(--star-opacity, 0.8);
    animation: none;
  }

  .link-hub__meteors span {
    opacity: 0;
    animation: none;
  }
}

.link-hub__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 24rem; /* ~384px — largeur type Linktree téléphone */
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  flex: 0 1 auto;
  max-height: 100%;
}

.link-hub__header {
  text-align: center;
  margin-bottom: 1.25rem;
}

.link-hub__avatar {
  display: block;
  width: 5.25rem;
  height: 5.25rem;
  margin: 0 auto 0.75rem;
  border-radius: 50%;
  object-fit: cover;
  background: #1a1a1e;
  border: 3px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}

.link-hub__title {
  margin: 0 0 0.15rem;
  font-family: var(--font-primary, inherit);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #fff;
  line-height: 1.2;
}

.link-hub__handle {
  margin: 0 0 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
}

.link-hub__bio {
  margin: 0 auto;
  max-width: 20rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.78);
}

.link-hub__list {
  list-style: none;
  margin: 0 0 1.1rem;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.link-hub__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  min-height: 2.85rem;
  padding: 0.7rem 2.75rem;
  border-radius: 999px;
  background: #fff;
  border: none;
  color: #111;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.2;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.06);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
  .link-hub__btn:hover,
  .link-hub__btn:focus-visible {
    transform: scale(1.02);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
    background: #f7f7f8;
    color: #111;
  }

  .link-hub__btn--featured:hover,
  .link-hub__btn--featured:focus-visible {
    background: #1ebe57;
    color: #042;
  }
}

.link-hub__btn:active {
  transform: scale(0.98);
}

.link-hub__btn--featured {
  background: #25d366;
  color: #063;
}

.link-hub__btn .link-hub__icon {
  position: absolute;
  left: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  color: inherit;
}

.link-hub__btn .link-hub__icon svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.link-hub__btn-label {
  text-align: center;
}

.link-hub__socials {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
  margin: 0;
}

/* Petits viewports : densifier pour tenir sans scroll */
@media (max-height: 740px) {
  .link-hub__avatar {
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 0.55rem;
  }

  .link-hub__header {
    margin-bottom: 0.85rem;
  }

  .link-hub__bio {
    font-size: 0.78rem;
  }

  .link-hub__list {
    gap: 0.45rem;
    margin-bottom: 0.85rem;
  }

  .link-hub__btn {
    min-height: 2.65rem;
    padding: 0.55rem 2.5rem;
    font-size: 0.9rem;
  }

  .link-hub__social {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px;
    min-height: 44px;
  }

  .link-hub__social .link-hub__icon,
  .link-hub__social .link-hub__icon svg {
    width: 1.45rem;
    height: 1.45rem;
  }
}

@media (max-height: 640px) {
  .link-hub__bio br {
    display: none;
  }

  .link-hub__avatar {
    width: 3.75rem;
    height: 3.75rem;
  }

  .link-hub__title {
    font-size: 1.1rem;
  }

  .link-hub__btn {
    min-height: 2.4rem;
  }
}

.page-link-hub.is-cookie-visible {
  padding-bottom: 0 !important;
}

.link-hub__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem; /* 52px */
  height: 3.25rem;
  min-width: 52px;
  min-height: 52px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #fff;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
  .link-hub__social:hover,
  .link-hub__social:focus-visible {
    background: rgba(255, 255, 255, 0.18);
    transform: translateY(-2px);
    color: #fff;
  }
}

.link-hub__social .link-hub__icon {
  display: inline-flex;
  width: 1.75rem;
  height: 1.75rem;
}

.link-hub__social .link-hub__icon svg {
  width: 1.75rem;
  height: 1.75rem;
  display: block;
}

@media (max-width: 480px) {
  .merci-page__title {
    font-size: 22px;
  }

  .merci-page__actions {
    flex-direction: column;
  }

  .merci-page__btn {
    width: 100%;
  }
}

.contact-reassurance {
  background: #111;
  color: var(--color-white);
  padding: 18px 0;
}

.contact-reassurance__inner {
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
}

.contact-reassurance__inner p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
}

.contact-reassurance__inner strong {
  color: var(--color-white);
}

.upcoming-pro {
  padding: 72px 0 88px;
  background: var(--color-white);
}

.upcoming-pro--muted {
  background: #f6f6f6;
}

.upcoming-pro__inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}

.upcoming-pro__inner h2 {
  font-family: var(--font-primary);
  font-size: 26px;
  margin: 0 0 16px;
  color: var(--color-black);
}

.upcoming-pro__text {
  font-size: 17px;
  line-height: 1.55;
  color: #333;
  margin: 0 0 20px;
}

.upcoming-pro__list {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  text-align: left;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.upcoming-pro__list li {
  position: relative;
  padding: 10px 0 10px 28px;
  font-size: 15px;
  line-height: 1.45;
  color: #444;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.upcoming-pro__list li:last-child {
  border-bottom: none;
}

.upcoming-pro__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--color-red, #b31217);
  font-weight: 700;
}

.upcoming-pro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

@media (max-width: 480px) {
  .upcoming-pro__actions {
    flex-direction: column;
  }

  .upcoming-pro__actions .btn {
    width: 100%;
  }
}

.hero--subpage .hero__lede {
  font-size: 17px;
  max-width: 720px;
  margin: 0 auto 24px;
  color: rgba(255, 255, 255, 0.95);
}

/* ========== MOBILE APP-LIKE SHELL (≤768px) ==========
   Fond gris, sections en cartes, footer arrondi, safe areas iPhone */

@media (max-width: 768px) {
  .main-header {
    padding-top: env(safe-area-inset-top, 0px);
  }

  #main > section:not(.hero) {
    margin-left: 11px;
    margin-right: 11px;
    margin-bottom: 12px;
    border-radius: 16px;
    overflow-x: clip;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.07);
  }

  #main > section.hero + section,
  #main > section:first-child:not(.hero) {
    margin-top: 12px;
  }

  #main > section.hero {
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
    border-radius: 0;
    border: none;
    box-shadow: none;
    overflow-x: clip;
  }

  .pricing-section {
    background: #ffffff !important;
  }

  .appointment,
  .appointment--final {
    background: #ffffff;
  }

  .services.services--buckets {
    background: #ffffff;
  }

  .services-links.services-links--compact {
    background: #ffffff;
  }

  .reviews-section {
    background: #ffffff;
  }

  .pricing-section__intro,
  .pricing-section__disclaimer {
    color: #333 !important;
  }

  .pricing-section__intro strong {
    color: #1f1f1f !important;
  }

  .reviews-section__title,
  .reviews-section__score {
    color: #1f1f1f !important;
  }

  .review-card {
    background: #f7f7f7;
    border-color: rgba(0, 0, 0, 0.08);
  }

  .review-card__text {
    color: #444 !important;
  }

  .review-card__name {
    color: #1f1f1f !important;
  }

  .pricing-table-wrap {
    margin-bottom: 0.5rem;
  }

  .back-to-top {
    display: none !important;
  }

  .faq-section {
    padding: 52px 0 64px;
  }

  .site-footer {
    margin-left: 11px;
    margin-right: 11px;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
  }

  a.btn,
  button.btn {
    border-radius: 12px;
    -webkit-tap-highlight-color: transparent;
  }

  a.btn:active {
    transform: scale(0.98);
  }

  .card,
  .hook-offers__card {
    border-radius: 14px;
  }

  .faq__question {
    padding: 16px 18px;
    font-size: 15px;
  }

  .cookie-banner {
    bottom: calc(var(--cta-sticky-height) + env(safe-area-inset-bottom, 0px));
    z-index: 1060;
    border-radius: 16px 16px 0 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .offer-banner__close {
    min-width: 44px;
    min-height: 44px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
  }

  .main-nav__item--mobile-call {
    display: block;
    border-bottom: none;
    padding-bottom: 10px;
    margin-bottom: 4px;
  }

  .main-nav__mobile-call {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 16px;
    min-height: 48px;
    border-radius: 12px;
    background: var(--color-red);
    color: var(--color-white);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  .main-nav__mobile-call:active {
    background: var(--color-red-dark);
    transform: scale(0.98);
  }

  .table-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 1.5rem 0;
  }

  .table-scroll table {
    width: 100%;
    min-width: 260px;
    border-collapse: collapse;
  }
}

@media (min-width: 769px) {
  .main-nav__item--mobile-call {
    display: none;
  }
}

.lead-strip {
  background: linear-gradient(90deg, #17181d 0%, #242736 100%);
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.lead-strip__inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}

.lead-strip__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

.lead-strip__text a:is(:link, :visited) {
  color: var(--color-link, #d41e24);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.lead-strip__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

@media (max-width: 768px) {
  .lead-strip__inner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .lead-strip__actions {
    justify-content: center;
  }
}

/* ========== ESPACE PRO ========== */

.main-nav__trigger--pro {
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 8px;
  padding: 10px 14px;
  font-weight: 700;
}

.main-nav__trigger--pro:hover,
.main-nav__item--pro.is-active > .main-nav__trigger--pro {
  background: #9a0f14;
  color: var(--color-white);
}

.pro-breadcrumb {
  background: var(--color-gray-light);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  padding: 0.75rem 0;
}

.pro-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9rem;
}

.pro-breadcrumb__list li:not(:last-child)::after {
  content: "›";
  margin-left: 0.5rem;
  color: rgba(0, 0, 0, 0.35);
}

.pro-breadcrumb__list a {
  color: var(--color-primary);
  text-decoration: none;
}

.pro-breadcrumb__list a:hover {
  text-decoration: underline;
}

.pro-breadcrumb__list li[aria-current="page"] {
  color: rgba(0, 0, 0, 0.65);
}

.pro-stats {
  background: var(--color-gray-dark);
  color: var(--color-white);
  padding: 1.25rem 0;
}

.pro-stats__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.pro-stats__item {
  text-align: center;
  padding: 0.5rem;
}

.pro-stats__item strong {
  display: block;
  font-family: var(--font-primary);
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
  color: var(--color-white);
}

.pro-stats__item span {
  display: block;
  font-size: 0.85rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.72);
}

.service-focus--pro {
  padding: 80px 0;
}

.service-focus__inner--split {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2.5rem;
  align-items: start;
}

.pro-callout {
  background: linear-gradient(145deg, #fff 0%, #f5f5f5 100%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-left: 4px solid var(--color-primary);
  border-radius: 16px;
  padding: 1.75rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.pro-callout__label {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin: 0 0 0.5rem;
}

.pro-callout__phone {
  display: block;
  font-family: var(--font-primary);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-gray-dark);
  text-decoration: none;
  margin-bottom: 0.35rem;
}

.pro-callout__phone:hover {
  color: var(--color-primary);
}

.pro-callout__hours {
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
  color: rgba(0, 0, 0, 0.6);
}

.pro-callout__btn {
  width: 100%;
  justify-content: center;
}

.pro-pillars {
  padding: 80px 0;
  background: var(--color-white);
}

.pro-pillars__grid {
  grid-template-columns: repeat(3, 1fr);
}

.pro-pillar-card {
  background: var(--color-gray-light);
  border-radius: 16px;
  padding: 1.75rem;
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pro-pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

.pro-pillar-card__icon,
.pro-pillar-card__emoji {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: rgba(179, 18, 23, 0.12);
  color: var(--color-primary);
  font-size: 1.2rem;
  font-weight: 700;
}

.pro-pillar-card__emoji {
  background: transparent;
  width: auto;
  height: auto;
  font-size: 2rem;
  border-radius: 0;
}

.pro-pillar-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}

.pro-pillar-card p {
  margin: 0;
  line-height: 1.6;
  color: rgba(0, 0, 0, 0.68);
}

.pro-hub {
  padding: 100px 0;
  background: var(--color-gray-light);
}

.pro-hub__lead {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.5rem;
  color: #444;
  font-size: 1.05rem;
}

.pro-hub .services-links__heading,
.pro-related .services-links__heading {
  font-size: 2rem;
  margin-bottom: 0.75rem;
  color: var(--color-black);
  text-transform: none;
  letter-spacing: -0.02em;
}

.pro-hub__grid {
  grid-template-columns: repeat(6, 1fr);
  gap: 1.25rem;
}

.pro-hub__grid--compact {
  grid-template-columns: repeat(2, 1fr);
  max-width: 900px;
  margin: 0 auto;
}

.pro-hub__grid--compact .pro-hub__card {
  grid-column: auto;
}

.pro-hub__card {
  grid-column: span 2;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  position: relative;
  padding: 1.75rem 1.5rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
}

.pro-hub__card strong {
  font-size: 1.2rem;
  line-height: 1.3;
}

.pro-hub__grid:not(.pro-hub__grid--compact) .pro-hub__card:nth-child(4) {
  grid-column: 2 / span 2;
}

.pro-hub__grid:not(.pro-hub__grid--compact) .pro-hub__card:nth-child(5) {
  grid-column: 4 / span 2;
}

.pro-hub__icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 0.75rem;
}

.pro-hub__teaser {
  color: #444;
  font-size: 0.95rem;
  line-height: 1.55;
  margin-top: 0.35rem;
}

.pro-hub__link {
  margin-top: auto;
  padding-top: 1rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: none;
}

.pro-hub__card:hover .pro-hub__link {
  text-decoration: underline;
}

.pro-related {
  padding: 80px 0;
  background: var(--color-white);
}

.pro-testimonial {
  padding: 80px 0;
  background: var(--color-white);
}

.pro-testimonial__heading {
  text-align: center;
  font-family: var(--font-primary);
  font-size: 2rem;
  font-weight: 800;
  margin-bottom: 2rem;
  color: var(--color-black);
  text-transform: none;
  letter-spacing: -0.02em;
}

.pro-testimonial__stars {
  color: #f4b400;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
}

.pro-testimonial__card {
  max-width: 760px;
  margin: 0 auto;
  padding: 2rem 2.25rem;
  background: var(--color-gray-light);
  border-radius: 16px;
  border-left: 4px solid var(--color-primary);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.pro-testimonial__quote {
  font-size: 1.08rem;
  line-height: 1.75;
  margin: 0 0 1.25rem;
  font-style: italic;
  color: #222;
}

.pro-testimonial__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
}

.pro-testimonial__author {
  font-style: normal;
  font-weight: 700;
  color: var(--color-primary);
}

.pro-testimonial__role {
  font-size: 0.9rem;
  color: #555;
}

.pro-highlights {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.pro-highlights .pro-testimonial__heading {
  margin-bottom: 1.5rem;
}

.pro-highlights__list {
  max-width: 720px;
  margin: 0 auto;
  color: #222;
}

.workflow--pro {
  padding: 80px 0;
}

.cta-block--pro {
  background: linear-gradient(135deg, var(--color-gray-dark) 0%, #1a1a1a 100%);
}

@media (max-width: 1024px) {
  .pro-stats__inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .service-focus__inner--split {
    grid-template-columns: 1fr;
  }

  .pro-pillars__grid {
    grid-template-columns: 1fr;
  }

  .pro-hub__grid,
  .pro-hub__grid--compact {
    grid-template-columns: repeat(2, 1fr);
  }

  .pro-hub__card,
  .pro-hub__card:nth-child(4),
  .pro-hub__card:nth-child(5) {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .pro-stats__inner {
    grid-template-columns: 1fr;
  }

  .pro-hub {
    padding: 70px 0;
  }

  .pro-hub__grid,
  .pro-hub__grid--compact {
    grid-template-columns: 1fr;
  }

  .pro-callout__phone {
    font-size: 1.45rem;
  }

  .pro-testimonial__card {
    padding: 1.5rem;
  }

  .main-nav__trigger--pro {
    width: 100%;
    justify-content: space-between;
  }
}

/* ========== CONVERSION — contact form ========== */

.appointment__callout {
  margin: 1rem 0 1.25rem;
}

.contact-form-section {
  padding: 80px 0;
  background: var(--color-gray-light);
}

.contact-form-section__inner {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: start;
}

.contact-form-section__intro h2 {
  margin-bottom: 0.75rem;
}

.contact-form {
  background: var(--color-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.contact-form__honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

.contact-form__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.contact-form__field--full {
  grid-column: 1 / -1;
}

.contact-form__field label {
  font-weight: 700;
  font-size: 0.95rem;
}

.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 0.9rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 10px;
  font: inherit;
  background: #fff;
  color: var(--color-black);
}

.contact-form__field textarea {
  min-height: 120px;
  resize: vertical;
}

.contact-form__field input:focus,
.contact-form__field select:focus,
.contact-form__field textarea:focus {
  outline: 2px solid var(--color-red);
  outline-offset: 1px;
  border-color: var(--color-red);
}

.contact-form__actions {
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}

.contact-form__alt,
.contact-form__privacy {
  margin: 0;
  color: #555;
  font-size: 0.875rem;
  line-height: 1.5;
  max-width: 36rem;
}

@media (max-width: 900px) {
  .contact-form-section__inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .contact-form__grid {
    grid-template-columns: 1fr;
  }

  .contact-form__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .contact-form__submit {
    width: 100%;
  }
}

/* ========== CONVERSION — pages courtes (UI soignée) ========== */

.conversion-section-head {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 2.25rem;
}

.conversion-section-head__title {
  font-family: var(--font-primary);
  font-size: clamp(1.5rem, 3.2vw, 2rem);
  font-weight: 700;
  color: var(--conv-text);
  line-height: 1.2;
  margin: 0;
}

.conversion-section-head__lead {
  margin: 0.75rem auto 0;
  max-width: 34rem;
  color: var(--conv-text-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.conversion-section-head--light .section-kicker {
  color: rgba(255, 255, 255, 0.85);
}

.conversion-section-head--light .conversion-section-head__title {
  color: var(--color-white);
}

/* Bandeau contact */
.conversion-band {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
}

.conversion-band--primary {
  background: var(--conv-band-bg);
}

.conversion-band--footer {
  background: var(--conv-band-footer);
  color: var(--color-white);
}

.conversion-band__inner {
  max-width: 42rem;
  margin: 0 auto;
  text-align: center;
  padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2rem);
  border-radius: 20px;
  background: var(--conv-band-card);
  border: 1px solid var(--conv-border);
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.08),
    0 1px 0 rgba(255, 255, 255, 0.5) inset;
}

.conversion-band--footer .conversion-band__inner {
  background: var(--conv-band-footer-card);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.35);
}

.conversion-band__header {
  margin-bottom: 1.5rem;
}

.conversion-band__title {
  font-family: var(--font-primary);
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 0.65rem;
  color: var(--conv-text);
}

.conversion-band--footer .conversion-band__title {
  color: #fafafa;
}

.conversion-band__lead {
  margin: 0 auto;
  max-width: 32rem;
  color: var(--conv-text-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.conversion-band--footer .conversion-band__lead {
  color: rgba(255, 255, 255, 0.88);
}

.conversion-band__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.conversion-band__phone {
  min-width: min(100%, 16rem);
  font-size: clamp(1.05rem, 2.5vw, 1.15rem);
  padding: 1rem 1.75rem;
  letter-spacing: 0.01em;
}

.conversion-band__secondary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  width: 100%;
}

.conversion-band__secondary .btn {
  min-width: 9.5rem;
}

.conversion-band--primary .conversion-band__secondary .btn--secondary {
  background: var(--color-red);
  color: #fff;
  border: 2px solid var(--color-red);
  box-shadow: 0 4px 14px rgba(179, 18, 23, 0.25);
}

.conversion-band--primary .conversion-band__secondary .btn--secondary:hover,
.conversion-band--primary .conversion-band__secondary .btn--secondary:focus-visible {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(179, 18, 23, 0.35);
}

.conversion-band--footer .conversion-band__secondary .btn--secondary {
  background: transparent;
  color: var(--color-white);
  border: 2px solid rgba(255, 255, 255, 0.35);
  box-shadow: none;
}

.conversion-band--footer .conversion-band__secondary .btn--secondary:hover,
.conversion-band--footer .conversion-band__secondary .btn--secondary:focus-visible {
  background: var(--color-white);
  border-color: var(--color-white);
  color: var(--color-black);
}

.conversion-band__meta {
  margin: 1.35rem 0 0;
  font-size: 0.95rem;
  color: var(--conv-text-muted);
  line-height: 1.6;
}

.conversion-band--footer .conversion-band__meta {
  color: rgba(255, 255, 255, 0.78);
}

.conversion-band__meta a {
  color: var(--color-red);
  font-weight: 600;
  text-decoration: none;
}

.conversion-band__meta a:hover {
  text-decoration: underline;
}

.conversion-band--footer .conversion-band__meta a {
  color: #ffb3b5;
}

.conversion-band__meta-sep {
  margin: 0 0.35rem;
}

/* Hero conversion */
.hero--conversion .hero__actions {
  gap: 0.85rem;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

/* Offres / tarifs flash */
.conversion-offers {
  padding-top: 0;
}

.conversion-offers .conversion-section-head {
  margin-bottom: 1.75rem;
}

/* Teaser tarifs (lien unique vers /tarifs/) */
.conversion-tarifs-teaser {
  padding: clamp(2.5rem, 5vw, 3.5rem) 0;
  background: var(--color-black);
  color: var(--color-white);
}

.conversion-tarifs-teaser__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.conversion-tarifs-teaser__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
  max-width: 52rem;
  margin: 0 auto;
}

@media (max-width: 640px) {
  .conversion-tarifs-teaser__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.conversion-tarifs-teaser .conversion-section-head {
  width: 100%;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.conversion-tarifs-teaser .conversion-section-head__title {
  text-wrap: balance;
  max-width: 100%;
}

.tarifs-teaser__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  height: 100%;
  min-height: 9.5rem;
  max-width: none;
  margin: 0;
  padding: 1.5rem 1.25rem;
  text-decoration: none;
  color: inherit;
  text-align: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, transform 0.12s ease;
  box-sizing: border-box;
}

.tarifs-teaser__card:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.28);
  transform: translateY(-2px);
}

.tarifs-teaser__card:active {
  transform: translateY(0);
}

.tarifs-teaser__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.tarifs-teaser__cta {
  font-family: var(--font-primary);
  font-size: clamp(1.2rem, 4vw, 1.65rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-white);
}

.tarifs-teaser__hint {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.72);
  text-wrap: pretty;
  max-width: 22rem;
}

/* Teaser blog — maillage symptômes / conseils */
.conversion-blog-teaser {
  padding: clamp(2rem, 4vw, 3rem) 0;
  background: var(--color-black);
  color: var(--color-white);
}

.conversion-blog-teaser .container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.conversion-blog-teaser .conversion-section-head {
  width: 100%;
  max-width: 40rem;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.conversion-blog-teaser__lead {
  margin: 0.75rem auto 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.75);
  max-width: 36rem;
  text-align: center;
}

.conversion-blog-teaser__grid {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  width: 100%;
}

.conversion-blog-teaser__grid > li {
  min-width: 0;
  display: flex;
}

.conversion-blog-teaser__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex: 1 1 auto;
  width: 100%;
  min-height: 5.5rem;
  padding: 1.1rem 1rem;
  text-align: center;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  transition: background 0.2s, border-color 0.2s;
  box-sizing: border-box;
}

.conversion-blog-teaser__link:hover,
.conversion-blog-teaser__link:focus-visible {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.28);
}

.conversion-blog-teaser__label {
  font-weight: 700;
  font-size: 0.95rem;
  color: #fafafa;
  line-height: 1.3;
  text-wrap: balance;
}

.conversion-blog-teaser__hint {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
  text-wrap: pretty;
}

@media (max-width: 900px) {
  .conversion-blog-teaser__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .conversion-blog-teaser__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.conversion-blog-teaser__footer {
  margin: 1.25rem 0 0;
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.75);
  text-align: center;
  width: 100%;
}

.conversion-blog-teaser__footer a {
  color: var(--color-link, #ff4d52);
  font-weight: 600;
  text-decoration: none;
}

.conversion-blog-teaser__footer a:hover,
.conversion-blog-teaser__footer a:focus-visible {
  text-decoration: underline;
}

/* Hub maillage → guides prix /exemples/ */
.price-examples-hub {
  padding: clamp(2rem, 4vw, 3rem) 0;
  background: var(--color-black);
  color: var(--color-white);
}

.price-examples-hub .conversion-section-head {
  max-width: 40rem;
  margin-bottom: 1.25rem;
}

.price-examples-hub__lead {
  margin: 0.75rem 0 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.75);
  text-wrap: pretty;
}

/* —— Cartes multiples (mecanique, entretien…) —— */
.price-examples-hub__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.price-examples-hub__grid > li {
  min-width: 0;
  display: flex;
}

.price-examples-hub__grid .price-examples-hub__card {
  flex: 1 1 auto;
  width: 100%;
}

@media (max-width: 900px) {
  .price-examples-hub__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .price-examples-hub__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.price-examples-hub__card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  height: 100%;
  padding: 1.1rem 1.15rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, background 0.2s, transform 0.12s ease;
}

.price-examples-hub__card:hover,
.price-examples-hub__card:focus-visible {
  border-color: rgba(196, 30, 58, 0.45);
  background: rgba(196, 30, 58, 0.08);
  transform: translateY(-1px);
}

.price-examples-hub__label {
  font-size: 1.02rem;
  font-weight: 700;
  color: #fafafa;
  line-height: 1.3;
}

.price-examples-hub__hook {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.68);
}

.price-examples-hub__card-prices {
  display: grid;
  gap: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.price-examples-hub__mini {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem 0.5rem;
}

.price-examples-hub__mini-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.48);
}

.price-examples-hub__mini-value {
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  text-align: right;
}

.price-examples-hub__mini--redk .price-examples-hub__mini-value {
  color: #f4b4c0;
}

.price-examples-hub__usp {
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
  color: #e8a0ad;
}

.price-examples-hub__cta {
  margin-top: auto;
  padding-top: 0.25rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

/* —— Carte unique (pare-brise, vidange…) —— */
.price-examples-hub__feature {
  display: block;
  padding: 1.35rem 1.25rem;
  border-radius: 14px;
  border: 1px solid rgba(196, 30, 58, 0.35);
  background: linear-gradient(145deg, rgba(196, 30, 58, 0.12), rgba(255, 255, 255, 0.04));
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, transform 0.12s ease;
}

.price-examples-hub__feature:hover,
.price-examples-hub__feature:focus-visible {
  border-color: rgba(196, 30, 58, 0.55);
  transform: translateY(-2px);
}

.price-examples-hub__feature-hook {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
}

.price-examples-hub__feature-price {
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(196, 30, 58, 0.35);
}

.price-examples-hub__feature-label,
.price-examples-hub__card-price-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.52);
  margin-bottom: 0.35rem;
}

.price-examples-hub__feature-value,
.price-examples-hub__card-price-value {
  display: block;
  font-size: clamp(1.35rem, 4vw, 1.75rem);
  font-weight: 800;
  color: #f4b4c0;
  line-height: 1.2;
}

.price-examples-hub__feature-elsewhere,
.price-examples-hub__elsewhere {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.55);
}

.price-examples-hub__card-price {
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  background: rgba(196, 30, 58, 0.1);
  border: 1px solid rgba(196, 30, 58, 0.28);
}

.price-examples-hub__feature-compare {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  margin-bottom: 1rem;
}

.price-examples-hub__feature-col {
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.price-examples-hub__feature-col--redk {
  border-color: rgba(196, 30, 58, 0.35);
}

.price-examples-hub__feature-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 0.35rem;
}

.price-examples-hub__feature-value {
  display: block;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fafafa;
  line-height: 1.3;
}

.price-examples-hub__feature-col--redk .price-examples-hub__feature-value {
  color: #f4b4c0;
}

.price-examples-hub__feature-usp {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #e8a0ad;
}

.price-examples-hub__feature-cta {
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
}

/* —— Catalogue tarifs (listes groupées) —— */
.price-examples-hub__catalog {
  display: grid;
  gap: 1.5rem;
}

.price-examples-hub__group-title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.52);
}

.price-examples-hub__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.price-examples-hub__row-link {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, background 0.2s;
}

.price-examples-hub__row-link:hover,
.price-examples-hub__row-link:focus-visible {
  border-color: rgba(196, 30, 58, 0.4);
  background: rgba(196, 30, 58, 0.08);
}

.price-examples-hub__row-main {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.price-examples-hub__row-main .price-examples-hub__hook {
  font-size: 0.82rem;
}

.price-examples-hub__row-prices {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}

.price-examples-hub__row-pill {
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.3;
  text-align: right;
  white-space: nowrap;
}

.price-examples-hub__row-pill--network {
  color: rgba(255, 255, 255, 0.65);
}

.price-examples-hub__row-pill--redk {
  font-size: 0.95rem;
  font-weight: 700;
  color: #f4b4c0;
}

.price-examples-hub__row-pill--muted {
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

.price-examples-hub__row-arrow {
  font-size: 1.1rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.45);
}

@media (max-width: 640px) {
  .price-examples-hub__row-link {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .price-examples-hub__row-prices {
    align-items: flex-start;
  }

  .price-examples-hub__row-arrow {
    display: none;
  }
}

.price-examples-hub__footer {
  margin: 1.15rem 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.6);
}

.promesse__item h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  line-height: 1.35;
}

.promesse__item p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--conv-text-muted, rgba(255, 255, 255, 0.72));
}

/* Highlights LP : lignes incomplètes centrées (ex. 4+1 cartes) */
body.conversion-page .promesse--highlights .promesse__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(0.85rem, 2vw, 1.25rem);
}

body.conversion-page .promesse--highlights .promesse__item {
  flex: 1 1 220px;
  max-width: min(100%, 17.5rem);
  align-items: flex-start;
}

body.conversion-page .promesse--highlights .promesse__item h3 {
  text-wrap: balance;
}

@media (min-width: 900px) {
  body.conversion-page .promesse--highlights .promesse__item {
    flex: 0 1 calc(25% - 1rem);
    max-width: calc(25% - 1rem);
  }
}

@media (max-width: 640px) {
  body.conversion-page .promesse--highlights .promesse__item {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.lp-trust-bar {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.lp-offer {
  padding: clamp(2rem, 5vw, 3rem) 0;
  background: linear-gradient(180deg, rgba(196, 30, 58, 0.14) 0%, var(--conv-bg, #161618) 100%);
}

.lp-offer + .lp-offer--intervention {
  padding-top: 0;
  background: var(--conv-bg, #161618);
}

.lp-offer--intervention .lp-offer__card {
  border-color: rgba(255, 255, 255, 0.14);
}

.lp-offer__card {
  max-width: 42rem;
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2rem);
  text-align: center;
  background: var(--conv-card, rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(196, 30, 58, 0.45);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
}

.lp-offer__badge {
  display: inline-block;
  margin: 0 0 0.75rem;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  background: var(--color-red);
  color: var(--color-white);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lp-offer__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-primary);
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  line-height: 1.2;
  color: var(--conv-text, #fff);
}

.lp-offer__amount {
  margin: 0 0 1rem;
  font-family: var(--font-primary);
  font-size: clamp(2rem, 7vw, 2.75rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-red);
}

.lp-offer__amount-sub {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.58em;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--conv-text, #fff);
}

.lp-offer__lead {
  margin: 0 0 1.15rem;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--conv-text-muted, rgba(255, 255, 255, 0.82));
}

.lp-offer__points {
  list-style: none;
  margin: 0 0 1.15rem;
  padding: 0;
  text-align: left;
  display: grid;
  gap: 0.65rem;
}

.lp-offer__points li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--conv-text, #fff);
}

.lp-offer__points li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-red);
  font-weight: 700;
}

.lp-offer__disclaimer {
  margin: 0 0 1.25rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--conv-text-muted, rgba(255, 255, 255, 0.55));
}

.lp-offer__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin: 0;
}

.lp-offer__cta .btn {
  min-width: 11rem;
}

@media (max-width: 640px) {
  .lp-offer__cta {
    flex-direction: column;
    align-items: stretch;
  }

  .lp-offer__cta .btn {
    width: 100%;
    min-width: 0;
  }
}

.reviews-section--compact {
  padding: clamp(2.5rem, 5vw, 3.5rem) 0;
}

.reviews-section__grid--compact {
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (max-width: 768px) {
  .reviews-section__grid--compact {
    grid-template-columns: 1fr;
  }
}

.conversion-home__tarifs {
  text-align: center;
  margin: 1.35rem 0 0;
  font-weight: 600;
}

.conversion-home__tarifs a {
  color: rgba(255, 255, 255, 0.95);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.conversion-home__tarifs a:hover {
  color: #ffb3b5;
}

/* Liste prestations page */
.conversion-services {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--conv-bg);
}

.conversion-services__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  /* 2 colonnes partout → 2 / 4 / 6 cases toujours symétriques */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  max-width: 36rem;
  width: 100%;
  align-items: stretch;
}

.conversion-services--related .conversion-services__list,
.conversion-services--money .conversion-services__list {
  max-width: 36rem;
}

.conversion-services__list > li {
  min-width: 0;
  display: flex;
}

.conversion-services__list .conversion-services__link {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.conversion-services__more {
  margin: 1rem auto 0;
  text-align: center;
  max-width: 36rem;
}

.conversion-services__more a {
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.conversion-services__link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  width: 100%;
  min-height: 3.25rem;
  padding: 0.9rem 1.15rem;
  background: var(--conv-card);
  border: 1px solid var(--conv-border);
  border-radius: 12px;
  font-weight: 600;
  font-size: 0.98rem;
  text-align: center;
  text-decoration: none;
  color: var(--conv-text);
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s, transform 0.2s;
  box-sizing: border-box;
}

a.conversion-services__link::after {
  content: "→";
  margin-left: 0.45rem;
  color: var(--color-red);
  font-weight: 700;
  transition: transform 0.2s;
}

a.conversion-services__link:hover,
a.conversion-services__link:focus-visible {
  background: var(--conv-card-hover);
  border-color: rgba(179, 18, 23, 0.45);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

a.conversion-services__link:hover::after,
a.conversion-services__link:focus-visible::after {
  transform: translateX(3px);
}

.conversion-services__list--stacked {
  grid-template-columns: 1fr;
  max-width: 36rem;
}

.conversion-services__list--stacked .conversion-services__link--text {
  justify-content: flex-start;
  text-align: left;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.conversion-services__link--text {
  cursor: default;
  background: var(--conv-card-hover);
  border-color: var(--conv-border);
}

.conversion-services__link--text:hover {
  transform: none;
  box-shadow: none;
}

/* Grille services */
.conversion-nav {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--conv-bg-alt);
}

.conversion-nav__grid {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  max-width: 36rem;
}

@media (min-width: 900px) {
  .conversion-nav__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-width: 56rem;
  }
}

.conversion-nav__grid a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.7rem 0.65rem;
  text-align: center;
  background: var(--conv-card-hover);
  border: 1px solid var(--conv-border);
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.25;
  text-decoration: none;
  color: var(--conv-text);
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.conversion-nav__grid a:hover,
.conversion-nav__grid a:focus-visible {
  background: var(--color-red);
  border-color: var(--color-red);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(179, 18, 23, 0.28);
}

/* FAQ compacte */
.conversion-faq {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--conv-bg-alt);
}

.faq__inner--compact {
  max-width: 44rem;
  margin: 0 auto;
}

.faq__inner--compact .faq__list {
  text-align: left;
}

.faq__inner--compact .faq__question {
  text-align: left;
}

.faq__inner--compact .faq__answer {
  text-align: left;
}

.faq__inner--compact .faq__answer p {
  text-align: left;
}

/* Carte map contact */
.conversion-map {
  padding: clamp(2.5rem, 5vw, 3.5rem) 0;
  background: var(--conv-bg-alt);
}

.conversion-map__inner {
  max-width: 44rem;
  margin: 0 auto;
  text-align: center;
}

.conversion-map__frame {
  display: block;
  width: 100%;
  max-width: 100%;
  height: clamp(240px, 40vw, 320px);
  margin-top: 1.25rem;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.conversion-map__open {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: clamp(200px, 32vw, 280px);
  margin-top: 1.25rem;
  padding: 1.5rem 1.25rem;
  text-align: center;
  text-decoration: none;
  color: inherit;
  background: var(--conv-card, rgba(255, 255, 255, 0.06));
  border: 1px solid var(--conv-border, rgba(255, 255, 255, 0.14));
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  transition: border-color 0.2s, background 0.2s;
}

.conversion-map__open:hover,
.conversion-map__open:focus-visible {
  border-color: rgba(212, 30, 36, 0.45);
  background: var(--conv-card-hover, rgba(255, 255, 255, 0.08));
}

.conversion-map__pin {
  font-size: 1.75rem;
  line-height: 1;
}

.conversion-map__address {
  font-weight: 600;
  font-size: 1rem;
  color: var(--conv-text, #fafafa);
}

.conversion-map__cta {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-red-light, #ff4d52);
}

.conversion-map__routes {
  margin: 0.75rem 0 0;
  text-align: center;
  font-size: 0.92rem;
}

.conversion-map__routes a {
  color: var(--color-red-light, #ff4d52);
  font-weight: 600;
  text-decoration: none;
}

.conversion-map__routes a:hover,
.conversion-map__routes a:focus-visible {
  text-decoration: underline;
}

.conversion-map__inner > p,
.conversion-map__inner .conversion-section-head__lead {
  color: var(--conv-text-muted);
}

.conversion-map__inner a {
  color: var(--color-red);
  font-weight: 600;
  text-decoration: none;
}

.conversion-map__inner a:hover {
  text-decoration: underline;
}

/* Rythme vertical global */
body.conversion-page #main > section + section,
body.conversion-page #main > .conversion-band + section,
body.conversion-page #main > section + .conversion-band {
  border-top: 1px solid transparent;
}

body.conversion-page #main {
  background: var(--conv-bg);
  overflow-x: clip;
}

body.conversion-page .conversion-section-head__title {
  text-wrap: balance;
  max-width: 100%;
  overflow-wrap: anywhere;
}

body.conversion-page .conversion-section-head__lead,
body.conversion-page .tarifs-teaser__hint,
body.conversion-page .hero .hero__lede {
  text-wrap: pretty;
  overflow-wrap: break-word;
}

body.conversion-page .container {
  min-width: 0;
}

body.conversion-page .reviews-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--conv-bg);
}

body.conversion-page .pricing-section {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--conv-bg-alt);
}

body.conversion-page .pricing-section__intro {
  text-align: center;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.conversion-local-link {
  padding: clamp(1.5rem, 4vw, 2rem) 0;
  background: var(--conv-bg-alt);
  border-top: 1px solid var(--conv-border);
}

.conversion-local-link__inner p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--conv-text-muted);
  text-align: center;
}

.conversion-local-link a {
  color: var(--color-red);
  font-weight: 600;
  text-decoration: none;
}

.conversion-local-link a:hover,
.conversion-local-link a:focus-visible {
  text-decoration: underline;
}

body.conversion-page .lead-strip,
body.conversion-page .conversion-hub {
  display: none !important;
}

@media (max-width: 768px) {
  .conversion-services__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 28rem;
  }
}

@media (max-width: 640px) {
  .conversion-services__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 22rem;
    gap: 0.65rem;
  }

  .conversion-nav__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  .conversion-band__secondary {
    flex-direction: column;
    align-items: stretch;
  }

  .conversion-band__secondary .btn {
    width: 100%;
    min-width: 0;
  }

  .conversion-band__phone {
    width: 100%;
  }
}

