/* ============================================================
   ASLANE — REFONTE GRAPHIQUE COMPLÈTE
   Design system moderne — inspiré inovagreen.fr
   Charte ASLANE préservée + orange accent ajouté
   ============================================================ */

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

/* ============================================================
   1. CSS VARIABLES — DESIGN TOKENS
   ============================================================ */
:root {
  /* Couleurs ASLANE */
  --color-primary: #D90429;
  --color-primary-dark: #b5031f;
  --color-primary-darker: #8b0218;
  --color-primary-rgb: 217, 4, 41;

  /* Accent — Orange énergie (ajout pour CTAs) */
  --color-accent: #E8680C;
  --color-accent-dark: #c95900;
  --color-accent-rgb: 232, 104, 12;
  --color-accent-light: rgba(232, 104, 12, 0.12);

  /* Neutres */
  --color-dark: #1C1C1E;
  --color-dark-secondary: #272424;
  --color-body: #4A4A4A;
  --color-muted: #757575;
  --color-border: #E8E8E8;
  --color-bg-section: #F7F8FA;
  --color-bg-card: #FFFFFF;
  --color-light: #FFFFFF;

  /* Typographie */
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', 'Segoe UI', sans-serif;

  /* Espacement */
  --section-padding: 88px 0;
  --section-padding-sm: 56px 0;
  --container-max: 1200px;
  --container-padding: 0 24px;

  /* Formes & ombres */
  --border-radius: 12px;
  --border-radius-sm: 8px;
  --border-radius-lg: 20px;
  --shadow-card: 0 4px 24px rgba(0,0,0,0.07);
  --shadow-hover: 0 12px 48px rgba(0,0,0,0.13);
  --shadow-header: 0 2px 24px rgba(0,0,0,0.09);

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-base: 0.3s ease;
  --transition-slow: 0.45s ease;

  /* Z-index layers */
  --z-header: 1000;
  --z-mega-menu: 999;
  --z-modal: 1100;
  --z-overlay: 998;
}

/* ============================================================
   2. RESET & BASE (appliqué uniquement dans .aslane-refonte)
   ============================================================ */
.aslane-refonte *,
.aslane-refonte *::before,
.aslane-refonte *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.aslane-refonte {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.aslane-refonte a {
  text-decoration: none;
  color: inherit;
}

.aslane-refonte img {
  max-width: 100%;
  height: auto;
  display: block;
}

.aslane-refonte ul {
  list-style: none;
}

/* ============================================================
   3. MASQUER LE HEADER & FOOTER AVADA SUR L'ACCUEIL
   ============================================================ */
body.page-template-accueil .fusion-header-wrapper,
body.page-template-accueil .fusion-header-sticky-height,
body.page-template-accueil .fusion-footer-widget-area,
body.page-template-accueil .fusion-footer-copyright-area,
body.page-template-accueil #footer,
body.page-template-accueil .fusion-page-title-bar,
body.page-template-accueil .fusion-tb-header,
body.page-template-accueil #wrapper .fusion-header-wrapper {
  display: none !important;
}

body.page-template-accueil #wrapper,
body.page-template-accueil #main,
body.page-template-accueil .fusion-row,
body.page-template-accueil .aslane-style-d7200813 {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

body.page-template-accueil #wrapper #main .fullwidth-box .fusion-row {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
}

body.page-template-accueil .fusion-fullwidth,
body.page-template-accueil .fullwidth-box {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.page-template-accueil {
  padding-top: 0 !important;
}

/* ── Override Avada fond gris pour toutes les pages custom ASLANE ── */
body.page-template-depannage #wrapper,
body.page-template-depannage #main,
body.page-template-depannage .post-content,
body.page-template-depannage .fusion-row {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
body.page-template-depannage .fusion-page-title-bar,
body.page-template-depannage .fusion-page-title-row {
  display: none !important;
}
body.page-template-depannage .fusion-fullwidth,
body.page-template-depannage .fullwidth-box {
  margin-left: 0 !important;
  margin-right: 0 !important;
  background: transparent !important;
}
body.page-template-depannage {
  padding-top: 0 !important;
  background-color: #fff !important;
}

/* ============================================================
   4. CONTAINER UTILITAIRE
   ============================================================ */
.aslane-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: var(--container-padding);
}

/* ============================================================
   5. CUSTOM HEADER STICKY
   ============================================================ */
.aslane-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-header);
  transition: box-shadow var(--transition-base), background var(--transition-base);
}

/* Top bar */
.aslane-topbar {
  background: #111111;
  padding: 8px 0;
  font-size: 0.82rem;
}

.aslane-topbar .aslane-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.aslane-topbar-zone {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #FFFFFF !important;
  font-family: var(--font-body);
}

.aslane-topbar-zone svg {
  flex-shrink: 0;
  opacity: 1;
}

.aslane-topbar-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}

.aslane-topbar-tel,
.aslane-topbar-tel:link,
.aslane-topbar-tel:visited {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #FFFFFF !important;
  font-weight: 700;
  font-size: 0.92rem;
  font-family: var(--font-heading);
  transition: opacity var(--transition-fast);
}

.aslane-topbar-tel:hover,
.aslane-topbar-tel:focus { color: #FFFFFF !important; opacity: 0.85; }

.aslane-topbar-client,
.aslane-topbar-client:link,
.aslane-topbar-client:visited {
  color: #FFFFFF !important;
  font-size: 0.82rem;
  transition: opacity var(--transition-fast);
  display: flex;
  align-items: center;
  gap: 6px;
}

.aslane-topbar-client:hover,
.aslane-topbar-client:focus { color: #FFFFFF !important; opacity: 0.85; }

/* Main nav bar */
.aslane-navbar {
  background: #FFFFFF;
  box-shadow: var(--shadow-header);
  padding: 0;
  overflow: visible;
}

.aslane-navbar .aslane-container {
  display: flex;
  align-items: center;
  height: 64px;
  gap: 32px;
}

.aslane-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  line-height: 0;
}

.aslane-logo img {
  display: block;
  height: 48px;
  width: auto;
  max-width: 170px;
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
}

/* Navigation menu */
.aslane-nav-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
  margin-left: 24px;
}

.aslane-nav-item {
  position: relative;
}

.aslane-nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-dark);
  border-radius: var(--border-radius-sm);
  transition: color var(--transition-fast), background var(--transition-fast);
  cursor: pointer;
  white-space: nowrap;
}

.aslane-nav-link:hover,
.aslane-nav-link.active {
  color: var(--color-primary);
  background: rgba(var(--color-primary-rgb), 0.06);
}

.aslane-nav-link .nav-chevron {
  transition: transform var(--transition-fast);
}

.aslane-nav-item.open .aslane-nav-link .nav-chevron {
  transform: rotate(180deg);
}

/* Nav CTA area */
.aslane-nav-ctas {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

/* Buttons */
.aslane-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.92rem;
  border-radius: var(--border-radius-sm);
  padding: 11px 24px;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
  cursor: pointer;
  border: 2px solid transparent;
  white-space: nowrap;
  text-decoration: none;
}

.aslane-btn:hover {
  transform: translateY(-2px);
}

.aslane-btn-primary,
.aslane-btn-primary:link,
.aslane-btn-primary:visited {
  background: var(--color-primary);
  color: #FFFFFF !important;
  border-color: var(--color-primary);
  font-size: 0.82rem;
  padding: 9px 18px;
  box-shadow: 0 4px 14px rgba(217, 4, 41, 0.30);
}

.aslane-btn-primary:hover,
.aslane-btn-primary:focus,
.aslane-btn-primary:active {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  box-shadow: 0 8px 22px rgba(217, 4, 41, 0.40);
  color: #FFFFFF !important;
}

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

.aslane-btn-secondary:hover {
  background: var(--color-primary);
  color: #fff;
}

.aslane-btn-outline-white,
.aslane-btn-outline-white:link,
.aslane-btn-outline-white:visited {
  background: rgba(255,255,255,0.12);
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,0.55);
  backdrop-filter: blur(8px);
}

.aslane-btn-outline-white:hover,
.aslane-btn-outline-white:focus,
.aslane-btn-outline-white:active {
  background: rgba(255,255,255,0.22);
  border-color: rgba(255,255,255,0.85);
  color: #FFFFFF !important;
}

.aslane-btn-large {
  padding: 16px 36px;
  font-size: 1.02rem;
  border-radius: 10px;
}

