@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/**
 * Thème sobre haut de gamme — or discret, Inter, conversion.
 * Or réservé aux CTA principaux. Chargé EN DERNIER (build:css).
 */
:root {
  --lux-bg: #0b0b0b;
  --lux-surface: #1a1a1a;
  --lux-white: #ffffff;
  --lux-gold: #cfd3da;
  --lux-gold-hover: #e5e7eb;
  --lux-gold-mid: #a8b0bc;
  --lux-text: #fafafa;
  --lux-muted: #9ca3af;

  /* Surcharge tokens hérités (style.css, autres couches) : or réservé aux CTA primaires */
  --gold: #e5e7eb;
  --gold-light: #f3f4f6;
  --gold-dim: rgba(255, 255, 255, 0.05);
  --gold-accent: rgba(255, 255, 255, 0.14);
  --gold-glow: rgba(255, 255, 255, 0.08);
  --gold-glow-strong: rgba(255, 255, 255, 0.14);
  --gold-dark: #9ca3af;
  --shadow-gold: 0 6px 24px rgba(0, 0, 0, 0.22);

  --pro-cta-bg: var(--lux-gold);
  --pro-cta-bg-hover: var(--lux-gold-hover);
  --pro-cta-text: #0b0b0b;
  --pro-border: rgba(255, 255, 255, 0.12);
  --pro-border-strong: rgba(255, 255, 255, 0.5);
  --pro-muted: var(--lux-muted);
  --pro-surface: rgba(26, 26, 26, 0.92);
  --pro-surface-elevated: rgba(38, 38, 38, 0.85);

  --premium-radius: 8px;
  --shadow-cta: 0 2px 8px rgba(0, 0, 0, 0.36), 0 4px 14px rgba(207, 211, 218, 0.08);
  --shadow-cta-hover: 0 4px 12px rgba(0, 0, 0, 0.4), 0 6px 18px rgba(207, 211, 218, 0.1);
  --shadow-card: 0 8px 28px rgba(0, 0, 0, 0.36);

  --cta-gold: var(--lux-gold);
  --cta-gold-mid: var(--lux-gold-mid);
  --cta-gold-hover: var(--lux-gold-hover);
  --cta-text: var(--pro-cta-text);
  --premium-shadow-btn: var(--shadow-cta);
  --premium-shadow-btn-hover: var(--shadow-cta-hover);

  --premium-bg-deep: var(--lux-bg);
  --premium-bg-panel: rgba(26, 26, 26, 0.88);
  --premium-border-gold: rgba(207, 211, 218, 0.24);
  --premium-shadow-elevated: var(--shadow-card);
  --premium-shadow-card: var(--shadow-card);
  --premium-shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.05);

  /* Bouton téléphone footer : finition premium (perle / métal clair, pas jaune) */
  --footer-call-gradient: linear-gradient(180deg, #f4f5f8 0%, #e6e8ee 55%, #dcdfe6 100%);
  --footer-call-gradient-hover: linear-gradient(180deg, #fafbfd 0%, #f0f1f5 55%, #e8eaef 100%);
  --footer-call-text: #0a0b0e;
  --footer-call-border: rgba(0, 0, 0, 0.1);
  --footer-call-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), 0 4px 18px rgba(0, 0, 0, 0.22);
  --footer-link-hover: #d1d6df;

  /* Gouttières footer desktop : éviter colonnes « collées » (marque / NAVIGATION) */
  --footer-col-gap: clamp(1.85rem, 3.6vw, 3rem);
  --footer-row-gap: clamp(1rem, 2vw, 1.5rem);
}

html body {
  font-family: 'Inter', var(--font-body, system-ui, sans-serif);
  font-weight: 400;
  background-color: var(--lux-bg) !important;
  background-image: radial-gradient(ellipse 90% 70% at 50% -28%, rgba(255, 255, 255, 0.035), transparent 52%) !important;
}

body::before {
  opacity: 0.03 !important;
}

h1,
.hero-title,
.section-title,
.blog-article-title,
.cta-block-title,
.page-hero h1,
.seo-content-title {
  font-family: 'Inter', var(--font-body, system-ui, sans-serif) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03125rem !important;
}

h2.section-title {
  font-weight: 700 !important;
}

h3,
.seo-card-title,
.faq-question {
  font-family: 'Inter', var(--font-body, sans-serif) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

.seo-content a:not(.btn),
.trust-section a:not(.btn),
.faq-answer a:not(.btn),
.blog-article .seo-content a:not(.btn),
.premium-zones-seo a:not(.btn) {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.seo-content a:not(.btn):hover,
.faq-answer a:not(.btn):hover {
  color: #fff;
}

/* ========== Boutons globaux ========== */
.btn,
button.btn,
a.btn {
  border-radius: var(--premium-radius) !important;
  padding: 14px 24px !important;
  min-height: 48px;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
  transition:
    transform 0.2s ease,
    box-shadow 0.25s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease !important;
}

.btn-primary,
a.btn-primary,
button.btn-primary {
  background: var(--lux-gold) !important;
  color: var(--pro-cta-text) !important;
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  text-shadow: none !important;
  box-shadow: var(--shadow-cta) !important;
}

.btn-primary:hover:not(:disabled),
a.btn-primary:hover {
  background: var(--lux-gold-hover) !important;
  color: var(--pro-cta-text) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-cta-hover) !important;
}

.btn-primary:focus-visible,
a.btn-primary:focus-visible,
button.btn-primary:focus-visible {
  outline: 2px solid var(--lux-white);
  outline-offset: 3px;
}

.btn-secondary,
a.btn-secondary {
  border-width: 1px !important;
  border-color: rgba(255, 255, 255, 0.85) !important;
  color: var(--lux-white) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.btn-secondary:hover:not(:disabled) {
  border-color: var(--lux-white) !important;
  color: var(--lux-white) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

.btn-hero-secondary,
a.btn-hero-secondary {
  background: transparent !important;
  color: var(--lux-white) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  box-shadow: none !important;
}

.btn-hero-secondary:hover,
a.btn-hero-secondary:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: var(--lux-white) !important;
  color: var(--lux-white) !important;
}

/* Hero CTAs : 1 or · 2 outline fort · 3 outline discret */
.hero-cta,
.hero-cta--primary,
.hero-cta--wa,
.hero-cta--reserve {
  border-radius: var(--premium-radius) !important;
  padding: 14px 24px !important;
  min-height: 48px;
  font-size: clamp(0.9375rem, 2.2vw, 1rem) !important;
  font-weight: 600 !important;
}

.hero-cta--primary,
.hero-cta.hero-cta--primary {
  background: var(--lux-gold) !important;
  color: #0a0a0b !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: var(--shadow-cta) !important;
}

.hero-cta--primary:hover {
  background: var(--lux-gold-hover) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-cta-hover) !important;
}

.hero-cta--wa,
.hero-cta.hero-cta--wa {
  background: transparent !important;
  color: var(--lux-white) !important;
  border: 1px solid rgba(255, 255, 255, 0.78) !important;
  box-shadow: none !important;
}

.hero-cta--wa:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.95) !important;
  transform: translateY(-1px);
}

.hero-cta--reserve {
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  color: rgba(255, 255, 255, 0.92) !important;
  background: rgba(0, 0, 0, 0.28) !important;
  backdrop-filter: blur(12px);
  box-shadow: none !important;
}

.hero-cta--reserve:hover {
  border-color: rgba(255, 255, 255, 0.65) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--lux-white) !important;
}

/* Header & navigation conversion */
.header-cta--call,
.header--conversion .header-inner--desktop .header-cta--call {
  background: var(--lux-gold) !important;
  color: #0a0a0b !important;
  border-radius: var(--premium-radius) !important;
  padding: 10px 20px !important;
  font-weight: 600 !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: var(--shadow-cta) !important;
}

.header-cta--call:hover,
.header--conversion .header-inner--desktop .header-cta--call:hover {
  background: var(--lux-gold-hover) !important;
  color: #0a0a0b !important;
}

.header-cta--whatsapp,
.header--conversion .header-inner--desktop .header-cta--whatsapp {
  border-radius: var(--premium-radius) !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  color: var(--lux-white) !important;
  background: transparent !important;
}

.sticky-bar-mobile-btn--call {
  background: var(--lux-gold) !important;
  color: #0a0a0b !important;
  font-weight: 600 !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  box-shadow: var(--shadow-cta) !important;
}

.sticky-bar-mobile-btn--whatsapp {
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  color: var(--lux-white) !important;
  background: transparent !important;
}

.nav-overlay-cta--call {
  background: var(--lux-gold) !important;
  color: #0a0a0b !important;
  border-radius: var(--premium-radius) !important;
  font-weight: 600 !important;
  box-shadow: var(--shadow-cta) !important;
}

.nav-overlay-cta--whatsapp {
  background: transparent !important;
  color: var(--lux-white) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  border-radius: var(--premium-radius) !important;
  font-weight: 600 !important;
}

.nav-overlay-cta--whatsapp:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: var(--lux-white) !important;
}

.top-bar.top-bar--conversion {
  background: rgba(11, 11, 11, 0.72) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
}

.top-bar--conversion .top-bar-tel:hover,
.top-bar--conversion .top-bar-link:hover {
  color: var(--lux-gold) !important;
}

.header.header--conversion {
  background: rgba(11, 11, 11, 0.9) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
  box-shadow: none !important;
}

.header--conversion .header-inner--desktop .nav-main a {
  color: rgba(255, 255, 255, 0.78) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
}

.header--conversion .header-inner--desktop .nav-main a:hover {
  color: var(--lux-white) !important;
}

.header--conversion .mobile-header {
  background: rgba(11, 11, 11, 0.98) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.header--conversion .mobile-header-cta--call {
  background: var(--lux-gold) !important;
  color: #0a0a0b !important;
  border: none !important;
}

.header--conversion .mobile-header-cta--wa {
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  background: transparent !important;
  color: var(--lux-white) !important;
}

/* ========== Hero immersif ========== */
.hero-carousel-overlay {
  background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6)) !important;
}

.hero-carousel-slide .hero-carousel-img {
  object-fit: cover;
  object-position: center 40%;
  filter: saturate(1.06) contrast(1.08) brightness(0.88);
  transform: scale(1);
}

.hero-content-overlay {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
  gap: 0.9rem;
}