.aslane-btn-red,
.aslane-btn-red:link,
.aslane-btn-red:visited {
  background: var(--color-primary);
  color: #FFFFFF !important;
  border-color: var(--color-primary);
  box-shadow: 0 4px 16px rgba(var(--color-primary-rgb), 0.25);
}

.aslane-btn-red:hover,
.aslane-btn-red:focus,
.aslane-btn-red:active {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  box-shadow: 0 8px 24px rgba(var(--color-primary-rgb), 0.35);
  color: #FFFFFF !important;
  color: #fff;
}

/* Mobile burger */
.aslane-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px;
  margin-left: auto;
  border-radius: var(--border-radius-sm);
  transition: background var(--transition-fast);
}

.aslane-burger:hover {
  background: var(--color-bg-section);
}

.aslane-burger span {
  display: block;
  height: 2px;
  background: var(--color-dark);
  border-radius: 2px;
  transition: all var(--transition-base);
}

.aslane-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.aslane-burger.open span:nth-child(2) { opacity: 0; }
.aslane-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   6. MEGA MENU
   ============================================================ */
.aslane-mega-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  background: #fff;
  border-radius: var(--border-radius);
  box-shadow: 0 20px 70px rgba(0,0,0,0.14);
  border: 1px solid var(--color-border);
  padding: 24px 28px 20px;
  width: 760px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 36px;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-fast), transform var(--transition-fast);
  z-index: var(--z-mega-menu);
}

.aslane-nav-item.open .aslane-mega-menu {
  opacity: 1;
  pointer-events: all;
  transform: translateX(-50%) translateY(0);
}

.mega-col-title {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  color: var(--color-dark);
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-border);
  grid-column: span 1;
  display: flex;
  align-items: center;
  gap: 7px;
}

.mega-col-title-icon {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.mega-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mega-col-title + .mega-col {
  margin-top: 0;
}

.mega-link {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 8px 10px;
  border-radius: var(--border-radius-sm);
  color: var(--color-dark);
  font-size: 0.87rem;
  font-weight: 600;
  transition: background var(--transition-fast), color var(--transition-fast);
  text-decoration: none !important;
}

.mega-link:hover {
  background: #f7f8fa;
  color: var(--color-primary);
}

.mega-link-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.18s;
}

.mega-link:hover .mega-link-icon {
  transform: scale(1.08);
}

.mega-link span {
  flex: 1;
  line-height: 1.2;
}

.mega-link small {
  display: block;
  font-size: 0.73rem;
  color: var(--color-muted);
  font-weight: 400;
  margin-top: 2px;
}

/* Urgence mini-section dans mega menu */
.mega-urgence {
  grid-column: span 2;
  margin-top: 16px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #fff5f5 0%, #fff 100%);
  border: 1px solid rgba(var(--color-primary-rgb), 0.18);
  border-radius: var(--border-radius-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.mega-urgence-text {
  font-size: 0.88rem;
  color: var(--color-body);
}

.mega-urgence-text strong {
  color: var(--color-primary);
  display: block;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  margin-bottom: 2px;
}

.mega-urgence-tel,
.mega-urgence-tel:link,
.mega-urgence-tel:visited {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--color-primary);
  color: #fff !important;
  padding: 9px 18px;
  border-radius: var(--border-radius-sm);
  font-weight: 700;
  font-size: 0.9rem;
  font-family: var(--font-heading);
  transition: background var(--transition-fast);
  flex-shrink: 0;
  text-decoration: none !important;
}

.mega-urgence-tel:hover {
  background: var(--color-primary-dark);
  color: #fff !important;
}

/* ============================================================
   7. MOBILE MENU
   ============================================================ */
.aslane-mobile-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 320px;
  max-width: 90vw;
  height: 100vh;
  background: #fff;
  z-index: var(--z-modal);
  box-shadow: -8px 0 40px rgba(0,0,0,0.16);
  transition: right var(--transition-base);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.aslane-mobile-menu.open {
  right: 0;
}

.aslane-mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border);
}

.aslane-mobile-menu-close {
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 4px !important;
  color: var(--color-dark);
  font-size: inherit !important;
  width: auto !important;
  max-width: none !important;
}

.aslane-mobile-nav {
  padding: 16px 0;
  flex: 1;
}

.aslane-mobile-nav-item > a,
.aslane-mobile-nav-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px !important;
  font-family: var(--font-heading);
  font-size: 1rem !important;
  font-weight: 600;
  color: var(--color-dark);
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
  background: none !important;
  border: none !important;
  width: 100% !important;
  max-width: 100% !important;
  text-align: left;
}

.aslane-mobile-nav-item > a:hover,
.aslane-mobile-nav-toggle:hover {
  background: var(--color-bg-section);
  color: var(--color-primary);
}

.aslane-mobile-sub {
  display: none;
  flex-direction: column;
  background: var(--color-bg-section);
  padding: 4px 0;
}

.aslane-mobile-sub.open {
  display: flex;
}

.aslane-mobile-sub a {
  padding: 10px 40px;
  font-size: 0.88rem;
  color: var(--color-body);
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color var(--transition-fast);
}

.aslane-mobile-sub a:hover {
  color: var(--color-primary);
}

.aslane-mobile-menu-footer {
  padding: 20px 24px;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.aslane-mobile-menu-footer .aslane-btn {
  width: 100%;
  justify-content: center;
}

.aslane-mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: var(--z-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.aslane-mobile-overlay.open {
  opacity: 1;
  pointer-events: all;
}

/* ============================================================
   8. HERO SECTION
   ============================================================ */
.aslane-hero {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
/* Pages internes : hero aligné sur l'accueil (même taille) */
.aslane-hero.aslane-hero-inner {
  min-height: 72vh !important;
  align-items: center !important;
  padding: 0 !important;
}

.aslane-hero-bg {
  position: absolute;
  inset: 0;
  background-image: url('/wp-content/uploads/2025/12/Maintenance-pompe-a-chaleur-2--1536x864.png');
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
}

.aslane-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    130deg,
    rgba(28, 28, 30, 0.88) 0%,
    rgba(var(--color-primary-rgb), 0.62) 50%,
    rgba(28, 28, 30, 0.45) 100%
  );
}

.aslane-hero-content {
  position: relative;
  z-index: 2;
  color: #fff;
  max-width: 820px;
  padding: 80px 0 52px;
}

.aslane-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  padding: 7px 14px;
  border-radius: 40px;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 24px;
}

.aslane-hero-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 800;
  line-height: 1.12;
  margin-bottom: 22px;
  letter-spacing: -0.5px;
}

.aslane-hero-title .hero-accent {
  color: #ffffff;
}

.aslane-hero-subtitle {
  font-size: 1.12rem;
  color: #ffffff !important;
  opacity: 0.92;
  max-width: 520px;
  line-height: 1.65;
  margin-bottom: 40px;
  font-weight: 400;
}

.aslane-hero-ctas {
  display: flex;
  gap: 10px;
  flex-wrap: nowrap;
  align-items: center;
  margin-bottom: 36px;
}

.aslane-hero-ctas .aslane-btn {
  padding: 11px 16px;
  font-size: 0.83rem;
  border-radius: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.aslane-hero-ctas .aslane-btn svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

/* Bouton noir — "Je veux installer une PAC" */
a.aslane-hero-btn-dark,
a.aslane-hero-btn-dark:link,
a.aslane-hero-btn-dark:visited {
  background: #1C1C1E !important;
  color: #ffffff !important;
  border: 2px solid #1C1C1E !important;
  text-decoration: none !important;
}
a.aslane-hero-btn-dark:hover,
a.aslane-hero-btn-dark:focus {
  background: #000000 !important;
  color: #ffffff !important;
  border-color: #000000 !important;
}

/* Bouton rouge urgence — aligné avec les autres */
a.aslane-hero-btn-urgence,
a.aslane-hero-btn-urgence:link,
a.aslane-hero-btn-urgence:visited {
  background: var(--color-primary) !important;
  color: #ffffff !important;
  border: 2px solid var(--color-primary) !important;
  text-decoration: none !important;
}
a.aslane-hero-btn-urgence:hover,
a.aslane-hero-btn-urgence:focus {
  background: #b80224 !important;
  color: #ffffff !important;
  border-color: #b80224 !important;
}

.aslane-hero-urgence {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--color-primary);
  border: 2px solid rgba(255,255,255,0.25);
  border-radius: 10px;
  padding: 10px 16px;
  width: fit-content;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 18px rgba(217,4,41,0.40);
  cursor: pointer;
}

.aslane-hero-urgence:hover {
  background: #b80224;
  transform: translateY(-2px);
  box-shadow: 0 7px 24px rgba(217,4,41,0.52);
}

.aslane-hero-urgence-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}

.aslane-hero-urgence-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.aslane-hero-urgence-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(255,255,255,0.88);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.aslane-hero-urgence-tel {
  color: #fff;
  font-weight: 800;
  font-size: 1rem;
  font-family: var(--font-heading);
  letter-spacing: -0.2px;
}

.aslane-hero-urgence-arrow {
  color: rgba(255,255,255,0.7);
  flex-shrink: 0;
  margin-left: 4px;
  transition: transform 0.2s;
}

.aslane-hero-urgence:hover .aslane-hero-urgence-arrow {
  transform: translateX(4px);
}

/* Scroll indicator */
.aslane-scroll-indicator {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,0.6);
  font-size: 0.75rem;
  animation: bounce 2s infinite;
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

/* ============================================================
   9. TRUST BAR (bandeau réassurance)
   ============================================================ */
.aslane-trust-bar {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  padding: 28px 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
  position: relative;
  z-index: 10;
}

.aslane-trust-items {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.aslane-trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 160px;
}

.aslane-trust-icon {
  width: 44px;
  height: 44px;
  background: rgba(var(--color-primary-rgb), 0.08);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #1a1a2e;
}

.aslane-trust-text strong {
  display: block;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.93rem;
  color: var(--color-dark);
  line-height: 1.3;
}

.aslane-trust-text span {
  font-size: 0.78rem;
  color: var(--color-muted);
}

.aslane-trust-divider {
  width: 1px;
  height: 44px;
  background: var(--color-border);
  flex-shrink: 0;
}

/* ============================================================
   10. SECTION COMMONS (headers, labels)
   ============================================================ */
.aslane-section-label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-accent);
  margin-bottom: 10px;
  font-family: var(--font-heading);
}

.aslane-section-label.label-white {
  color: rgba(255,255,255,0.90);
  background: rgba(255,255,255,0.10);
}

.aslane-section-title {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 800;
  color: var(--color-dark);
  line-height: 1.2;
  letter-spacing: -0.3px;
}

.aslane-section-title.title-white {
  color: #fff;
}

.aslane-section-subtitle {
  font-size: 1.02rem;
  color: var(--color-muted);
  max-width: 560px;
  line-height: 1.65;
  margin-top: 14px;
}

.aslane-section-subtitle.sub-white {
  color: rgba(255,255,255,0.88);
}

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

.aslane-section-header .aslane-section-subtitle {
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   11. SERVICES GRILLES (Installation & Entretien)
   ============================================================ */
.aslane-services-section {
  padding: var(--section-padding);
  background: var(--color-bg-section);
}

.aslane-services-section.bg-white {
  background: #fff;
}

/* ── Slider installation (6 cartes horizontal scroll) ── */
.aslane-install-slider-wrap {
  position: relative;
  margin-bottom: 48px;
}
.aslane-slider-btn {
  position: absolute;
  /* Centré sur la photo (196px) → 98px - moitié bouton 21px = 77px */
  top: 77px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(4px);
  color: var(--color-dark);
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(0,0,0,.22);
  transition: background .2s, color .2s, opacity .25s;
}
.aslane-slider-btn:hover:not(:disabled) {
  background: var(--color-primary);
  color: #fff;
}
.aslane-slider-btn:disabled {
  opacity: 0;
  pointer-events: none;
}
.aslane-slider-prev { left: 12px; }
.aslane-slider-next { right: 12px; }
.aslane-install-slider {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  /* Masquer la scrollbar visuelle sans bloquer le scroll */
  scrollbar-width: none;
}
.aslane-install-slider::-webkit-scrollbar { display: none; }
.aslane-install-slider .aslane-service-card {
  flex: 0 0 calc((100% - 3 * 24px) / 4.15);
  scroll-snap-align: start;
  min-width: 0;
}
/* Dots indicateurs de position */
.aslane-slider-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 16px;
}
.aslane-slider-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--color-border);
  transition: background .25s, transform .25s;
  cursor: pointer;
}
.aslane-slider-dot.active {
  background: var(--color-primary);
  transform: scale(1.3);
}

.aslane-services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

/* Service Card */
.aslane-service-card {
  background: var(--color-bg-card);
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid transparent;
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
  display: flex;
  flex-direction: column;
}

.aslane-service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(var(--color-primary-rgb), 0.15);
}

.aslane-service-card-img {
  position: relative;
  height: 196px;
  overflow: hidden;
  background: var(--color-bg-section);
  flex-shrink: 0;
}

.aslane-service-card-img img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform var(--transition-slow);
}

.aslane-service-card:hover .aslane-service-card-img img {
  transform: scale(1.06);
}

.aslane-service-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: var(--color-primary);
  color: #fff;
  padding: 4px 12px;
  border-radius: 40px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  font-family: var(--font-heading);
}

.aslane-service-card-body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.aslane-service-card-body h3 {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 8px;
  line-height: 1.3;
}

.aslane-service-card-body p {
  font-size: 0.88rem;
  color: var(--color-body);
  line-height: 1.6;
  margin-bottom: 16px;
  flex: 1;
}

.aslane-service-card-stats {
  display: flex;
  gap: 4px;
  flex-wrap: nowrap;
  align-items: center;
  margin-bottom: 20px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.aslane-card-stat {
  font-size: 0.58rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 40px;
  font-family: var(--font-heading);
  white-space: nowrap;
  flex-shrink: 0;
  text-align: center;
  letter-spacing: 0.01em;
}

/* Vert — COP / économies d'énergie */
.aslane-card-stat.stat-green {
  color: #166534;
  background: #dcfce7;
}

/* Bleu — MaPrimeRénov' */
.aslane-card-stat.stat-blue {
  color: #1d4ed8;
  background: #dbeafe;
}

/* Orange — CEE */
.aslane-card-stat.stat-orange {
  color: #92400e;
  background: #fef3c7;
}
.aslane-card-stat.stat-purple {
  color: #5b21b6;
  background: #ede9fe;
}

/* Fallback si pas de classe couleur */
.aslane-card-stat:not(.stat-green):not(.stat-blue):not(.stat-orange):not(.stat-purple) {
  color: var(--color-accent);
  background: var(--color-accent-light);
}

/* Footer carte — aligne le bouton à droite */
.aslane-service-card-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

/* Nouveau bouton Découvrir — solide et visible */
/* Bouton noir — cartes service homepage */
a.aslane-btn-card-dark,
a.aslane-btn-card-dark:link,
a.aslane-btn-card-dark:visited {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #1C1C1E !important;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 0.84rem;
  font-family: var(--font-heading);
  padding: 9px 18px;
  border-radius: 8px;
  text-decoration: none !important;
  transition: background 0.2s, gap 0.15s;
}

a.aslane-btn-card-dark:hover,
a.aslane-btn-card-dark:focus {
  background: #000000 !important;
  color: #ffffff !important;
  gap: 11px;
  text-decoration: none !important;
}

/* Bouton rouge — autres pages */
a.aslane-btn-card-solid,
a.aslane-btn-card-solid:link,
a.aslane-btn-card-solid:visited {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--color-primary) !important;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 0.84rem;
  font-family: var(--font-heading);
  padding: 9px 18px;
  border-radius: 8px;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.2s, gap 0.15s;
  box-shadow: 0 2px 10px rgba(217,4,41,0.25);
}

a.aslane-btn-card-solid:hover,
a.aslane-btn-card-solid:focus {
  background: #b80224 !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  gap: 11px;
  box-shadow: 0 4px 16px rgba(217,4,41,0.35);
  text-decoration: none !important;
}

/* Ancien bouton conservé pour compatibilité */
.aslane-btn-card {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 0.88rem;
  font-family: var(--font-heading);
  transition: gap var(--transition-fast), color var(--transition-fast);
  text-decoration: none;
}

.aslane-btn-card:hover {
  gap: 12px;
  color: var(--color-primary-dark);
}

.aslane-section-cta {
  text-align: center;
  margin-top: 8px;
}

/* ============================================================
   12. BANDEAU URGENCE
   ============================================================ */
.aslane-urgence-banner {
  background: linear-gradient(135deg, var(--color-dark) 0%, #2d2d2d 100%);
  border-radius: var(--border-radius);
  padding: 32px 40px;
  margin-top: 48px;
  border-left: 5px solid var(--color-primary);
}

.aslane-urgence-banner-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  color: #fff;
}