/* Hero card premium: contenu lisible, plus de texte flottant */
.hero-copy-card {
  width: min(100%, 900px);
  max-width: 900px;
  margin: 0 auto;
  background: rgba(0, 0, 0, 0.56);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.44);
  backdrop-filter: blur(3px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

@media (min-width: 901px) {
  .hero-content-overlay {
    justify-content: center !important;
    align-items: center !important;
    padding-top: 120px !important;
    padding-bottom: 120px !important;
  }

  .hero-copy-card {
    margin-left: auto;
    margin-right: auto;
  }
}

.hero-copy-card .hero-badge,
.hero-copy-card .hero-title,
.hero-copy-card .hero-subtitle,
.hero-copy-card .hero-phone-display,
.hero-copy-card .hero-cta-row {
  text-align: center !important;
}

.hero-copy-card > .hero-badge,
.hero-copy-card > .hero-title,
.hero-copy-card > .hero-subtitle,
.hero-copy-card > .hero-phone-display {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.hero-copy-card .hero-badge {
  margin-bottom: 0.75rem !important;
}

.hero-copy-card .hero-title {
  margin-bottom: 0.8rem !important;
}

.hero-copy-card .hero-subtitle {
  margin-bottom: 0.95rem !important;
  margin-top: 0 !important;
}

.hero-phone-display--xl {
  margin: 0.2rem 0 1rem !important;
}

.hero-title,
.hero-content-overlay .hero-title {
  font-size: clamp(1.5rem, 4.2vw, 2.75rem) !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  max-width: min(100%, 26rem);
  text-shadow: 0 3px 18px rgba(0, 0, 0, 0.5);
  color: var(--lux-white) !important;
  hyphens: manual;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

.hero-title .hero-title-emphasis {
  color: var(--lux-white);
  white-space: normal;
}

@media (max-width: 380px) {
  .hero-title .hero-title-emphasis {
    white-space: normal;
  }
}

@media (min-width: 768px) {
  .hero-title,
  .hero-content-overlay .hero-title {
    max-width: min(100%, 28rem);
  }
}

@media (min-width: 1200px) {
  .hero-title,
  .hero-content-overlay .hero-title {
    max-width: min(100%, 30rem);
  }
}

.hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.1rem) !important;
  line-height: 1.5 !important;
  color: rgba(245, 245, 245, 0.9) !important;
  max-width: 600px;
  font-weight: 500 !important;
  margin-left: auto;
  margin-right: auto;
}

.hero-phone-display--xl a,
.hero-phone-display a {
  font-size: clamp(1.5rem, 3.8vw, 2.2rem) !important;
  font-weight: 600 !important;
  font-family: 'Inter', var(--font-body, sans-serif) !important;
  letter-spacing: 0.045em !important;
  color: rgba(245, 245, 245, 0.96) !important;
  text-shadow: none;
}

.hero-phone-display--xl a:hover {
  color: var(--lux-white) !important;
}

/* Badges confiance */
.hero-trust-badges {
  list-style: none;
  margin: 1.85rem auto 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem 0.85rem;
  max-width: 760px;
}

.hero-trust-badges li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.hero-trust-badges .icon {
  width: 1.05em;
  height: 1.05em;
  color: var(--lux-gold);
  flex-shrink: 0;
  opacity: 0.95;
}

@media (max-width: 600px) {
  .hero-trust-badges {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-trust-badges li {
    justify-content: center;
  }
}

.hero-cta-row--triple {
  gap: 1rem !important;
  margin-bottom: 0 !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

@media (max-width: 900px) {
  .hero-content-overlay {
    padding-top: 92px !important;
    padding-bottom: 92px !important;
  }

  .hero-cta-row--triple {
    flex-direction: row;
    width: min(100%, 560px);
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    justify-content: center !important;
  }
  .hero-cta-row--triple .hero-cta,
  .hero-cta-row--triple .btn {
    width: auto;
    min-width: 180px;
    justify-content: center;
  }
}

@media (min-width: 901px) {
  .hero-copy-card .hero-cta--wa {
    display: none !important;
  }

  .hero-copy-card .hero-cta-row--triple {
    max-width: 700px;
    justify-content: center !important;
  }

  .hero-copy-card .hero-cta-row--triple .hero-cta {
    min-width: 180px;
  }

  .hero-trust-badges {
    display: none;
  }

  .hero-trust-line--conversion {
    margin-top: 0.15rem !important;
  }

  .hero-whatsapp--secondary {
    display: none !important;
  }
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.85rem !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(245, 245, 245, 0.92) !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 8px !important;
  box-shadow: none;
}

.hero-trust-line--conversion {
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.78) !important;
  margin-top: 0.5rem !important;
}

.hero-trust-stars {
  color: rgba(245, 245, 245, 0.88) !important;
  font-size: 0.9em;
  vertical-align: 0.05em;
}

.app-main > .section {
  padding-top: clamp(3.5rem, 8vw, 5rem);
  padding-bottom: clamp(3.5rem, 8vw, 5rem);
}

@media (min-width: 900px) {
  .app-main > .section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

.section-intro,
.trust-intro {
  font-size: 1.0625rem;
  line-height: 1.75;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
  color: rgba(255, 255, 255, 0.78);
}

.premium-how-section {
  background: rgba(255, 255, 255, 0.02);
  border-top: 1px solid var(--pro-border);
  border-bottom: 1px solid var(--pro-border);
}

.premium-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 3.5vw, 2.5rem);
  margin-top: 1.75rem;
}

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

.premium-step {
  padding: 1.5rem 1.25rem;
  background: var(--pro-surface);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28);
  text-align: center;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.premium-step:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.24);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34);
}

.premium-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 1rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: #1a1a2e;
  background: linear-gradient(135deg, #f0c040, #e6a817);
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(240, 192, 64, 0.35);
}

.premium-step h3 {
  font-size: 1.0625rem;
  margin-bottom: 0.4rem;
  color: var(--lux-text);
  font-weight: 600;
}

.premium-step p {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.6;
  margin: 0;
}

.premium-step a {
  color: var(--lux-gold);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.premium-step a:hover {
  color: var(--lux-gold-hover);
}

.premium-why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin-top: 2.5rem;
}

.premium-why-card {
  padding: 1.5rem 1.25rem;
  background: var(--pro-surface);
  border: 1px solid var(--pro-border);
  border-radius: 12px;
  transition:
    border-color 0.2s ease,
    transform 0.2s ease;
}

.premium-why-card:hover {
  border-color: var(--premium-border-gold);
  transform: translateY(-2px);
}

.premium-why-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.85rem;
  border-radius: var(--premium-radius);
  background: rgba(207, 211, 218, 0.08);
  color: var(--lux-gold);
}

.premium-why-card__icon .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.premium-why-card h3 {
  font-size: 1rem;
  margin-bottom: 0.4rem;
  color: var(--lux-text);
  font-weight: 600;
}

.premium-why-card p {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.55;
  margin: 0;
}

.premium-zones-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.85rem;
  margin: 1.25rem 0 1.75rem;
}

.premium-zone-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  padding: 1.15rem 1rem;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.9) !important;
  background: var(--pro-surface);
  border: 1px solid var(--pro-border);
  border-radius: 12px;
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
}

.premium-zone-card:hover {
  border-color: var(--premium-border-gold);
  background: var(--pro-surface-elevated);
  color: var(--lux-white) !important;
}

.premium-zone-card__label {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--lux-text);
}

.premium-zone-card__hint {
  font-size: 0.8125rem;
  color: var(--pro-muted);
}

.premium-zones-seo {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: rgba(228, 228, 231, 0.78);
  padding: 1.35rem;
  background: rgba(0, 0, 0, 0.35);
  border-radius: 12px;
  border: 1px solid var(--pro-border);
}

.services-card,
.review-card,
.seo-card,
.home-price-table {
  border-radius: 12px !important;
}

.services-card {
  border: 1px solid var(--pro-border) !important;
  transition:
    transform 0.2s ease,
    border-color 0.2s ease !important;
}

.services-card:hover {
  border-color: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-1px);
}

.review-card {
  border: 1px solid var(--pro-border) !important;
}

.trust-list li {
  padding: 0.85rem 0 0.85rem 2.5rem;
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.trust-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1rem;
  width: 1.15rem;
  height: 1.15rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

.reservation-widget {
  border-radius: 14px !important;
  border-color: var(--pro-border) !important;
}

.footer {
  border-top: 1px solid var(--pro-border);
  background: #050506;
}

.footer .container.footer-inner,
.footer-bottom .container {
  width: min(100% - 2rem, 1240px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.footer-tel {
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--lux-white) !important;
}

.footer-col-title,
.footer-contact-label {
  color: #f5f5f5 !important;
}

.footer-col a,
.footer-col-links a,
.footer-contact a {
  color: rgba(245, 245, 245, 0.9) !important;
}

@media (min-width: 901px) {
  /* Footer desktop: colonnes plus lisibles, moins de retours à la ligne */
  .footer-inner {
    grid-template-columns:
      minmax(230px, 1.2fr)
      minmax(205px, 1fr)
      minmax(205px, 1fr)
      minmax(175px, 0.9fr)
      minmax(230px, 1.1fr);
    column-gap: clamp(1.5rem, 2.4vw, 2.25rem);
    justify-items: start;
  }

  .footer-inner > * + * {
    border-left: 1px solid rgba(255, 255, 255, 0.05);
    padding-left: clamp(1.2rem, 2vw, 1.75rem);
  }

  .footer-col-title,
  .footer-contact-label {
    font-size: 0.72rem;
    letter-spacing: 0.11em;
    margin-bottom: 0.6rem;
    color: #f5f5f5 !important;
  }

  .footer-col a,
  .footer-col-links a,
  .footer-contact a {
    font-size: 0.92rem;
    line-height: 1.45;
    color: rgba(245, 245, 245, 0.9) !important;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
  }

  .footer-col a:hover,
  .footer-col-links a:hover,
  .footer-contact a:hover {
    color: var(--lux-gold) !important;
  }

  .footer-col-links {
    gap: 0.42rem;
  }
}

.page-hero {
  padding-top: 2rem;
  padding-bottom: 1rem;
}

.page-hero .page-hero-cta .btn-primary {
  width: 100%;
  max-width: 320px;
}

@media (max-width: 900px) {
  .page-hero-cta {
    flex-direction: column;
    max-width: none !important;
  }
  .page-hero-cta .btn,
  .page-hero-cta a.btn {
    width: 100%;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }
}

.seo-content-section .seo-content {
  padding: 1.5rem 0;
}

.seo-content h2 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--pro-border);
}

.seo-content p {
  margin-bottom: 1rem;
}

.faq-list .faq-item {
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin-bottom: 0.65rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--pro-border);
}

.why-us-strip {
  border-top: 1px solid var(--pro-border);
  border-bottom: 1px solid var(--pro-border);
}

.why-us-item {
  border-radius: 8px;
}

.sticky-cta .call-button {
  border-radius: var(--premium-radius) !important;
}

.app-main {
  position: relative;
}