.aslane-urgence-banner-text strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 5px;
}

.aslane-urgence-banner-text span {
  font-size: 0.92rem;
  color: #ffffff;
  opacity: 1;
}

/* ============================================================
   13. WHY ASLANE (stats + engagements)
   ============================================================ */
.aslane-why-section {
  padding: var(--section-padding);
  background: #fff;
}

.aslane-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  margin-bottom: 64px;
}

.aslane-why-text .aslane-btn {
  margin-top: 28px;
}

.aslane-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.aslane-stat-card {
  background: var(--color-bg-section);
  border-radius: var(--border-radius);
  padding: 28px 24px;
  border-bottom: 3px solid var(--color-primary);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.aslane-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}

.aslane-stat-number {
  display: block;
  font-family: var(--font-heading);
  font-size: 2.4rem;
  font-weight: 900;
  color: var(--color-dark) !important;
  line-height: 1;
  margin-bottom: 8px;
}

.aslane-stat-label {
  font-size: 0.85rem;
  color: var(--color-body);
  line-height: 1.5;
  font-weight: 500;
}

/* Engagements list */
.aslane-engagements {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.aslane-engagement-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 24px;
  background: var(--color-bg-section);
  border-radius: var(--border-radius);
  border-top: 3px solid var(--color-accent);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.aslane-engagement-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}

.aslane-engagement-header {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.aslane-engagement-icon {
  width: 32px;
  height: 32px;
  background: rgba(var(--color-primary-rgb), 0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  flex-shrink: 0;
}

.aslane-engagement-item strong {
  font-family: var(--font-heading);
  font-size: 0.93rem;
  font-weight: 700;
  color: var(--color-dark);
  line-height: 1.3;
}

.aslane-engagement-item p {
  font-size: 0.83rem;
  color: var(--color-muted);
  line-height: 1.55;
  margin: 0;
}

/* ============================================================
   14. PROCESS (3 étapes)
   ============================================================ */
.aslane-process-section {
  padding: var(--section-padding);
  background:
    linear-gradient(rgba(10,10,10,0.72), rgba(10,10,10,0.78)),
    url('/wp-content/uploads/2025/12/Maintenance-pompe-a-chaleur-3.jpeg') center center / cover no-repeat;
  position: relative;
  overflow: hidden;
}

.aslane-process-section::before {
  display: none;
}

.aslane-process-section::after {
  display: none;
}

/* Titre & sous-titre de la section process */
.aslane-process-section .aslane-section-label,
.aslane-process-section .aslane-section-title,
.aslane-process-section .aslane-section-subtitle {
  color: #FFFFFF !important;
}

.aslane-process-section .aslane-section-label {
  background: rgba(255,255,255,0.10);
  color: #FFFFFF !important;
}

.aslane-process-steps {
  display: flex;
  align-items: stretch;
  gap: 20px;
  margin-top: 56px;
  position: relative;
  z-index: 1;
}

.aslane-process-step {
  flex: 1;
  text-align: center;
  padding: 36px 28px;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  border-radius: var(--border-radius);
  transition: background var(--transition-base), box-shadow var(--transition-base);
  position: relative;
}

.aslane-process-step:hover {
  background: #ffffff;
  box-shadow: 0 8px 28px rgba(0,0,0,0.15);
}

.aslane-process-connector {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  color: #FFFFFF;
  opacity: 0.35;
  flex-shrink: 0;
}

.aslane-step-num {
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 12px;
  opacity: 0.85;
}

.aslane-step-icon {
  width: 56px;
  height: 56px;
  background: var(--color-primary);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  color: #fff;
}

.aslane-process-step h3 {
  font-family: var(--font-heading);
  font-size: 0.98rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 10px;
  white-space: nowrap;
}

.aslane-process-step p {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.6;
}

/* ============================================================
   15. PARTENAIRES
   ============================================================ */
.aslane-partners-section {
  padding: 48px 0;
  background: #fff;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.aslane-partners-label {
  text-align: center;
  font-size: 0.76rem;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 28px;
  font-family: var(--font-heading);
  font-weight: 600;
}

.aslane-partners-logos {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px 0;
  max-width: 720px;
  margin: 0 auto;
}

.aslane-partner-item {
  display: flex;
  align-items: center;
  justify-content: center;
  filter: grayscale(100%);
  opacity: 0.45;
  transition: filter 0.25s ease, opacity 0.25s ease;
}
.aslane-partner-item:hover {
  filter: grayscale(0%);
  opacity: 1;
}

.aslane-partner-item img {
  height: 16px;
  width: auto;
  max-width: 90px;
  object-fit: contain;
  display: block;
}

@media (max-width: 600px) {
  .aslane-partners-logos { grid-template-columns: repeat(4, 1fr); gap: 14px 0; }
  .aslane-partner-item img { height: 13px; }
}

/* ============================================================
   16. AVIS GOOGLE
   ============================================================ */
/* ============================================================
   16b. BANDEAU AVIS GOOGLE CONDENSÉ
   ============================================================ */
.aslane-reviews-band {
  background: #fff;
  border-top: 1px solid #e8e8e8;
  border-bottom: 1px solid #e8e8e8;
  padding: 22px 0;
}

.aslane-reviews-band .aslane-container {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

/* Score Google */
.aslane-band-score {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.aslane-band-stars {
  display: flex;
  gap: 2px;
  color: #FFC107;
}

.aslane-band-score-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.aslane-band-score-text strong {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 800;
  color: #1a1a2e;
}

.aslane-band-score-text > span {
  font-size: 0.75rem;
  color: #888;
}

/* Séparateur vertical */
.aslane-band-sep {
  width: 1px;
  height: 48px;
  background: #e0e0e0;
  flex-shrink: 0;
}

/* Citations */
.aslane-band-quotes {
  display: flex;
  gap: 20px;
  flex: 1;
  overflow: hidden;
}

.aslane-band-quote {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  flex: 1;
  min-width: 0;
}

.aslane-band-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.7rem;
  flex-shrink: 0;
}

.aslane-band-content {
  min-width: 0;
}

.aslane-band-content strong {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 2px;
  font-family: var(--font-heading);
}

.aslane-band-content p {
  font-size: 0.75rem;
  color: #555;
  line-height: 1.45;
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}

/* CTA */
.aslane-band-cta,
.aslane-band-cta:link,
.aslane-band-cta:visited {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-primary) !important;
  font-family: var(--font-heading);
  white-space: nowrap;
  text-decoration: none;
  border: 1.5px solid var(--color-primary);
  border-radius: 20px;
  padding: 6px 14px;
  transition: background 0.2s, color 0.2s;
}

.aslane-band-cta:hover {
  background: var(--color-primary);
  color: #fff !important;
}

/* Conserver les vieilles classes stars utilisées ailleurs */
.aslane-stars {
  display: flex;
  gap: 3px;
  color: #FFC107;
}

/* ============================================================
   16c. AVIS GOOGLE INLINE — rectangle sous zone d'intervention
   ============================================================ */
.aslane-reviews-inline {
  margin-top: 12px;
}

.aslane-reviews-inline-score {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.aslane-reviews-inline-note {
  font-size: 0.82rem;
  color: #444;
}

.aslane-reviews-inline-note strong {
  display: inline !important;
  font-size: 0.9rem;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 0 !important;
}

.aslane-reviews-inline-link,
.aslane-reviews-inline-link:link,
.aslane-reviews-inline-link:visited {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-primary) !important;
  font-family: var(--font-heading);
  text-decoration: none;
  border: 1.5px solid var(--color-primary);
  border-radius: 20px;
  padding: 3px 10px;
  margin-left: auto;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
}

.aslane-reviews-inline-link:hover {
  background: var(--color-primary);
  color: #fff !important;
}

.aslane-reviews-inline-quotes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.aslane-reviews-inline-quote {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.aslane-reviews-inline-quote .aslane-band-avatar {
  width: 28px;
  height: 28px;
  font-size: 0.65rem;
  flex-shrink: 0;
}

.aslane-reviews-inline-quote p {
  font-size: 0.75rem;
  color: #555;
  line-height: 1.45;
  font-style: italic;
  margin: 0;
}

/* ============================================================
   17. FORMULAIRE CONTACT / DEVIS
   ============================================================ */
.aslane-contact-section {
  padding: var(--section-padding);
  background: #fff;
}

.aslane-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 64px;
  align-items: start;
}

.aslane-contact-info .aslane-section-title { margin-bottom: 14px; }

.aslane-contact-info > p {
  color: var(--color-body);
  line-height: 1.65;
  margin-bottom: 28px;
}

.aslane-contact-methods {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 28px;
}

.aslane-contact-method {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: var(--color-bg-section);
  border-radius: var(--border-radius-sm);
  border: 1px solid var(--color-border);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  text-decoration: none;
  color: inherit;
}

.aslane-contact-method:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 16px rgba(var(--color-primary-rgb), 0.1);
}

.aslane-contact-method-icon {
  width: 40px;
  height: 40px;
  background: rgba(var(--color-primary-rgb), 0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  flex-shrink: 0;
}

.aslane-contact-method strong {
  display: block;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--color-dark);
  margin-bottom: 3px;
}

.aslane-contact-method span {
  font-size: 0.9rem;
  color: var(--color-primary);
  font-weight: 600;
}

.aslane-contact-method small {
  display: block;
  font-size: 0.78rem;
  color: var(--color-muted);
  margin-top: 2px;
}

/* Zone tags */
.aslane-zone-intervention {
  padding: 18px 20px;
  background: var(--color-bg-section);
  border-radius: var(--border-radius-sm);
  border: 1px solid var(--color-border);
}

.aslane-zone-intervention strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 10px;
}

.aslane-zones-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.aslane-zone-tag {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-dark);
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--font-heading);
}

/* Form card */
.aslane-form-card {
  background: #fff;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 48px rgba(0,0,0,0.1);
  overflow: hidden;
  border: 1px solid var(--color-border);
}

/* Form tabs */
.aslane-form-tabs {
  display: flex;
  background: var(--color-bg-section);
  border-bottom: 1px solid var(--color-border);
}

.aslane-form-tab {
  flex: 1;
  padding: 14px 12px;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-muted);
  background: none;
  border: none;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
  text-align: center;
}

.aslane-form-tab:hover {
  color: var(--color-dark);
  background: rgba(255,255,255,0.5);
}

.aslane-form-tab.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
  background: #fff;
}

/* Form content */
.aslane-form-content {
  padding: 28px 32px 32px;
}

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

.aslane-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.aslane-form-group label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-dark);
  font-family: var(--font-heading);
}

.aslane-form-group input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.aslane-form-group select,
.aslane-form-group textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--border-radius-sm);
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-dark);
  background: #fff;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  outline: none;
  appearance: none;
}

.aslane-form-group input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):focus,
.aslane-form-group select:focus,
.aslane-form-group textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);
}

.aslane-form-group select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

.aslane-form-group textarea {
  resize: vertical;
  min-height: 90px;
}

/* RGPD checkbox */
.aslane-form-rgpd {
  margin-bottom: 20px;
}

.aslane-checkbox-label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--color-muted);
  line-height: 1.5;
}

.aslane-checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--color-primary);
}

.aslane-checkbox-label a {
  color: var(--color-primary);
  text-decoration: underline;
}

/* Submit button */
.aslane-btn-submit {
  width: 100%;
  padding: 15px;
  font-size: 1rem;
  border-radius: var(--border-radius-sm);
  justify-content: center;
  margin-bottom: 14px;
}

.aslane-form-reassurance {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-size: 0.76rem;
  color: var(--color-muted);
}

/* Form feedback messages */
.aslane-form-success,
.aslane-form-error {
  display: none;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 18px;
  border-radius: var(--border-radius-sm);
  font-size: 0.9rem;
  font-weight: 600;
  margin-top: 16px;
  margin-bottom: 12px;
}

.aslane-form-success {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

.aslane-form-error {
  background: #fff5f5;
  border: 1px solid #fecdd3;
  color: #991b1b;
}

/* Champ en erreur (validation client) */
.aslane-field-error,
input.aslane-field-error,
select.aslane-field-error,
textarea.aslane-field-error {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
  background: #fff5f5 !important;
}
.aslane-form-rgpd.aslane-field-error {
  background: #fff5f5;
  border: 1px solid #dc2626;
  border-radius: 8px;
  padding: 8px 12px;
}

/* ============================================================
   18. FOOTER CUSTOM
   ============================================================ */
.aslane-footer {
  background: #111111;
  color: rgba(255,255,255,0.82);
}

.aslane-footer-main {
  padding: 64px 0 20px;
}

.aslane-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
}

.aslane-footer-logo {
  height: 60px;
  width: auto;
  max-width: 190px;
  background: #fff;
  border-radius: 8px;
  padding: 8px 12px;
  box-sizing: content-box;
  margin-bottom: 18px;
  display: block;
}

.aslane-footer-company-name {
  font-weight: 700;
  font-size: 0.87rem;
  color: #fff !important;
  letter-spacing: 0.01em;
}

.aslane-footer-tagline {
  margin-top: 16px;
  font-size: 0.82rem;
  line-height: 1.6;
  color: rgba(255,255,255,0.6) !important;
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 14px;
}

.aslane-footer-contact-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.aslane-footer-contact-links a,
.aslane-footer-contact-links span {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.86rem;
  color: rgba(255,255,255,0.75);
  transition: color var(--transition-fast);
}

.aslane-footer-contact-links a:hover {
  color: #fff;
}

.aslane-footer-reviews {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.07);
  border-radius: var(--border-radius-sm);
  width: fit-content;
}

.aslane-footer-reviews .aslane-stars {
  font-size: 0.85rem;
}

.aslane-footer-reviews span {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.75);
}

.aslane-footer-col h4 {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.aslane-footer-col ul {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.aslane-footer-col ul li {
  display: flex;
  align-items: center;
  gap: 7px;
}

.aslane-footer-col ul li::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-primary);
  flex-shrink: 0;
}

.aslane-footer-col ul li a {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.65);
  transition: color var(--transition-fast);
  display: inline;
}

.aslane-footer-col ul li a:hover {
  color: #fff;
}

/* Footer bottom */
.aslane-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 20px 0;
}

.aslane-footer-bottom .aslane-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.aslane-footer-bottom-left {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.45);
}

.aslane-footer-legal-links {
  display: flex;
  gap: 20px;
}

.aslane-footer-legal-links a {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.45);
  transition: color var(--transition-fast);
}

.aslane-footer-legal-links a:hover {
  color: rgba(255,255,255,0.8);
}

/* ============================================================
   19. HERO SPACER (pour l'header fixe)
   ============================================================ */
.aslane-header-spacer {
  height: 100px; /* topbar (~30px) + navbar (64px) + 6px */
}

/* ============================================================
   20. RESPONSIVE
   ============================================================ */

/* Tablette */
@media (max-width: 1024px) {
  .aslane-topbar-zone { display: none; }
  .aslane-services-grid { grid-template-columns: repeat(2, 1fr); }
  /* Slider installation : 2 cartes visibles + peek du 3ème */
  .aslane-install-slider .aslane-service-card {
    flex: 0 0 calc((100% - 24px) / 2.2);
  }
  .aslane-why-grid { grid-template-columns: 1fr; gap: 48px; }
  .aslane-engagements { grid-template-columns: repeat(2, 1fr); }
  .aslane-band-quotes { gap: 12px; }
  .aslane-band-quote:nth-child(3) { display: none; }
  .aslane-footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .aslane-contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .aslane-process-steps { flex-direction: column; gap: 12px; }
  .aslane-process-connector { transform: rotate(90deg); }
}