.section-title {
  font-size: clamp(1.75rem, 4.5vw, 2.5rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03125rem !important;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
  color: var(--lux-white) !important;
  font-weight: 700 !important;
}

.section-title::after {
  width: 3rem !important;
  height: 2px !important;
  background: linear-gradient(90deg, rgba(245, 245, 245, 0.7), rgba(245, 245, 245, 0.1)) !important;
  box-shadow: none !important;
  margin-top: 0.9rem !important;
}

.seo-content-title {
  font-size: clamp(1.9rem, 4.8vw, 2.75rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03125rem !important;
  line-height: 1.1 !important;
  color: var(--lux-white) !important;
}

.seo-content-label {
  color: var(--pro-muted) !important;
  letter-spacing: 0.16em !important;
  font-weight: 600 !important;
}

.seo-content h2 {
  font-size: clamp(1.2rem, 2.8vw, 1.45rem) !important;
  font-weight: 600 !important;
  margin-top: 2rem !important;
  padding-bottom: 0.45rem !important;
  border-bottom: 1px solid var(--pro-border) !important;
  color: var(--lux-text) !important;
}

.page-hero {
  max-width: 800px !important;
  padding-top: clamp(2.5rem, 6vw, 4rem) !important;
  padding-bottom: clamp(2rem, 4vw, 3rem) !important;
}

.page-hero h1 {
  font-size: clamp(1.95rem, 5vw, 2.85rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.12 !important;
  text-shadow: none;
  color: var(--lux-white) !important;
}

.page-hero h1::after {
  width: 3.5rem !important;
  height: 3px !important;
  background: linear-gradient(90deg, var(--lux-gold), transparent) !important;
}

.page-hero p {
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  color: rgba(228, 228, 231, 0.78) !important;
  max-width: 38em !important;
}

.page-hero-cta {
  gap: 0.85rem !important;
  margin-top: 1.75rem !important;
}

@media (min-width: 520px) {
  .page-hero-cta .page-hero-cta-btn,
  .page-hero-cta .btn-hero-secondary {
    border-radius: var(--premium-radius) !important;
    margin-left: 0 !important;
  }
}

.page-hero-cta-btn {
  min-height: 48px !important;
  padding: 14px 24px !important;
  font-size: 1rem !important;
  border-radius: var(--premium-radius) !important;
  box-shadow: var(--shadow-cta) !important;
}

.page-hero-cta-btn:hover {
  box-shadow: var(--shadow-cta-hover) !important;
}

.page-hero-cta-teaser {
  color: rgba(255, 255, 255, 0.85) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
}

.btn,
button.btn,
a.btn {
  min-height: 48px !important;
  padding: 14px 24px !important;
  font-size: 0.9375rem !important;
}

.btn-primary,
a.btn-primary {
  border-color: rgba(0, 0, 0, 0.1) !important;
}

.hero-cta,
.hero-cta--primary,
.hero-cta--wa,
.hero-cta--reserve {
  min-height: 48px !important;
}

.hero-cta--primary {
  box-shadow: var(--shadow-cta) !important;
}

.call-button {
  border-radius: var(--premium-radius) !important;
  min-height: 48px !important;
  padding: 14px 22px !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  background: var(--lux-gold) !important;
  color: #0b0b0b !important;
  box-shadow: var(--shadow-cta) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
}

.call-button:hover {
  background: var(--lux-gold-hover) !important;
  box-shadow: var(--shadow-cta-hover) !important;
}

.whatsapp-button {
  border-radius: var(--premium-radius) !important;
  min-height: 48px !important;
  font-weight: 600 !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  color: var(--lux-white) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.top-bar-cta-phone {
  border-radius: var(--premium-radius) !important;
  font-weight: 600 !important;
}

.seo-content-section .seo-content {
  background: var(--premium-bg-panel);
  background-image: none;
  border: 1px solid var(--pro-border);
  border-radius: 14px;
  padding: clamp(1.35rem, 3.5vw, 2.25rem);
  box-shadow: var(--premium-shadow-card), var(--premium-shadow-inset);
  margin-top: 0.5rem;
}

.seo-content-section .seo-content > p:first-of-type {
  font-size: 1.0625rem !important;
  line-height: 1.7 !important;
  color: rgba(244, 244, 245, 0.92) !important;
}

.seo-content p {
  max-width: 65ch;
  margin-left: auto;
  margin-right: auto;
}

.seo-content ul:not(.seo-content-list) {
  max-width: 58ch;
  margin-left: auto;
  margin-right: auto;
}

.seo-content ul li {
  margin-bottom: 0.45rem;
  padding-left: 0.25rem;
}

.seo-content-wrap {
  background: var(--lux-bg) !important;
}

.seo-content-glow {
  opacity: 0.5;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, rgba(207, 211, 218, 0.05) 0%, transparent 60%) !important;
}

.seo-card {
  box-shadow: var(--shadow-card) !important;
  border: 1px solid var(--pro-border) !important;
  background: var(--pro-surface) !important;
}

.home-price-table {
  box-shadow: var(--shadow-card) !important;
  border: 1px solid var(--pro-border) !important;
  overflow: hidden;
}

.home-price-table th,
.home-price-table td {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.blog-article .blog-article-title {
  font-size: clamp(1.9rem, 4.8vw, 2.75rem) !important;
  font-weight: 700 !important;
}

.blog-article .seo-content {
  border-radius: 14px;
  padding: clamp(1.35rem, 3.5vw, 2.25rem);
  background: var(--premium-bg-panel);
  border: 1px solid var(--pro-border);
  box-shadow: var(--shadow-card);
}

.cta-block {
  border-radius: 14px !important;
  box-shadow: var(--shadow-card) !important;
  border: 1px solid var(--pro-border) !important;
}

.cta-block--bottom .btn-primary {
  min-height: 48px !important;
  font-size: 1.0625rem !important;
  padding: 14px 24px !important;
}

.review-card {
  box-shadow: var(--shadow-card) !important;
  background: var(--pro-surface) !important;
}

.services-card {
  box-shadow: var(--shadow-card) !important;
  background: var(--pro-surface) !important;
  font-weight: 600 !important;
}

.why-us-strip {
  padding: clamp(1.5rem, 3.5vw, 2rem) 0 !important;
}

.why-us-item {
  padding: 0.75rem 0.9rem !important;
  background: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid var(--pro-border) !important;
}

.why-us-icon {
  color: rgba(245, 245, 245, 0.84) !important;
}

.trust-section {
  background: transparent;
}

.trust-intro {
  font-size: 1.0625rem !important;
}

.faq-list .faq-item {
  background: rgba(26, 26, 26, 0.65) !important;
  border: 1px solid var(--pro-border) !important;
  margin-bottom: 0.65rem !important;
}

.faq-question {
  font-size: 1rem !important;
  font-weight: 600 !important;
}

.reservation-widget {
  box-shadow: var(--shadow-card) !important;
  background: var(--pro-surface) !important;
}

/* ===== CTA mobile unifies (premium conversion) ===== */
@media (max-width: 900px) {
  .hero-cta-row--triple,
  .page-hero-cta,
  .seo-content-cta .cta-buttons,
  .seo-content-cta .lp-g7-cta-row,
  .home-price-teaser-ctas,
  .reservation-call-actions,
  .cta-buttons,
  .lp-g7-cta-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
    margin-top: 20px !important;
    width: 100%;
    align-items: stretch;
  }

  /* Tarifs accueil : 3 boutons → 2 + 1 pleine largeur (évite trou au milieu) */
  .home-price-teaser-ctas {
    max-width: min(100%, 520px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .home-price-teaser-ctas > a:nth-child(3) {
    grid-column: 1 / -1 !important;
  }

  .page-hero-cta .page-hero-cta-teaser,
  .seo-content-cta > p {
    grid-column: 1 / -1;
    margin-bottom: 2px !important;
  }

  .page-hero-cta .page-hero-cta-btn,
  .page-hero-cta .btn-hero-secondary {
    border-radius: 10px !important;
    margin-left: 0 !important;
    min-width: 0;
  }

  .hero-cta-row--triple .hero-cta,
  .page-hero-cta .btn,
  .seo-content-cta .btn,
  .home-price-teaser-ctas .btn,
  .reservation-call-actions .btn,
  .cta-buttons .btn,
  .lp-g7-cta-row .btn {
    width: 100% !important;
    min-height: 54px !important;
    padding: 14px 18px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    text-align: center !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    white-space: normal !important;
    font-size: 0.9375rem !important;
    align-self: stretch !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box;
  }

  .hero-cta-row--triple .hero-cta:active,
  .page-hero-cta .btn:active,
  .seo-content-cta .btn:active,
  .home-price-teaser-ctas .btn:active,
  .reservation-call-actions .btn:active,
  .cta-buttons .btn:active,
  .lp-g7-cta-row .btn:active {
    transform: scale(0.98);
  }

  .hero-cta--primary,
  .page-hero-cta .btn-primary,
  .seo-content-cta .btn-primary,
  .home-price-teaser-ctas .btn-primary,
  .reservation-call-actions .btn-primary,
  .cta-buttons .btn-primary,
  .cta-buttons .btn-cta-primary,
  .lp-g7-cta-row .btn-primary {
    background: var(--lux-gold) !important;
    color: #000 !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28), 0 3px 10px rgba(207, 211, 218, 0.14) !important;
  }

  .hero-cta--reserve,
  .hero-cta--wa,
  .page-hero-cta .btn-secondary,
  .page-hero-cta .btn-hero-secondary,
  .seo-content-cta .btn-secondary,
  .home-price-teaser-ctas .btn-secondary,
  .reservation-call-actions .btn-secondary,
  .cta-buttons .btn-secondary,
  .lp-g7-cta-row .btn-secondary {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .seo-content-section .seo-content p {
    max-width: none;
  }

  .hero-title,
  .hero-content-overlay .hero-title {
    max-width: 100%;
  }

  .page-hero {
    max-width: min(100%, 760px) !important;
    padding-top: clamp(2.25rem, 6vw, 3.1rem) !important;
    padding-bottom: clamp(3.25rem, 8vw, 4.5rem) !important;
  }

  .page-hero h1 {
    font-size: clamp(2rem, 8vw, 2.55rem) !important;
    line-height: 1.12 !important;
    margin-bottom: 0.85rem !important;
  }

  .page-hero p {
    max-width: 34em !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Empêche la sticky bar de masquer les CTA du hero des pages internes */
  .page-hero .page-hero-cta {
    padding-bottom: calc(5.75rem + env(safe-area-inset-bottom));
  }

  .hero-copy-card .hero-cta-row {
    padding-bottom: calc(5.5rem + env(safe-area-inset-bottom));
  }

}

/* ===== Sticky CTA mobile (Uber-like) ===== */
/* Ne pas forcer display ici : style.css masque la barre en desktop (min-width: 901px).
   Un display:flex !important global écrasait display:none !important et montrait la barre partout. */
.sticky-bar-mobile {
  background: rgba(10, 10, 10, 0.92) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 16px !important;
  padding: 14px 16px !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4);
}

.sticky-bar-mobile::before {
  display: none !important;
}

.sticky-bar-mobile-btn {
  min-height: 52px !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 16px !important;
  font-weight: 600 !important;
  transition: all 0.2s ease !important;
  text-align: center;
  box-sizing: border-box;
}

.sticky-bar-mobile-btn:active {
  transform: scale(0.98);
}

.sticky-bar-mobile-btn--call {
  background: var(--lux-gold) !important;
  color: #000 !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
}

.sticky-bar-mobile-btn--whatsapp {
  background: rgba(18, 18, 18, 0.95) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}

/* ===== Direction artistique globale: noir/blanc dominant, or discret ===== */
.page-hero h1::after,
.page-hero::after,
.section-title::after {
  background: linear-gradient(90deg, rgba(245, 245, 245, 0.72), rgba(245, 245, 245, 0.08)) !important;
  box-shadow: none !important;
}

.seo-content-cta,
.seo-related-pages,
.trust-google-card {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

.seo-content-cta p,
.page-hero-cta-teaser,
.hero-call-teaser,
.seo-related-pages p:first-child,
.trust-google-card__title {
  color: rgba(245, 245, 245, 0.86) !important;
}

.seo-content a,
.seo-content-cta a,
.seo-related-pages a,
.trust-google-card__text a,
.page-hero-phone-caption a:hover,
.app.app--redirect a,
.hero-whatsapp a:hover {
  color: rgba(245, 245, 245, 0.92) !important;
}

.seo-content a:hover,
.seo-content-cta a:hover,
.seo-related-pages a:hover,
.trust-google-card__text a:hover {
  color: #fff !important;
}

.seo-content ul li::marker {
  color: rgba(245, 245, 245, 0.62) !important;
}

.trust-list li::before,
.service-icon,
.why-us-icon {
  color: rgba(245, 245, 245, 0.82) !important;
}

.trust-list li strong,
.hero-phone-display a,
.conversion-cta-phone a,
.top-bar-cta-phone {
  color: rgba(245, 245, 245, 0.94) !important;
}

.container,
.container-narrow,
.container-wide {
  width: min(100% - 2rem, 1200px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 900px) {
  .container,
  .container-narrow,
  .container-wide {
    width: min(100% - 1.5rem, 1200px) !important;
  }
}

@media (max-width: 900px) {
  .sticky-bar-mobile {
    display: grid !important;
    grid-template-columns: 1.3fr 1fr;
    column-gap: 24px !important;
    row-gap: 12px !important;
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
    z-index: 180;
    padding: 16px 18px calc(14px + env(safe-area-inset-bottom)) !important;
  }

  .sticky-bar-mobile .sticky-bar-mobile-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.98rem;
  }

  .app-main {
    padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important;
  }

  /* Pages internes: CTA du hero visible, sticky masquée pour éviter les superpositions */
  body:has(.page-hero) .sticky-cta,
  body:has(.lp-g7-hero) .sticky-cta {
    display: none !important;
  }

  body:has(.page-hero) .app-main,
  body:has(.lp-g7-hero) .app-main {
    padding-bottom: 0 !important;
  }
}

/* Identité marque */
.logo-accent,
.header-logo .logo-accent,
.mobile-header-logo .logo-accent,
.footer .logo-accent {
  color: rgba(245, 245, 245, 0.9) !important;
}

.reviews-aggregate-score {
  color: var(--lux-white) !important;
  font-weight: 600 !important;
}

.reviews-aggregate-link {
  color: rgba(255, 255, 255, 0.8) !important;
}

.reviews-aggregate-link:hover {
  color: var(--lux-gold) !important;
}

/* Palette premium stricte: or reserve aux CTA principaux */
a:not(.btn):not(.call-button):not(.header-cta--call):not(.mobile-header-cta--call):not(.top-bar-cta-phone):not(.nav-overlay-cta--call):not(.sticky-bar-mobile-btn--call) {
  color: #f5f5f5 !important;
}

a:not(.btn):not(.call-button):not(.header-cta--call):not(.mobile-header-cta--call):not(.top-bar-cta-phone):not(.nav-overlay-cta--call):not(.sticky-bar-mobile-btn--call):hover {
  color: var(--lux-gold) !important;
}

.footer-whatsapp,
.service-icon,
.seo-card-icon .icon,
.review-stars,
.reviews-google-link,
.why-us-icon {
  color: rgba(245, 245, 245, 0.88) !important;
}

/* Evite l'effet de decalage dans le footer: le sticky desktop est retire */
@media (min-width: 901px) {
  .sticky-cta {
    display: none !important;
  }
}

/* Bloc "Où nous trouver" : alignement strict + rythme avant FAQ */
.section[aria-labelledby='ou-nous-trouver-title'] .container-narrow {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.section[aria-labelledby='ou-nous-trouver-title'] .section-title,
.section[aria-labelledby='ou-nous-trouver-title'] .trust-section-lead {
  text-align: center !important;
  width: 100%;
}

.section[aria-labelledby='ou-nous-trouver-title'] .trust-section-lead {
  margin-top: 0.15rem;
  margin-bottom: 1.05rem !important;
  font-size: clamp(0.95rem, 1.9vw, 1.05rem);
  color: rgba(255, 255, 255, 0.84);
}

.section[aria-labelledby='ou-nous-trouver-title'] .trust-google-card {
  width: min(100%, 560px);
  margin-left: auto;
  margin-right: auto;
}

.section[aria-labelledby='ou-nous-trouver-title'] + .faq-section {
  padding-top: clamp(2.6rem, 5vw, 3.4rem) !important;
}

/* ===== Direction artistique premium globale (Uber / Apple / G7) ===== */
:root {
  --premium-black: #0b0b0b;
  --premium-gray: #1a1a1a;
  --premium-white: #ffffff;
  --premium-gold: var(--lux-gold);
}

html,
body {
  background: var(--premium-black) !important;
  color: var(--premium-white) !important;
  font-family: "Inter", "Poppins", "Segoe UI", sans-serif !important;
  font-weight: 400 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.hero-title,
.section-title,
.page-hero h1 {
  font-weight: 800 !important;
  letter-spacing: -0.5px !important;
}

.section {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

.section > .container > * + * {
  margin-top: 40px;
}

.page-hero,
.lp-g7-hero__inner {
  max-width: 700px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.hero-carousel-overlay,
.lp-g7-hero__overlay {
  background: linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.6)) !important;
}

.hero-copy-card,
.lp-g7-hero__inner {
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

.services-card,
.seo-content-cta,
.faq-list .faq-item,
.trust-google-card,
.lp-g7-compare-wrap,
.lp-g7-urgency,
.cta-box {
  background: #111 !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22) !important;
}

.header,
.top-bar,
.mobile-header {
  background: rgba(11, 11, 11, 0.94) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

.btn,
.header-cta,
.mobile-header-cta,
.call-button,
.whatsapp-button,
.sticky-bar-mobile-btn {
  border-radius: 8px !important;
  padding: 14px 24px !important;
  transition: all 0.2s ease !important;
}

.btn-primary,
.hero-cta--primary,
.header-cta--call,
.mobile-header-cta--call,
.call-button,
.sticky-bar-mobile-btn--call {
  background: var(--premium-gold) !important;
  color: #000 !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
}

.btn-primary:hover,
.hero-cta--primary:hover,
.header-cta--call:hover,
.mobile-header-cta--call:hover,
.call-button:hover,
.sticky-bar-mobile-btn--call:hover {
  background: var(--lux-gold-hover) !important;
}

.btn-secondary,
.btn-hero-secondary,
.hero-cta--wa,
.hero-cta--reserve,
.header-cta--whatsapp,
.mobile-header-cta--wa,
.whatsapp-button,
.sticky-bar-mobile-btn--whatsapp {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  color: #fff !important;
}

/* Réduction visuelle du doré hors CTA principaux */
.logo-accent,
.service-icon,
.seo-card-icon .icon,
.review-stars,
.reviews-google-link,
.why-us-icon,
.hero-badge {
  color: rgba(245, 245, 245, 0.9) !important;
}

.hero-badge {
  border-color: rgba(255, 255, 255, 0.18) !important;
  background: rgba(255, 255, 255, 0.04) !important;
}

@media (max-width: 900px) {
  .sticky-bar-mobile {
    width: min(90%, 520px) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
  }

  /* Ancrage explicite : évite un FAB mal positionné si right/left est surchargé ailleurs */
  .sticky-cta {
    width: min(90%, 520px) !important;
    left: 50% !important;
    right: auto !important;
    bottom: max(1rem, env(safe-area-inset-bottom)) !important;
    transform: translateX(-50%);
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

/* Formulaires premium: lisibilité + confiance */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="time"],
input[type="number"],
select,
textarea {
  background: #111 !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
  border-radius: 10px !important;
  min-height: 52px;
  padding: 12px 14px !important;
  box-shadow: none !important;
}

input::placeholder,
textarea::placeholder {
  color: rgba(255, 255, 255, 0.52) !important;
}

input:focus,
select:focus,
textarea:focus {
  outline: none !important;
  border-color: rgba(207, 211, 218, 0.72) !important;
  box-shadow: 0 0 0 3px rgba(207, 211, 218, 0.15) !important;
}

label,
.form-label,
.reservation-form label {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 600 !important;
}

/* Lisibilité globale des textes secondaires */
p,
.section-intro,
.hero-subtitle,
.page-hero p,
.seo-content p,
.faq-answer,
.trust-section-lead {
  color: rgba(255, 255, 255, 0.86) !important;
}

/* Harmonisation des blocs de navigation/footer */
.footer,
.footer-bottom,
.nav-overlay-panel,
.mobile-header,
.header-inner,
.top-bar {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.footer a,
.footer-contact a,
.footer-col a {
  color: rgba(255, 255, 255, 0.9) !important;
}

.footer a:hover,
.footer-contact a:hover,
.footer-col a:hover {
  color: var(--lux-gold) !important;
}

/* ===== Hero carousel homepage: refonte UX/UI premium conversion ===== */
.hero-carousel--premium {
  position: relative;
  min-height: clamp(380px, 52vh, 560px) !important;
  height: min(64vh, 640px) !important;
  max-height: min(68vh, 640px) !important;
}

.hero-carousel--premium .hero-carousel-track {
  transition: transform 0.72s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.hero-carousel--premium .hero-carousel-slide .hero-carousel-img {
  object-position: center center !important;
  filter: saturate(0.9) contrast(1.08) brightness(0.6) !important;
  transform: scale(1) !important;
}

.hero-carousel--premium .hero-carousel-overlay {
  background:
    linear-gradient(95deg, rgba(5, 7, 12, 0.6) 0%, rgba(5, 7, 12, 0.38) 42%, rgba(5, 7, 12, 0.52) 100%),
    linear-gradient(180deg, rgba(3, 4, 7, 0.2) 0%, rgba(3, 4, 7, 0.45) 100%) !important;
}

.hero-carousel--premium .hero-content-overlay {
  width: min(100% - 2rem, 1240px) !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding-top: clamp(104px, 11vh, 148px) !important;
  padding-bottom: clamp(72px, 9vh, 112px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.1rem !important;
}

.hero-carousel--premium .hero-copy-card--conversion {
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  padding: clamp(1.4rem, 2.4vw, 2rem) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 16px !important;
  background: linear-gradient(160deg, rgba(8, 10, 16, 0.72) 0%, rgba(8, 10, 16, 0.58) 100%) !important;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.38) !important;
  backdrop-filter: blur(2px) !important;
  -webkit-backdrop-filter: blur(2px) !important;
  text-align: center !important;
  align-items: center !important;
}

.hero-carousel--premium .hero-badge,
.hero-carousel--premium .hero-title,
.hero-carousel--premium .hero-subtitle,
.hero-carousel--premium .hero-phone-display,
.hero-carousel--premium .hero-trust-line {
  text-align: center !important;
}

.hero-carousel--premium .hero-badge {
  font-size: 0.72rem !important;
  letter-spacing: 0.08em !important;
  border-radius: 999px !important;
  padding: 0.45rem 0.9rem !important;
  margin-bottom: 0.5rem !important;
}

.hero-carousel--premium .hero-title {
  margin: 0 0 0.7rem !important;
  max-width: 15ch !important;
  font-size: clamp(2.05rem, 5vw, 3.7rem) !important;
  line-height: 1.08 !important;
}

.hero-carousel--premium .hero-subtitle {
  margin: 0 0 1rem !important;
  max-width: 34ch !important;
  font-size: clamp(1.02rem, 1.9vw, 1.22rem) !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.hero-carousel--premium .hero-phone-display--xl {
  margin: 0 0 1.1rem !important;
}

.hero-carousel--premium .hero-phone-display a {
  display: inline-block;
  font-size: clamp(1.7rem, 3.5vw, 2.5rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  color: #f8fafc !important;
}

.hero-carousel--premium .hero-cta-row--conversion {
  display: flex;
  gap: 0.72rem !important;
  width: auto;
  flex-wrap: wrap;
  margin: 0 !important;
  justify-content: center !important;
}

.hero-carousel--premium .hero-cta-row--conversion .hero-cta {
  min-height: 54px !important;
  border-radius: 11px !important;
  padding: 0.9rem 1.4rem !important;
  font-weight: 650 !important;
  letter-spacing: 0.01em;
}

.hero-carousel--premium .hero-cta--primary {
  background: #eef2f7 !important;
  color: #0b0b0b !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
}

.hero-carousel--premium .hero-cta--primary:hover {
  background: #ffffff !important;
}

.hero-carousel--premium .hero-cta--reserve {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: #ffffff !important;
}

.hero-carousel--premium .hero-cta--reserve:hover {
  background: rgba(255, 255, 255, 0.16) !important;
}

.hero-carousel--premium .hero-trust-line--conversion {
  margin: 0.25rem 0 0 !important;
  font-size: 0.94rem !important;
  color: rgba(255, 255, 255, 0.84) !important;
}

.hero-carousel--premium .hero-carousel-dots {
  justify-content: center !important;
  gap: 0.46rem !important;
  margin-top: 0.25rem !important;
}

.hero-carousel--premium .carousel-dot {
  width: 9px !important;
  height: 9px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  background: rgba(255, 255, 255, 0.24) !important;
}

.hero-carousel--premium .carousel-dot.active {
  width: 24px !important;
  background: #eef2f7 !important;
  border-color: #eef2f7 !important;
}

.hero-carousel--premium .carousel-btn {
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.26) !important;
  background: rgba(7, 9, 14, 0.5) !important;
  box-shadow: none !important;
  backdrop-filter: blur(4px);
}

.hero-carousel--premium .carousel-btn::after {
  border-color: rgba(255, 255, 255, 0.9) !important;
}

.hero-carousel--premium .carousel-btn:hover {
  background: rgba(7, 9, 14, 0.72) !important;
  border-color: rgba(255, 255, 255, 0.42) !important;
}

@media (max-width: 900px) {
  .hero-carousel--premium {
    min-height: min(72vh, 520px) !important;
    height: auto !important;
  }

  .hero-carousel--premium .hero-content-overlay {
    width: min(100% - 1.25rem, 760px) !important;
    max-width: 760px !important;
    padding-top: 94px !important;
    padding-bottom: 76px !important;
    align-items: center !important;
  }

  .hero-carousel--premium .hero-copy-card--conversion {
    width: 100% !important;
    max-width: 620px !important;
    align-items: center !important;
    text-align: center !important;
    border-radius: 14px !important;
    padding: 1.25rem 1rem 1.1rem !important;
  }

  .hero-carousel--premium .hero-badge,
  .hero-carousel--premium .hero-title,
  .hero-carousel--premium .hero-subtitle,
  .hero-carousel--premium .hero-phone-display,
  .hero-carousel--premium .hero-trust-line {
    text-align: center !important;
  }

  .hero-carousel--premium .hero-title {
    max-width: 12ch !important;
    font-size: clamp(1.85rem, 9.2vw, 2.45rem) !important;
    margin-bottom: 0.62rem !important;
  }

  .hero-carousel--premium .hero-subtitle {
    max-width: 30ch !important;
    font-size: clamp(0.95rem, 4.1vw, 1.05rem) !important;
  }

  .hero-carousel--premium .hero-phone-display a {
    font-size: clamp(1.55rem, 7vw, 2rem) !important;
  }

  .hero-carousel--premium .hero-cta-row--conversion {
    width: 100% !important;
    flex-direction: column !important;
    gap: 0.62rem !important;
  }

  .hero-carousel--premium .hero-cta-row--conversion .hero-cta {
    width: 100% !important;
    justify-content: center !important;
  }

  .hero-carousel--premium .hero-carousel-dots {
    justify-content: center !important;
  }

  .hero-carousel--premium .carousel-btn {
    width: 40px !important;
    height: 40px !important;
  }
}

/* ===== Hero conversion V2: composition premium, plus légère et plus orientée appel ===== */
.hero-carousel--conversion {
  min-height: clamp(360px, 54vh, 560px) !important;
  height: min(64vh, 640px) !important;
}

.hero-carousel--conversion .hero-carousel-slide .hero-carousel-img {
  filter: saturate(0.88) contrast(1.05) brightness(0.58) !important;
  transform: scale(1) !important;
}

.hero-carousel--conversion .hero-carousel-overlay {
  background:
    radial-gradient(120% 90% at 50% 65%, rgba(2, 4, 8, 0.18) 0%, rgba(2, 4, 8, 0.45) 72%),
    linear-gradient(108deg, rgba(6, 9, 14, 0.58) 0%, rgba(6, 9, 14, 0.34) 44%, rgba(6, 9, 14, 0.52) 100%) !important;
}

.hero-carousel--conversion .hero-content-overlay {
  width: min(100% - 2rem, 1220px) !important;
  max-width: 1220px !important;
  padding-top: clamp(102px, 10vh, 136px) !important;
  padding-bottom: clamp(72px, 9vh, 104px) !important;
  align-items: flex-start !important;
}

.hero-carousel--conversion .hero-copy-card--conversion-v2 {
  width: min(100%, 640px) !important;
  max-width: 640px !important;
  margin: 0 !important;
  padding: clamp(1.25rem, 2.3vw, 1.8rem) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 18px !important;
  background: linear-gradient(165deg, rgba(9, 12, 18, 0.66) 0%, rgba(9, 12, 18, 0.5) 100%) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34) !important;
  backdrop-filter: blur(1.5px) !important;
  -webkit-backdrop-filter: blur(1.5px) !important;
  text-align: left !important;
  align-items: flex-start !important;
}

.hero-carousel--conversion .hero-kicker {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  padding: 0.4rem 0.82rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 0.58rem;
}

.hero-carousel--conversion .hero-title {
  font-size: clamp(2.15rem, 5vw, 3.65rem) !important;
  line-height: 1.04 !important;
  max-width: 12ch !important;
  margin: 0 0 0.75rem !important;
  text-align: left !important;
}

.hero-carousel--conversion .hero-subtitle {
  font-size: clamp(1rem, 1.9vw, 1.18rem) !important;
  line-height: 1.45 !important;
  max-width: 33ch !important;
  margin: 0 0 0.95rem !important;
  color: rgba(255, 255, 255, 0.9) !important;
  text-align: left !important;
}

.hero-carousel--conversion .hero-phone-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border-radius: 11px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.03);
  padding: 0.62rem 0.9rem;
  margin-bottom: 1rem;
  color: #f8fafc !important;
  font-size: clamp(1.34rem, 2.5vw, 1.9rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  text-decoration: none;
}

.hero-carousel--conversion .hero-phone-cta-icon {
  width: 1.02em;
  height: 1.02em;
  opacity: 0.92;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 {
  width: 100%;
  display: grid !important;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  gap: 0.62rem !important;
  margin: 0 !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
  width: 100% !important;
  min-height: 54px !important;
  border-radius: 11px !important;
  justify-content: center !important;
  padding: 0.9rem 1.1rem !important;
  font-weight: 650 !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary {
  background: #f3f5f9 !important;
  color: #08090b !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary:hover {
  background: #ffffff !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--reserve {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  color: #fff !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--reserve:hover {
  background: rgba(255, 255, 255, 0.16) !important;
}

.hero-carousel--conversion .hero-trust-line--conversion-v2 {
  margin: 0.85rem 0 0 !important;
  font-size: 0.93rem !important;
  color: rgba(255, 255, 255, 0.82) !important;
  text-align: left !important;
}

.hero-carousel--conversion .hero-carousel-dots {
  justify-content: flex-start !important;
  margin-top: 0.18rem !important;
  gap: 0.5rem !important;
}

.hero-carousel--conversion .carousel-dot {
  width: 8px !important;
  height: 8px !important;
  border: 1px solid rgba(255, 255, 255, 0.48) !important;
  background: rgba(255, 255, 255, 0.18) !important;
}

.hero-carousel--conversion .carousel-dot.active {
  width: 22px !important;
  border-color: #f3f5f9 !important;
  background: #f3f5f9 !important;
}

.hero-carousel--conversion .carousel-btn {
  width: 42px !important;
  height: 42px !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  background: rgba(7, 9, 14, 0.42) !important;
}

.hero-carousel--conversion .carousel-btn:hover {
  background: rgba(7, 9, 14, 0.68) !important;
  border-color: rgba(255, 255, 255, 0.38) !important;
}

@media (max-width: 900px) {
  .hero-carousel--conversion {
    min-height: min(70vh, 500px) !important;
    height: auto !important;
  }

  .hero-carousel--conversion .hero-content-overlay {
    align-items: center !important;
    width: min(100% - 1.1rem, 760px) !important;
    padding-top: 88px !important;
    padding-bottom: 64px !important;
  }

  .hero-carousel--conversion .hero-copy-card--conversion-v2 {
    width: 100% !important;
    max-width: 620px !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
    padding: 1.1rem 0.92rem !important;
    text-align: center !important;
    align-items: center !important;
  }

  .hero-carousel--conversion .hero-title,
  .hero-carousel--conversion .hero-subtitle,
  .hero-carousel--conversion .hero-trust-line--conversion-v2 {
    text-align: center !important;
  }

  .hero-carousel--conversion .hero-title {
    max-width: 12ch !important;
    font-size: clamp(1.82rem, 9vw, 2.45rem) !important;
  }

  .hero-carousel--conversion .hero-subtitle {
    max-width: 30ch !important;
    font-size: clamp(0.94rem, 4vw, 1.04rem) !important;
  }

  .hero-carousel--conversion .hero-phone-cta {
    width: 100%;
    justify-content: center;
    font-size: clamp(1.24rem, 6.5vw, 1.72rem) !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 {
    grid-template-columns: 1fr;
  }

  .hero-carousel--conversion .hero-carousel-dots {
    justify-content: center !important;
  }

  .hero-carousel--conversion .carousel-btn {
    width: 39px !important;
    height: 39px !important;
  }
}

/* ===== Vehicules page: uniformiser les boxes de selection ===== */
.vehicules-grid {
  align-items: stretch;
  --vehicule-card-pad: 1.25rem;
}

.vehicules-grid .vehicule-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  background: #111 !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
  overflow: hidden;
}

.vehicules-grid .vehicule-card-image-wrap {
  flex-shrink: 0;
  aspect-ratio: 16 / 10;
  background: #0d0f13;
}

.vehicules-grid .vehicule-card h2 {
  flex-shrink: 0;
  margin: 0;
  margin-bottom: 0.55rem;
  padding: var(--vehicule-card-pad) var(--vehicule-card-pad) 0;
  min-height: 2.75em;
  line-height: 1.25;
  box-sizing: border-box;
}

.vehicules-grid .vehicule-card-desc {
  flex: 1 1 auto;
  margin: 0 0 0.9rem;
  padding: 0 var(--vehicule-card-pad);
  min-height: 4.5em;
  box-sizing: border-box;
}

.vehicules-grid .vehicule-card-specs {
  flex-shrink: 0;
  margin: 0 0 1rem;
  padding: 0 var(--vehicule-card-pad);
  box-sizing: border-box;
}

.vehicules-grid .vehicule-card-btn {
  flex-shrink: 0;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin: 0 var(--vehicule-card-pad) var(--vehicule-card-pad);
  min-height: 48px;
  text-align: center;
  box-sizing: border-box;
}

@media (min-width: 901px) {
  /* Ancien footer 3 zones (sans accordéon .footer-col-details) — ne pas écraser la grille 5 col du footer actuel */
  .footer-inner:not(:has(.footer-col-details)) {
    display: grid !important;
    grid-template-columns: minmax(220px, 1.1fr) minmax(540px, 2.3fr) minmax(230px, 1fr) !important;
    align-items: start !important;
    column-gap: clamp(1.8rem, 2.8vw, 2.8rem) !important;
  }

  .footer-inner:not(:has(.footer-col-details)) > * + * {
    border-left: none !important;
    padding-left: 0 !important;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-brand p {
    max-width: 28ch;
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-col-title,
  .footer-inner:not(:has(.footer-col-details)) .footer-contact-label {
    font-size: 0.8rem !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 0.72rem !important;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-col a,
  .footer-inner:not(:has(.footer-col-details)) .footer-col-links a,
  .footer-inner:not(:has(.footer-col-details)) .footer-contact a {
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: clamp(1rem, 1.8vw, 1.6rem);
    min-width: 0;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-col-details {
    min-width: 0;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-col-links {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-nav .footer-col-details:nth-of-type(3) .footer-col-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0.85rem;
    row-gap: 0.18rem;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-contact {
    justify-self: end;
    text-align: left;
  }
}

/* Accordéon : colonne Arrondissements — une seule colonne en desktop (grille 2 col cassait l’alignement en flex étroit) */
@media (min-width: 901px) {
  .footer-nav .footer-col-details:nth-of-type(3) .footer-col-links {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.32rem !important;
    grid-template-columns: unset !important;
  }
}

@media (min-width: 901px) and (max-width: 1240px) {
  .footer-inner:not(:has(.footer-col-details)) {
    grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr) !important;
    row-gap: 1.2rem;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-column: 2;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-brand {
    grid-column: 1;
  }

  .footer-inner:not(:has(.footer-col-details)) .footer-contact {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

/* Mobile: 3e CTA passe en pleine largeur pour éviter l'effet tassé */
@media (max-width: 900px) {
  .hero-cta-row--triple .hero-cta--reserve {
    grid-column: 1 / -1;
  }
}

/* ===== Footer premium conversion redesign ===== */
.footer-pre-cta {
  background: linear-gradient(180deg, rgba(8, 8, 8, 0.96) 0%, rgba(10, 10, 10, 1) 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-pre-cta__inner {
  width: min(100% - 2rem, 1180px);
  margin: 0 auto;
  padding: clamp(1.5rem, 3.2vw, 2.4rem) 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.footer-pre-cta__title {
  font-size: clamp(1.12rem, 2.2vw, 1.55rem);
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.02em;
}

.footer-pre-cta__actions {
  display: flex;
  gap: 0.62rem;
}

.footer-pre-cta__btn {
  min-height: 50px;
  border-radius: 10px !important;
  font-weight: 650 !important;
  text-decoration: none;
}

.footer-pre-cta__btn--book {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  color: #fff !important;
}

.footer-pre-cta__btn--book:hover {
  background: rgba(255, 255, 255, 0.16) !important;
}

.footer {
  background: #0a0a0a !important;
  border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
}

.footer .container.footer-inner,
.footer-bottom .container {
  width: min(100% - 2rem, 1180px) !important;
}

/* Simplification des liens footer: uniquement mobile (évite footer vide / incohérent sur desktop) */
@media (max-width: 900px) {
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a {
    display: none !important;
  }

  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="/"],
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="taxi-paris.html"],
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="reservation.html"],
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="vehicules.html"],
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="taxi-paris-24h.html"],
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a[href="a-propos.html"] {
    display: block !important;
  }

  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a {
    display: none !important;
  }

  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a[href="taxi-paris-cdg.html"],
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a[href="taxi-paris-orly.html"],
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a[href="taxi-gare-paris.html"],
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a[href="taxi-paris-disneyland.html"],
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a[href="taxi-paris-la-defense.html"] {
    display: block !important;
  }
}

.footer-brand .logo {
  font-size: clamp(1.08rem, 1.7vw, 1.26rem);
  font-weight: 700;
}

.footer-brand p {
  color: rgba(255, 255, 255, 0.72) !important;
  max-width: 30ch;
  line-height: 1.6 !important;
}

.footer-col-title,
.footer-contact-label {
  font-size: 0.78rem !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase;
  color: #fff !important;
  margin-bottom: 0.72rem !important;
}

.footer-col a,
.footer-col-links a,
.footer-contact a {
  color: rgba(229, 231, 235, 0.9) !important;
  font-size: 0.96rem !important;
  line-height: 1.55 !important;
}

.footer-col a:hover,
.footer-col-links a:hover,
.footer-contact a:hover {
  color: #fff !important;
}

.footer-tel {
  font-size: clamp(1.24rem, 2.6vw, 1.72rem) !important;
  line-height: 1.15 !important;
  color: #fff !important;
  margin-bottom: 0.55rem;
}

.footer-contact .footer-whatsapp,
.footer-contact a[href^="tel:"]:not(.footer-tel) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
  margin-top: 0.45rem;
  text-decoration: none;
}

/* Ne pas appliquer le fond « champ blanc » au .footer-tel (CTA perle défini plus bas) */
.footer-contact a[href^="tel:"]:not(.footer-tel) {
  background: #f3f5f9 !important;
  color: #0b0b0b !important;
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.footer-contact .footer-whatsapp {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff !important;
}

@media (max-width: 900px) {
  .footer-pre-cta__inner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 0.82rem;
    padding: 1.25rem 0;
  }

  .footer-pre-cta__actions {
    flex-direction: column;
  }

  .footer-pre-cta__btn {
    width: 100%;
  }

  .footer-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 1rem !important;
  }

  .footer-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .footer-contact {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 0.95rem 0.92rem;
  }

  .footer-contact a[href^="tel:"]:not(.footer-tel),
  .footer-contact .footer-whatsapp {
    width: 100%;
  }
}

/* ===== Mobile hero conversion strict UX ===== */
@media (max-width: 900px) {
  .hero-carousel--conversion {
    min-height: min(68vh, 480px) !important;
  }

  .hero-carousel--conversion .hero-content-overlay {
    width: calc(100% - 48px) !important;
    max-width: 560px !important;
    padding-top: 86px !important;
    padding-bottom: 92px !important;
    gap: 0.7rem !important;
  }

  .hero-carousel--conversion .hero-copy-card--conversion-v2 {
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
  }

  /* Ordre visuel mobile strict: titre -> sous-titre -> cta -> preuve */
  .hero-carousel--conversion .hero-kicker,
  .hero-carousel--conversion .hero-phone-cta,
  .hero-carousel--conversion .carousel-btn,
  .hero-carousel--conversion .hero-carousel-dots {
    display: none !important;
  }

  .hero-carousel--conversion .hero-title {
    font-size: clamp(1.95rem, 8.6vw, 2.45rem) !important;
    line-height: 1.08 !important;
    margin: 0 0 0.6rem !important;
  }

  .hero-carousel--conversion .hero-subtitle {
    margin: 0 0 0.9rem !important;
    font-size: clamp(0.98rem, 4.1vw, 1.06rem) !important;
    line-height: 1.45 !important;
    color: rgba(255, 255, 255, 0.92) !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 {
    grid-template-columns: 1fr !important;
    gap: 1.125rem !important;
    margin-top: 0.5rem !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
    width: 100% !important;
    justify-content: center !important;
    border-radius: 14px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary {
    min-height: 56px !important;
    background: #fff !important;
    color: #000 !important;
    margin-top: 22px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--reserve {
    min-height: 52px !important;
    margin-top: 0 !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    color: #fff !important;
  }

  .hero-carousel--conversion .hero-trust-line--conversion-v2 {
    margin-top: 1.15rem !important;
    font-size: 0.93rem !important;
    text-align: center !important;
    color: rgba(255, 255, 255, 0.82) !important;
  }

  /* Mobile: keep the real carousel behavior (auto + controls) */
  .hero-carousel--conversion .hero-carousel-track {
    transition: transform 0.8s var(--ease-in-out) !important;
  }

  .hero-carousel--conversion .carousel-btn,
  .hero-carousel--conversion .hero-carousel-dots {
    display: flex !important;
  }

  /* Sticky bottom premium conversion */
  .sticky-bar-mobile {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    border-radius: 0 !important;
    padding: 18px 20px calc(18px + env(safe-area-inset-bottom)) !important;
    display: grid !important;
    grid-template-columns: 1.3fr 1fr;
    column-gap: 24px !important;
    row-gap: 14px !important;
    background: rgba(10, 10, 10, 0.9) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28) !important;
    z-index: 1200 !important;
  }

  .sticky-bar-mobile .sticky-bar-mobile-btn {
    min-height: 52px !important;
    border-radius: 12px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center !important;
  }

  .sticky-bar-mobile .sticky-bar-mobile-btn--call {
    background: #ffffff !important;
    color: #000 !important;
    border: 1px solid rgba(255, 255, 255, 0.42) !important;
  }

  .sticky-bar-mobile .sticky-bar-mobile-btn--whatsapp {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
  }

  body {
    padding-bottom: 90px !important;
  }
}

/* ===== Footer V3: premium clean conversion ===== */
.footer {
  background: #0b0b0b !important;
  color: #ccc !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* Grille desktop footer : voir « FOOTER PROFESSIONAL FINAL LOCK » (nav en grid, pas display:contents) */

.footer-col-title,
.footer-contact-label {
  color: #fff !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.65rem !important;
}

.footer-brand .logo {
  color: #fff !important;
}

.footer-brand p,
.footer-col a,
.footer-col-links a,
.footer-contact a {
  color: #ccc !important;
}

.footer-col a:hover,
.footer-col-links a:hover,
.footer-contact a:hover {
  color: var(--footer-link-hover) !important;
}

.footer-col-links {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
}

.footer-tel {
  display: block !important;
  font-size: clamp(1.35rem, 2.6vw, 1.8rem) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0.12rem 0 0.5rem !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.footer-contact a[href^="tel:"]:not(.footer-tel),
.footer-contact .footer-whatsapp {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  border-radius: 8px !important;
  padding: 0.68rem 0.95rem !important;
  margin: 0.35rem 0.45rem 0.35rem 0 !important;
  text-decoration: none !important;
}

/* CTA appeler (hors .footer-tel — même palette perle) */
.footer-contact a[href^="tel:"]:not(.footer-tel) {
  background: var(--footer-call-gradient) !important;
  color: var(--footer-call-text) !important;
  border: 1px solid var(--footer-call-border) !important;
  box-shadow: var(--footer-call-shadow) !important;
}

/* CTA WhatsApp */
.footer-contact .footer-whatsapp {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

/* Email + Google en dessous, sans faux champ blanc */
.footer-contact a[href^="mailto:"],
.footer-contact .footer-gbp {
  display: block !important;
  margin-top: 0.4rem !important;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
}

@media (max-width: 900px) {
  .footer .container.footer-inner {
    grid-template-columns: 1fr !important;
    gap: 1.1rem !important;
  }

  .footer-brand,
  .footer-nav .footer-col-details:nth-of-type(1),
  .footer-nav .footer-col-details:nth-of-type(2),
  .footer-nav .footer-col-details:nth-of-type(3),
  .footer-contact {
    grid-column: 1 / -1 !important;
    text-align: center !important;
  }

  .footer-brand {
    padding-right: 0 !important;
  }

  .footer-contact a[href^="tel:"]:not(.footer-tel),
  .footer-contact .footer-whatsapp {
    width: 100% !important;
    margin-right: 0 !important;
  }
}

/* Header mobile hard-lock: prevent overlaps on all pages */
@media (max-width: 900px) {
  .mobile-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 56px !important;
    height: 56px !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
    gap: 0.3rem !important;
    overflow: hidden !important;
  }

  .mobile-header-logo {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 46% !important;
  }

  .mobile-header-logo-text {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 0.74rem !important;
    line-height: 1.1 !important;
  }

  .mobile-header-actions {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.28rem !important;
    flex: 0 0 auto !important;
  }

  .mobile-header-cta {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
  }

  .mobile-header-cta svg {
    width: 17px !important;
    height: 17px !important;
  }

  .mobile-header-btn.nav-toggle {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    flex-shrink: 0 !important;
  }
}

/* Mobile final lock: prevent any residual overlap */
@media (max-width: 420px) {
  .mobile-header-logo-text {
    display: none !important;
  }

  .mobile-header-logo {
    max-width: 28px !important;
    flex: 0 0 28px !important;
  }

  .mobile-header-logo-icon {
    width: 22px !important;
    height: 22px !important;
  }
}

@media (max-width: 900px) {
  .footer .container.footer-inner {
    display: block !important;
    width: min(100% - 1.25rem, 640px) !important;
  }

  .footer-brand,
  .footer-nav,
  .footer-contact {
    display: block !important;
    width: 100% !important;
    float: none !important;
    clear: both !important;
    position: static !important;
    margin: 0 0 0.95rem !important;
    text-align: center !important;
  }

  .footer-nav .footer-col-details {
    display: block !important;
    grid-column: auto !important;
    margin: 0 0 0.8rem !important;
  }

  .footer-nav .footer-col-details:nth-of-type(3) {
    margin-top: 0 !important;
  }

  .footer-col-links {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.28rem !important;
  }

  .footer-col-links a,
  .footer-contact a {
    display: block !important;
    width: 100% !important;
    position: static !important;
  }

  .footer-contact {
    margin-bottom: 0 !important;
    border-radius: 10px !important;
    padding: 0.85rem !important;
  }

  /* Final safety: zero header overlap */
  .mobile-header-cta {
    display: none !important;
  }

  .mobile-header-actions {
    margin-left: auto !important;
  }

  /* Final safety: zero hero CTA truncation across templates */
  .hero-cta,
  .page-hero-cta .btn,
  .cta-buttons .btn {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    min-height: 52px !important;
  }

  .hero-cta .hero-cta-icon,
  .hero-cta .icon.hero-cta-icon {
    margin: 0 !important;
    flex-shrink: 0 !important;
  }

  .footer-nav .footer-col-details summary {
    display: block !important;
    text-align: center !important;
    margin-bottom: 0.45rem !important;
  }

  .footer-col-links a {
    padding: 0.05rem 0 !important;
  }

  .footer-contact a[href^="mailto:"],
  .footer-contact .footer-gbp {
    font-size: 0.9rem !important;
    overflow-wrap: anywhere !important;
  }
}

/* Hero buttons mobile final polish */
@media (max-width: 900px) {
  .hero-carousel--conversion .hero-cta-row--conversion-v2 {
    margin-top: 20px !important;
    row-gap: 1rem !important;
    column-gap: 0 !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 22px !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    margin-top: 0 !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary {
    min-height: 56px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--reserve {
    min-height: 52px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta-icon,
  .hero-carousel--conversion .hero-cta-row--conversion-v2 .icon.hero-cta-icon {
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }
}

/* ===== QA final: fix mobile footer + header overlap + desktop hero overload ===== */
@media (max-width: 900px) {
  /* Supprime le doublon de navigation en mobile (liens qui se chevauchent) */
  .top-bar {
    display: none !important;
  }

  .header .header-inner,
  .header-inner--desktop {
    display: none !important;
  }

  .mobile-header {
    display: flex !important;
    justify-content: space-between !important;
    gap: 0.38rem !important;
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
  }

  .mobile-header-logo {
    min-width: 0 !important;
    max-width: 42% !important;
  }

  .mobile-header-logo-text {
    font-size: 0.76rem !important;
  }

  .mobile-header-actions {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.32rem !important;
    flex-shrink: 0 !important;
  }

  /* Conserver les pastilles icône 44px (sinon chevauchement avec la grille desktop / texte fantôme) */
  .header--conversion .mobile-header-cta {
    box-sizing: border-box !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border-radius: 12px !important;
    font-size: 0 !important;
    line-height: 0 !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }

  .header--conversion .mobile-header-cta svg {
    width: 22px !important;
    height: 22px !important;
    flex-shrink: 0 !important;
  }

  /* Footer mobile: structure propre, colonnes empilees sans overlap */
  .footer .container.footer-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 1.15rem !important;
    width: min(100% - 1.25rem, 640px) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: clamp(1.75rem, 4vw, 2.35rem) 0 clamp(1.35rem, 3vw, 2rem) !important;
    box-sizing: border-box !important;
  }

  /* Grille desktop : border-left entre colonnes → sur mobile on passe en séparateur horizontal */
  .footer .container.footer-inner > * + * {
    border-left: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.09) !important;
    padding-top: 1.1rem !important;
  }

  .footer-nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.05rem !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .footer-nav .footer-col {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.38rem !important;
    min-width: 0 !important;
  }

  .footer-nav .footer-col-details {
    display: block !important;
    width: 100% !important;
    margin-bottom: 0.95rem !important;
  }

  .footer-nav .footer-col-details summary {
    list-style: none;
  }

  .footer-nav .footer-col-details summary::-webkit-details-marker {
    display: none;
  }

  .footer-col-title,
  .footer-contact-label {
    margin-bottom: 0.55rem !important;
  }

  .footer-col-links {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.3rem !important;
  }

  .footer-col-links a {
    display: block !important;
    width: 100%;
  }

  .footer,
  .footer * {
    white-space: normal !important;
  }

  .footer-col-links a,
  .footer-contact a {
    line-height: 1.45 !important;
    word-break: normal !important;
    overflow-wrap: anywhere;
  }

  .footer-bottom .container {
    text-align: center !important;
  }

  /* Pages internes: hero toujours lisible dès l'écran initial */
  .app-main .page-hero {
    width: min(100% - 1.25rem, 760px) !important;
    margin: 0 auto !important;
    padding-top: clamp(2.8rem, 10vw, 4rem) !important;
    padding-bottom: 1.15rem !important;
  }

  .app-main .page-hero h1 {
    margin-bottom: 0.75rem !important;
    line-height: 1.15 !important;
  }

  .app-main .page-hero p {
    margin-top: 0 !important;
    margin-bottom: 0.95rem !important;
  }
}

/* ===== Release QA Overrides (hero + footer final) ===== */
/* Hero conversion: stop truncated text/icon overflow */
.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  height: 48px !important;
  padding: 14px 22px !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  transition: all 0.2s ease !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta-icon,
.hero-carousel--conversion .hero-cta-row--conversion-v2 .icon.hero-cta-icon {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  transform: none !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 {
  gap: 12px !important;
  align-items: center !important;
}

@media (max-width: 900px) {
  .hero-carousel--conversion .hero-content-overlay {
    width: calc(100% - 48px) !important;
    max-width: 560px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    font-size: 16px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 14px 22px !important;
  }
}

/* (Grille 5 col :has retirée ici — doublon global qui cassait le mobile ; voir bloc V3 @media 901px + FINAL LOCK) */

.footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a,
.footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a,
.footer-nav .footer-col-details:nth-of-type(3) .footer-col-links a {
  display: block !important;
}

.footer-col-title,
.footer-contact-label {
  color: #fff !important;
}

.footer-col-links a,
.footer-contact a,
.footer-brand p {
  color: #ccc !important;
}

.footer-col-links a:hover,
.footer-contact a:hover {
  color: var(--footer-link-hover) !important;
}

/* Téléphone: bouton principal (palette perle, cohérent lock final) */
.footer-tel {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 46px !important;
  padding: 0.65rem 0.9rem !important;
  border-radius: 8px !important;
  background: var(--footer-call-gradient) !important;
  color: var(--footer-call-text) !important;
  border: 1px solid var(--footer-call-border) !important;
  box-shadow: var(--footer-call-shadow) !important;
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  margin: 0.15rem 0 0.45rem !important;
  text-decoration: none !important;
}

.footer-whatsapp {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 8px !important;
  padding: 0.62rem 0.9rem !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  background: transparent !important;
  color: #fff !important;
  margin: 0 0 0.35rem !important;
  text-decoration: none !important;
}

.footer-contact a[href^="mailto:"],
.footer-contact .footer-gbp {
  display: block !important;
  margin-top: 0.35rem !important;
}

@media (max-width: 900px) {
  .footer .container.footer-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
    width: min(100% - 1.25rem, 640px) !important;
  }

  .footer-brand,
  .footer-contact,
  .footer-nav .footer-col-details {
    grid-column: auto !important;
    text-align: center !important;
    margin-top: 0 !important;
  }

  .footer-nav {
    display: block !important;
  }

  .footer-col-links {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.3rem !important;
  }

  .footer-contact .footer-whatsapp {
    width: 100% !important;
    margin-right: 0 !important;
  }
}

@media (min-width: 901px) {
  /* Hero desktop: simplification forte pour lisibilite premium */
  .hero-carousel--conversion .hero-kicker,
  .hero-carousel--conversion .hero-phone-cta,
  .hero-carousel--conversion .hero-carousel-dots,
  .hero-carousel--conversion .carousel-btn {
    display: none !important;
  }

  .hero-carousel--conversion .hero-copy-card--conversion-v2 {
    max-width: 600px !important;
    padding: 1.3rem 1.3rem 1.2rem !important;
  }

  .hero-carousel--conversion .hero-title {
    margin-bottom: 0.6rem !important;
  }

  .hero-carousel--conversion .hero-subtitle {
    margin-bottom: 0.85rem !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 {
    max-width: 420px;
    grid-template-columns: 1fr 1fr;
  }

  .hero-carousel--conversion .hero-trust-line--conversion-v2 {
    margin-top: 1rem !important;
    font-size: 0.89rem !important;
  }
}

/* ===== FINAL HERO CTA FIX (last priority) ===== */
.hero-carousel--conversion .hero-cta-row--conversion-v2 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: clamp(6px, 1.4vw, 12px) !important;
  row-gap: 14px !important;
  align-items: center !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 14px 18px !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta-icon,
.hero-carousel--conversion .hero-cta-row--conversion-v2 .icon.hero-cta-icon {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  flex-shrink: 0 !important;
  margin: 0 0 0 2px !important;
  overflow: visible !important;
  transform: none !important;
}

.hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

@media (max-width: 900px) {
  .hero-carousel--conversion .hero-cta-row--conversion-v2 {
    grid-template-columns: 1fr !important;
    row-gap: 1.125rem !important;
    column-gap: 0 !important;
    margin-top: 20px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta {
    height: 52px !important;
    min-height: 52px !important;
    font-size: 15.5px !important;
    padding: 14px 20px !important;
    gap: 12px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta--primary {
    height: 56px !important;
    min-height: 56px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .hero-carousel--conversion .hero-cta-row--conversion-v2 .hero-cta-icon,
  .hero-carousel--conversion .hero-cta-row--conversion-v2 .icon.hero-cta-icon {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    margin-left: 0 !important;
  }
}

/* ===== FOOTER PROFESSIONAL FINAL LOCK (desktop: grille 5 colonnes cohérente) ===== */
.footer {
  background: #0a0a0a !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/*
 * Desktop footer : pas de display:contents sur <nav> (bugs WebKit/Chromium avec <details>).
 * Rangée flex sur .footer-inner (plus robuste qu’une grille 5 col + zones) : marque | liens (flex) | contact.
 */
@media (min-width: 901px) {
  .footer .container.footer-inner {
    /* Annule .container { max-width: 1160px } qui comprimait le bloc avec width large */
    max-width: none !important;
    width: min(100% - 2rem, 1240px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: var(--footer-col-gap) !important;
    padding-top: clamp(2.85rem, 6.5vw, 4.35rem) !important;
    padding-bottom: clamp(1.65rem, 2.8vw, 2.4rem) !important;
    padding-left: max(clamp(0.75rem, 2.5vw, 1.65rem), env(safe-area-inset-left)) !important;
    padding-right: max(clamp(1.1rem, 3.2vw, 2rem), env(safe-area-inset-right)) !important;
  }

  .footer-brand {
    flex: 0 1 clamp(11rem, 14vw, 15.5rem) !important;
    min-width: 0 !important;
    max-width: 18rem !important;
    align-self: flex-start !important;
  }

  .footer-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: var(--footer-col-gap) !important;
  }

  .footer-nav .footer-col-details:nth-of-type(1),
  .footer-nav .footer-col:nth-of-type(1):not(:only-of-type) {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    grid-column: unset !important;
    grid-row: unset !important;
  }

  .footer-nav .footer-col-details:nth-of-type(2),
  .footer-nav .footer-col:nth-of-type(2) {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    grid-column: unset !important;
    grid-row: unset !important;
  }

  .footer-nav .footer-col-details:nth-of-type(3),
  .footer-nav .footer-col:nth-of-type(3) {
    display: block !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    grid-column: unset !important;
    grid-row: unset !important;
    margin-top: 0 !important;
  }

  .footer .footer-nav .footer-col:only-of-type {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    grid-column: unset !important;
  }

  .footer-contact {
    flex: 0 1 clamp(11rem, 16vw, 17.5rem) !important;
    min-width: 0 !important;
    max-width: 20rem !important;
    align-self: flex-start !important;
  }
}

.footer-inner > * + * {
  border-left: none !important;
  padding-left: 0 !important;
}

.footer-brand,
.footer-nav .footer-col-details,
.footer-contact {
  text-align: left !important;
}

.footer .container.footer-inner > * {
  min-width: 0 !important;
}

.footer-brand {
  padding-right: clamp(0.75rem, 2vw, 1.5rem) !important;
  box-sizing: border-box !important;
}

.footer-contact {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 12px !important;
  padding: 0.95rem !important;
  position: relative !important;
  z-index: 1 !important;
}

.footer-col-title,
.footer-contact-label {
  color: #fff !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.65rem !important;
}

.footer-col-links {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.32rem !important;
}

.footer-brand p,
.footer-col-links a,
.footer-contact a {
  color: #ccc !important;
}

.footer-col-links a:hover,
.footer-contact a:hover {
  color: var(--footer-link-hover) !important;
}

@media (max-width: 900px) {
  /* Réduction liste footer uniquement petit écran */
  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a:nth-child(n + 10),
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a:nth-child(n + 11) {
    display: none !important;
  }
}

/* Téléphone footer : CTA perle premium (priorité sur .footer-contact a) */
.footer-contact a.footer-tel,
.footer-contact a.footer-tel:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 46px !important;
  padding: 0.65rem 0.9rem !important;
  border-radius: 10px !important;
  background: var(--footer-call-gradient) !important;
  color: var(--footer-call-text) !important;
  -webkit-text-fill-color: var(--footer-call-text) !important;
  border: 1px solid var(--footer-call-border) !important;
  box-shadow: var(--footer-call-shadow) !important;
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  margin: 0.15rem 0 0.45rem !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease !important;
}

.footer-contact a.footer-tel:hover {
  background: var(--footer-call-gradient-hover) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 6px 22px rgba(0, 0, 0, 0.26) !important;
  color: var(--footer-call-text) !important;
  -webkit-text-fill-color: var(--footer-call-text) !important;
}

.footer-whatsapp {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 8px !important;
  padding: 0.62rem 0.9rem !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  background: transparent !important;
  color: #fff !important;
  margin: 0 0 0.35rem !important;
  text-decoration: none !important;
}

.footer-contact a[href^="mailto:"],
.footer-contact .footer-gbp {
  display: block !important;
  margin-top: 0.35rem !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 900px) {
  .footer .container.footer-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 1.25rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    text-align: left !important;
    padding-top: clamp(2rem, 5vw, 3rem) !important;
    padding-bottom: clamp(1.5rem, 3vw, 2.25rem) !important;
    padding-left: max(var(--mobile-gutter, 1rem), env(safe-area-inset-left)) !important;
    padding-right: max(var(--mobile-gutter-r, 1rem), env(safe-area-inset-right)) !important;
  }

  .footer-brand,
  .footer-nav,
  .footer-contact {
    grid-area: auto !important;
  }

  .footer-brand,
  .footer-nav .footer-col-details,
  .footer-contact {
    grid-column: unset !important;
    text-align: left !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .footer .footer-col-details summary.footer-col-title,
  .footer .footer-col-details summary {
    justify-content: space-between !important;
    text-align: left !important;
  }

  .footer-nav .footer-col-links {
    align-items: stretch !important;
    text-align: left !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .footer-nav .footer-col-links a {
    text-align: left !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .footer-contact a {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .footer-bottom .container {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .footer-bottom p {
    text-align: left !important;
    padding-left: max(var(--mobile-gutter, 1rem), env(safe-area-inset-left)) !important;
    padding-right: max(var(--mobile-gutter-r, 1rem), env(safe-area-inset-right)) !important;
  }

  .footer-nav {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .footer-nav .footer-col-details:nth-of-type(1) .footer-col-links a:nth-child(n + 8),
  .footer-nav .footer-col-details:nth-of-type(2) .footer-col-links a:nth-child(n + 8) {
    display: none !important;
  }
}

/* Footers HTML « legacy » (.footer-col) : même grille 5 zones que accueil (sans :has → repli safe) */
@media (min-width: 901px) {
  .footer .footer-nav .footer-col {
    display: block !important;
    min-width: 0 !important;
    text-align: left !important;
  }

}

/* Barre Appeler / WhatsApp : mobile uniquement (verrou après tout le premium) */
@media (min-width: 901px) {
  .sticky-bar-mobile {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* Footer : marque « Réservation Taxi Paris » alignée à gauche (override des blocs mobile centrés) */
.footer .footer-brand,
.footer .footer-brand .logo,
.footer .footer-brand p {
  text-align: left !important;
}

@media (max-width: 900px) {
  /* .footer-inner : styles principaux dans le bloc mobile plus haut (évite doublons) */

  /* Jamais display:contents sur mobile : sinon les <details> repassent dans la grille 5 col et se chevauchent */
  .footer .footer-nav,
  .footer .footer-inner > .footer-nav {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .footer-nav .footer-col-details {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .footer-nav .footer-col-details .footer-col-links,
  .footer-nav .footer-col-details:nth-of-type(3) .footer-col-links {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.42rem !important;
    grid-template-columns: none !important;
  }

  /* Annule la grille 5 colonnes du « FINAL LOCK » (grid-column / contents) sur mobile */
  .footer .footer-brand,
  .footer .footer-contact {
    grid-column: unset !important;
    grid-row: auto !important;
  }

  .footer-nav .footer-col-details:nth-of-type(1),
  .footer-nav .footer-col-details:nth-of-type(2),
  .footer-nav .footer-col-details:nth-of-type(3) {
    grid-column: unset !important;
    grid-row: auto !important;
    text-align: left !important;
  }

  .footer-nav .footer-col-details summary {
    justify-content: space-between !important;
    text-align: left !important;
  }

  .footer .footer-brand {
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ========= Footer mobile accordéon : dernier mot (spécificité > tout :has hors @media) ========= */
@media (max-width: 900px) {
  .footer .container.footer-inner:has(.footer-col-details) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 1.25rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    grid-template-columns: unset !important;
    grid-template-rows: unset !important;
    text-align: left !important;
    padding-top: clamp(2rem, 5vw, 3rem) !important;
    padding-bottom: clamp(1.5rem, 3vw, 2.25rem) !important;
    padding-left: max(var(--mobile-gutter, 1rem), env(safe-area-inset-left)) !important;
    padding-right: max(var(--mobile-gutter-r, 1rem), env(safe-area-inset-right)) !important;
  }

  .footer .container.footer-inner:has(.footer-col-details) .footer-nav {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0 !important;
  }

  .footer .container.footer-inner:has(.footer-col-details) .footer-brand,
  .footer .container.footer-inner:has(.footer-col-details) .footer-contact {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }
}

/* Dernier mot cascade (desktop) : flex row + enfants directs — au-dessus de .footer-inner{display:grid} (style.css) */
@media (min-width: 901px) {
  html body .footer .container.footer-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: var(--footer-col-gap) !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
  }

  html body .footer .container.footer-inner > .footer-brand {
    flex: 0 1 clamp(11rem, 14vw, 15.5rem) !important;
    min-width: 0 !important;
    max-width: 18rem !important;
    grid-column: unset !important;
    grid-row: unset !important;
  }

  html body .footer .container.footer-inner > .footer-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: var(--footer-col-gap) !important;
    grid-column: unset !important;
    grid-row: unset !important;
  }

  html body .footer .container.footer-inner > .footer-contact {
    flex: 0 1 clamp(11rem, 16vw, 17.5rem) !important;
    min-width: 0 !important;
    max-width: 20rem !important;
    grid-column: unset !important;
    grid-row: unset !important;
  }
}

/* Page réservation : cartes FAQ (priorité sur .faq-list .faq-item !important) */
.page-reservation .faq-list .faq-item {
  background: rgba(255, 255, 255, 0.035) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: var(--radius-lg) !important;
  margin-bottom: 0.85rem !important;
  padding: 1.2rem 1.35rem !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
}

.page-reservation .faq-list .faq-item:hover {
  border-color: rgba(255, 255, 255, 0.12) !important;
  background: rgba(255, 255, 255, 0.045) !important;
}

.page-reservation .faq-list .faq-item:last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 480px) {
  .page-reservation .faq-list .faq-item {
    padding: 1rem 1.1rem !important;
  }
}

/* Réservation : confiance + « Voir aussi » — empilés verticalement (priorité cascade max) */
html body.page-reservation .reservation-intro-meta {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
}

html body.page-reservation .reservation-intro-card {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
}

html body.page-reservation .reservation-intro-card > .reservation-intro-trust,
html body.page-reservation .reservation-intro-card > .reservation-see-also {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

html body.page-reservation .reservation-see-also-nav {
  flex-direction: column !important;
  flex-wrap: nowrap !important;
}

/*
 * Dernier mot <1200px : le header desktop (grille logo + liens + Appeler/WhatsApp) ne doit jamais
 * se superposer au header mobile. Les captures « full page » ou tablettes étroites réactivaient la grille.
 */
@media (max-width: 1199px) {
  html body .header--conversion .header-inner--desktop {
    display: none !important;
  }

  html body .header--conversion .mobile-header {
    display: flex !important;
  }
}