/* Mobile large */
@media (max-width: 768px) {
  :root { --section-padding: 64px 0; }

  .aslane-nav-menu,
  .aslane-nav-ctas { display: none; }
  .aslane-burger { display: flex; }

  .aslane-hero-content { padding: 70px 0 48px; }
  .aslane-hero-ctas { flex-direction: column; flex-wrap: wrap; }
  .aslane-hero-ctas .aslane-btn {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }

  .aslane-trust-items { 
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .aslane-trust-divider { display: none; }

  .aslane-services-grid { grid-template-columns: 1fr; }
  /* Slider : 1 carte visible + peek du suivant sur mobile */
  .aslane-install-slider .aslane-service-card {
    flex: 0 0 85%;
  }
  .aslane-engagements { grid-template-columns: 1fr; }
  .aslane-stats-grid { grid-template-columns: 1fr 1fr; }

  .aslane-band-quotes { display: none; }
  .aslane-band-sep { display: none; }
  .aslane-reviews-band .aslane-container { justify-content: space-between; }

  .aslane-urgence-banner { padding: 24px; }
  .aslane-urgence-banner-inner { flex-direction: column; align-items: flex-start; }

  .aslane-footer-grid { grid-template-columns: 1fr; gap: 32px; }

  .aslane-form-row { grid-template-columns: 1fr; }
  .aslane-form-content { padding: 20px; }

  .aslane-mega-menu { display: none; }
}

/* Mobile petit */
@media (max-width: 480px) {
  .aslane-trust-items { grid-template-columns: 1fr; }
  .aslane-stats-grid { grid-template-columns: 1fr; }
  .aslane-hero-urgence { gap: 10px; padding: 12px 16px; }
  .aslane-hero-urgence-icon { width: 36px; height: 36px; }
  .aslane-hero-urgence-tel { font-size: 1rem; }
  .aslane-footer-bottom .aslane-container { flex-direction: column; align-items: flex-start; }
  .aslane-partners-logos { gap: 24px; }
}

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

.text-center { text-align: center; }
.text-left { text-align: left; }
.mt-4 { margin-top: 16px; }
.mt-8 { margin-top: 32px; }
.mb-0 { margin-bottom: 0; }

/* Reveal animation */
.aslane-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.aslane-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

.aslane-reveal-delay-1 { transition-delay: 0.1s; }
.aslane-reveal-delay-2 { transition-delay: 0.2s; }
.aslane-reveal-delay-3 { transition-delay: 0.3s; }
.aslane-reveal-delay-4 { transition-delay: 0.4s; }

/* ============================================================
   21. PAGES INTÉRIEURES — Design global ASLANE (hors accueil)
   ============================================================ */

/* Compensation header fixe pour toutes les pages */
body:not(.page-template-accueil) #wrapper {
  padding-top: 0 !important;
}

body:not(.page-template-accueil) #main {
  padding-top: 30px;
  min-height: calc(100vh - 120px - 200px);
}

/* Espace sous le header fixe (120px = topbar + navbar) */
body:not(.page-template-accueil) .aslane-header-spacer {
  display: block;
}

/* Supprimer les marges parasites Avada */
body:not(.page-template-accueil) #wrapper,
body:not(.page-template-accueil) .fusion-fullwidth {
  max-width: 100% !important;
}

/* Fond page intérieure */
body:not(.page-template-accueil) {
  background-color: #f8f9fa;
  font-family: var(--font-body);
}

/* Content zone */
body:not(.page-template-accueil) #main .fusion-row {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Titres pages intérieures */
body:not(.page-template-accueil) h1,
body:not(.page-template-accueil) h2,
body:not(.page-template-accueil) h3 {
  font-family: var(--font-heading);
  color: #1a1a2e;
}

body:not(.page-template-accueil) h1 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 700;
  margin-bottom: 16px;
}

/* Liens pages intérieures */
body:not(.page-template-accueil) a:not(.aslane-btn):not(.mega-link):not(.aslane-nav-link):not(.aslane-footer a) {
  color: var(--color-primary);
}
body:not(.page-template-accueil) a:not(.aslane-btn):not(.mega-link):not(.aslane-nav-link):not(.aslane-footer a):hover {
  text-decoration: underline;
}

/* Barre de titre de page (si visible) */
body:not(.page-template-accueil) .fusion-page-title-bar {
  display: none !important;
}

/* Breadcrumbs Avada si activés */
body:not(.page-template-accueil) .fusion-breadcrumbs {
  padding: 12px 20px;
  background: #fff;
  font-size: 0.85rem;
  border-bottom: 1px solid #e8e8e8;
  margin-top: 120px;
}

/* Tables Avada */
body:not(.page-template-accueil) table {
  width: 100%;
  border-collapse: collapse;
}
body:not(.page-template-accueil) table th,
body:not(.page-template-accueil) table td {
  padding: 12px 16px;
  border: 1px solid #e0e0e0;
  font-size: 0.9rem;
}
body:not(.page-template-accueil) table th {
  background: var(--color-primary);
  color: #fff;
  font-weight: 600;
}
body:not(.page-template-accueil) table tr:nth-child(even) td {
  background: #f5f5f5;
}

/* Boutons Avada sur pages intérieures */
body:not(.page-template-accueil) .fusion-button.button-default {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
}
body:not(.page-template-accueil) .fusion-button.button-default:hover {
  background: var(--color-primary-dark) !important;
}

/* Formulaires Contact Form 7 sur pages intérieures */
body:not(.page-template-accueil) .wpcf7-form input[type="text"],
body:not(.page-template-accueil) .wpcf7-form input[type="email"],
body:not(.page-template-accueil) .wpcf7-form input[type="tel"],
body:not(.page-template-accueil) .wpcf7-form textarea,
body:not(.page-template-accueil) .wpcf7-form select {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
body:not(.page-template-accueil) .wpcf7-form input:focus,
body:not(.page-template-accueil) .wpcf7-form textarea:focus {
  border-color: var(--color-primary);
  outline: none;
}
body:not(.page-template-accueil) .wpcf7-form input[type="submit"] {
  background: var(--color-primary);
  color: #fff;
  border: none;
  padding: 14px 32px;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
  font-size: 1rem;
  transition: background 0.2s;
}
body:not(.page-template-accueil) .wpcf7-form input[type="submit"]:hover {
  background: var(--color-primary-dark);
}

/* Cards / boxes contenu */
body:not(.page-template-accueil) .fusion-text {
  line-height: 1.75;
  color: #444;
}

/* Footer Avada caché globalement */
body:not(.page-template-accueil) .fusion-footer-widget-area,
body:not(.page-template-accueil) .fusion-footer-copyright-area,
body:not(.page-template-accueil) #footer {
  display: none !important;
}

/* ============================================================
   22. ESPACE CLIENT — Styles spécifiques pages connectées
   ============================================================ */

.aslane-espace-client {
  max-width: 1100px;
  margin: 40px auto;
  padding: 0 20px;
}

.aslane-espace-client h1,
.aslane-espace-client h2 {
  font-family: var(--font-heading);
  color: #1a1a2e;
}

.aslane-ec-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.07);
  padding: 28px 32px;
  margin-bottom: 24px;
}

.aslane-ec-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid #f0f0f0;
}

.aslane-ec-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.aslane-ec-table th {
  background: var(--color-primary);
  color: #fff;
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
}

.aslane-ec-table td {
  padding: 10px 14px;
  border-bottom: 1px solid #f0f0f0;
  color: #444;
}

.aslane-ec-table tr:hover td {
  background: #fafafa;
}

.aslane-ec-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 600;
}

.aslane-ec-badge-ok { background: #e6f9ed; color: #1a7a3a; }
.aslane-ec-badge-pending { background: #fff3e0; color: #b35c00; }
.aslane-ec-badge-alert { background: #fde8e8; color: #b91c1c; }

/* ─── LOGO OVERRIDE HAUTE SPÉCIFICITÉ ────────────────────── */
#aslane-header .aslane-navbar .aslane-logo img,
#aslane-header .aslane-logo img {
  display: block !important;
  height: 48px !important;
  width: auto !important;
  max-width: 170px !important;
  max-height: 48px !important;
  min-height: unset !important;
  object-fit: contain !important;
}

/* ─── LOGO FOOTER ─────────────────────────────────────────── */
.aslane-footer .aslane-footer-brand img {
  height: 46px !important;
  max-width: 165px !important;
  max-height: 46px !important;
}

/* ============================================================
   SECTION PRÉSENTATION ASLANE
   ============================================================ */
.aslane-about-section {
  padding: 72px 0;
  background: #fff;
}

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

/* Colonne texte */
.aslane-about-text .aslane-section-label {
  display: block;
  margin-bottom: 10px;
}
.aslane-about-text .aslane-section-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  margin-bottom: 20px !important;
  text-align: left !important;
}
.aslane-about-text p {
  font-family: var(--font-body);
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.75;
  margin-bottom: 14px !important;
}
.aslane-about-text p strong {
  color: var(--color-dark);
  font-weight: 700;
}

/* Points clés */
.aslane-about-points {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.aslane-about-point {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: var(--color-grey-light);
  border: 1.5px solid var(--color-grey);
  border-radius: var(--radius-card);
  transition: var(--transition);
}
.aslane-about-point:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-card);
}

.aslane-about-point-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(217, 4, 41, 0.08);
  color: var(--color-primary);
  border-radius: 10px;
}
.aslane-about-point-icon-dual {
  flex-direction: column;
  gap: 3px;
  background: transparent;
  padding: 2px;
}

.aslane-about-point > div:last-child {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.aslane-about-point strong {
  font-family: var(--font-heading) !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  color: var(--color-dark) !important;
  line-height: 1.3 !important;
}
.aslane-about-point p {
  font-family: var(--font-body) !important;
  font-size: .88rem !important;
  color: var(--color-text-light) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Responsive */
@media (max-width: 860px) {
  .aslane-about-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

/* =============================================================
   RESPONSIVE MOBILE — Audit complet
   ============================================================= */

/* ─── TOPBAR ─────────────────────────────────────────────── */
@media (max-width: 860px) {
  .aslane-topbar { padding: 6px 0; }
  .aslane-topbar-zone { display: none; }
  .aslane-topbar-phone a { font-size: .80rem; }
  .aslane-topbar-client a { font-size: .80rem; }
}

/* ─── HEADER / NAVBAR ────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-navbar .aslane-container { padding: 0 16px; }
  #aslane-header .aslane-logo img,
  .aslane-header .aslane-logo img { height: 38px !important; max-width: 130px !important; max-height: 38px !important; }
  .aslane-header-spacer { height: 86px !important; }
}

/* ─── HERO ACCUEIL ───────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-hero { min-height: 68vh; }
  .aslane-hero-content { padding: 70px 16px 48px; }
  .aslane-hero-title { font-size: clamp(1.8rem, 7vw, 2.6rem) !important; }
  .aslane-hero-subtitle { font-size: .92rem !important; }
  .aslane-hero-ctas { flex-direction: column; gap: 10px; }
  .aslane-hero-ctas .aslane-btn { width: 100%; justify-content: center; }
  .aslane-hero-urgence { flex-direction: column; align-items: flex-start; gap: 6px; }
  .aslane-hero-badge { font-size: .72rem; }
}
@media (max-width: 480px) {
  .aslane-hero-content { padding: 80px 12px 50px; }
  .aslane-hero-title { font-size: 1.7rem !important; }
}

/* ─── TRUST BAR ──────────────────────────────────────────── */
@media (max-width: 860px) {
  .aslane-trust-bar .aslane-container { flex-wrap: wrap; gap: 0; }
  .aslane-trust-items { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .aslane-trust-divider { display: none; }
  .aslane-trust-item { padding: 10px 14px; border-bottom: 1px solid rgba(255,255,255,.08); }
}
@media (max-width: 480px) {
  .aslane-trust-items { grid-template-columns: 1fr; }
  .aslane-trust-item { padding: 10px 16px; }
}

/* ─── SECTION TITLES ─────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-section-title { font-size: clamp(1.55rem, 5.5vw, 2.2rem) !important; }
  .aslane-section-subtitle { font-size: .90rem !important; }
  .aslane-container { padding: 0 16px !important; }
}

/* ─── SERVICES GRID ──────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-services-section { padding: 52px 0; }
  .aslane-services-grid { grid-template-columns: 1fr; gap: 16px; }
  .aslane-service-card { min-height: auto; }
}

/* ─── WHY ASLANE ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-why-section { padding: 52px 0; }
  .aslane-why-grid { grid-template-columns: 1fr; gap: 32px; }
  .aslane-stats-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .aslane-stat-value { font-size: 2.4rem !important; }
}
@media (max-width: 480px) {
  .aslane-stats-grid { grid-template-columns: 1fr; }
}

/* ─── PROCESS / HOW IT WORKS ─────────────────────────────── */
@media (max-width: 768px) {
  .aslane-process-section { padding: 52px 0; }
  .aslane-process-steps { flex-direction: column; gap: 12px; }
  .aslane-process-connector { transform: rotate(90deg); align-self: center; }
  .aslane-process-step { padding: 24px; }
  .aslane-process-step-number { font-size: 2.4rem !important; }
}

/* ─── CONTACT SECTION (page accueil) ─────────────────────── */
@media (max-width: 900px) {
  .aslane-contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .aslane-contact-section { padding: 52px 0; }
}
@media (max-width: 600px) {
  .aslane-form-row { grid-template-columns: 1fr !important; }
  .aslane-form-tabs { overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .aslane-form-tabs::-webkit-scrollbar { display: none; }
  .aslane-form-content { padding: 18px 14px; }
}

/* ─── URGENCE BANNER ─────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-urgence-banner { padding: 24px 16px; }
  .aslane-urgence-banner-inner { flex-direction: column; align-items: flex-start; gap: 16px; }
  .aslane-urgence-actions { flex-direction: column; width: 100%; }
  .aslane-urgence-actions .aslane-btn { width: 100%; justify-content: center; }
}

/* ─── PARTENAIRES ────────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-partners-section { padding: 40px 0; }
  .aslane-partners-logos { gap: 20px; flex-wrap: wrap; justify-content: center; }
  .aslane-partners-logos img { height: 28px; }
}

/* ─── FOOTER ─────────────────────────────────────────────── */
@media (max-width: 860px) {
  .aslane-footer { padding: 48px 0 0; }
  .aslane-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 600px) {
  .aslane-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .aslane-footer-brand { text-align: center; }
  .aslane-footer-brand img { margin: 0 auto; }
  .aslane-footer-social { justify-content: center; }
  .aslane-footer-bottom .aslane-container { flex-direction: column; align-items: center; gap: 8px; text-align: center; }
  .aslane-footer-legal { flex-wrap: wrap; justify-content: center; gap: 8px; }
}

/* ─── REVIEWS / AVIS ─────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-reviews-section,
  .aslane-reviews-band { padding: 8px 0; }
  .aslane-band-quotes { display: none; }
  .aslane-reviews-band .aslane-container { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ─── MOBILE MENU ────────────────────────────────────────── */
@media (max-width: 768px) {
  .aslane-mobile-menu { max-width: 320px; }
  .aslane-mobile-nav-item > a,
  .aslane-mobile-nav-toggle { font-size: .95rem; padding: 14px 20px; }
  .aslane-mobile-sub a { font-size: .88rem; padding: 10px 20px 10px 36px; }
}

/* ============================================================
   ZONE D'INTERVENTION — bloc redesigné
   ============================================================ */
.aslane-zone-block {
  background: #f8f9fa;
  border: 1px solid #e8e9eb;
  border-radius: 12px;
  padding: 16px 18px;
  margin-top: 20px;
}

.aslane-zone-block-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.aslane-zone-block-header strong {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-dark);
  flex: 1;
}

.aslane-zone-count {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--color-primary);
  color: #fff;
  padding: 2px 8px;
  border-radius: 20px;
}

.aslane-zone-block .aslane-zones-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.aslane-zone-block .aslane-zone-tag {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid #dde1e7;
  color: #374151;
  transition: all 0.18s;
  cursor: default;
}

.aslane-zone-block .aslane-zone-tag:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: #fff5f5;
}

/* ============================================================
   AVIS GOOGLE — bloc redesigné v2 (4 cartes en grille 2×2)
   ============================================================ */
.aslane-google-reviews-block {
  background: #fff;
  border: 1px solid #e8e9eb;
  border-radius: 14px;
  padding: 10px 12px;
  margin-top: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.aslane-google-reviews-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eef0f2;
  margin-bottom: 8px;
  flex-wrap: nowrap;
}

.aslane-google-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e8e9eb;
  flex-shrink: 0;
}

.aslane-google-score {
  display: flex;
  flex-direction: column;
  gap: 1px;
  flex: 1;
  min-width: 0;
}

.aslane-google-score-top {
  display: flex;
  align-items: center;
  gap: 6px;
}

.aslane-google-score-top strong {
  font-size: 1.05rem;
  color: var(--color-dark);
  font-weight: 800;
  font-family: var(--font-heading);
  line-height: 1;
}

.aslane-google-stars {
  display: inline-flex;
  gap: 1px;
}

.aslane-google-score-meta {
  font-size: 0.74rem;
  color: #6b7280;
  letter-spacing: 0.01em;
}

.aslane-google-link,
.aslane-google-link:link,
.aslane-google-link:visited {
  font-size: 0.75rem;
  font-weight: 700;
  color: #4285F4 !important;
  text-decoration: none;
  white-space: nowrap;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(66,133,244,0.08);
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
}
.aslane-google-link:hover {
  background: rgba(66,133,244,0.16);
}

/* Grille 2×2 des cartes */
.aslane-google-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.aslane-google-card {
  background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
  border: 1px solid #eef0f2;
  border-radius: 10px;
  padding: 9px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;
  transition: box-shadow 0.18s, transform 0.18s, border-color 0.18s;
}

.aslane-google-card:hover {
  border-color: #d8dbe0;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}

.aslane-google-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.aslane-google-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-color: #f3f4f6;
  flex-shrink: 0;
  border: 1px solid #fff;
  box-shadow: 0 0 0 1px #e5e7eb;
}

.aslane-google-avatar-init {
  background: linear-gradient(135deg, #4285F4, #34A853);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  font-family: var(--font-heading);
  letter-spacing: 0.02em;
}

.aslane-google-card-meta {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  min-width: 0;
}

.aslane-google-card-meta strong {
  font-size: 0.78rem;
  color: var(--color-dark);
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.aslane-google-card-meta small {
  font-size: 0.68rem;
  color: #9ca3af;
  line-height: 1.2;
}

.aslane-google-card-g {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.85;
}

.aslane-google-card-stars {
  display: flex;
  gap: 1px;
}

.aslane-google-card-text {
  font-size: 0.74rem;
  color: #4b5563;
  line-height: 1.4;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Mobile : 1 colonne empilée */
@media (max-width: 600px) {
  .aslane-google-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .aslane-google-card-text {
    -webkit-line-clamp: 3;
  }
}

/* ============================================================
   PACKS ENTRETIENS — bouton devis pleine largeur
   ============================================================ */
.aslane-pack-devis-btn {
  width: 100% !important;
  justify-content: center !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  font-size: 0.86rem !important;
  padding: 12px 16px !important;
}
.aslane-pack-devis-btn:hover,
.aslane-pack-devis-btn:focus {
  background: var(--color-primary-dark) !important;
  color: #fff !important;
}

/* ============================================================
   BRAND NAME — ASLANE rouge / Maintenance Systèmes noir
   Utilisé dans les titres de section sur tout le site
   ============================================================ */
.brand-aslane { color: var(--color-primary) !important; }
.brand-suffix { color: var(--color-dark) !important; }

/* ============================================================
   MOBILE TOUCH TARGETS & ACCESSIBILITY (WCAG 2.5.5)
   ============================================================ */

/* Burger : min 44x44px — force padding contre la règle générique button{padding:10px 20px!important} de custom.css */
.aslane-burger {
  width: 44px !important;
  height: 44px !important;
  padding: 6px !important;
  align-items: stretch !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 5px !important;
  background: none !important;
  border: none !important;
  font-size: inherit !important;
}

.aslane-burger span {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex-shrink: 0 !important;
}

/* Close button mobile menu : min 44x44px */
.aslane-mobile-menu-close {
  width: 44px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 4px !important;
  font-size: inherit !important;
  max-width: none !important;
}

/* Sous-liens menu mobile : padding suffisant */
.aslane-mobile-sub a {
  padding: 12px 40px !important;
  min-height: 44px;
}

/* Hero ctas mobile : full-width et lisibles */
@media (max-width: 768px) {
  .aslane-hero-ctas {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: stretch !important;
  }
  .aslane-hero-ctas .aslane-btn {
    width: 100% !important;
    justify-content: center !important;
    font-size: 0.95rem !important;
    padding: 14px 20px !important;
    min-height: 52px !important;
    white-space: normal !important;
  }
}

/* Inner hero mobile : hauteur adaptée */
@media (max-width: 480px) {
  .aslane-hero-inner {
    min-height: 38vh !important;
  }
  .aslane-hero-inner .aslane-hero-content {
    padding: 48px 16px 32px !important;
  }
  .aslane-hero-inner .aslane-hero-ctas {
    flex-direction: column !important;
    gap: 8px !important;
  }
  .aslane-hero-inner .aslane-hero-ctas .aslane-btn {
    width: 100% !important;
    justify-content: center !important;
    font-size: 0.82rem !important;
  }
}

/* Services grid mobile : 1 colonne */
@media (max-width: 540px) {
  .aslane-services-grid {
    grid-template-columns: 1fr !important;
  }
}

/* About points mobile */
@media (max-width: 480px) {
  .aslane-about-point {
    flex-direction: row;
    gap: 12px;
  }
  .aslane-about-point-icon {
    width: 38px !important;
    height: 38px !important;
    flex-shrink: 0;
  }
}

/* Contact form mobile : labels et inputs lisibles */
@media (max-width: 600px) {
  .aslane-contact-form input,
  .aslane-contact-form select,
  .aslane-contact-form textarea {
    font-size: 16px !important; /* évite le zoom auto sur iOS */
  }
}

/* ── Certifications RGE dans la navbar ── */
.aslane-nav-certifs {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-shrink: 0;
  margin-left: auto;
  padding: 0 16px 0 0;
  border-right: 1px solid rgba(0,0,0,0.12);
}
.aslane-certif-badge {
  display: flex;
  align-items: center;
  line-height: 0;
  opacity: 0.90;
  transition: opacity 0.2s;
}
.aslane-certif-badge:hover { opacity: 1; }
.aslane-nav-certifs img.aslane-certif-logo,
.aslane-certif-logo {
  height: 48px !important;
  max-height: 48px !important;
  width: auto !important;
  max-width: 90px !important;
  object-fit: contain !important;
  display: block !important;
}

/* ── Certifications RGE dans le footer ── */
.aslane-footer-certifs {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 14px;
}
.aslane-footer-certifs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 6px;
  padding: 6px 10px;
  transition: opacity 0.2s;
  opacity: 0.90;
}
.aslane-footer-certifs a:hover { opacity: 1; }
.aslane-footer-certif-logo {
  height: 60px !important;
  width: auto !important;
  max-width: 160px !important;
  max-height: 60px !important;
  object-fit: contain !important;
  display: inline-block !important;
  background: #fff;
  border-radius: 8px;
  padding: 2px 4px;
  opacity: 0.95;
  vertical-align: middle;
}

/* ── Masquer certifs nav sur tablette/mobile ── */
@media (max-width: 1100px) {
  .aslane-nav-certifs { display: none; }
}

/* ── Section "Signes d'alerte" — fond jaune ambré ── */
.aslane-alert-box {
  background: #fffbeb !important;
  border: 2px solid #f59e0b !important;
  border-radius: 14px;
  padding: 28px 32px;
  margin-top: 40px;
}
.aslane-alert-box .aslane-alert-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #1a1a2e !important;
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 20px;
  font-family: var(--font-heading);
  text-align: center;
}
.aslane-alert-box .aslane-alert-title-icon {
  width: 36px;
  height: 36px;
  background: #fef3c7;
  border: 1.5px solid #f59e0b;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #d97706;
}
.aslane-alert-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 12px;
}
.aslane-alert-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #fff;
  border: 1px solid #1a1a2e;
  border-radius: 8px;
  padding: 10px 14px;
}
.aslane-alert-item-icon {
  width: 28px;
  height: 28px;
  background: #fef3c7;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #d97706;
}
.aslane-alert-item-text strong {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.3;
}
.aslane-alert-item-text span {
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.4;
}

/* ============================================================
   MOBILE — HERO BUTTONS (homepage + inner pages)
   Fix: boutons empilés, pleine largeur, texte lisible
   ============================================================ */

@media (max-width: 860px) {
  /* Hero homepage et pages internes : boutons en colonne */
  .aslane-hero-ctas,
  .aslane-hero-inner .aslane-hero-ctas {
    flex-direction: column !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .aslane-hero-ctas .aslane-btn,
  .aslane-hero-inner .aslane-hero-ctas .aslane-btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
    font-size: 0.90rem !important;
    padding: 13px 18px !important;
  }
  /* Hero inner : hauteur réduite sur tablette */
  .aslane-hero-inner {
    min-height: 44vh !important;
  }
  .aslane-hero-inner .aslane-hero-content {
    padding: 72px 16px 40px !important;
  }
}

@media (max-width: 480px) {
  .aslane-hero-ctas .aslane-btn,
  .aslane-hero-inner .aslane-hero-ctas .aslane-btn {
    font-size: 0.9rem !important;
    padding: 13px 16px !important;
    min-height: 50px !important;
  }
  /* Titre hero plus compact sur petit écran */
  .aslane-hero-title {
    font-size: 1.65rem !important;
    line-height: 1.25 !important;
  }
  .aslane-hero-subtitle {
    font-size: 0.85rem !important;
  }
  /* Hero inner encore plus compact */
  .aslane-hero-inner {
    min-height: 45vh !important;
  }
  .aslane-hero-inner .aslane-hero-content {
    padding: 56px 14px 32px !important;
  }
  .aslane-hero-inner .aslane-hero-title {
    font-size: 1.45rem !important;
  }
}
