/* ============================================================
   THE MOTOR HOUSE — Design System v3
   From scratch. Carbon luxury. Platinum accent.
   ============================================================ */

/* --- CSS Custom Properties --- */

:root {
  /* Palette */
  /* Primary — Platine */
  --tmh-gold: #B0B4BE;           /* platine froid — V4 */
  --tmh-gold-light: #CDD0D8;     /* interactive / text highlight */
  --tmh-gold-dim: rgba(176, 180, 190, 0.15);
  --tmh-gold-glow: rgba(176, 180, 190, 0.08);

  /* Backgrounds — Carbone profond V4 */
  --tmh-bg: #000000;
  --tmh-bg-2: #0A0A0C;
  --tmh-bg-3: #111114;
  --tmh-bg-4: #18181C;
  --tmh-surface: rgba(255, 255, 255, 0.07);
  --tmh-surface-hover: rgba(255, 255, 255, 0.10);
  --tmh-border: rgba(255, 255, 255, 0.14);
  --tmh-border-gold: rgba(184, 188, 198, 0.22);

  /* Blanc system */
  --tmh-ivory: #FFFFFF;
  --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
  --tmh-ivory-border: rgba(255, 255, 255, 0.14);

  /* Blue accent */
  --tmh-blue: #9DADD5;

  /* Text — V4 : plus blanc, plus lisible */
  --tmh-text: #F0F0F4;
  --tmh-text-secondary: rgba(255, 255, 255, 0.82);
  --tmh-text-dim: rgba(255, 255, 255, 0.55);

  /* Typography scale */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Montserrat', 'Helvetica Neue', sans-serif;
  --font-mono: 'Bebas Neue', cursive;
  --font-logo: 'Cinzel', serif;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;

  /* Boutons — taille standard unique */
  --btn-padding: var(--space-3) var(--space-8);
  --btn-font-size: var(--text-sm);
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 2rem;
  --text-4xl: 2.5rem;
  --text-6xl: 4.5rem;
  --text-hero: clamp(3.5rem, 7vw, 6.5rem);
  --text-h2-section: clamp(2.25rem, 4vw, 3rem);

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-30: 7.5rem;
  --space-32: 8rem;

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* Transitions */
  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-luxury: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 150ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;

  /* Shadows — Option B renforcées */
  --shadow-gold: 0 0 20px rgba(184, 188, 198, 0.06);
  --shadow-card-sm: 0 4px 24px rgba(0, 0, 0, 0.42), 0 0 0 0.5px rgba(255,255,255,0.05);
  --shadow-card-md: 0 12px 48px rgba(0, 0, 0, 0.56), 0 0 0 0.5px rgba(255,255,255,0.05);
  --shadow-card-lg: 0 24px 80px rgba(0, 0, 0, 0.68), 0 0 0 0.5px rgba(255,255,255,0.05);

  /* Glass System — Option B : Profond */
  --glass-fill-1: rgba(18, 18, 22, 0.75);      /* card body — semi-transparent */
  --glass-fill-2: rgba(22, 22, 28, 0.80);      /* featured / hover */
  --glass-fill-3: rgba(26, 26, 32, 0.88);      /* active / elevated */
  --glass-fill-hover: rgba(22, 22, 28, 0.82);  /* hover state */
  --glass-border: rgba(255, 255, 255, 0.13);   /* bordure standard */
  --glass-border-strong: rgba(255, 255, 255, 0.22); /* bordure lumineuse */
  --glass-specular: rgba(255, 255, 255, 0.22); /* reflet spéculaire inset haut */
  --glass-specular-dim: rgba(255, 255, 255, 0.08); /* reflet bas discret */
  --glass-edge: rgba(255, 255, 255, 0.05);     /* inset ultra-discret */
  --glass-blur: blur(28px) saturate(1.8);       /* blur standard V4 */

  /* Blur variants */
  --blur-xs:  blur(4px) saturate(1.1);
  --blur-sm:  blur(8px) saturate(1.3);
  --blur-md:  blur(16px) saturate(1.5);
  --blur-lg:  blur(24px) saturate(1.7);
  --blur-xl:  blur(32px) saturate(1.9);
  --blur-2xl: blur(40px) saturate(2.0);

  /* Platinum fills — nav / elevated surfaces */
  --plat-fill-1: rgba(184, 188, 198, 0.06);    /* nav default */
  --plat-fill-2: rgba(184, 188, 198, 0.10);    /* nav scrolled */
  --plat-fill-3: rgba(184, 188, 198, 0.15);    /* elevated / hover */

  /* Inset highlights — box-shadow specular */
  --inset-top:    inset 0 1px 0 rgba(255, 255, 255, 0.20);
  --inset-top-md: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  --inset-top-sm: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  --inset-bottom: inset 0 -1px 0 rgba(255, 255, 255, 0.05);

  /* Dark overlays */
  --overlay-xs:  rgba(0, 0, 0, 0.20);
  --overlay-sm:  rgba(0, 0, 0, 0.35);
  --overlay-md:  rgba(0, 0, 0, 0.50);
  --overlay-lg:  rgba(0, 0, 0, 0.65);
  --overlay-xl:  rgba(0, 0, 0, 0.80);

  /* Text opacity variants */
  --tmh-text-90: rgba(232, 232, 236, 0.90);
  --tmh-text-75: rgba(232, 232, 236, 0.75);
  --tmh-text-50: rgba(232, 232, 236, 0.50);
  --tmh-text-20: rgba(232, 232, 236, 0.20);

  /* Status colors — semantic (success / error) */
  --status-green: #34D399;
  --status-green-bg: rgba(52, 211, 153, 0.08);
  --status-green-border: rgba(52, 211, 153, 0.20);
  --status-red: #DC2626;
  --status-red-bg: rgba(220, 38, 38, 0.08);
  --status-red-border: rgba(220, 38, 38, 0.20);

  /* Layout */
  --nav-height: 72px;
  --container-max: 1280px;
  --tmh-gradient-page: #000000;
}



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

/* ============================================================
   DESIGN SYSTEM — CLASSES UNIVERSELLES
   Tout le site hérite de ces 3 classes.
   Modifier ici = impact immédiat partout.
   ============================================================ */

/* -----------------------------------------------------------
   TMH-PILL : tous les pills, tags, badges, chips du site
   ----------------------------------------------------------- */

.vehicle-card-meta span,
.presence-role,
.faq-meta,
.aa-assurance-pill,
.aa-src-ls-pill,
.aa-src-step-dur,
.leasing-immersive-badge,
.actu-filter-pill,
.fo-pill,
.aa-vehicle-badge,
.asset-tag,
.cp-contrast-tag,
.actu-category-badge,
.carsold-back,
.aa-det-badge,
.aa-det-stage-badge,
.dp-chip,
.tg-pill,
.dp2-oea-badge,
.fp-pillar-stat,
.dp-journey-doc-pill,
.actu-card-cat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 3px var(--space-3);
  border-radius: var(--radius-full);
  border: 1px solid var(--tmh-border);
  background: var(--tmh-surface);
  color: var(--tmh-text-secondary);
  white-space: nowrap;
  transition: border-color var(--duration-fast) var(--ease-default),
              background var(--duration-fast) var(--ease-default);
}

/* -----------------------------------------------------------
   TMH-CARD : toutes les cartes glass du site
   (vehicle card, actu card, kpi card, copro card, presence card, quick-service…)
   Exceptions : hover-card, service-detail-card, premium-accordion-item (design intérieur différent)
   ----------------------------------------------------------- */

.vehicle-card,
.actu-card,
.presence-card,
.stack-card,
.aa-nav-card,
.aa-src-linked-service,
.qr-card,
.aa-vehicle-card,
.aa-om-card,
.aa-assurance-card,
.aa-om-story-nda,
.aa-om-cta,
.aa-om-lock,
.aa-src-stepper,
.aa-src-panel,
.aa-src-step-feat,
.aa-src-step-option,
.aa-src-panel-icon,
.aa-src-stab,
.leasing-kpi,
.leasing-price-line,
.leasing-thumb,
.leasing-immersive-right,
.leasing-cta,
.cp-case-badge,
.cp-table-panel,
.cp-fleet-car,
.fo-feature-icon,
.fo-compare-table,
.aa-platform-feature-icon,
.aa-assurance-card-icon,
.aa-assurance-highlight,
.aa-det-member-icon,
.aa-det-stage,
.aa-det-prot,
.aa-det-prot-card,
.dp2-country,
.dp-stamp-card,
.dp-tva-card,
.dp-journey-stack,
.tg-card,
.tarifs-france-card,
.card-cg,
.card-tva,
.res-card,
.res-check,
.res-icon,
.res-tarif,
.icon-amber,
.icon-green,
.icon-red,
.icon-gold,
.tg-service-row,
.premium-accordion-item,
.cp-columns,
.fp-pillars-cols,
.fph-hub,
.fph-node,
.fp-compare-table,
.fph-step-dot,
.fp-vault-check,
.dr-pillar-card,
.dr-pillar-icon,
.dr-step-badge,
.dr-step-icon,
.dr-step-doc,
.dr-vault-card,
.dr-vault-icon,
.holding-advantage,
.holding-advantage-icon,
.holding-process-dot,
.holding-split,
.card,
.field input,
.about-feat-icon {
  background: var(--glass-fill-1);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-xl);
  backdrop-filter: var(--blur-2xl);
  -webkit-backdrop-filter: var(--blur-2xl);
  box-shadow: var(--inset-top), var(--inset-bottom), 0 8px 32px var(--overlay-sm);
  transition: border-color var(--duration-normal) var(--ease-luxury),
              background var(--duration-normal) var(--ease-luxury),
              box-shadow var(--duration-normal) var(--ease-luxury);
  position: relative;
}

/* Co-propriété columns — pas de backdrop-filter (images SVG nettes) */
.cp-columns {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: var(--tmh-bg-3);
}

/* Luminous edge — ligne platine en haut de chaque carte */

.vehicle-card::before,
.actu-card::before,
.presence-card::before,
.stack-card::before,
.qr-card::before {
  content: '';
  position: absolute;
  top: 0; left: 8%; right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
  z-index: 2;
  pointer-events: none;
}

.vehicle-card:hover,
.actu-card:hover,
.presence-card:hover,
.stack-card:hover,
.aa-nav-card:hover,
.aa-src-linked-service:hover {
  background: var(--glass-fill-2);
  border-color: var(--tmh-border-gold);
  box-shadow: var(--inset-top), var(--inset-bottom), 0 12px 40px var(--overlay-md);
}

/* -----------------------------------------------------------
   TMH-BTN : tous les boutons CTA du site
   ----------------------------------------------------------- */

.btn,
.btn-primary,
.btn-solid,
.nav-cta,
.btn-cta-join,
.cp-cta-btn,
.fo-cta-btn,
.holding-cta,
.res-cta,
.fo-a-link,
.aa-assurance-highlight-cta,
.dp-stamp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--btn-font-size);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: var(--btn-padding);
  border-radius: var(--radius-full);
  border: none;
  background: var(--glass-fill-hover);
  color: var(--tmh-text);
  cursor: pointer;
  text-decoration: none;
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow:
    inset 0 0 0 1px var(--glass-border-strong),
    var(--inset-top),
    var(--shadow-card-sm);
  transition: all var(--duration-normal) var(--ease-luxury);
}

.btn:hover,
.btn-primary:hover,
.btn-solid:hover,
.nav-cta:hover,
.btn-cta-join:hover,
.cp-cta-btn:hover,
.fo-cta-btn:hover,
.holding-cta:hover,
.res-cta:hover,
.fo-a-link:hover,
.aa-assurance-highlight-cta:hover {
  background: var(--glass-fill-3);
  box-shadow:
    inset 0 0 0 1px var(--tmh-border-gold),
    var(--inset-top),
    var(--shadow-card-md);
  color: var(--tmh-gold-light);
}

/* --- Reset & Base --- */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

body {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--tmh-text);
  background: #000000;
  overflow-x: clip;
  display: flow-root;
}

img, svg, video {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
}

ul, ol {
  list-style: none;
}

::selection {
  background: var(--tmh-gold-dim);
  color: var(--tmh-text);
}

/* ── Hiérarchie typographique globale ─────────────────────────── */
h1 {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 5vw, 6.5rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.05;
  text-transform: uppercase;
}
h2 {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 3.2vw, 3rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.dp-ecosystem h2 {
  font-size: clamp(1.52rem, 2.16vw, 2.03rem);
}
h3 {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.3;
}
h4 {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.4;
}
p {
  font-size: 0.9375rem;
  line-height: 1.78;
  font-weight: 300;
}
.caption, .eyebrow {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}


.font-mono {
  font-family: var(--font-mono);
}



/* --- Layout --- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.section {
  padding: var(--space-20) 0;
}

/* --- Buttons --- */
.btn {
  font-weight: 400;
  letter-spacing: 0.05em;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

/* Famille bouton glass — .btn-primary est la source, .btn-solid et .btn-ghost sont des alias */
.btn-primary,
.btn-solid,
.btn-ghost {
  color: var(--tmh-text-90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    inset 0 0 0 1px var(--glass-border-strong),
    inset 0 1px 0 var(--glass-specular),
    var(--shadow-card-sm);
}

.btn-primary:hover,
.btn-solid:hover,
.btn-ghost:hover {
  background: var(--glass-fill-3);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.30),
    var(--shadow-card-sm);
}

/* Différenciateur : .btn-solid a font-weight plus affirmé */
.btn-solid { font-weight: 500; }

/* --- Flèche → sur les CTAs de navigation (O-2/O-3 — intentionnel)
   Spécificité (0,2,2) > .btn-primary (0,1,1) : voulu.
   Exception .dp-ecosystem : désactive la flèche dans les blocs CTA du hub. --- */
a.btn-primary[href*=".html"]::after,
a.btn-primary[href^="https"]::after,
a.btn-ghost[href*=".html"]::after,
a.btn-ghost[href^="https"]::after,
a.btn-solid[href*=".html"]::after,
a.btn-solid[href^="https"]::after,
a.btn-cta-join[href*=".html"]::after,
a.btn-cta-join[href^="https"]::after {
  content: '→';
  display: inline-block;
  margin-left: 8px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

a.btn-primary[href*=".html"]:hover::after,
a.btn-primary[href^="https"]:hover::after,
a.btn-ghost[href*=".html"]:hover::after,
a.btn-ghost[href^="https"]:hover::after,
a.btn-solid[href*=".html"]:hover::after,
a.btn-solid[href^="https"]:hover::after,
a.btn-cta-join[href*=".html"]:hover::after,
a.btn-cta-join[href^="https"]:hover::after {
  transform: translateX(5px);
}

/* --- Bloc CTA commun dp-ecosystem : jamais de flèche --- */
.dp-ecosystem a.btn-primary[href*=".html"]::after,
.dp-ecosystem a.btn-primary[href^="https"]::after,
.dp-ecosystem a.btn-ghost[href*=".html"]::after,
.dp-ecosystem a.btn-ghost[href^="https"]::after,
.dp-ecosystem a.btn-solid[href*=".html"]::after,
.dp-ecosystem a.btn-solid[href^="https"]::after {
  content: none;
}

/* .btn-lg supprimé — padding standardisé dans .btn */

/* --- Navigation --- */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--nav-height);
  display: flex;
  align-items: center;
  transition: all var(--duration-normal) var(--ease-default);
  background: var(--plat-fill-1);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border);
  box-shadow: inset 0 1px 0 var(--glass-edge);
}

.nav.scrolled {
  background: var(--plat-fill-2);
  backdrop-filter: var(--blur-xl);
  -webkit-backdrop-filter: var(--blur-xl);
  border-bottom: 1px solid var(--tmh-border);
}

.nav-inner {
  display: flex;
  align-items: center;
  align-self: stretch;
  justify-content: space-between;
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.nav-logo {
  font-family: var(--font-logo);
  font-size: var(--text-lg);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--tmh-text);
  white-space: nowrap;
}

.nav-logo span {
  color: var(--tmh-text);
  font-weight: 700;
}

.nav-links {
  display: none;
  align-items: stretch;
  align-self: stretch;
  gap: var(--space-8);
}

.nav-link {
  font-size: var(--text-sm);
  font-weight: 300;
  color: var(--tmh-text);
  transition: color var(--duration-normal) var(--ease-default);
  position: relative;
  letter-spacing: 0.02em;
  /* Stretch to full nav height so ::after bottom:0 = bas de la nav */
  display: flex;
  align-items: center;
  align-self: stretch;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.80), transparent);
  opacity: 0;
  transform: scaleX(0.3);
  transition: opacity var(--duration-normal) var(--ease-luxury),
              transform var(--duration-normal) var(--ease-luxury);
}

.nav-link:hover {
  color: var(--tmh-text);
}

.nav-link.active {
  color: var(--tmh-ivory);
}

.nav-link:hover::after {
  opacity: 0.45;
  transform: scaleX(1);
}

.nav-link.active::after {
  opacity: 1;
  transform: scaleX(1);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.75), transparent);
}

.nav-cta {
  font-size: var(--text-sm);
  color: var(--tmh-text-90);
  font-weight: 400;
  letter-spacing: 0.05em;
  align-self: center;
  box-shadow:
    inset 0 0 0 1px var(--glass-border-strong),
    inset 0 1px 0 var(--glass-specular);
}

.nav-cta:hover {
  background: var(--glass-fill-3);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.30);
}

/* Mobile menu toggle */
.nav-toggle {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 24px;
  padding: 2px 0;
}

.nav-toggle span {
  display: block;
  height: 1px;
  background: var(--tmh-text);
  transition: all var(--duration-normal) var(--ease-default);
}

.nav-toggle.open span:nth-child(1) {
  transform: rotate(45deg) translate(4px, 4px);
}

.nav-toggle.open span:nth-child(2) {
  opacity: 0;
}

.nav-toggle.open span:nth-child(3) {
  transform: rotate(-45deg) translate(4px, -4px);
}

/* Mobile menu */
.mobile-menu {
  position: fixed;
  top: var(--nav-height);
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(6, 6, 8, 0.97);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration-slow) var(--ease-default);
}

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

.mobile-menu a {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  color: var(--tmh-text);
  transition: color var(--duration-normal) var(--ease-default);
}

.mobile-menu a:hover {
  color: var(--tmh-text);
}

/* --- Hero --- */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding-top: var(--nav-height);
}

.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 900px;
  padding: var(--space-8);
}

.hero-eyebrow {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--tmh-text);
  margin-bottom: var(--space-6);
  font-weight: 400;
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-luxury) 0.2s forwards;
}

.hero-title {
  font-size: var(--text-hero);
  font-weight: 400;
  line-height: 1.05;
  color: var(--tmh-text);
  margin-bottom: var(--space-6);
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-luxury) 0.4s forwards;
}

.hero-title em {
  font-style: italic;
  color: var(--tmh-text);
  opacity: 0.85;
}

.hero-subtitle {
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  color: var(--tmh-text);
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto var(--space-10);
  line-height: 1.8;
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-luxury) 0.6s forwards;
}

.hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  flex-wrap: wrap;
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-luxury) 0.8s forwards;
}

/* ═══════════════════════════════════════════════
   Hero — Colossus Layout (xAI-inspired)
═══════════════════════════════════════════════ */

/* Conteneur plein écran par-dessus le hero-bg */


/* Label haut gauche */


/* Logo 3D — oversized, remplit le viewport */




@keyframes hcFloat {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-10px); }
}

/* Meta bas droite */




/* Scroll hint bas centre */



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

/* Hero background */
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-gradient {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.04;
  background: var(--tmh-gold);
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  animation: pulseGlow 6s ease-in-out infinite;
}

.hero-line-top {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 120px;
  background: linear-gradient(to bottom, transparent, var(--tmh-border-gold), transparent);
  opacity: 0;
  animation: fadeIn 1.5s var(--ease-default) 1s forwards;
}

.hero-line-bottom {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1px;
  height: 80px;
  background: linear-gradient(to top, transparent, var(--tmh-border-gold));
  opacity: 0;
  animation: fadeIn 1.5s var(--ease-default) 1.2s forwards;
}

/* --- Ecosystem Section --- */
.ecosystem {
  position: relative;
  padding: var(--space-12) 0;
  overflow: hidden;
}

.ecosystem-header {
  text-align: center;
  margin-bottom: var(--space-16);
}

.ecosystem-header h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.ecosystem-header p {
  color: var(--tmh-text);
  max-width: 560px;
  margin: 0 auto;
  font-weight: 300;
}

/* --- Gravitational Field Ecosystem --- */
.grav-container {
  position: relative;
  width: 100%;
  max-width: 640px;
  aspect-ratio: 6 / 5;
  margin: 0 auto;
}


.grav-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.grav-fx-layer {
  z-index: 5;
  pointer-events: none;
}

.grav-line {
  stroke: var(--glass-fill-2);
  stroke-width: 1;
  fill: none;
  transition: stroke 0.5s, stroke-width 0.5s;
}

/* Beam platine — point lumineux voyageant du hub vers les nodes */
.grav-beam {
  stroke: var(--tmh-gold-light);
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: 8 500;
  stroke-dashoffset: 0;
  filter: drop-shadow(0 0 3px rgba(205,208,216,0.9)) drop-shadow(0 0 8px var(--tmh-gold));
  opacity: 0;
}
/* Hub → Node */
.grav-beam-1 { animation: grav-beam-travel 5s ease-in-out infinite 0s; }
.grav-beam-2 { animation: grav-beam-travel 5s ease-in-out infinite 1.2s; }
.grav-beam-3 { animation: grav-beam-travel 5s ease-in-out infinite 2.5s; }
.grav-beam-4 { animation: grav-beam-travel 5s ease-in-out infinite 0.6s; }
/* Node → Hub */
.grav-beam-5 { animation: grav-beam-travel 5s ease-in-out infinite 2.5s; }
.grav-beam-6 { animation: grav-beam-travel 5s ease-in-out infinite 0.6s; }
.grav-beam-7 { animation: grav-beam-travel 5s ease-in-out infinite 0s; }
.grav-beam-8 { animation: grav-beam-travel 5s ease-in-out infinite 1.8s; }

@keyframes grav-beam-travel {
  0%   { stroke-dashoffset: 0;    opacity: 0; }
  8%   { opacity: 1; }
  85%  { opacity: 1; }
  100% { stroke-dashoffset: -500; opacity: 0; }
}

/* Central hub */
.grav-hub {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: var(--plat-fill-2);
  backdrop-filter: var(--blur-lg);
  -webkit-backdrop-filter: var(--blur-lg);
  border: 1px solid var(--glass-fill-3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  z-index: 10;
  animation: hub-breathe-v4 3s ease-in-out infinite;
}

@keyframes hub-breathe-v4 {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    box-shadow:
      inset 0 1px 0 var(--glass-specular),
      inset 0 0 0 1px var(--glass-border),
      0 0 16px var(--plat-fill-2);
  }
  50% {
    transform: translate(-50%, -50%) scale(1.06);
    box-shadow:
      inset 0 1px 0 var(--glass-specular),
      inset 0 0 0 1px var(--glass-border),
      0 0 48px var(--tmh-border-gold),
      0 0 90px var(--plat-fill-2);
  }
}

.grav-hub-label {
  font-family: var(--font-logo);
  font-size: var(--text-sm);
  letter-spacing: 0.15em;
  color: var(--tmh-text);
  font-weight: 700;
}

.grav-hub-sub {
  font-size: 9px;
  color: var(--tmh-text);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 2px;
}

/* Floating service nodes */
.grav-node {
  position: absolute;
  width: 85px;
  height: 85px;
  border-radius: 50%;
  background: var(--plat-fill-1);
  backdrop-filter: var(--blur-md);
  -webkit-backdrop-filter: var(--blur-md);
  border: 1px solid var(--glass-border);
  box-shadow:
    inset 0 1px 0 var(--glass-specular-dim),
    0 0 24px var(--plat-fill-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  z-index: 10;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: background var(--duration-slow), box-shadow var(--duration-slow), border-color var(--duration-slow);
}

.grav-node:hover {
  background: var(--glass-fill-hover);
  border-color: var(--glass-border-strong);
  box-shadow:
    inset 0 1px 0 var(--glass-specular),
    inset 0 0 0 1px var(--glass-specular-dim),
    0 0 48px var(--tmh-gold-dim);
}

.grav-node svg {
  width: 22px;
  height: 22px;
  stroke: var(--tmh-gold);
  stroke-width: 1.5;
  fill: none;
  opacity: 0.6;
  transition: opacity var(--duration-normal);
}

.grav-node:hover svg {
  opacity: 1;
}

.grav-node-label {
  font-size: 8px;
  color: var(--tmh-text);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.2;
  font-weight: 400;
}

.grav-node:hover .grav-node-label {
  color: var(--tmh-text);
}

/* Node positions + unique floating animations */
.grav-node-1 {
  top: 8%;
  left: 50%;
  transform: translateX(-50%);
  animation: grav-float-1 7s ease-in-out infinite;
}
.grav-node-2 {
  top: 30%;
  left: 6%;
  animation: grav-float-2 8s ease-in-out infinite;
}
.grav-node-3 {
  top: 30%;
  right: 6%;
  left: auto;
  animation: grav-float-3 9s ease-in-out infinite;
}
.grav-node-4 {
  bottom: 12%;
  left: 50%;
  animation: grav-float-4 7.5s ease-in-out infinite;
}
.grav-node-5 {
  bottom: 12%;
  right: 14%;
  left: auto;
  animation: grav-float-5 8.5s ease-in-out infinite;
}

@keyframes grav-float-1 {
  0%, 100% { transform: translateX(-50%) translate(0, 0); }
  25% { transform: translateX(-50%) translate(8px, 6px); }
  50% { transform: translateX(-50%) translate(-4px, 12px); }
  75% { transform: translateX(-50%) translate(-10px, 4px); }
}

@keyframes grav-float-2 {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(6px, -8px); }
  50% { transform: translate(12px, 4px); }
  75% { transform: translate(4px, 10px); }
}

@keyframes grav-float-3 {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-10px, 6px); }
  50% { transform: translate(-4px, -8px); }
  75% { transform: translate(8px, -4px); }
}

@keyframes grav-float-4 {
  0%, 100% { transform: translateX(-50%) translate(0, 0); }
  25% { transform: translateX(-50%) translate(8px, -6px); }
  50% { transform: translateX(-50%) translate(-6px, -10px); }
  75% { transform: translateX(-50%) translate(-10px, 4px); }
}

@keyframes grav-float-5 {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-8px, -10px); }
  50% { transform: translate(6px, -4px); }
  75% { transform: translate(10px, 8px); }
}

/* --- Stats Bar --- */




.stat-value {
  font-family: var(--font-mono);
  font-size: var(--text-3xl);
  font-weight: 600;
  color: var(--tmh-text);
  opacity: 0.85;
}


/* ─── Section luminous separators — V4 ─────────────────────────
   Ligne platine en haut de chaque section pour matérialiser
   la transition entre blocs sans border-top visible.
   ─────────────────────────────────────────────────────────────── */
.services-section,
.vehicles-section,
.platform-section,
.faq-section,
.actu-teaser-section,
.cta-contact-section {
  position: relative;
}

.services-section::before,
.vehicles-section::before,
.platform-section::before,
.faq-section::before,
.actu-teaser-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
  pointer-events: none;
  z-index: 5;
}

#faq-assurance::before { display: none; }

/* ─── Footer separator ─────────────────────────────────────────── */
.footer {
  position: relative;
}
.footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
  pointer-events: none;
  z-index: 5;
}

/* --- About --- */
/* --- About — Split layout (Stitch-inspired) --- */
.about {
  position: relative;
  padding: var(--space-30) 0;
}

.about-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  align-items: center;
}

/* Image panel */
.about-image {
  position: relative;
  overflow: hidden;
  min-height: 400px;
}

.about-image::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  box-shadow:
    inset 0   50px 60px  -10px #000000,
    inset 0 -120px 100px  40px #000000,
    inset  40px 0 50px -10px #000000,
    inset -40px 0 50px -10px #000000;
}

.about-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.85) contrast(1.05);
}

.about-image #tmhSphere {
  width: 100%;
  height: 100%;
  min-height: 500px;
  display: block;
  background: #08080A;
  border-radius: var(--radius-lg, 12px);
  cursor: grab;
}


.about-content h2 {
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.2;
  margin-bottom: var(--space-6);
}

.about-lead {
  color: var(--tmh-text);
  font-weight: 300;
  font-size: var(--text-lg);
  line-height: 1.8;
  margin-bottom: var(--space-10);
  max-width: 520px;
}

/* Feature items — icon + text inline */
.about-features-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.about-feat {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
}

.about-feat-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  /* background/border/border-radius → .tmh-card */
  color: var(--tmh-text);
}

.about-feat-icon svg {
  width: 18px;
  height: 18px;
}

.about-feat-text h4 {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: var(--space-1);
  letter-spacing: 0.01em;
}

.about-feat-text p {
  font-size: var(--text-sm);
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.6;
}

/* --- Services --- */
.services-section {
  padding: var(--space-30) 0;
  background: transparent;
}

.services-header {
  text-align: center;
  margin-bottom: var(--space-12);
}

.services-header h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.services-header p {
  color: var(--tmh-text);
  max-width: 500px;
  margin: 0 auto;
  font-weight: 300;
}

/* --- Hover Card Reveal Grid --- */
.hover-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  max-width: 1300px;
  margin: 0 auto;
}

.hover-card {
  position: relative;
  height: 380px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: transform 0.4s var(--ease-default), box-shadow 0.4s var(--ease-default);
  cursor: pointer;
  text-decoration: none;
  display: block;
  background-image: var(--card-bg);
  background-size: cover;
  background-position: center;
}

.hover-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-lg);
  overflow: visible;
}


.hover-card-inner {
  position: absolute;
  inset: 0;
  border-radius: var(--radius-xl);
  overflow: hidden;
  /* border-radius nécessaire : clippe l'image quand l'outer card
     passe en overflow:visible pour laisser sortir le panel hover */
}

/* Zoom au hover via pseudo-element */
.hover-card-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: var(--card-bg);
  background-size: cover;
  background-position: center;
  z-index: 0;
  transition: transform 0.6s var(--ease-luxury);
}

.hover-card:hover .hover-card-inner::before {
  transform: scale(1.06);
}

/* Dark overlay */
.hover-card-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay-xl);
  z-index: 1;
  transition: background 0.4s var(--ease-default);
}

.hover-card:hover .hover-card-inner::after {
  background: var(--overlay-sm);
}

/* Gold border overlay — invisible au repos, doré au hover */
.hover-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  border-radius: inherit;
  z-index: 5;
  pointer-events: none;
  transition: border-color 0.4s var(--ease-default);
}

.hover-card:hover::after {
  border-color: var(--tmh-border-gold);
}

/* Front title */
.hover-card-front-title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 400;
  color: var(--tmh-text);
  text-align: center;
  text-shadow: 0 2px 12px var(--overlay-lg);
  line-height: 1.2;
  z-index: 3;
  transition: opacity 0.35s var(--ease-default);
  letter-spacing: -0.01em;
}

.hover-card:hover .hover-card-front-title {
  opacity: 0;
}

/* Glassmorphic data panel — hidden below card, slides up on hover */
.hover-card-data {
  position: absolute;
  bottom: -14rem;
  left: 0;
  right: 0;
  margin-inline: auto;
  width: 88%;
  /* Fond opaque — la photo ne doit pas transparaître */
  background: rgba(16, 16, 22, 0.55);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow:
    var(--shadow-card-sm),
    inset 0 1px 0 var(--glass-specular-dim),
    inset 0 -1px 0 var(--glass-edge);
  padding: var(--space-5);
  z-index: 6;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

/* Show on hover — panel shoots up then settles */
.hover-card:hover .hover-card-data {
  animation: hoverCardShow 1s forwards;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.3s;
}

/* Hide on un-hover — only after first interaction */
.hover-card.was-hovered:not(:hover) .hover-card-data {
  animation: hoverCardHide 1s forwards;
}

/* Overflow: let panel escape card bounds on hover */
.hover-card:hover {
  animation: hoverRemoveOverflow 2s forwards;
}

.hover-card.was-hovered:not(:hover) {
  animation: hoverShowOverflow 2s forwards;
}

@keyframes hoverCardShow {
  0%   { transform: translateY(0); }
  55%  { transform: translateY(-13rem); }
  100% { transform: translateY(-11rem); }
}

@keyframes hoverCardHide {
  0%   { transform: translateY(-11rem); }
  45%  { transform: translateY(-13rem); }
  100% { transform: translateY(0); }
}

@keyframes hoverRemoveOverflow {
  to { overflow: initial; }
}

@keyframes hoverShowOverflow {
  0%  { overflow: initial; pointer-events: none; }
  50% { overflow: hidden; }
}

.hover-card-data-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 400;
  color: var(--tmh-text);
  text-shadow: 0 1px 8px var(--overlay-md);
  margin-bottom: var(--space-4);
  letter-spacing: -0.01em;
  text-align: center;
}

.hover-card-services {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.hover-card-service {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 300;
  letter-spacing: 0.02em;
  color: var(--tmh-text-75);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--glass-fill-1);
  border: 1px solid var(--glass-border);
  transition: background 0.2s var(--ease-default), border-color 0.2s, color 0.2s;
}

.hover-card-service::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--tmh-gold);
  opacity: 0.55;
  flex-shrink: 0;
  transition: opacity 0.2s;
}

.hover-card-service:hover {
  background: var(--glass-fill-hover);
  border-color: var(--glass-border-strong);
  color: var(--tmh-text);
}

.hover-card-service:hover::before {
  opacity: 1;
}

/* --- Logo Cloud (Infinite Scroll) --- */











@keyframes logoScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* --- European Presence --- */
.presence-section {
  padding: var(--space-30) 0;
  background: transparent;
  position: relative;
  overflow: hidden;
}


.presence-header {
  text-align: center;
  margin-bottom: var(--space-16);
}

.presence-header h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.presence-header p {
  color: var(--tmh-text);
  font-weight: 300;
  max-width: 480px;
  margin: 0 auto;
}


.presence-card {
  padding: var(--space-8) var(--space-6);
  position: relative;
  overflow: hidden;
}

/* Gold line accent — appears on hover */
.presence-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tmh-gold), transparent);
  opacity: 0;
  transition: opacity var(--duration-slow);
}

.presence-card:hover::before {
  opacity: 1;
}

.presence-card:hover {
  border-color: var(--glass-border-strong);
  box-shadow: inset 0 1px 0 var(--glass-specular-dim), var(--shadow-card-md);
}

/* O-4 — Luxembourg HQ : variante featured (intentionnel) */



/* Role badge */
.presence-role {
  display: inline-block;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--tmh-text);
  padding: 2px var(--space-3);
  margin-bottom: var(--space-5);
}

/* O-5 — HQ role badge : bordure lumineuse (intentionnel) */
.presence-hq .presence-role {
  color: var(--tmh-text);
  border-color: var(--glass-border-strong);
}

/* Flag accent bars (CSS-only) */


















/* O-8 — HQ code footer : bordure lumineuse (intentionnel) */


@media (min-width: 768px) {

}

/* --- FAQ Section (Monochrome) --- */
.faq-section {
  padding: var(--space-30) 0 var(--space-12);
  position: relative;
  background: transparent;
}


.faq-header {
  margin-bottom: var(--space-12);
}

.faq-header-text {
  max-width: 600px;
}

.faq-header-text h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.faq-header-text > p:last-child {
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.7;
}

.faq-list {
  display: flex;
  flex-direction: column;
  max-width: 900px;
}

/* === FAQ — Editorial style === */
.faq-item {
  position: relative;
  border-bottom: 1px solid var(--tmh-border);
  transition: background 300ms ease;
}

.faq-item:first-child {
  border-top: 1px solid var(--tmh-border);
}


/* Ligne gold coulissante au top à l'ouverture */
.faq-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--tmh-gold), rgba(184,188,198,0.3), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 2;
}

.faq-item.open::before {
  transform: scaleX(1);
}

.faq-item.open {
  background: var(--glass-fill-2);
  backdrop-filter: var(--blur-md);
  -webkit-backdrop-filter: var(--blur-md);
  border-color: var(--glass-border);
  box-shadow: inset 0 1px 0 var(--glass-edge), 0 4px 24px rgba(0,0,0,0.3);
}

.faq-trigger {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  width: 100%;
  padding: var(--space-6) 0;
  text-align: left;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
}

/* + / × toggle */
.faq-icon-wrap {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: none;
  background: var(--glass-fill-1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: inset 0 0 0 1px var(--glass-border);
  margin-top: 3px;
  transition: background 300ms ease, box-shadow 300ms ease;
}

.faq-item.open .faq-icon-wrap {
  background: var(--glass-fill-hover);
  box-shadow: inset 0 0 0 1px var(--glass-specular);
}

.faq-icon-plus {
  width: 14px;
  height: 14px;
  stroke: var(--tmh-text-50);
  transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1), stroke 200ms ease;
}

.faq-item.open .faq-icon-plus {
  transform: rotate(45deg);
  stroke: var(--tmh-text-90);
}

.faq-question-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.faq-meta {
  width: fit-content;
  padding: 2px var(--space-3);
  border: 1px solid var(--tmh-border-gold);
  background: var(--tmh-gold-glow);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--tmh-text);
}

.faq-question {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 400;
  color: var(--tmh-text);
  line-height: 1.45;
  transition: color 200ms ease;
}

.faq-item.open .faq-question {
  color: #fff;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease-luxury);
}

.faq-item.open .faq-answer {
  max-height: 300px;
}

.faq-answer p {
  padding: 0 0 var(--space-6) calc(28px + var(--space-5));
  color: var(--tmh-text);
  font-weight: 300;
  font-size: var(--text-sm);
  line-height: 1.8;
}

/* --- Vehicles --- */
.vehicles-section {
  padding: var(--space-30) 0 0;
}

.vehicles-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--space-12);
  flex-wrap: wrap;
  gap: var(--space-4);
}

.vehicles-header h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
}

/* === Carousel wrapper avec masques bords === */
.vehicles-carousel-wrapper {
  position: relative;
  overflow: hidden;
  padding: 20px 0 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 6%, black 94%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, black 6%, black 94%, transparent 100%);
}


.vehicles-carousel {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 0 calc(50% - 720px) 40px;
  overflow-x: auto;
  scroll-behavior: smooth;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.vehicles-carousel::-webkit-scrollbar {
  display: none;
}

/* === Vehicle Cards — Glass Depth V4 === */
.vehicle-card {
  flex: 0 0 460px;
  flex-shrink: 0;
  overflow: hidden;
  cursor: pointer;
  transition: opacity 400ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 400ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 400ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* États par position */
.vehicle-card.vc-edge {
  opacity: 0.45;
  transform: scale(0.92);
}

.vehicle-card.vc-adjacent {
  opacity: 0.72;
  transform: scale(0.96);
}

.vehicle-card.vc-center {
  opacity: 1;
  transform: scale(1);
  border-color: var(--glass-border-strong);
  box-shadow:
    var(--shadow-card-md),
    0 0 0 1px var(--tmh-gold-dim),
    inset 0 1px 0 var(--glass-specular-dim);
}

.vehicle-card:hover.vc-edge {
  opacity: 0.55;
  background: var(--glass-fill-1);
  border-color: var(--tmh-border);
  box-shadow: none;
}
.vehicle-card:hover.vc-adjacent {
  opacity: 0.85;
  background: var(--glass-fill-1);
  border-color: var(--tmh-border);
  box-shadow: var(--shadow-card-sm);
}

.vehicle-card-image {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.vehicle-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
  transition: transform 0.7s var(--ease-luxury);
}

.vehicle-card:hover .vehicle-card-image img {
  transform: scale(1.06);
}

.vehicle-card-badge {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background: rgba(6, 6, 8, 0.85);
  backdrop-filter: blur(12px);
  border: 1px solid var(--tmh-border-gold);
  color: var(--tmh-text);
  z-index: 2;
}

.vehicle-card-body {
  padding: var(--space-5);
  background: var(--glass-edge);
  border-top: none;
}

.vehicle-year {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--tmh-text);
  letter-spacing: 0.06em;
  margin-bottom: var(--space-2);
}

.vehicle-card-body h4 {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: var(--space-3);
  line-height: 1.3;
}

.vehicle-card-price {
  font-family: var(--font-mono);
  font-size: var(--text-xl);
  color: var(--tmh-text);
  font-weight: 500;
  margin-bottom: var(--space-3);
}

.vehicle-card-meta {
  display: flex;
  gap: var(--space-2);
  flex-wrap: nowrap;
  overflow: hidden;
}

.vehicle-card-meta span {
  color: var(--tmh-text);
  letter-spacing: 0.03em;
}

/* === Indicateurs carousel — lignes P2 === */



.carousel-ind-line.active {
  width: 44px;
  background: linear-gradient(90deg, transparent, var(--tmh-gold), transparent);
}

/* --- Brand Marquee (inline with vehicles) --- */







.carousel-controls {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.carousel-btn,
.aa-carousel-btn,
.aa-om-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--glass-fill-1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: inset 0 0 0 1px var(--glass-border);
  cursor: pointer;
  transition: background var(--duration-normal) var(--ease-default),
              box-shadow var(--duration-normal) var(--ease-default);
}

.carousel-btn:hover,
.aa-carousel-btn:hover,
.aa-om-btn:hover {
  background: var(--glass-fill-hover);
  box-shadow: inset 0 0 0 1px var(--glass-specular);
}

.carousel-btn svg {
  width: 16px;
  height: 16px;
  stroke: var(--tmh-text-50);
  fill: none;
  stroke-width: 1.5;
  transition: stroke var(--duration-normal) var(--ease-default);
}

.carousel-btn:hover svg {
  stroke: var(--tmh-text-90);
}

/* --- Membership --- */
.membership-section {
  padding: var(--space-30) 0;
  background: transparent;
  position: relative;
  overflow: hidden;
}


.membership-inner {
  display: grid;
  gap: var(--space-12);
  align-items: center;
}

.membership-text h2 {
  font-size: var(--text-h2-section);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.membership-text p {
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.7;
  margin-bottom: var(--space-6);
}

.membership-benefits {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.membership-benefit {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
  color: var(--tmh-text);
}

.membership-benefit svg {
  width: 16px;
  height: 16px;
  stroke: var(--tmh-text-50);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
}

/* .membership-card supprimé — doublon de .mem-card-full (non utilisé dans les HTML) */

/* --- Stats Cinematic --- */
.stats-cinematic {
  padding: var(--space-16) 0;
}

.stats-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.stat-cin {
  flex: 1;
  min-width: 120px;
  text-align: center;
}

.stat-cin-num {
  font-family: var(--font-mono);
  font-size: var(--text-3xl);
  font-weight: 500;
  color: var(--tmh-text);
  animation: gold-pulse 3s ease-in-out infinite;
  line-height: 1;
  margin-bottom: var(--space-3);
}

.stat-cin-label {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.4em;
  color: var(--tmh-text);
  font-weight: 400;
}

.stat-cin-sep {
  width: 1px;
  height: 75px;
  background: linear-gradient(180deg, transparent, rgba(184,188,198,0.28), transparent);
  flex-shrink: 0;
}

/* --- Brands Ticker --- */
.brands-ticker {
  overflow: hidden;
  padding: var(--space-4) 0;
  margin-top: var(--space-10);
  background: transparent;
}

.brands-ticker-track {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  width: max-content;
  animation: ticker-scroll 24s linear infinite;
}

.brands-ticker-item {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 300;
  color: var(--tmh-text);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0.45;
}

.brands-ticker-diamond {
  width: 4px;
  height: 4px;
  background: var(--tmh-gold);
  transform: rotate(45deg);
  opacity: 0.30;
  flex-shrink: 0;
}

/* --- Membership Card Full --- */
@property --mem-beam-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

@keyframes mem-beam-rotate {
  from { --mem-beam-angle: 0deg; }
  to   { --mem-beam-angle: 360deg; }
}

.mem-card-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.mem-card-outer {
  position: relative;
  width: 100%;
  max-width: 380px;
  aspect-ratio: 1.586 / 1;
}


.mem-card-canvas {
  display: none;
}

.mem-card-full {
  width: 100%;
  height: 100%;
  background:
    linear-gradient(145deg, var(--tmh-bg-3) 0%, #000000 55%, var(--tmh-bg-2) 100%) padding-box,
    conic-gradient(
      from var(--mem-beam-angle),
      rgba(201,169,110,0.08) 0%,
      rgba(201,169,110,0.08) 36%,
      var(--tmh-gold) 50%,
      rgba(201,169,110,0.08) 64%,
      rgba(201,169,110,0.08) 100%
    ) border-box;
  border: 1px solid transparent;
  animation: mem-beam-rotate 5s linear infinite;
  box-shadow:
    var(--shadow-card-lg),
    inset 0 1px 0 var(--glass-specular-dim),
    0 0 40px rgba(201, 169, 110, 0.06);
  border-radius: 20px;
  padding: var(--space-6) var(--space-8);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

/* Luminous edge — ligne platine en haut (alignée avec les autres cartes) */
.mem-card-full::before {
  content: '';
  position: absolute;
  top: 0; left: 8%; right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
  z-index: 2;
  pointer-events: none;
}

/* Bottom platine accent line — supprimé (doublon visuel avec la bordure animée) */

.mem-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}

.mem-card-brand {
  font-family: var(--font-logo);
  font-size: var(--text-sm);
  letter-spacing: 0.22em;
  color: var(--tmh-text);
  font-weight: 700;
}

.mem-card-sub {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  color: var(--tmh-text-dim);
  margin-top: 4px;
}

.mem-card-middle {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.mem-card-label {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: var(--text-xl);
  letter-spacing: 0.06em;
  color: var(--tmh-text);
}

.mem-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}

.mem-card-year {
  font-family: var(--font-mono);
  font-size: var(--text-base);
  color: var(--tmh-text-secondary);
  font-weight: 400;
  letter-spacing: 0.12em;
}

.mem-card-price {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--tmh-text-secondary);
  letter-spacing: 0.08em;
}

/* Shine overlay — mis à jour en JS via background-image */
.mem-card-shine {
  position: absolute;
  inset: 0;
  border-radius: 20px;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.3s ease;
}



/* --- Platform Section (iPad 3D Preview) --- */
.platform-section {
  padding: var(--space-30) 0;
  background: transparent;
}

.platform-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  align-items: center;
}

.platform-info {
  max-width: 500px;
}

.platform-info h2 {
  font-size: var(--text-h2-section);
  margin-bottom: var(--space-4);
  line-height: 1.1;
}

.platform-info > p {
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.7;
  margin-bottom: var(--space-6);
}

.platform-features {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.platform-feature {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
  color: var(--tmh-text);
}

.platform-feature svg {
  width: 16px;
  height: 16px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
}

.platform-mockup-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}


.ipad-3d-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
}

.ipad-ambient-glow {
  position: absolute;
  inset: -25%;
  background: radial-gradient(ellipse at 55% 45%, var(--tmh-gold-glow) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

/* ── Photorealistic iPad Pro (graphite aluminum) ── */
.ipad-3d-frame {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  /* Graphite aluminum gradient — anisotropic metallic sheen */
  background: linear-gradient(160deg,
    #3e3e42 0%,
    #2e2e32 12%,
    #1e1e22 30%,
    #282829 48%,
    #323235 65%,
    #1a1a1e 80%,
    #2a2a2d 100%
  );
  border-radius: 30px;
  /* iPad Pro slim bezels — ~8px all around, 10px top for camera */
  padding: 10px 10px 8px;
  box-shadow:
    /* Bottom-right directional shadow */
    24px 32px 60px var(--overlay-sm),
    12px 16px 30px rgba(0, 0, 0, 0.18),
    /* Fine outer edge highlight */
    0 0 0 1px var(--glass-fill-3),
    /* Inner metal surface highlights */
    inset 0 1px 0 var(--glass-border-strong),
    inset 0 -1px 0 var(--overlay-xs),
    inset 1px 0 0 var(--glass-fill-2),
    inset -1px 0 0 var(--overlay-xs);
  transform: perspective(1400px) rotateY(-12deg) rotateX(5deg);
  transition: transform 0.9s var(--ease-luxury);
  margin: 0 auto;
}

.ipad-3d-frame:hover {
  transform: perspective(1400px) rotateY(-5deg) rotateX(2deg);
}

/* Front camera — centered in top bezel (landscape) */
.ipad-3d-camera {
  width: 6px;
  height: 6px;
  background: radial-gradient(circle at 35% 35%, #28282e, #0c0c10);
  border-radius: 50%;
  margin: 0 auto 6px;
  box-shadow: 0 0 0 1px var(--overlay-lg), inset 0 0 3px var(--glass-fill-2);
}

/* Screen — pure dark, no color tint */
.ipad-3d-screen {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #080808;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.9);
}

/* Glass glare only — thin diagonal streak, no color */
.ipad-3d-screen-glass {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    128deg,
    var(--glass-fill-2) 0%,
    rgba(255, 255, 255, 0.02) 18%,
    transparent 40%
  );
  pointer-events: none;
  z-index: 20;
  border-radius: inherit;
}


/* CTA overlay — index.html iPad */
.ipad-screen-cta-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 48px 20px 16px;
  background: linear-gradient(to top, var(--tmh-bg) 40%, rgba(5,5,6,0.85) 70%, transparent 100%);
  z-index: 15;
  display: flex;
  justify-content: center;
}

.ipad-screen-cta {
  font-size: 10px;
  padding: 8px 20px;
  letter-spacing: 0.08em;
}

.ipad-3d-dash {
  display: flex;
  height: 460px;
  font-family: var(--font-body);
  overflow: hidden;
  position: relative;
}

/* ── Sidebar ── */
.ipad-3d-sidebar {
  width: 110px;
  background: #0c0c0e;
  border-right: 1px solid rgba(255,255,255,0.06);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 20px 0 16px;
  gap: 8px;
  flex-shrink: 0;
}

.ipad-3d-logo {
  font-family: var(--font-logo);
  font-size: 9px;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,0.7);
  text-align: center;
  line-height: 1.7;
  padding: 0 16px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.ipad-3d-nav {
  display: flex;
  flex-direction: column;
  gap: 1px;
  width: 100%;
  padding: 4px 10px 0;
  flex: 1;
}

.ipad-3d-nav-item {
  display: flex;
  align-items: center;
  padding: 9px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
}

.ipad-3d-nav-item.active {
  background: rgba(255,255,255,0.08);
}

.ipad-3d-nav-item svg {
  display: none;
}

.ipad-3d-nav-item span {
  font-size: 13px;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.01em;
  white-space: nowrap;
  font-weight: 400;
}

.ipad-3d-nav-item.active span {
  color: rgba(255,255,255,0.92);
  font-weight: 500;
}

.ipad-3d-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--plat-fill-2);
  border: 1px solid var(--tmh-border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: var(--tmh-text);
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-top: auto;
  margin-bottom: 14px;
  align-self: center;
}

/* ── Main content ── */
.ipad-3d-main {
  flex: 1;
  padding: 18px 16px 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: #0a0a0c;
}

.ipad-3d-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ipad-3d-title {
  font-family: var(--font-display);
  font-size: 26px;
  color: #ffffff;
  font-weight: 400;
  letter-spacing: -0.01em;
  text-transform: none;
}

.ipad-3d-date {
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--tmh-text);
  font-family: var(--font-mono);
}

.ipad-3d-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.ipad-3d-kpi {
  background: linear-gradient(145deg, var(--glass-fill-2) 0%, rgba(255, 255, 255, 0.02) 100%);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
  box-shadow: inset 0 1px 0 var(--glass-fill-2);
}

.ipad-3d-kpi-val {
  font-family: var(--font-mono);
  font-size: 22px;
  font-weight: 600;
  color: #ffffff;
  line-height: 1;
  margin-bottom: 6px;
}

.ipad-3d-kpi-val.gold {
  color: var(--tmh-text);
}

.ipad-3d-kpi-label {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.45);
}

.ipad-3d-kpi-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #34c759;
  box-shadow: 0 0 6px rgba(52, 199, 89, 0.7);
  margin: 0 auto 6px;
}

/* New dashboard elements */
.ipad-3d-greeting {
  font-size: 9px;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.ipad-3d-greeting span { color: var(--tmh-gold-light); }


.ipad-3d-kpi.featured {
  background: linear-gradient(145deg, rgba(176,180,190,0.08) 0%, rgba(176,180,190,0.03) 100%);
  border-color: var(--tmh-border-gold);
}

.ipad-3d-kpi-dot-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.ipad-3d-kpi-dot-live {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34c759;
  box-shadow: 0 0 6px rgba(52,199,89,0.8);
  animation: pulse-green 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes pulse-green {
  0%,100% { box-shadow: 0 0 4px rgba(52,199,89,0.6); }
  50% { box-shadow: 0 0 10px rgba(52,199,89,1); }
}

.ipad-3d-kpi-val.green { color: #34c759; }

.ipad-3d-kpi-trend {
  font-size: 8px;
  letter-spacing: 0.05em;
  margin-top: 3px;
}
.ipad-3d-kpi-trend.up { color: #34c759; }
.ipad-3d-kpi-trend.dim { color: rgba(255,255,255,0.35); }

/* Valorisation bar */
.ipad-3d-valo {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ipad-3d-valo-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ipad-3d-valo-delta {
  font-family: var(--font-mono);
  font-size: 9px;
  color: #34c759;
  letter-spacing: 0.05em;
}
.ipad-3d-valo-bar-bg {
  height: 3px;
  background: rgba(255,255,255,0.07);
  border-radius: 2px;
  overflow: hidden;
}
.ipad-3d-valo-bar-fill {
  height: 100%;
  width: 72%;
  background: linear-gradient(90deg, var(--tmh-gold-dim), var(--tmh-gold-light));
  border-radius: 2px;
}
.ipad-3d-valo-scale {
  display: flex;
  justify-content: space-between;
  font-size: 7px;
  color: rgba(255,255,255,0.25);
  letter-spacing: 0.04em;
  font-family: var(--font-mono);
}

.ipad-3d-activity {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
}

.ipad-3d-section-label {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 6px;
}

.ipad-3d-act-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid var(--glass-fill-2);
}

.ipad-3d-act-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.ipad-3d-act-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ipad-3d-act-dot.gold { background: var(--tmh-gold); box-shadow: 0 0 5px rgba(184, 188, 198, 0.55); }
.ipad-3d-act-dot.blue { background: var(--tmh-blue); box-shadow: 0 0 5px rgba(157, 173, 213, 0.55); }
.ipad-3d-act-dot.dim { background: var(--glass-border-strong); }

.ipad-3d-act-name {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.88);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ipad-3d-act-val {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--tmh-text);
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 10px;
}

.ipad-3d-act-dash {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--tmh-text);
  flex-shrink: 0;
  margin-left: 10px;
}

.ipad-3d-cta-bar {
  margin-top: auto;
  flex-shrink: 0;
  padding-top: 10px;
}

.ipad-3d-cta {
  display: block;
  width: 100%;
  padding: 9px var(--space-3);
  background: var(--glass-fill-hover);
  box-shadow:
    inset 0 0 0 1px var(--glass-border-strong),
    var(--inset-top),
    var(--shadow-card-sm);
  border: none;
  border-radius: 7px;
  font-family: var(--font-body);
  font-size: 9px;
  letter-spacing: 0.14em;
  color: var(--tmh-text);
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: all var(--duration-normal) var(--ease-luxury);
}

.ipad-3d-cta:hover {
  background: var(--glass-fill-3);
  box-shadow:
    inset 0 0 0 1px var(--tmh-border-gold),
    var(--inset-top),
    var(--shadow-card-md);
  color: var(--tmh-gold-light);
}

/* --- Why Section --- */






@media (min-width: 768px) {

}

@media (min-width: 1024px) {

}

/* === Why Card — Apple Style === */



/* Icône — blanc discret */





/* Stat — grand, blanc pur */


/* Séparateur fin */




/* Supprimé — ligne bottom remplacée par Apple style */

/* --- Why Band (pleine largeur, sans bordure) --- */




/* --- Card Stack (Presence) — horizontal row, Luxembourg net, autres flous --- */
.card-stack {
  position: relative;
  transform-style: preserve-3d;
  perspective: 800px;
  display: flex;
  flex-direction: row;
  gap: 0;
  max-width: 100%;
  margin: var(--space-10) auto 0;
  transition: gap 500ms var(--ease-luxury);
}

.card-stack:hover {
  gap: 16px;
}

.stack-card {
  position: relative;
  flex: 1;
  padding: var(--space-5) var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  cursor: pointer;
  transition-delay: calc(var(--i) * 50ms);
}

.stack-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--glass-specular), transparent);
  z-index: 2;
  pointer-events: none;
}

/* France — flou, en retrait */
.card-stack .stack-card:nth-child(1) {
  opacity: 0.42;
  filter: blur(3px);
  transform: translateZ(-30px);
}

/* Luxembourg — net, au premier plan */
.card-stack .stack-card:nth-child(2) {
  opacity: 1;
  filter: none;
  transform: translateZ(40px);
  border-color: var(--glass-border-strong);
  background: var(--glass-fill-2);
}

/* Deutschland — flou */
.card-stack .stack-card:nth-child(3) {
  opacity: 0.42;
  filter: blur(3px);
  transform: translateZ(-30px);
}

/* Schweiz — encore plus flou */
.card-stack .stack-card:nth-child(4) {
  opacity: 0.28;
  filter: blur(4px);
  transform: translateZ(-60px);
}

/* Hover : toutes les cartes s'étalent à plat, nettes */
.card-stack:hover .stack-card {
  opacity: 1;
  filter: blur(0);
  transform: translateZ(0);
  border-color: var(--glass-border);
}

.stack-card-hq {
  background: var(--glass-fill-2);
  border: 1px solid rgba(255, 255, 255, 0.24);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 var(--glass-fill-2),
    0 8px 32px var(--overlay-sm);
}

.card-stack:hover .stack-card-hq {
  border-color: rgba(255, 255, 255, 0.28);
  background: var(--glass-border);
}

.stack-flag-box {
  flex-shrink: 0;
}

.stack-flag {
  width: 56px;
  height: 38px;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.stack-flag span {
  flex: 1;
  display: block;
}

.stack-flag-lu span:nth-child(1) { background: #EF3340; }
.stack-flag-lu span:nth-child(2) { background: #FFFFFF; }
.stack-flag-lu span:nth-child(3) { background: #00A3DD; }

.stack-flag-de span:nth-child(1) { background: #000000; }
.stack-flag-de span:nth-child(2) { background: #DD0000; }
.stack-flag-de span:nth-child(3) { background: #FFCE00; }

.stack-flag-fr span:nth-child(1) { background: #002395; }
.stack-flag-fr span:nth-child(2) { background: #FFFFFF; }
.stack-flag-fr span:nth-child(3) { background: #ED2939; }

.stack-flag-ch {
  background: #FF0000;
  position: relative;
}

.stack-flag-ch::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 14px;
  height: 6px;
  background: white;
}

.stack-flag-ch::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 14px;
  background: white;
}

.stack-content {
  flex: 1;
}

.stack-country {
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: 2px;
}

.stack-city {
  font-size: var(--text-sm);
  color: var(--tmh-text);
  font-weight: 300;
}

.stack-status {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--tmh-text);
  white-space: nowrap;
}

.stack-status-hq {
  color: var(--tmh-text);
}

/* --- CTA Contact Section --- */
.cta-contact-section {
  padding: var(--space-32) 0;
  background: transparent;
  position: relative;
}

.cta-contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  align-items: start;
}

.cta-contact-left h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.12;
  margin-bottom: var(--space-3);
}

.cta-contact-left h2 em {
  font-style: italic;
  color: var(--tmh-text);
}

.cta-contact-body {
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.75;
  max-width: 38ch;
}

.cta-contact-btn-wrap {
  margin-top: var(--space-8);
}

/* .btn-cta-join — même family que .btn-primary/.btn-solid/.btn-ghost */
.btn-cta-join {
  gap: var(--space-3);
  letter-spacing: 0.05em;
  color: var(--tmh-text-90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    inset 0 0 0 1px var(--glass-border-strong),
    inset 0 1px 0 var(--glass-specular),
    var(--shadow-card-sm);
  white-space: nowrap;
}

.btn-cta-join:hover {
  background: var(--glass-fill-3);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.30),
    0 10px 40px var(--overlay-xs);
}


.cta-contact-sep {
  display: none;
  width: 1px;
  align-self: stretch;
  background: linear-gradient(180deg, transparent 0%, rgba(184,188,198,0.28) 25%, rgba(184,188,198,0.28) 75%, transparent 100%);
}

.cta-contact-h3 {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  color: var(--tmh-text);
  line-height: 1.2;
  margin-bottom: var(--space-3);
}

.cta-contact-h3 em {
  font-style: italic;
  color: var(--tmh-text);
}

.cta-contact-sub {
  font-size: var(--text-sm);
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.75;
  margin-bottom: var(--space-6);
  max-width: 42ch;
}

.qr-grid {
  display: flex;
  justify-content: center;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  align-items: flex-start;
}

.qr-card {
  /* background, border, backdrop-filter, box-shadow, transition, position → .tmh-card */
  width: 156px;
  flex-shrink: 0;
  border-radius: 12px; /* override radius-xl — plus petite carte */
  overflow: hidden;
}
/* qr-card::before → .tmh-card::before */

.qr-card:hover {
  border-color: var(--glass-border-strong);
  box-shadow: 0 0 0 1px var(--tmh-gold-glow), var(--shadow-card-sm);
  transform: translateY(-2px);
}

.qr-img {
  padding: var(--space-3);
  background: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
}

.qr-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.qr-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 8px var(--space-2);
  font-size: 9px;
  font-weight: 500;
  color: var(--tmh-text);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: var(--tmh-bg-2);
  border-top: 1px solid var(--tmh-border);
}

.qr-label svg {
  stroke: var(--tmh-gold);
  opacity: 0.8;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}


@media (min-width: 900px) {
  .cta-contact-grid {
    grid-template-columns: 1fr auto 1fr;
    gap: var(--space-16);
    align-items: center;
  }

  .cta-contact-sep {
    display: block;
  }

  .cta-contact-body,
  .cta-contact-sub {
    max-width: none;
  }
}

/* --- Trust --- */






/* --- Footer --- */
.footer {
  padding: var(--space-32) 0 var(--space-8);
  border-top: none;
  background: linear-gradient(180deg,
    rgba(5, 5, 7, 0)    0%,
    rgba(5, 5, 7, 0.08) 15%,
    rgba(5, 5, 7, 0.22) 30%,
    rgba(5, 5, 7, 0.42) 45%,
    rgba(5, 5, 7, 0.65) 58%,
    rgba(5, 5, 7, 0.85) 72%,
    #050507              88%,
    #050507             100%
  );
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  margin-bottom: var(--space-12);
}

.footer-brand {
  max-width: 300px;
}

.footer-brand-name {
  font-family: var(--font-logo);
  font-size: var(--text-lg);
  letter-spacing: 0.1em;
  margin-bottom: var(--space-4);
}

.footer-brand-name span {
  color: var(--tmh-text);
}

.footer-brand p {
  font-size: var(--text-sm);
  color: var(--tmh-text);
  line-height: 1.7;
}

.footer-col h4 {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--tmh-text);
  margin-bottom: var(--space-4);
  font-weight: 400;
}

.footer-col a {
  display: block;
  font-size: var(--text-sm);
  color: var(--tmh-text);
  padding: var(--space-1) 0;
  transition: color var(--duration-fast) var(--ease-default);
}

.footer-col a:hover {
  color: var(--tmh-text);
}

.footer-location {
  display: block;
  font-size: var(--text-sm);
  color: var(--tmh-text);
  padding: var(--space-1) 0;
  transition: color var(--duration-fast) var(--ease-default);
}

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

.footer-bottom p {
  font-size: var(--text-xs);
  color: var(--tmh-text);
}

.footer-bottom-links {
  display: flex;
  gap: var(--space-6);
}

.footer-bottom-links a {
  font-size: var(--text-xs);
  color: var(--tmh-text);
  transition: color var(--duration-fast) var(--ease-default);
}

.footer-bottom-links a:hover {
  color: var(--tmh-text);
}


/* --- Scroll Reveal --- */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 600ms var(--ease-luxury),
              transform 600ms var(--ease-luxury);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 80ms; }
.reveal-delay-2 { transition-delay: 160ms; }
.reveal-delay-3 { transition-delay: 240ms; }
.reveal-delay-4 { transition-delay: 320ms; }
.reveal-delay-5 { transition-delay: 400ms; }

/* --- Reduced Motion --- */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  * {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    transition-duration: 0.01ms;
  }
}

/* --- Dividers --- */
.divider {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tmh-border-gold), transparent);
  margin: var(--space-6) auto;
}

/* --- Preloader --- */
.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #050506;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s var(--ease-default);
}

.preloader.hidden {
  opacity: 0;
  pointer-events: none;
}

.preloader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.preloader-logo-img {
  display: block;
  height: 56px;
  width: auto;
  opacity: 0;
  animation: fadeIn 0.5s var(--ease-default) 0.1s forwards;
}

.preloader-count {
  font-family: var(--font-mono);
  font-size: 28px;
  letter-spacing: 0.10em;
  color: rgba(255,255,255,0.40);
  margin-top: 28px;
  opacity: 0;
  animation: fadeIn 0.5s var(--ease-default) 0.4s forwards;
}

/* --- Keyframes --- */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes shimmer {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes gold-pulse {
  0%, 100% { background-position: 100%; }
  50%       { background-position: 0%; }
}

@keyframes pulseGlow {
  0%, 100% { opacity: 0.04; }
  50% { opacity: 0.08; }
}

/* --- Keyframe: Ticker --- */
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* --- Responsive 768px+ --- */
@media (min-width: 768px) {
  .nav-links { display: flex; }
  .nav-toggle { display: none; }


  .stat-cin-sep { display: block; }


  .platform-split {
    grid-template-columns: 1fr 1.5fr;
    gap: var(--space-16);
  }

  /* Tablet : iPad légèrement réduit */
  .ipad-3d-dash { height: auto; }
  .ipad-3d-sidebar { width: 100px; }
  .ipad-3d-logo { font-size: 7px; }
  .ipad-3d-nav-item svg { width: 13px; height: 13px; }
  .ipad-3d-nav-item span { font-size: 10px; }
  .ipad-3d-title { font-size: 22px; }
  .ipad-3d-date { font-size: 8px; }
  .ipad-3d-kpi-val { font-size: 19px; }
  .ipad-3d-kpi-label { font-size: 7px; }
  .ipad-3d-section-label { font-size: 7px; }
  .ipad-3d-act-name { font-size: 11px; }
  .ipad-3d-act-val { font-size: 11px; }
  .ipad-3d-act-dash { font-size: 11px; }
  .ipad-3d-cta { font-size: 8px; }

  .cta-contact-grid {
    grid-template-columns: 1fr auto 1fr;
    gap: var(--space-12);
  }
  .cta-contact-sep {
    display: block;
    width: 1px;
    align-self: stretch;
    background: linear-gradient(180deg, transparent 0%, rgba(184,188,198,0.28) 25%, rgba(184,188,198,0.28) 75%, transparent 100%);
  }

  .about-split {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: start;
  }

  .about-image { min-height: 560px; }
  .about-image img { position: absolute; inset: 0; }
  .about-image #tmhSphere { position: absolute; inset: 0; min-height: 0; }

  .hover-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .hover-card { height: 420px; }
  .hover-card-front-title { font-size: var(--text-3xl); }

  .faq-header { display: flex; align-items: flex-end; justify-content: space-between; }
  .faq-trigger { padding: var(--space-6) var(--space-8); }
  .faq-answer p { padding-left: calc(44px + var(--space-5) + var(--space-8)); padding-right: var(--space-8); }

  .vehicle-card { flex: 0 0 340px; }

  .membership-inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
  }

  .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }

  .grav-hub { width: 130px; height: 130px; }
  .grav-node { width: 90px; height: 90px; }
  .grav-hub-label { font-size: var(--text-xs); }
  .grav-node-label { font-size: 9px; }
  .grav-node svg { width: 24px; height: 24px; }
}

/* --- 1024px+ --- */
@media (min-width: 1024px) {
  .stat-value { font-size: var(--text-4xl); }
  .grav-hub { width: 140px; height: 140px; }
  .grav-node { width: 100px; height: 100px; }
  .grav-hub-label { font-size: var(--text-sm); }
  .grav-node-label { font-size: 10px; }

}

/* --- 1280px+ --- */
@media (min-width: 1280px) {
  .hero-title { font-size: var(--text-6xl); }
  .hover-cards-grid { grid-template-columns: repeat(4, 1fr); }
  .hover-card { height: 440px; }

  /* iPad : tailles complètes sur grand écran */
  .ipad-3d-dash { height: 460px; }
  .ipad-3d-sidebar { width: 110px; }
  .ipad-3d-logo { font-size: 8px; }
  .ipad-3d-nav-item svg { width: 14px; height: 14px; }
  .ipad-3d-nav-item span { font-size: 12px; }
  .ipad-3d-title { font-size: 26px; }
  .ipad-3d-date { font-size: 9px; }
  .ipad-3d-kpi-val { font-size: 22px; }
  .ipad-3d-kpi-label { font-size: 8px; }
  .ipad-3d-section-label { font-size: 8px; }
  .ipad-3d-act-name { font-size: 12px; }
  .ipad-3d-act-val { font-size: 12px; }
  .ipad-3d-act-dash { font-size: 12px; }
  .ipad-3d-cta { font-size: 9px; }
}

/* --- ≤767px : Mobile homepage --- */
@media (max-width: 767px) {
  /* Hero */
  .hero { min-height: 100svh; }
  .hero-eyebrow { font-size: 8px; }
  .hero-title { font-size: clamp(2.4rem, 11vw, 3.4rem); }
  .hero-lead { font-size: 0.9rem; max-width: 100%; }
  .hero-ctas { flex-direction: column; align-items: stretch; gap: 12px; }

  /* Stats row */
  .stats-row { grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 32px 0; }
  .stat-cin-sep { display: none; }

  /* About / iPad */
  .ipad-3d-frame {
    transform: perspective(800px) rotateY(-4deg) rotateX(2deg);
    max-width: 100%;
  }
  .ipad-3d-frame:hover {
    transform: perspective(800px) rotateY(-2deg) rotateX(1deg);
  }
  .ipad-3d-sidebar { width: 80px; }
  .ipad-3d-kpi-val { font-size: 16px; }
  .ipad-3d-kpi-label { font-size: 6.5px; }
  .ipad-3d-kpis { gap: 6px; }
  .ipad-3d-kpi { padding: 8px 4px; }
  .ipad-3d-nav-item span { font-size: 9px; }
  .ipad-3d-title { font-size: 18px; }

  /* Hover cards — comportement original conservé, gap augmenté */
  .hover-cards-grid {
    grid-template-columns: 1fr;
    gap: 56px;
  }
  .hover-card {
    height: 320px;
  }

  /* Membership card */
  .membership-inner { grid-template-columns: 1fr; gap: 32px; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
}

/* ============================================================
   THE MOTOR HOUSE — Pages CSS v3
   Styles for all secondary pages
   ============================================================ */

/* --- Page Hero (shared) --- */
.page-hero {
  position: relative;
  padding: calc(var(--nav-height) + var(--space-20)) 0 var(--space-16);
  text-align: center;
  overflow: hidden;
}

.page-hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1px;
  height: 60px;
  background: linear-gradient(to top, transparent, var(--tmh-border-gold));
}


.page-hero h1 {
  margin-bottom: var(--space-4);
}

.page-hero h1 em {
  font-style: italic;
  color: var(--tmh-text);
  opacity: 0.85;
}

.page-hero p {
  color: var(--tmh-text);
  max-width: 560px;
  margin: 0 auto;
  font-weight: 300;
  line-height: 1.7;
}

/* --- Section subtitle — Système C — eyebrow au-dessus du H2 --- */
.section-subtitle {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 400;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--tmh-text);
  line-height: 1.4;
  margin: 0 0 14px 0;
  display: block;
}

/* --- Sticky Sub-Nav (Automotive Assets) --- */




.sub-nav-link {
  padding: var(--space-4) 0;
  font-size: var(--text-sm);
  color: var(--tmh-text);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: all var(--duration-normal) var(--ease-default);
}

.sub-nav-link:hover,
.sub-nav-link.active {
  color: var(--tmh-text);
  border-bottom-color: var(--tmh-gold);
}

/* --- Service Detail Cards (Douanes, Finance, Droit) --- */


.service-detail-card {
  padding: var(--space-8);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-xl);
  background: var(--glass-fill-1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: inset 0 1px 0 var(--glass-specular-dim), var(--shadow-card-sm);
  transition: all var(--duration-slow) var(--ease-luxury);
}

.service-detail-card:hover {
  border-color: var(--glass-border-strong);
  transform: translateY(-3px);
  box-shadow: inset 0 1px 0 var(--glass-specular-dim), var(--shadow-card-md);
}



.service-detail-card h3 {
  font-family: var(--font-body);
  font-weight: 500;
  margin-bottom: var(--space-3);
  letter-spacing: 0;
}

.service-detail-card > p {
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.7;
  margin-bottom: var(--space-5);
}




/* --- Service Stats Row --- */


.service-stat {
  text-align: center;
}

.service-stat-value {
  font-family: var(--font-mono);
  font-size: var(--text-3xl);
  font-weight: 600;
  color: var(--tmh-text);
  opacity: 0.85;
  margin-bottom: var(--space-1);
}


/* --- Process Steps (Douanes) --- */







/* --- Premium Accordion (Automotive Assets) --- */


.premium-accordion-item {
  /* background, border, border-radius, backdrop-filter → .tmh-card */
  overflow: hidden;
  transition: all var(--duration-normal) var(--ease-default);
}

.premium-accordion-item.open {
  border-color: var(--glass-border-strong);
  box-shadow: inset 0 1px 0 var(--glass-specular), var(--shadow-card-sm);
}

.premium-trigger {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-6);
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: background var(--duration-normal) var(--ease-default);
}

.premium-trigger:hover {
  background: var(--tmh-surface);
}




.premium-accordion-item.open .premium-trigger-icon {
  border-color: var(--tmh-border-gold);
  background: var(--tmh-gold-glow);
}

.premium-accordion-item.open .premium-trigger-icon svg {
  stroke: var(--tmh-gold);
}






.premium-accordion-item.open .premium-trigger-arrow {
  transform: rotate(180deg);
}


.premium-accordion-item.open .premium-body {
  max-height: 800px;
}










/* --- Vehicle Grid (Automotive) --- */


/* --- Split Section (Automotive) --- */


.split-section.reverse .split-content {
  order: 1;
}








/* --- Shared Page Elements (section intros, CTA, eyebrow) --- */
.eyebrow {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--tmh-text);
  margin-bottom: var(--space-4);
  font-weight: 400;
}

.section-intro {
  text-align: center;
  margin-bottom: var(--space-12);
}

.section-desc {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--tmh-text);
  max-width: 560px;
  margin: 0 auto;
  font-weight: 300;
  line-height: 1.78;
  letter-spacing: 0.005em;
}

.page-hero-content {
  position: relative;
  z-index: 1;
}

.hero-bg-glow {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: var(--tmh-gold);
  filter: blur(150px);
  opacity: 0.03;
  pointer-events: none;
}

.hero-subtitle {
  font-size: var(--text-lg);
  color: var(--tmh-text);
  font-weight: 300;
  line-height: 1.7;
}

hr.section-divider {
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tmh-border-gold), transparent);
  max-width: 600px;
  margin: 0 auto;
}

.page-section {
  /* semantic marker, inherits .section padding */
}

.section-cta {
  text-align: center;
  position: relative;
  overflow: hidden;
}


/* Footer minimal (auth/verification pages) */
.footer-minimal {
  border-top: 1px solid var(--tmh-border);
}

.footer-minimal .footer-bottom {
  padding-top: var(--space-4);
  border-top: none;
}

/* --- Spin keyframe for verification spinner --- */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* --- Responsive (768px+) --- */
@media (min-width: 768px) {
  .copro-grid {
    grid-template-columns: repeat(2, 1fr);
  }







  .dashboard-kpi {
    grid-template-columns: repeat(4, 1fr);
  }

  .quick-services {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {

}

/* ============================================================
   DP3 HERO — Immersive full-screen hero with photo background
   ============================================================ */










.dp3-hero-sub {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.75;
  max-width: 560px;
  margin-bottom: var(--space-8);
}


/* ============================================================
   DP JOURNEY — Parcours Douanier (Vertical Accordion)
   Bandes pleine largeur expand/collapse avec images de fond
   ============================================================ */

.dp-journey { padding: 120px 0; }

.dp-journey-header { text-align: center; margin-bottom: 56px; }
.dp-journey-header h2 {
  line-height: 1.1;
  margin-bottom: 12px;
}
.dp-journey-header h2 em { font-style: italic; color: var(--tmh-text); }

.dp-journey-header .section-subtitle {
  margin: 10px 0 0 0;
}

/* Stack container */
.dp-journey-stack {
  /* background, border, border-radius → .tmh-card */
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
}

/* Individual row */
.dp-journey-row {
  position: relative;
  height: 80px;
  overflow: hidden;
  cursor: pointer;
  border-bottom: 1px solid var(--glass-fill-hover);
  transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.dp-journey-row:last-child { border-bottom: none; }
.dp-journey-row.expanded { height: 420px; }

/* Dark gradient overlay */
.dp-journey-row::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,8,10,0.88) 0%, rgba(8,8,10,0.96) 100%);
  z-index: 1;
}
.dp-journey-row.expanded::before {
  background: linear-gradient(180deg, rgba(8,8,10,0.2) 0%, rgba(8,8,10,0.7) 50%, rgba(8,8,10,0.95) 100%);
}

/* Background image */
.dp-journey-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}

/* Collapsed header — horizontal bar */
.dp-journey-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  display: flex;
  align-items: center;
  padding: 0 36px;
  gap: 24px;
  z-index: 2;
  transition: opacity 0.3s;
}

.dp-journey-bar-num {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--tmh-text);
  opacity: 0.6;
  flex-shrink: 0;
  width: 28px;
}

.dp-journey-bar-title {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--tmh-text);
  flex: 1;
}

.dp-journey-bar-dur {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  color: var(--tmh-text);
  flex-shrink: 0;
}

.dp-journey-bar-arrow {
  width: 20px;
  height: 20px;
  stroke: var(--tmh-text-dim);
  transition: transform 0.4s, stroke 0.3s;
  flex-shrink: 0;
}
.dp-journey-row.expanded .dp-journey-bar-arrow { transform: rotate(180deg); stroke: var(--tmh-gold); }

/* Gold left accent when expanded — supprimé */
.dp-journey-row::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 100%;
  background: transparent;
  z-index: 3;
  transition: background 0.4s;
}
.dp-journey-row.expanded::after {
  background: transparent;
}

/* Expanded body */
.dp-journey-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 36px 36px;
  z-index: 2;
  opacity: 0;
  transition: opacity 0s;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 48px;
  align-items: end;
}

.dp-journey-row.expanded .dp-journey-body {
  opacity: 1;
  transition: opacity 0.45s 0.3s;
}

/* Body left — text */

.dp-journey-body-num {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tmh-text);
  opacity: 0.6;
  margin-bottom: 10px;
}

.dp-journey-body h3 {
  font-family: var(--font-body);
  font-weight: 600;
  margin-bottom: 6px;
  line-height: 1.25;
  color: var(--tmh-text);
}
.dp-journey-body h3 em { font-style: italic; color: var(--tmh-text); }

.dp-journey-body-dur {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  color: var(--tmh-text);
  margin-bottom: 14px;
}
.dp-journey-body-dur svg { width: 12px; height: 12px; stroke: rgba(184,188,198,0.45); }

.dp-journey-body p {
  font-family: var(--font-body);
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.75;
  max-width: 480px;
}

/* Body right — docs */
.dp-journey-body-right {
  align-self: end;
}

.dp-journey-docs-label {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tmh-text);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.dp-journey-docs-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(232,232,236,0.06);
}

.dp-journey-docs { display: flex; flex-wrap: wrap; gap: 8px; }

.dp-journey-doc-pill {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  padding: 7px 14px;
  border-radius: 100px;
  background: var(--tmh-gold-glow);
  border: 1px solid var(--tmh-border-gold);
  color: var(--tmh-text);
  white-space: nowrap;
  transition: border-color 0.3s, background 0.3s;
}
.dp-journey-doc-pill:hover {
  border-color: var(--glass-border-strong);
  background: var(--glass-fill-hover);
}

/* Responsive */
@media (max-width: 768px) {
  .dp-journey-row { height: 70px; }
  .dp-journey-row.expanded { height: auto; min-height: 500px; }
  .dp-journey-bar { padding: 0 20px; gap: 16px; }
  .dp-journey-body {
    grid-template-columns: 1fr;
    padding: 0 20px 28px;
    gap: 20px;
  }
  .dp-journey-bar-title { font-size: 0.95rem; }
}


/* ============================================================
   DP2 COUNTRIES — Jurisdiction cards with SVG flags
   ============================================================ */
.dp2-countries {
  padding: 120px 0;
}

.dp2-countries-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.dp2-country {
  /* background, border, border-radius, backdrop-filter → .tmh-card */
  position: relative;
  padding: var(--space-6);
  transition: border-color 0.3s var(--ease-luxury), transform 0.3s var(--ease-luxury), box-shadow 0.3s var(--ease-luxury);
  cursor: pointer;
}

.dp2-country:hover {
  border-color: var(--glass-border-strong);
  transform: scale(1.03);
  box-shadow: inset 0 1px 0 var(--glass-specular-dim), var(--shadow-card-md), 0 0 0 1px var(--tmh-gold-dim);
}

.dp2-country-header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.dp2-country-flag {
  width: 36px;
  height: 26px;
  border-radius: 3px;
  overflow: hidden;
  flex-shrink: 0;
}

.dp2-country-flag svg {
  width: 100%;
  height: 100%;
  display: block;
}

.dp2-country-header h3 {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-weight: 600;
  color: var(--tmh-text);
  margin: 0;
  line-height: 1.2;
}

.dp2-country-role {
  display: block;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tmh-text);
  margin-top: 2px;
}

.dp2-country-tva {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
}

.dp2-tva-value {
  font-family: var(--font-mono);
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--tmh-text);
  animation: tg-gold 3s ease-in-out infinite;
  line-height: 1;
}

.dp2-tva-label {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tmh-text);
}

.dp2-country-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  border-top: none;
  padding-top: var(--space-4);
  position: relative;
}
.dp2-country-body::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
}

.dp2-country-detail {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.5;
}

.dp2-country-detail svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.dp2-country-glow {
  display: none;
}


/* ============================================================
   DP RESOLUTION — Services compl&eacute;mentaires (avant/apr&egrave;s)
   ============================================================ */
.dp-resolution {
  padding: var(--space-32) 0;
}
.dp-resolution-header {
  margin-bottom: var(--space-16);
}
.dp-resolution-header h2 {
  line-height: 1.2;
  margin-bottom: 12px;
}
.dp-resolution-header .section-subtitle {
  margin: 10px 0 20px 0;
}

/* Resolution Cards v3 — Wow Edition */
.dp-res-stack { display: flex; flex-direction: column; gap: 24px; }

/* Card wrapper with border beam */
.res-card-wrap {
  position: relative;
  border-radius: 24px;
  padding: 1px;
  overflow: hidden;
}
@property --beam-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.res-card-wrap::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: 24px;
  background: conic-gradient(
    from var(--beam-angle),
    transparent 0%, transparent 35%,
    var(--beam-color, rgba(184,188,198,0.4)) 50%,
    transparent 65%, transparent 100%
  );
  animation: res-beam-spin 4s linear infinite;
  z-index: 0;
}
.res-card-wrap.service-card::before { --beam-color: var(--tmh-text); }
/* Problem cards: red beam left, green beam right */
.res-card-wrap.problem-card::before {
  background: conic-gradient(
    from var(--beam-angle),
    transparent 0%, transparent 44%,
    rgba(220,38,38,0.5) 50%,
    transparent 56%, transparent 100%
  );
  -webkit-mask-image: linear-gradient(to right, black 0%, black 35%, transparent 65%);
  mask-image: linear-gradient(to right, black 0%, black 35%, transparent 65%);
}
.res-card-wrap.problem-card::after {
  content: '';
  position: absolute; inset: 0;
  border-radius: 24px;
  background: conic-gradient(
    from var(--beam-angle),
    transparent 0%, transparent 44%,
    rgba(52,211,153,0.5) 50%,
    transparent 56%, transparent 100%
  );
  animation: res-beam-spin 4s linear infinite;
  z-index: 0;
  -webkit-mask-image: linear-gradient(to right, transparent 35%, black 65%, black 100%);
  mask-image: linear-gradient(to right, transparent 35%, black 65%, black 100%);
}
@keyframes res-beam-spin {
  from { --beam-angle: 0deg; }
  to { --beam-angle: 360deg; }
}

/* Inner card */
.res-card {
  /* background, border-radius → .tmh-card */
  position: relative;
  display: grid; grid-template-columns: 1fr 1fr;
  overflow: hidden;
  z-index: 1;
}

/* Problem side */




/* Solution side */



/* Service sides (gold) */
.res-service-left {
  padding: 40px 36px;
  position: relative; z-index: 3;
}
.res-service-left::before {
  content: '';
  position: absolute; top: -40px; left: -40px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(184,188,198,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.res-service-left::after {
  content: '';
  position: absolute; top: 32px; right: 0; bottom: 32px;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(232,232,236,0.08) 30%, rgba(232,232,236,0.08) 70%, transparent 100%);
}
.res-service-right { padding: 40px 36px; position: relative; z-index: 3; }

/* Icons */
.res-icon {
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px; position: relative;
}
.res-icon svg {
  width: 24px; height: 24px; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  position: relative; z-index: 1;
}
.res-icon.problem { /* background, border → .tmh-card */ }
.res-icon.problem svg { stroke: #DC2626; }
.res-icon.problem::after {
  content: ''; position: absolute; inset: -4px; border-radius: 20px;
  background: rgba(220,38,38,0.06);
  animation: res-icon-pulse-red 2.5s ease-in-out infinite;
}
@keyframes res-icon-pulse-red {
  0%, 100% { opacity: 0; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
}
.res-icon.solution { /* background, border → .tmh-card */ }
.res-icon.solution svg { stroke: #34D399; }
.res-icon.solution::after {
  content: ''; position: absolute; inset: -4px; border-radius: 20px;
  background: rgba(52,211,153,0.06);
  animation: res-icon-pulse-green 2.5s ease-in-out infinite;
}
@keyframes res-icon-pulse-green {
  0%, 100% { opacity: 0; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
}
.res-icon.service { /* background, border → .tmh-card */ }
.res-icon.service svg { stroke: var(--tmh-gold); }

/* Titles */
.res-title {
  font-family: var(--font-body);
  font-size: 1rem; font-weight: 600;
  letter-spacing: 0.10em; text-transform: uppercase;
  line-height: 1.3; margin-bottom: 14px;
}
.hl-red { color: #DC2626; }
.hl-green { color: #34D399; }
.hl-gold { color: var(--tmh-text); }
.res-desc {
  font-size: 0.82rem; color: var(--tmh-text);
  font-weight: 300; line-height: 1.65;
  margin-bottom: 24px;
}

/* Problem tags */







@keyframes res-dot-blink {
  0%, 100% { opacity: 0.4; box-shadow: 0 0 6px rgba(220,38,38,0.3); }
  50% { opacity: 1; box-shadow: 0 0 14px rgba(220,38,38,0.6); }
}

/* Solution checks */
.res-checks { display: flex; flex-direction: column; gap: 8px; }
.res-check {
  /* background, border, border-radius, backdrop-filter → .tmh-card */
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 18px;
  font-size: 0.82rem; color: var(--tmh-text);
  font-weight: 300; line-height: 1.4;
  transition: all 0.3s;
}
.res-check:hover {
  background: rgba(52,211,153,0.06);
  border-color: rgba(52,211,153,0.15);
  transform: translateX(4px);
}
.res-check-icon {
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(52,211,153,0.12);
  border: 1px solid rgba(52,211,153,0.2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.res-check-icon svg {
  width: 10px; height: 10px; stroke: #34D399;
  stroke-width: 3; fill: none;
  stroke-linecap: round; stroke-linejoin: round;
}

/* Stats */


@keyframes res-shimmer-gold {
  0% { background-position: 100% 0; }
  50% { background-position: 0% 0; }
  100% { background-position: 100% 0; }
}


/* Tarifs */
.res-tarifs { display: flex; flex-direction: column; gap: 10px; }
.res-tarif {
  /* background, border, border-radius → .tmh-card */
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px;
}
.res-tarif-name { font-size: 0.85rem; color: var(--tmh-text); }
.res-tarif-sub { font-size: 0.82rem; color: var(--tmh-text); margin-top: 3px; }
.res-tarif-price {
  font-family: var(--font-mono);
  font-size: 1.1rem; font-weight: 500;
  color: var(--tmh-text);
}

/* CTA link */
.res-cta {
  width: fit-content; align-self: flex-start;
  margin-top: 24px;
  font-size: 0.82rem;
  font-weight: 400;
  color: rgba(255,255,255,0.92);
  padding: 10px 22px;
  /* background, box-shadow → .tmh-btn (styles.css) */
  white-space: nowrap;
}
.res-cta:hover {
  /* background, box-shadow → .tmh-btn:hover (styles.css) */
}
.res-cta::after {
  content: '→';
  display: inline-block;
  margin-left: 8px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.res-cta:hover::after {
  transform: translateX(5px);
}
.res-cta svg { display: none; }

/* Crisis banner */









/* Card CG — Carte grise (amber timeline) */
.card-cg {
  /* background, border, border-radius → .tmh-card */
  display: grid; grid-template-columns: 1fr 1fr;
  overflow: hidden;
}

.card-cg-left {
  padding: 40px 36px; position: relative; z-index: 3;
}
.card-cg-left::before { display: none; }
.card-cg-left::after {
  content: ''; position: absolute; top: 32px; right: 0; bottom: 32px; width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(232,232,236,0.08) 30%, rgba(232,232,236,0.08) 70%, transparent 100%);
}
.card-cg-right { padding: 40px 36px; position: relative; z-index: 3; }

/* Icon amber */
.icon-amber {
  /* background, border → .tmh-card */
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px; position: relative;
}
.icon-amber svg { width: 24px; height: 24px; stroke: #E67E22; fill: none; }
.icon-amber::after {
  content: ''; position: absolute; inset: -4px; border-radius: 20px;
  background: rgba(230,126,34,0.06);
  animation: pulse-amber 2.5s ease-in-out infinite;
}
@keyframes pulse-amber { 0%, 100% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } }
.hl-amber { color: #E67E22; }

/* Icon green */
.icon-green {
  /* background, border → .tmh-card */
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px; position: relative;
}
.icon-green svg { width: 24px; height: 24px; stroke: #34D399; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.icon-green::after {
  content: ''; position: absolute; inset: -4px; border-radius: 20px;
  background: rgba(52,211,153,0.06);
  animation: pulse-green-cg 2.5s ease-in-out infinite;
}
@keyframes pulse-green-cg { 0%, 100% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } }

/* Status timeline */
.status-timeline { display: flex; flex-direction: column; gap: 0; position: relative; padding-left: 24px; }
.status-timeline::before {
  content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px;
  background: linear-gradient(180deg, #E67E22 0%, #E67E22 40%, #34D399 100%);
  border-radius: 2px; opacity: 0.4;
}
.status-step { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; position: relative; }
.status-dot {
  position: absolute; left: -24px; top: 14px;
  width: 16px; height: 16px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.status-dot.blocked {
  background: rgba(230,126,34,0.15); border: 2px solid #E67E22;
  box-shadow: 0 0 10px rgba(230,126,34,0.3);
}
.status-dot.blocked::after { content: ''; width: 4px; height: 4px; border-radius: 50%; background: #E67E22; }
.status-dot.resolved {
  background: rgba(52,211,153,0.15); border: 2px solid #34D399;
  box-shadow: 0 0 10px rgba(52,211,153,0.3);
}
.status-dot.resolved::after { content: ''; width: 4px; height: 4px; border-radius: 50%; background: #34D399; }
.status-label { font-size: 0.82rem; color: var(--tmh-text); font-weight: 300; line-height: 1.5; }
.status-label strong { font-weight: 500; }
.status-label .amber { color: #E67E22; }
.status-label .green { color: #34D399; }

/* Card TVA — fiscal (red/gold KPI) */
.card-tva {
  /* background, border, border-radius → .tmh-card */
  display: grid; grid-template-columns: 1fr 1fr;
  overflow: hidden;
}

.card-tva-left { padding: 40px 36px; position: relative; z-index: 3; }
.card-tva-left::before { display: none; }
.card-tva-left::after {
  content: ''; position: absolute; top: 32px; right: 0; bottom: 32px; width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(232,232,236,0.08) 30%, rgba(232,232,236,0.08) 70%, transparent 100%);
}
.card-tva-right { padding: 40px 36px; position: relative; z-index: 3; }

/* Icon red */
.icon-red {
  /* background, border → .tmh-card */
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px; position: relative;
}
.icon-red svg { width: 24px; height: 24px; stroke: #DC2626; fill: none; }
.icon-red::after {
  content: ''; position: absolute; inset: -4px; border-radius: 20px;
  background: rgba(220,38,38,0.06);
  animation: pulse-red-tva 2.5s ease-in-out infinite;
}
@keyframes pulse-red-tva { 0%, 100% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } }

/* Icon gold */
.icon-gold {
  /* background, border → .tmh-card */
  width: 52px; height: 52px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px;
}
.icon-gold svg { width: 24px; height: 24px; stroke: var(--tmh-gold); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* TVA cases mini dashboard */
.tva-cases { display: flex; flex-direction: column; gap: 8px; }
.tva-case {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; background: rgba(220,38,38,0.03);
  border: 1px solid rgba(220,38,38,0.08); border-radius: 12px;
  transition: all 0.3s;
}
.tva-case:hover { background: rgba(220,38,38,0.06); border-color: rgba(220,38,38,0.15); transform: translateX(4px); }
.tva-case-desc { flex: 1; font-size: 0.82rem; color: var(--tmh-text); font-weight: 300; }
.tva-case-amount { font-family: var(--font-mono); font-size: 0.82rem; font-weight: 500; text-decoration: line-through; color: rgba(220,38,38,0.6); }
.tva-case-arrow { font-size: 0.82rem; color: var(--tmh-text); }
.tva-case-result { font-family: var(--font-mono); font-size: 0.82rem; font-weight: 500; }
.tva-case-result.recovered { color: var(--tmh-text); }
.tva-case-result.cancelled { color: #34D399; }

/* KPI hero */
.kpi-hero {
  margin-bottom: 28px; padding: 28px; background: var(--tmh-bg-3);
  border: 1px solid rgba(232,232,236,0.06); border-radius: 16px;
  text-align: center; position: relative; overflow: hidden;
}
.kpi-hero::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(184,188,198,0.04) 0%, transparent 50%, rgba(184,188,198,0.04) 100%);
}
.kpi-hero-val {
  font-family: var(--font-mono); font-size: 2.5rem; font-weight: 500;
  color: var(--tmh-text);
  animation: kpi-shimmer 3s ease-in-out infinite;
  position: relative; z-index: 1;
}
@keyframes kpi-shimmer { 0% { background-position: 100% 0; } 50% { background-position: 0% 0; } 100% { background-position: 100% 0; } }
.kpi-hero-label {
  font-family: var(--font-mono); font-size: 0.82rem;
  color: var(--tmh-text); letter-spacing: 2px; text-transform: uppercase;
  margin-top: 6px; position: relative; z-index: 1;
}

/* Gold checks */
.gold-checks { display: flex; flex-direction: column; gap: 8px; }
.gold-check {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 18px; background: rgba(184,188,198,0.03);
  border: 1px solid rgba(184,188,198,0.08); border-radius: 12px;
  font-size: 0.82rem; color: var(--tmh-text); font-weight: 300; line-height: 1.4;
}
.gold-check-dot {
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(184,188,198,0.12); border: 1px solid rgba(184,188,198,0.2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.gold-check-dot svg { width: 10px; height: 10px; stroke: var(--tmh-gold); stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 768px) {
  .res-card { grid-template-columns: 1fr; }
   .res-service-left::after { display: none; }


  .card-cg, .card-tva { grid-template-columns: 1fr; }
  .card-cg-left::after, .card-tva-left::after { display: none; }
}


/* ============================================================
   DP ECOSYSTEM — Bridge cards
   ============================================================ */
.dp-ecosystem {
  padding: 80px 0;
}


.form-link {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--tmh-text);
  text-align: right;
  display: block;
  margin-top: calc(-1 * var(--space-3));
}


/* ============================================================
   Responsive — new components
   ============================================================ */
@media (min-width: 768px) {
  .dp2-countries-grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (min-width: 1024px) {
  .dp2-countries-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}


/* ═══════════════════════════════════════════════════════
   OPTION B — JURIDICTIONS SPLIT HEADER + TAMPON
   .dp2-b-*
═══════════════════════════════════════════════════════ */
.dp2-b-top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  margin-bottom: 48px;
  align-items: center;
}

@media (min-width: 1024px) {
  .dp2-b-top {
    grid-template-columns: 1fr auto;
    gap: 72px;
  }
}

.dp2-b-left h2 {
  line-height: 1.1;
  margin-bottom: 16px;
}

.dp2-b-left h2 em {
  font-style: italic;
  color: var(--tmh-text);
}

.dp2-b-left .section-subtitle {
  margin: 10px 0 24px 0;
  text-transform: none;
}

.dp2-b-left .section-desc {
  font-size: 17px;
  line-height: 1.75;
  color: var(--tmh-text);
  margin: 0 0 20px 0;
  padding-left: 0;
}

.dp2-trust-lines {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 28px;
  padding-left: 40px;
}

.dp2-trust-line {
  font-family: var(--font-body);
  font-size: 13.5px;
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.65;
}

.dp2-trust-line strong {
  font-weight: 500;
  color: var(--tmh-text);
  margin-right: 5px;
}

.dp2-oea-badge {
  /* background, border, border-radius → .tmh-pill */
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
}

.dp2-oea-badge span {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tmh-text);
}

.dp2-oea-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--tmh-gold);
  box-shadow: 0 0 5px var(--tmh-gold);
  animation: dp-blink 2s ease-in-out infinite;
  flex-shrink: 0;
}


.dp2-b-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.dp2-stamp-lg {
  width: 180px;
  height: 180px;
}

.dp2-stamp-lg svg {
  width: 180px;
  height: 180px;
}


/* Stamp seal */
.dp-stamp-seal {
  position: relative;
  width: 140px;
  height: 140px;
  cursor: pointer;
}

.dp-stamp-seal svg {
  width: 140px;
  height: 140px;
}

.dp-stamp-ring-outer {
  fill: none;
  stroke: var(--tmh-gold);
  stroke-width: 2;
  opacity: 0.4;
}


.dp-stamp-star-path {
  fill: rgba(184,188,198,0.12);
  stroke: var(--tmh-gold);
  stroke-width: 1.2;
  opacity: 0.5;
}

.dp-stamp-arc-text {
  font-family: var(--font-logo);
  font-size: 13px;
  fill: var(--tmh-gold);
  opacity: 0.85;
  letter-spacing: 0.25em;
}

.dp-stamp-oea-text {
  fill: var(--tmh-gold);
  font-family: var(--font-logo);
  font-size: 13px;
  font-weight: 700;
  text-anchor: middle;
  dominant-baseline: middle;
}

.dp-stamp-rotate-anim {
  animation: dp-stamp-idle-rotate 12s linear infinite;
  transform-origin: center center;
}

@keyframes dp-stamp-idle-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.dp-stamp-seal.stamping {
  animation: dp-stamp-press 0.4s cubic-bezier(0.16,1,0.3,1);
}

@keyframes dp-stamp-press {
  0%   { transform: scale(1.1) rotate(-3deg); filter: drop-shadow(0 0 0px rgba(184,188,198,0)); }
  30%  { transform: scale(0.9) rotate(1deg); }
  70%  { transform: scale(1.03) rotate(-0.5deg); filter: drop-shadow(0 0 16px rgba(184,188,198,0.5)); }
  100% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 8px rgba(184,188,198,0.2)); }
}

/* Stamp button */
.dp-stamp-btn {
  /* background, border, backdrop-filter, box-shadow → .tmh-btn */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.70);
  cursor: pointer;
  transition: background var(--duration-normal), box-shadow var(--duration-normal), color var(--duration-normal);
}

.dp-stamp-btn:hover {
  background: var(--glass-border);
  box-shadow: inset 0 0 0 1px var(--glass-border-strong);
  color: rgba(255, 255, 255, 0.92);
}

.dp-stamp-btn svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  opacity: 0.60;
  transition: opacity var(--duration-normal);
}

.dp-stamp-btn:hover svg {
  opacity: 1;
}

/* Stamp progress pips */


.dp-stamp-pip {
  width: 24px;
  height: 2px;
  border-radius: 1px;
  background: rgba(184,188,198,0.12);
  transition: background 400ms;
}

.dp-stamp-pip.done {
  background: var(--tmh-gold);
}

/* Stamp cards grid */
.dp-stamp-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: 100%;
}

.dp-stamp-card {
  /* background, border, border-radius → .tmh-card */
  padding: 14px 16px;
  opacity: 0;
  transform: translateY(12px) scale(0.97);
  transition: opacity 400ms ease, transform 400ms cubic-bezier(0.16,1,0.3,1), border-color 300ms;
  cursor: pointer;
}

.dp-stamp-card.stamped {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.dp-stamp-card:hover {
  border-color: var(--tmh-text);
  background: rgba(184,188,198,0.04);
}

.dp-stamp-card-status {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.dp-stamp-card-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--tmh-gold);
  opacity: 0;
  transition: opacity 300ms;
  box-shadow: 0 0 5px var(--tmh-gold);
}

.dp-stamp-card.stamped .dp-stamp-card-dot {
  opacity: 1;
}

.dp-stamp-card-status span {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tmh-text);
}

.dp-stamp-card-title {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: 3px;
}

.dp-stamp-card-desc {
  font-size: 0.82rem;
  color: var(--tmh-text);
  line-height: 1.5;
}

/* Pulse ring (shared) */


@keyframes hex-pulse {
  0%   { r: 28; stroke-opacity: 0.5; }
  60%  { r: 52; stroke-opacity: 0.12; }
  100% { r: 58; stroke-opacity: 0; }
}

/* Stamp hint text */
.dp-stamp-hint {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  color: var(--tmh-text);
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0 0 10px 0;
  animation: hint-blink 2.8s ease-in-out infinite;
}

.dp-stamp-hint svg {
  opacity: 0.7;
  stroke: rgba(184,188,198,0.6);
  flex-shrink: 0;
}

@keyframes hint-blink {
  0%, 100% { opacity: 0.55; }
  50%       { opacity: 1; }
}


/* ═══════════════════════════════════════════════════════
   SECTION TVA — DASHBOARD CAS RÉSOLUS
   .dp-tva-*
═══════════════════════════════════════════════════════ */
.dp-tva {
  padding: 120px 0;
}

.dp-tva-header {
  margin-bottom: 48px;
}

.dp-tva-header h2 {
  line-height: 1.1;
  margin-bottom: 16px;
}

.dp-tva-header h2 em {
  font-style: italic;
  color: var(--tmh-text);
}

.dp-tva-header .section-subtitle {
  margin: 10px 0 20px 0;
}

.dp-tva-header .section-desc {
  font-size: 17px;
  line-height: 1.75;
  color: var(--tmh-text);
  margin: 0 0 0 0;
  max-width: 640px;
}

/* Dashboard card */
.dp-tva-card {
  /* background, border, border-radius → .tmh-card */
  overflow: hidden;
}

.dp-tva-card-top {
  padding: 32px 32px 24px;
}

/* Filter chips */
.dp-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.dp-chip {
  padding: 6px 14px;
  border-radius: 100px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  background: var(--glass-edge);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: inset 0 0 0 1px var(--glass-fill-3);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: background 250ms, box-shadow 250ms, color 250ms;
}

.dp-chip.active,
.dp-chip:hover {
  background: var(--glass-fill-3);
  box-shadow: inset 0 0 0 1px var(--glass-specular);
  color: rgba(255, 255, 255, 0.92);
}

/* Table */
.dp-tva-table {
  border-top: 1px solid rgba(255,255,255,0.07);
}

.dp-tva-table-head {
  display: grid;
  grid-template-columns: 1fr 170px 140px;
  padding: 10px 32px;
  gap: 24px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tmh-text);
  border-bottom: 1px solid rgba(255,255,255,0.07);
}

.dp-tva-case {
  display: grid;
  grid-template-columns: 1fr 170px 140px;
  padding: 20px 32px;
  gap: 24px;
  align-items: center;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  cursor: pointer;
  transition: background 200ms, border-left-color 200ms;
  border-left: 2px solid transparent;
  position: relative;
}

.dp-tva-case:last-child {
  border-bottom: none;
}

.dp-tva-case:hover {
  background: rgba(184,188,198,0.04);
  border-left-color: var(--tmh-text);
}

.dp-tva-case.hidden {
  display: none;
}

/* Case type — micro-badge */
.dp-tva-case-type {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tmh-text);
  background: rgba(184,188,198,0.08);
  border: 1px solid rgba(184,188,198,0.15);
  border-radius: 3px;
  padding: 2px 7px;
  margin-bottom: 7px;
}

.dp-tva-case-label {
  font-size: 13.5px;
  font-weight: 400;
  color: var(--tmh-text);
  line-height: 1.4;
}

.dp-tva-case-sub {
  font-size: 0.82rem;
  color: var(--tmh-text);
  margin-top: 3px;
  line-height: 1.5;
}


/* Amount — color by value */
.dp-tva-amount {
  font-family: var(--font-mono);
  font-size: 21px;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
}

.dp-tva-amount.positive {
  color: #34D399;
  text-shadow: 0 0 12px rgba(52,211,153,0.25);
}

.dp-tva-amount.negative {
  color: #DC2626;
  text-shadow: 0 0 12px rgba(220,38,38,0.2);
}

.dp-tva-amount.neutral {
  color: var(--tmh-text);
}

/* Status — pill badge */
.dp-tva-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 12px 6px 10px;
  border-radius: 100px;
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.dp-tva-status:has(.dp-status-dot.green) {
  background: rgba(52,211,153,0.08);
  border: 1px solid rgba(52,211,153,0.2);
  color: #34D399;
}

.dp-tva-status:has(.dp-status-dot.gold) {
  background: rgba(230,126,34,0.08);
  border: 1px solid rgba(230,126,34,0.2);
  color: #E67E22;
}

.dp-status-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dp-status-dot.green {
  background: #34D399;
  box-shadow: 0 0 5px rgba(52,211,153,0.6);
}

.dp-status-dot.gold {
  background: #E67E22;
  box-shadow: 0 0 5px rgba(230,126,34,0.6);
  animation: dp-blink 1.5s ease-in-out infinite;
}

@keyframes dp-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.dp-tva-status span {
  font-size: 0.82rem;
  color: inherit;
}

/* Summary stats */
.dp-tva-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255,255,255,0.07);
}

.dp-tva-sum {
  padding: 24px 28px;
  border-right: 1px solid rgba(255,255,255,0.07);
}

.dp-tva-sum:last-child {
  border-right: none;
}

.dp-tva-sum-val {
  font-family: var(--font-mono);
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: 4px;
}

.dp-tva-sum-lbl {
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tmh-text);
  line-height: 1.5;
}

/* Responsive */
@media (max-width: 767px) {
  .dp-tva-table-head { display: none; }
  .dp-tva-case {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 20px;
  }
  .dp-tva-amount { text-align: left; font-size: 18px; }
  .dp-tva-card-top { padding: 24px 20px; }
  .dp-stamp-cards { grid-template-columns: 1fr; }
  .dp-tva-summary { grid-template-columns: 1fr; }
  .dp-tva-sum {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.07);
  }
  .dp-tva-sum:last-child { border-bottom: none; }
}


/* ============================================================
   FINANCE PAGE v2 — Immersive Fintech Redesign
   ============================================================ */

/* --- S1: Hero Canvas Graph + Live Dot --- */


@keyframes fp-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(52,211,153,0.4); }
  50% { opacity: 0.6; box-shadow: 0 0 0 6px rgba(52,211,153,0); }
}



/* --- S2: Orbiting Circles --- */
.fp-orbit-section {
  padding: 120px 0;
  overflow: hidden;
  position: relative;
}

.fp-orbit-section::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 700px;
  height: 700px;
  background: radial-gradient(circle, rgba(184,188,198,0.04) 0%, transparent 70%);
  pointer-events: none;
}

.fp-orbit-header {
  text-align: center;
  margin-bottom: 64px;
}

.fp-orbit-header h2 {
  line-height: 1.15;
  margin-bottom: 16px;
}

.fp-orbit-header h2 em { font-style: italic; color: var(--tmh-text); }

/* Stage: 580×580px — inner ring r=140, outer ring r=230 */


/* Central hub */


/* Ring paths — decorative dashed circles, spin slowly for visual life */




@keyframes fp-ring-spin-cw {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes fp-ring-spin-ccw {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(-360deg); }
}

/* ─── Nodes: orbit around hub centre ────────────────────────────────────────
   Technique: node positioned at stage centre (top:50%, left:50%, margin:-26px)
   then animated with rotate(θ)+translateY(-r).  The inner wrapper is animated
   with the exact opposite rotation so the label stays perfectly horizontal.
   Delay offsets the starting angle — no static transform needed.
   ────────────────────────────────────────────────────────────────────────── */


/* Pause orbit on hover */







/* ── Orbit keyframes ────────────────────────────────────────────────────────
   Inner ring (r=140): clockwise 30s
   Outer ring (r=230): counter-clockwise 50s
   Counter-rotation on .fp-orbit-node-inner cancels the node rotation,
   keeping the label at 0° (perfectly horizontal) at all times.
   ─────────────────────────────────────────────────────────────────────────── */
@keyframes fp-inner-cw  { from{transform:rotate(0deg)   translateY(-140px)} to{transform:rotate(360deg)  translateY(-140px)} }
@keyframes fp-inner-ccw { from{transform:rotate(0deg)}                        to{transform:rotate(-360deg)} }
@keyframes fp-outer-ccw { from{transform:rotate(0deg)   translateY(-230px)} to{transform:rotate(-360deg) translateY(-230px)} }
@keyframes fp-outer-cw  { from{transform:rotate(0deg)}                        to{transform:rotate(360deg)} }

/* ── Inner ring nodes: CW 30s ───────────────────────────────────────────────
   Starting angles: n1=0°, n2=120°, n3=240°
   Delay formula (CW): delay = −(angle/360) × 30s
   ─────────────────────────────────────────────────────────────────────────── */




/* Counter-rotation — same duration & delay as parent node */




/* ── Outer ring nodes: CCW 50s ──────────────────────────────────────────────
   Starting angles (CW from top): n4=60°, n5=180°, n6=300°
   Delay formula (CCW): delay = −((360−angle)/360) × 50s
   n4: −(300/360)×50 = −41.7s   n5: −(180/360)×50 = −25s   n6: −(60/360)×50 = −8.3s
   ─────────────────────────────────────────────────────────────────────────── */




/* Counter-rotation — same duration & delay as parent node */




/* Metrics bar */







/* --- S3: Expandable Columns / Pillars --- */
.fp-pillars {
  padding: 100px 0 120px;
  background: transparent;
}

.fp-pillars-header {
  margin-bottom: 48px;
}

.fp-pillars-header h2 {
  line-height: 1.15;
  margin-bottom: 16px;
}

.fp-pillars-header h2 em { font-style: italic; color: var(--tmh-text); }

.fp-pillars-cols {
  /* background, border, border-radius → .tmh-card */
  display: flex;
  gap: 2px;
  height: 520px;
  overflow: hidden;
}

.fp-pillar {
  flex: 1;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: flex 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.fp-pillar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(8,8,10,0.95) 0%, rgba(8,8,10,0.5) 50%, rgba(8,8,10,0.3) 100%);
  z-index: 1;
}

.fp-pillar-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.35) saturate(0.6);
  transition: transform 0.6s ease, filter 0.6s ease;
}

.fp-pillar:hover .fp-pillar-bg,
.fp-pillar.expanded .fp-pillar-bg {
  transform: scale(1.08);
  filter: brightness(0.45) saturate(0.8);
}

.fp-pillar-header {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  transition: opacity 0.3s;
}

.fp-pillar.expanded .fp-pillar-header { opacity: 0; }

.fp-pillar-header-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(232,232,236,0.06);
  border: 1px solid rgba(232,232,236,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}

.fp-pillar-header-icon svg {
  width: 18px;
  height: 18px;
  stroke: var(--tmh-text);
  fill: none;
  stroke-width: 1.5;
}

.fp-pillar-header-num {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
  color: var(--tmh-text);
}

.fp-pillar-header-name {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tmh-text);
  writing-mode: horizontal-tb;
  text-align: center;
}

.fp-pillar-body {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px 32px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s 0.15s, transform 0.4s 0.15s;
}

.fp-pillar.expanded .fp-pillar-body {
  opacity: 1;
  transform: translateY(0);
}

.fp-pillar.expanded { flex: 3; }

.fp-pillar.expanded::after {
  display: none;
}

.fp-pillar-body-label {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--tmh-text);
  margin-bottom: 8px;
}

.fp-pillar-body h3 {
  font-family: var(--font-body);
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: 12px;
}

.fp-pillar-body p {
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.6;
  color: var(--tmh-text);
  margin-bottom: 20px;
  max-width: 320px;
}

.fp-pillar-stats {
  display: flex;
  gap: 16px;
}

.fp-pillar-stat {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: var(--tmh-text);
  padding: 4px 10px;
  border-radius: 6px;
  /* background, border → .tmh-pill (styles.css) */
}


/* --- S5: Enhanced Comparison Table --- */
.fp-compare {
  padding: 100px 0 120px;
  background: transparent;
}

.fp-compare-header {
  margin-bottom: 48px;
}

.fp-compare-header h2 {
  line-height: 1.15;
  margin-bottom: 16px;
}

.fp-compare-header h2 em { font-style: italic; color: var(--tmh-text); }

.fp-compare-header .section-desc {
  font-size: 17px;
  line-height: 1.75;
  color: var(--tmh-text);
  max-width: 560px;
}

.fp-compare-table {
  /* background, border, border-radius → .tmh-card */
  overflow: hidden;
  max-width: 820px;
}

/* 1. Header — row intégré à la carte, sans background séparé */



/* 2. Colonne TMH — accent subtil */
.fp-compare-col-label.tmh {
  color: var(--tmh-text);
  background: rgba(184,188,198,0.05);
}

.fp-compare-col-label.bank {
  color: var(--tmh-text-muted);
}





/* Critère (1ère colonne) — texte normal */


/* 2. Colonne TMH — accent subtil + texte plus lisible */
.fp-compare-cell.tmh {
  color: var(--tmh-text);
  background: rgba(184,188,198,0.04);
}

/* 3. Icônes typées */




/* 5. Score row — séparateur net, pas de carte séparée */


/* 4. Score cells */



/* TMH score — lisible, dominant */
.fp-compare-score-cell.tmh {
  color: var(--tmh-text);
  background: rgba(184,188,198,0.04);
  font-size: 1.4rem;
}

/* Banque score — clairement perdante */
.fp-compare-score-cell.bank {
  color: var(--tmh-text-dim);
  text-decoration: line-through;
  font-size: 1rem;
}


/* --- S6: Currency Marquee Ticker --- */
.fp-ticker {
  padding: 56px 0;
  overflow: hidden;
  position: relative;
}

.fp-ticker-row {
  display: flex;
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent, black 80px, black calc(100% - 80px), transparent);
  mask-image: linear-gradient(to right, transparent, black 80px, black calc(100% - 80px), transparent);
}

.fp-ticker-row + .fp-ticker-row { margin-top: 24px; }

@keyframes fp-ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-1 * var(--set-width, 50%))); }
}

.fp-ticker-track {
  display: flex;
  width: max-content;
  gap: 40px;
  animation: fp-ticker-scroll 40s linear infinite;
  flex-shrink: 0;
  will-change: transform;
}

.fp-ticker-row:hover .fp-ticker-track {
  animation-play-state: paused;
}

.fp-ticker-rtl .fp-ticker-track {
  animation-direction: reverse;
  animation-duration: 50s;
}

.fp-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  border: none;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: var(--tmh-text);
  letter-spacing: 0.08em;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color 0.4s ease;
}

.fp-ticker-item:hover {
  color: var(--tmh-text);
}

.fp-ticker-flag {
  font-size: 1.1rem;
  opacity: 0.6;
  transition: opacity 0.4s ease;
}

.fp-ticker-item:hover .fp-ticker-flag {
  opacity: 1;
}

.fp-ticker-fade {
  display: none;
}


/* --- S8: Security Vault --- */
.fp-vault {
  padding: 120px 0;
  background: #000000;
  position: relative;
  overflow: hidden;
}

/* Couche 1 : image seule — brightness séparé du gradient pour ne pas l'affecter */
.fp-vault::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url('../assets/images/shield-security.jpg');
  background-size: 26% auto;
  background-position: 50% 66%;
  background-repeat: no-repeat;
}

/* Couche 2 : gradient seul — masque propre transparent → noir */
.fp-vault::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    radial-gradient(
      ellipse 20% 38% at 50% 66%,
      rgba(5,5,6,0) 0%,
      rgba(5,5,6,0) 50%,
      #050506 65%
    );
  background-size: auto;
  background-position: center;
}

/* Le container et tout son contenu doivent être au-dessus du ::after */
.fp-vault > .container {
  position: relative;
  z-index: 2;
}

.fp-vault-header {
  text-align: center;
  margin-bottom: 80px;
}

.fp-vault-header h2 {
  line-height: 1.15;
  margin-bottom: 16px;
}

.fp-vault-header h2 em { font-style: italic; color: var(--tmh-text); }

.fp-vault-layout {
  display: grid;
  /* Texte = priorité. Illustration discrète au centre (280px) */
  grid-template-columns: 1fr 280px 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}



.fp-vault-items {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.fp-vault-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.fp-vault-check {
  /* background, border → .tmh-card */
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fp-vault-check svg {
  width: 14px;
  height: 14px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-width: 2;
  stroke-dasharray: 20;
  stroke-dashoffset: 20;
  transition: stroke-dashoffset 0.8s ease;
}

.fp-vault.is-visible .fp-vault-check svg { stroke-dashoffset: 0; }
.fp-vault.is-visible .fp-vault-item:nth-child(2) .fp-vault-check svg { transition-delay: 0.3s; }
.fp-vault.is-visible .fp-vault-item:nth-child(3) .fp-vault-check svg { transition-delay: 0.6s; }

.fp-vault-item-text strong {
  display: block;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: 4px;
}

.fp-vault-item-text span {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 300;
  line-height: 1.5;
  color: var(--tmh-text);
}


/* --- Vault Visual (fp-vault-visual, rings, core) --- */

.fp-vault-visual-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.fp-vault-visual {
  position: relative;
  width: 200px;
  height: 200px;
}

@keyframes fp-vault-spin-slow {
  from { transform: translate(-50%,-50%) rotate(0); }
  to   { transform: translate(-50%,-50%) rotate(360deg); }
}
@keyframes fp-vault-spin-rev {
  from { transform: translate(-50%,-50%) rotate(0); }
  to   { transform: translate(-50%,-50%) rotate(-360deg); }
}

.fp-vault-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  border: 1px solid var(--tmh-border-gold);
}

.fp-vault-ring-1 {
  width: 200px;
  height: 200px;
  border-style: dashed;
  animation: fp-vault-spin-slow 20s linear infinite;
  animation-play-state: paused;
}

.fp-vault-ring-2 {
  width: 150px;
  height: 150px;
  border-color: rgba(176,180,190,0.25);
  animation: fp-vault-spin-rev 15s linear infinite;
  animation-play-state: paused;
}

.fp-vault.is-visible .fp-vault-ring-1,
.fp-vault.is-visible .fp-vault-ring-2 {
  animation-play-state: running;
}

.fp-vault-core {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--tmh-bg-3);
  border: 1px solid var(--tmh-border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.fp-vault-core svg {
  width: 28px;
  height: 28px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-width: 1.5;
}

/* --- S10: CTA Particles --- */






/* --- Finance Responsive --- */
@media (max-width: 1024px) {
  /* Scale orbit stage down — animations stay intact, only visual size changes */

  .fp-vault-layout { grid-template-columns: 1fr; gap: 48px; justify-items: center; }
  .fp-vault-items { flex-direction: row; flex-wrap: wrap; gap: 24px; }
}

@media (max-width: 768px) {
  /* Switch orbit to a 3×2 card grid — no positioning needed */






  .fp-pillars-cols {
    flex-direction: column;
    height: auto;
  }
  .fp-pillar {
    flex: none;
    height: 80px;
    transition: height 0.5s ease;
  }
  .fp-pillar.expanded {
    height: 360px;
    flex: none;
  }
  .fp-pillar-header {
    flex-direction: row;
    bottom: auto;
    top: 50%;
    transform: translateY(-50%);
    padding: 0 20px;
  }
  .fp-pillar.expanded .fp-pillar-header { opacity: 0; }
  .fp-pillar-body { padding: 24px 20px; }

  .fp-flow-pipe { flex-direction: column; gap: 24px; padding: 0; }
  .fp-flow-line {
    top: 40px; bottom: 40px; left: 50%; right: auto;
    width: 2px; height: auto;
    transform: translateX(-50%);
  }
  .fp-flow-cards { grid-template-columns: 1fr; }



  .fp-vault-items { flex-direction: column; }
}

@media (max-width: 480px) {


}


/* ============================================================
   FINANCE — Process Hybrid (Steps + Beam Flow)
   ============================================================ */

.fph-process {
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}

.fph-process::before {
  content: '';
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 900px;
  height: 600px;
  background: radial-gradient(ellipse, rgba(184,188,198,0.025) 0%, transparent 70%);
  pointer-events: none;
}

.fph-header {
  text-align: center;
  margin-bottom: 80px;
}

.fph-header h2 {
  line-height: 1.15;
  margin-bottom: 16px;
}

.fph-header h2 em { font-style: italic; color: var(--tmh-text); }

.fph-header > p {
  font-weight: 300;
  line-height: 1.75;
  color: var(--tmh-text);
  max-width: 600px;
  margin: 0 auto;
}

/* --- Steps row --- */
.fph-steps {
  display: flex;
  align-items: flex-start;
  position: relative;
  margin-bottom: 100px;
  padding: 0 20px;
}

.fph-steps-line {
  position: absolute;
  top: 23px;
  left: calc(12.5% + 24px);
  right: calc(12.5% + 24px);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(240,240,244,0.12) 15%,
    rgba(240,240,244,0.22) 50%,
    rgba(240,240,244,0.12) 85%,
    transparent 100%
  );
  overflow: hidden;
}

.fph-steps-beam {
  position: absolute;
  top: 0;
  left: -120px;
  height: 1px;
  width: 120px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(240,240,244,0.2) 20%,
    rgba(255,255,255,0.85) 50%,
    rgba(240,240,244,0.2) 80%,
    transparent 100%
  );
  box-shadow: 0 0 8px 1px rgba(240,240,244,0.35);
  opacity: 0;
  animation: fph-beam-travel 3.5s ease-in-out infinite;
}

@keyframes fph-beam-travel {
  0%   { left: -120px; opacity: 0; }
  8%   { opacity: 1; }
  92%  { opacity: 1; }
  100% { left: 100%; opacity: 0; }
}

.fph-step {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 2;
}

.fph-step-dot {
  /* background, border → .tmh-card */
  width: 48px;
  height: 48px;
  margin: 0 auto 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.4s, box-shadow 0.4s, transform 0.4s;
}

.fph-step:hover .fph-step-dot {
  border-color: var(--tmh-text);
  box-shadow: 0 0 24px rgba(184,188,198,0.1);
  transform: scale(1.1);
}

.fph-step-dot svg {
  width: 18px;
  height: 18px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fph-step-num {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
  color: var(--tmh-text);
  margin-bottom: 8px;
}

.fph-step h4 {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: 8px;
}

.fph-step p {
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.55;
  color: var(--tmh-text);
  max-width: 200px;
  margin: 0 auto;
}

/* --- Divider --- */
.fph-divider {
  text-align: center;
  margin-bottom: 64px;
}

.fph-divider-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(180deg, transparent, rgba(184,188,198,0.28), transparent);
  margin: 0 auto 20px;
}

.fph-divider span {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tmh-text);
}

/* --- Beam Flow --- */
.fph-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 120px;
  position: relative;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

.fph-col {
  flex: 0 0 280px;
  width: 280px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Colonne droite : même largeur, même sens de lecture que gauche */
.fph-col-right {
  flex: 0 0 280px;
  width: 280px;
  align-items: stretch;
}

.fph-col-label {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tmh-text);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  line-height: 1.4;
}

.fph-col-label-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--tmh-gold);
}

.fph-col-right .fph-col-label { justify-content: flex-start; }

.fph-node {
  /* background, border, border-radius → .tmh-card */
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  transition: all 0.35s;
  cursor: default;
  position: relative;
}

.fph-node:hover {
  border-color: rgba(184,188,198,0.28);
  background: rgba(184,188,198,0.04);
  box-shadow: 0 4px 24px rgba(184,188,198,0.04);
  transform: translateX(6px);
}

.fph-col-right .fph-node {
  flex-direction: row;
  text-align: left;
}

.fph-col-right .fph-node:hover {
  transform: translateX(-6px);
}

.fph-node-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  flex-shrink: 0;
  background: rgba(184,188,198,0.05);
  border: 1px solid rgba(184,188,198,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}

.fph-node-icon svg {
  width: 15px;
  height: 15px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fph-node-name {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--tmh-text);
}

.fph-node-sub {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: var(--tmh-text);
  letter-spacing: 0.1em;
}

/* Connector beams — drawn dynamically via JS SVG overlay */

.fph-col, .fph-center { position: relative; z-index: 1; }

/* Central hub */
.fph-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.fph-hub {
  /* background, border → .tmh-card */
  width: 150px;
  height: 150px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  position: relative;
  z-index: 2;
}

.fph-hub::before {
  content: '';
  position: absolute;
  inset: -14px;
  border-radius: 50%;
  border: 1px solid rgba(184,188,198,0.06);
  animation: fph-hub-pulse 3s ease-in-out infinite;
}

@keyframes fph-hub-pulse {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0; }
}

.fph-hub::after {
  content: '';
  position: absolute;
  inset: -7px;
  border-radius: 50%;
  border: 1px dashed rgba(184,188,198,0.12);
  animation: fph-hub-spin 20s linear infinite;
}

@keyframes fph-hub-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }

.fph-hub-logo {
  font-family: var(--font-logo);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
  color: var(--tmh-text);
}

.fph-hub-sub {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tmh-text);
}



/* Stats summary */
.fph-summary {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin-top: 80px;
  padding-top: 40px;
  border-top: 1px solid var(--tmh-border);
}

.fph-sum { text-align: center; }

.fph-sum-val {
  font-family: var(--font-mono);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--tmh-text);
}

.fph-sum-lbl {
  font-family: var(--font-body);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tmh-text);
  margin-top: 4px;
}

/* --- Process Hybrid Responsive --- */
@media (max-width: 1280px) {
  .fph-flow { gap: 80px; }
  .fph-col, .fph-col-right { flex: 0 0 240px; width: 240px; }
}

@media (max-width: 900px) {
  .fph-steps {
    flex-direction: column;
    gap: 28px;
    align-items: center;
  }
  .fph-steps-line { display: none; }
  .fph-step { max-width: 300px; text-align: center; }

  /* Mobile: layout vertical simple */
  .fph-flow {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    max-width: 480px;
  }
  .fph-col, .fph-col-right { flex: none; width: 100%; }
  .fph-col-right { align-items: stretch; }
  .fph-col-right .fph-node {
    flex-direction: row;
    text-align: left;
    border-left: 2px solid rgba(184,188,198,0.15);
    border-right: 1px solid rgba(232,232,236,0.05);
  }
  .fph-col-right .fph-col-label { justify-content: flex-start; }
  .fph-node-sub { display: none; }
  .fph-node { padding: 10px 14px; }
  .fph-node-icon { width: 30px; height: 30px; }
  .fph-node-icon svg { width: 12px; height: 12px; }

  /* Hub centré entre les deux blocs */
  .fph-center {
    order: 0;
    padding: 24px 0;
    align-items: center;
    border-top: 1px solid rgba(232,232,236,0.06);
    border-bottom: 1px solid rgba(232,232,236,0.06);
    margin: 4px 0;
  }
  .fph-hub { width: 90px; height: 90px; }


  /* Label Sorties avec séparateur clair */
  .fph-col-right { padding-top: 12px; }
  .fph-col-label { font-size: 0.82rem; }

}


/* ====================================================================
   DROIT — PAGE STYLES
   ==================================================================== */

/* ── Hero ─────────────────────────────────────────────────────────── */


/* ── S2 Manifeste ─────────────────────────────────────────────────── */
.dr-manifeste-section {
  border-bottom: none;
}
.dr-manifeste-editorial {
  max-width: 820px;
}




.dr-manifeste-quote {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  line-height: 1.55;
  color: var(--tmh-text);
  margin-bottom: 20px;
}


/* ── S3 Piliers ───────────────────────────────────────────────────── */
.dr-pillars-header {
  text-align: center;
  margin-bottom: 64px;
}
.dr-pillars-header .section-desc {
  max-width: 560px;
  margin: 16px auto 0;
}
.dr-pillars-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* Card */
.dr-pillar-card {
  position: relative;
  /* background/border/border-radius → .tmh-card */
  padding: 40px;
  overflow: hidden;
  cursor: default;
  transition: border-color 0.3s, transform 0.3s var(--ease-luxury);
}
.dr-pillar-card:hover {
  transform: translateY(-4px);
}
/* Magic spotlight layer */

/* Gold top accent line on hover */
.dr-pillar-top-line {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 1;
}
.dr-pillar-card:hover .dr-pillar-top-line { opacity: 1; }
/* Stack children above layers */
.dr-pillar-card > *:not(.dr-pillar-spotlight):not(.dr-pillar-top-line) {
  position: relative;
  z-index: 2;
}

.dr-pillar-num {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: var(--tmh-text);
  letter-spacing: 0.15em;
  opacity: 0.7;
  margin-bottom: 18px;
}
.dr-pillar-icon {
  width: 48px;
  height: 48px;
  /* background/border/border-radius → .tmh-card */
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
  transition: background 0.3s, border-color 0.3s;
}
.dr-pillar-card:hover .dr-pillar-icon {
  background: rgba(184,188,198,0.13);
  border-color: var(--tmh-text);
}
.dr-pillar-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dr-pillar-card h3 {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: 6px;
}
.dr-pillar-sub {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--tmh-text);
  opacity: 1;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 500;
  margin-bottom: 16px;
}
.dr-pillar-desc {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  line-height: 1.78;
  color: var(--tmh-text);
  font-weight: 300;
  margin-bottom: 22px;
}
.dr-pillar-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 26px;
}
.dr-pillar-pills span {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tmh-text);
  /* background/border/border-radius → .tmh-pill */
  padding: 4px 11px;
}







/* ── S4 Processus ─────────────────────────────────────────────────── */
.dr-process-section {
  background: #000000;
}
.dr-process-header {
  text-align: center;
  margin-bottom: 72px;
}
.dr-process-header .section-desc {
  max-width: 480px;
  margin: 16px auto 0;
}
.dr-process-track {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
}
/* Horizontal connector line */
.dr-process-connector {
  position: absolute;
  top: 26px;
  left: calc(100% / 6);
  right: calc(100% / 6);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(240,240,244,0.12) 15%,
    rgba(240,240,244,0.22) 50%,
    rgba(240,240,244,0.12) 85%,
    transparent 100%
  );
  pointer-events: none;
  overflow: hidden;
}
.dr-process-beam {
  position: absolute;
  top: 0;
  left: -120px;
  height: 1px;
  width: 120px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(240,240,244,0.2) 20%,
    rgba(255,255,255,0.85) 50%,
    rgba(240,240,244,0.2) 80%,
    transparent 100%
  );
  box-shadow: 0 0 8px 1px rgba(240,240,244,0.35);
  opacity: 0;
  animation: dr-beam-travel 3.5s ease-in-out infinite;
}
@keyframes dr-beam-travel {
  0%   { left: -120px; opacity: 0; }
  8%   { opacity: 1; }
  92%  { opacity: 1; }
  100% { left: 100%; opacity: 0; }
}
.dr-process-step {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dr-step-badge {
  /* background/border/border-radius → .tmh-card */
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 28px;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.dr-step-badge svg {
  width: 20px;
  height: 20px;
  stroke: var(--tmh-text);
  stroke-width: 1.5;
  fill: none;
}
.dr-step-card {
  text-align: center;
}
.dr-step-icon {
  width: 54px;
  height: 54px;
  /* background/border/border-radius → .tmh-card */
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
}
.dr-step-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dr-step-card h3 {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-weight: 600;
  color: var(--tmh-text);
  margin-bottom: 12px;
}
.dr-step-card p {
  font-family: var(--font-body);
  line-height: 1.78;
  color: var(--tmh-text);
  font-weight: 300;
  margin-bottom: 20px;
}

.dr-step-doc {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 13px;
  /* background/border/border-radius → .tmh-card */
  gap: 10px;
  text-align: left;
}



/* ── S5 Juridictions ──────────────────────────────────────────────── */
/* Trust lines */






/* ── S7 Vault / Protection client ─────────────────────────────────── */
.dr-vault-section {
  background: #000000;
}
.dr-vault-header {
  text-align: center;
  margin-bottom: 56px;
}
.dr-vault-header .section-desc {
  max-width: 500px;
  margin: 16px auto 0;
}
.dr-vault-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.dr-vault-card {
  /* background/border/border-radius → .tmh-card */
  padding: 30px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color 0.3s, transform 0.3s var(--ease-luxury);
}
.dr-vault-card:hover {
  transform: translateY(-3px);
}
.dr-vault-icon {
  width: 44px;
  height: 44px;
  /* background/border/border-radius → .tmh-card */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dr-vault-icon svg {
  width: 19px;
  height: 19px;
  stroke: var(--tmh-gold);
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dr-vault-card h4 {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-weight: 600;
  color: var(--tmh-text);
  margin: 0;
  text-align: center;
}
.dr-vault-card p {
  font-family: var(--font-body);
  line-height: 1.72;
  color: var(--tmh-text);
  font-weight: 300;
  margin: 0;
  flex: 1;
}
.dr-vault-badge {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tmh-text);
  /* background/border/border-radius → .tmh-pill */
  padding: 4px 11px;
  align-self: flex-start;
}

/* ── Responsive droit ─────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .dr-vault-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
}

@media (max-width: 960px) {
  .dr-pillars-grid { grid-template-columns: 1fr; gap: 16px; }
  .dr-process-track { grid-template-columns: 1fr; gap: 40px; }
  .dr-process-connector { display: none; }
  .dr-process-step { flex-direction: row; align-items: flex-start; gap: 20px; }
  .dr-step-badge { margin-bottom: 0; flex-shrink: 0; }
  .dr-step-card { text-align: left; }
  .dr-step-icon { margin: 0 0 14px; }


}

@media (max-width: 768px) {
  .dr-vault-grid { grid-template-columns: 1fr; gap: 12px; }
  .dr-pillar-card { padding: 28px 22px; }


  .dr-process-step { flex-direction: column; align-items: flex-start; }
  .dr-step-badge { margin-bottom: 16px; }
  .dr-step-card { text-align: left; }
}

/* ============================================================
   LEASING — Immersive Split Card (Option C)
   ============================================================ */

.leasing-immersive { margin-bottom: 16px; }

.leasing-immersive-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid rgba(184,188,198,0.14);
  border-radius: 20px;
  overflow: hidden;
  min-height: 600px;
  position: relative;
  box-shadow: 0 40px 80px rgba(0,0,0,0.5), inset 0 1px 0 rgba(184,188,198,0.12);
}

/* Image plein-cadre — couvre toute la carte derrière les deux colonnes */
.leasing-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  z-index: 0;
  transform: scaleX(-1);
}

/* Colonne gauche — transparente, l'image est visible dessous */
.leasing-immersive-left {
  position: relative;
  z-index: 1;
}
.leasing-immersive-left-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 32px;
  background: linear-gradient(0deg, rgba(8,8,10,0.95) 0%, rgba(8,8,10,0.4) 60%, transparent 100%);
}
.leasing-immersive-badge {
  /* background, border → .tmh-pill */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: var(--tmh-text);
  letter-spacing: 1px;
  margin-bottom: 12px;
}

/* Colonne droite — panneau glass posé sur l'image */
.leasing-immersive-right {
  position: relative;
  z-index: 1;
  padding: 40px 44px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: rgba(46, 46, 54, 0.74);
  backdrop-filter: blur(8px) saturate(160%);
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  border-radius: 0 20px 20px 0;
  border: none;
  box-shadow: none;
}

/* KPIs */
.leasing-kpi-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.leasing-kpi {
  flex: 1;
  text-align: center;
  padding: 20px 12px;
  border-radius: 12px;
}

.leasing-kpi-val {
  font-family: var(--font-mono);
  font-size: 2rem;
  font-weight: 400;
  color: var(--tmh-text);
  line-height: 1;
  margin-bottom: 6px;
}
.leasing-kpi-label {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--tmh-text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Séparateur KPIs → Features */
.leasing-kpi-features-sep {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
}

/* Features list */
.leasing-features {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.leasing-feature {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  white-space: nowrap;
}
.leasing-feature-icon {
  width: 36px; height: 36px;
  border-radius: 9px;
  background: rgba(232,232,236,0.06);
  border: 1px solid rgba(232,232,236,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.leasing-feature-text { flex: 1; }
.leasing-feature-title {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: 2px;
}
.leasing-feature-desc {
  font-size: 0.82rem;
  color: var(--tmh-text-muted);
  font-weight: 300;
}

/* Price line */
.leasing-price-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-radius: 12px;
}

/* Co-propriété table panel — hérite de .tmh-card */
.cp-table-panel {
  padding: 32px 36px;
}

/* Fleet car card */
.cp-fleet-car {
  overflow: hidden;
}

/* Fleet car card info */
.cp-fleet-car-info {
  padding: 14px 16px 16px;
}
.cp-fleet-car-name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--tmh-text);
  margin-bottom: 10px;
  letter-spacing: 0.01em;
}
.cp-fleet-car-tags {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 10px;
  padding-top: 2px;
  border-top: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent) 1;
}
.cp-fleet-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 10px 6px;
  background: none;
  border: none;
  border-radius: 0;
  position: relative;
}
.cp-fleet-tag + .cp-fleet-tag::before {
  content: '';
  position: absolute;
  left: 0;
  top: 15%;
  height: 70%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(184,188,198,0.28), transparent);
}
.cp-fleet-tag-val {
  font-family: var(--font-mono);
  font-size: 1rem;
  color: var(--tmh-gold-light);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.cp-fleet-tag-label {
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 400;
  color: var(--tmh-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-align: center;
}


/* Detailing image cards */
.aa-det-prot-card {
  /* background, border, border-radius → .tmh-card */
  overflow: hidden;
}

/* Leasing CTA bar */
.leasing-cta {
  /* background, border, border-radius → .tmh-card */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 28px;
  margin-top: 24px;
}
.leasing-cta-text strong {
  display: block;
  font-family: var(--font-body);
  font-weight: 500;
  margin-bottom: 2px;
  color: var(--tmh-text);
}
.leasing-cta-text span {
  font-size: 0.82rem;
  color: var(--tmh-text-muted);
}

/* Vehicle selector thumbnails */
.leasing-selector {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.leasing-thumb {
  flex: 1;
  padding: 14px 16px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 12px;
}
.leasing-thumb:hover {
  border-color: var(--tmh-border-gold);
  background: var(--glass-fill-2);
}
.leasing-thumb.active {
  border-color: var(--tmh-border-gold);
  background: var(--glass-fill-2);
  box-shadow: 0 0 0 1px var(--tmh-gold-dim);
}
.leasing-thumb-img {
  width: 56px; height: 40px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.leasing-thumb-img img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.leasing-thumb-name {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.leasing-thumb-price {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 2px;
  color: var(--tmh-text);
}

/* Responsive */
@media (max-width: 768px) {
  .leasing-immersive-inner {
    grid-template-columns: 1fr;
  }
  .leasing-immersive-left {
    height: 280px;
  }
  /* Mobile : fondu bas sur la partie gauche (image → glass column) */
  .leasing-immersive-left-overlay {
    background: linear-gradient(0deg, rgba(8,8,10,0.98) 0%, rgba(8,8,10,0.5) 65%, transparent 100%);
  }
  .leasing-immersive-right {
    padding: 28px 24px;
    border-radius: 0 0 20px 20px;
    /* Mobile : pas de mask — glass plein opaque */
  }
  .leasing-feature {
    white-space: normal;
  }
  .leasing-selector {
    flex-direction: column;
  }

  /* Fix overflow res-card sur mobile */
  .res-service-left,
  .res-service-right {
    padding: 28px 20px;
  }
  .res-cta {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    white-space: normal;
    text-align: center;
    justify-content: center;
    padding: 12px 16px;
  }

  .leasing-kpi-row {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .cp-fleet-car-tags {
    grid-template-columns: repeat(2, 1fr);
  }
  .cp-fleet-tag:nth-child(3) {
    grid-column: 1 / -1;
  }
  .cp-fleet-tag:nth-child(3)::before {
    display: none;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   DROIT — Corrections typographiques
   ═══════════════════════════════════════════════════════════════════ */

/* Fix — Centrage labels dans headers centrés */
.dr-pillars-header .text-label,
.dr-process-header .text-label,
.dr-vault-header .text-label{
  justify-content: center;
}

/* Fix — H2 sections : browser default = 24px, on force la hiérarchie */
.dr-pillars-header h2,
.dr-process-header h2,
.dr-vault-header h2 {
  line-height: 1.12;
}

/* Fix — H3 uniformité : step cards (1.1rem) alignées sur pillar cards (1.25rem) */
.dr-step-card h3 {
}

/* Fix — Couleurs corps de texte : var(--tmh-text-muted) non défini → blanc pur
   On remplace par la valeur explicite warm off-white rgba(232,232,236,0.65) */
.dr-pillar-desc,
.dr-step-card p,
.dr-vault-card p {
  color: var(--tmh-text);
}

/* ═══════════════════════════════════════════════════════════════════
   FINANCE — Corrections typographiques
   ═══════════════════════════════════════════════════════════════════ */

/* Fix — text-label : .fp-compare-header manquait justify-content:center */
.fp-compare-header .text-label {
  justify-content: center;
}


/* ═══════════════════════════════════════════════════════════════════
   ACTUALITÉS — Page & composants homepage teaser
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero featured article ──────────────────────────────────────── */
.actu-hero {
  position: relative;
  overflow: hidden;
  padding: 120px 0 80px;
}
.actu-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.actu-category-badge {
  display: inline-block;
  font-family: var(--font-logo);
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--tmh-text);
  border: 1px solid rgba(184,188,198,0.3);
  border-radius: 3px;
  padding: 4px 12px;
  margin-bottom: 24px;
}
.actu-hero-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 2.8vw, 3rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0.04em;
  text-transform: none;
  margin-bottom: 24px;
}
.actu-hero-title em {
  font-style: italic;
  color: var(--tmh-text);
}
.actu-hero-excerpt {
  font-size: 15px;
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.85;
  margin-bottom: 20px;
  max-width: 520px;
}
.actu-hero-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: var(--tmh-text);
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.actu-hero-meta-sep {
  width: 1px;
  height: 12px;
  background: var(--tmh-text-dim);
  opacity: 0.4;
}
.actu-hero-right {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.actu-hero-btn-wrap {
  display: flex;
  justify-content: center;
}
.actu-hero-img {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--tmh-border);
}
.actu-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
  filter: brightness(0.85) saturate(0.9);
  transition: transform 6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.actu-hero-img:hover img { transform: scale(1.04); }
.actu-hero-img::after {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(184,188,198,0.15);
  border-radius: 4px;
  pointer-events: none;
}

/* ── Filter bar ─────────────────────────────────────────────────── */
.actu-grid-section {
  padding: 0 0 80px;
}
.actu-filter-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.actu-filter-pill {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--tmh-text);
  background: transparent;
  padding: 7px 18px;
  cursor: pointer;
}
.actu-filter-pill:hover {
  color: var(--tmh-text);
  border-color: var(--tmh-text);
}
.actu-filter-pill.active {
  color: var(--tmh-text);
  border-color: var(--tmh-text);
  /* background → .tmh-pill (styles.css) */
}

/* ── Articles grid ──────────────────────────────────────────────── */
.actu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 900px) {
  .actu-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .actu-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .actu-grid { grid-template-columns: 1fr; }
}

/* ── Article cards — Glass V4 ───────────────────────────────────── */
.actu-card {
  /* background, border, border-radius, backdrop-filter, box-shadow, transition → .tmh-card */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  position: relative;
}
/* actu-card::before → .tmh-card::before (styles.css) */
.actu-card:hover {
  /* background, border-color, box-shadow → .tmh-card:hover */
  transform: translateY(-3px);
}
.actu-card-img-wrap {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  flex-shrink: 0;
}
.actu-card-img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 70%;
  transition: transform 0.6s var(--ease-luxury);
}
.actu-card:hover .actu-card-img-wrap img { transform: scale(1.05); }

.actu-card-cat {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  padding: 0.2rem 0.6rem;
  /* border-radius/background/border → .tmh-pill */
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  color: var(--tmh-text);
}
.actu-card-cat.media { border-color: rgba(74,144,184,0.55); color: var(--tmh-blue); }
.actu-card-cat.reglementaire { border-color: rgba(100,170,140,0.5); color: rgba(120,185,155,0.9); }

.actu-card-body {
  padding: var(--space-6);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.actu-card-title {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--tmh-text);
  margin: 0;
  transition: color 0.2s;
}
.actu-card:hover .actu-card-title { color: var(--tmh-text); }
.actu-card-excerpt {
  font-family: var(--font-body);
  font-size: 0.83rem;
  line-height: 1.65;
  color: var(--tmh-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.actu-card-meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 2px;
  color: var(--tmh-text);
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px solid var(--tmh-border);
}
.actu-card-lines {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: var(--space-3);
}
.actu-card-lines span {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-body);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  color: var(--tmh-text-dim);
}
.actu-card-lines span::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--status-green);
  flex: 0 0 auto;
}


/* ── Homepage teaser ────────────────────────────────────────────── */
.actu-teaser-section {
  padding: var(--space-32) 0;
  background: transparent;
  position: relative;
}
.actu-teaser-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--space-10);
  gap: var(--space-6);
}
.actu-teaser-heading {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 var(--space-2);
}
.actu-teaser-sub {
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--tmh-text);
  margin: 0;
}
.actu-teaser-cta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--tmh-text);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: gap 0.2s;
}
.actu-teaser-cta:hover { gap: var(--space-3); }
.actu-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

/* ── Responsive actualités ──────────────────────────────────────── */
@media (max-width: 1024px) {
  .actu-teaser-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .actu-teaser-grid { grid-template-columns: 1fr; }
  .actu-teaser-header { flex-direction: column; align-items: flex-start; }
}


/* ═══════════════════════════════════════════════════════════════════
   DOUANES — Corrections typographiques + institutionnel
   ═══════════════════════════════════════════════════════════════════ */

/* Centrage text-label dans les headers centrés douanes */

.dp-tva-header .text-label,
.dp-resolution-header .text-label {
  justify-content: center;
}

/* Section desc warm color — douanes */
.dp2-b-left .section-desc,
.dp-parcours-header .section-desc,
.dp-tva-header .section-desc,
.dp-resolution-header .section-desc {
  color: var(--tmh-text);
}

.dp-resolution-header .section-desc {
  margin: 0 0 0 0;
  max-width: 640px;
}

/* H2 douanes — taille hiérarchique */

.dp-tva-header h2,
.dp-resolution-header h2{
  line-height: 1.12;
}


/* Disclaimer TVA */
.dp-tva-disclaimer {
  font-size: 0.82rem;
  color: var(--tmh-text);
  text-align: center;
  margin-top: var(--space-4);
  font-family: var(--font-body);
  font-style: italic;
}

/* Ref légale dans les cas TVA */
.dp-tva-legal-ref {
  display: inline-block;
  font-size: 0.82rem;
  font-family: var(--font-body);
  color: var(--tmh-text);
  margin-top: 0.2rem;
  letter-spacing: 0.02em;
  border-top: 1px solid rgba(255,255,255,0.05);
  padding-top: 6px;
}

/* ============================================================
   HERO IMMERSIVE — Proposition 2 (Typographic)
   Composant partagé pour toutes les pages de service
   ============================================================ */
.hero-imm {
  width: 100%;
  height: 100vh;
  min-height: 600px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero-imm-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-imm-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.30) saturate(0.75);
}

.hero-imm-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, rgba(184,188,198,0.06) 0%, transparent 70%),
    linear-gradient(to bottom, #060606 0%, transparent 18%, transparent 82%, #060606 100%);
}

.hero-imm-ghost {
  position: absolute;
  font-family: var(--font-display);
  font-size: clamp(10rem, 22vw, 20rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(184,188,198,0.07);
  line-height: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  white-space: nowrap;
  z-index: 1;
}

.hero-imm-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-imm-category {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--tmh-text);
  margin-bottom: 24px;
}

.hero-imm-title {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.12;
  color: var(--tmh-text);
  margin-bottom: 28px;
}

.hero-imm-title .shiny {
  color: var(--tmh-text);
  animation: hero-imm-shimmer 5s ease-in-out infinite;
}

@keyframes hero-imm-shimmer {
  0%, 100% { background-position: 100% 0; }
  50%       { background-position: -50% 0; }
}

.hero-imm-sep {
  width: 56px;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--tmh-gold), transparent);
  margin: 0 auto 28px;
}

.hero-imm-desc {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.78;
  max-width: none;
  letter-spacing: 0.005em;
}

.hero-imm-scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--tmh-text);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  animation: hero-imm-scroll-bounce 2s ease-in-out infinite;
}

@keyframes hero-imm-scroll-bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(5px); }
}

.hero-imm-scroll svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 1.5;
  fill: none;
}

@media (max-width: 767px) {
  .hero-imm-ghost { font-size: clamp(5rem, 18vw, 8rem); }
  .hero-imm-title {
    font-size: clamp(2rem, 9vw, 2.8rem);
    letter-spacing: 0.02em;
  }
  .hero-imm-category { font-size: 0.75rem; letter-spacing: 0.22em; }
  .hero-imm-desc  { font-size: 13px; padding: 0 20px; white-space: normal; }
}


/* ============================================================
   TARIFS & FORFAITS — Glassmorphism (douanes.html)
   ============================================================ */
.tarifs-sep {
  display: flex; align-items: flex-start; gap: 24px;
  margin: 56px 0 40px;
}
.tarifs-sep-text h3 {
  font-family: var(--font-body);
  font-weight: 300; letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--tmh-text);
  margin-bottom: 6px;
}
.tarifs-sep-text p {
  font-weight: 300;
  color: var(--tmh-text); line-height: 1.65;
}
.tarifs-sep-line {
  flex: 1; height: 1px; margin-top: 18px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
}
.tarifs-pays-divider {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 20px;
}
.tarifs-pays-label {
  font-family: var(--font-mono); font-size: 26px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--tmh-text); white-space: nowrap;
}
.tarifs-pays-line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
}
.tarifs-glass-wrapper {
  position: relative; border-radius: 20px; overflow: hidden;
  padding: 48px 44px;
  margin-bottom: 16px;
}
.tarifs-glass-bg {
  position: absolute; inset: 0;
}
.tarifs-glass-bg img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.12) saturate(0.4);
}
.tarifs-glass-bg::after {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 25% 40%, rgba(184,188,198,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 40% 40% at 75% 70%, rgba(74,144,184,0.05) 0%, transparent 50%);
}
.tarifs-glass-inner { position: relative; z-index: 2; }
.tarifs-glass-grid {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr;
  gap: 16px; margin-bottom: 16px;
}
.tg-card {
  /* background, border, border-radius, backdrop-filter → .tmh-card */
  padding: 28px 26px;
  display: flex; flex-direction: column;
  transition: transform 0.4s;
  position: relative; overflow: hidden;
}
.tg-card:hover {
  transform: translateY(-4px);
}
.tg-card-hero {
  border-color: var(--glass-border);
  padding: 32px 28px;
}
.tg-badge {
  display: inline-block;
  font-family: var(--font-mono); font-size: 0.82rem;
  font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--tmh-gold-light);
  background: rgba(176,180,190,0.08);
  border: 1px solid var(--tmh-border-gold);
  border-radius: 100px; padding: 4px 14px; margin-bottom: 14px;
  width: fit-content;
}
.tg-badge-outline {
  background: transparent; color: var(--tmh-text);
  border: 1px solid rgba(184,188,198,0.28);
}
.tg-title {
  font-family: var(--font-body);
  font-size: 0.9rem; font-weight: 600;
  letter-spacing: 0.10em; text-transform: uppercase;
  line-height: 1.3; color: var(--tmh-text); margin-bottom: 6px;
}
.tg-price {
  font-family: var(--font-mono);
  font-size: 2.4rem; font-weight: 500;
  color: var(--tmh-text);
  animation: tg-gold 3s ease-in-out infinite;
  margin-bottom: 20px; line-height: 1;
}
.tg-price-sm { font-size: 1.7rem; }
@keyframes tg-gold {
  0%,100% { background-position: 100%; }
  50%      { background-position: 0%; }
}
.tg-price sup {
  font-size: 0.82rem; font-weight: 400;
  vertical-align: baseline; margin-right: 4px;
  -webkit-text-fill-color: initial;
  background: none; color: var(--tmh-text);
}
.tg-sep { height: 1px; background: rgba(232,232,236,0.06); margin-bottom: 16px; }
.tg-list { list-style: none; flex: 1; margin-bottom: 14px; }
.tg-list li {
  font-size: 0.82rem; font-weight: 300;
  color: var(--tmh-text); line-height: 1.55;
  padding: 5px 0; display: flex; align-items: flex-start; gap: 9px;
  border-bottom: 1px solid rgba(232,232,236,0.04);
}
.tg-list li:last-child { border-bottom: none; }
.tg-list li::before {
  content: '';
  display: block; width: 11px; height: 11px; flex-shrink: 0; margin-top: 3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8BCC6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size: contain; background-repeat: no-repeat;
}
.tg-options-label {
  font-family: var(--font-mono); font-size: 0.82rem;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--tmh-text); margin-bottom: 8px;
}
.tg-pills { display: flex; flex-wrap: wrap; gap: 5px; }
.tg-pill {
  /* background, border, border-radius → .tmh-pill */
  font-family: var(--font-mono); font-size: 0.82rem;
  color: var(--tmh-text);
  padding: 2px 9px;
}
.tg-service-row {
  /* background, border, border-radius → .tmh-card */
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.tg-service-row:last-child { margin-bottom: 0; }
.tg-service-name { font-size: 0.85rem; color: var(--tmh-text); font-weight: 300; }
.tg-service-price { font-family: var(--font-mono); font-size: 0.85rem; color: var(--tmh-text); }
.tarifs-france-wrapper {
  position: relative; border-radius: 16px; overflow: hidden;
}
.tarifs-france-bg {
  position: absolute; inset: 0;
}
.tarifs-france-bg img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.15) saturate(0.5);
}
.tarifs-france-bg::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(8,8,10,0.55);
}
.tarifs-france-inner {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 16px; padding: 28px;
}
.tarifs-france-card {
  /* background, border, border-radius, backdrop-filter → .tmh-card */
  padding: 22px 20px;
}


@media (max-width: 768px) {
  .tarifs-glass-grid { grid-template-columns: 1fr; }
  .tarifs-glass-wrapper { padding: 24px 16px; }
  .tarifs-france-inner { grid-template-columns: 1fr; padding: 16px; }
  .tarifs-sep { flex-direction: column; gap: 8px; }
  .tarifs-sep-line { display: none; }
}


/* ============================================================
   PAGE — Cars Sold  (carsold.html)
   Actifs traités — galerie plein-écran 4 colonnes
   ============================================================ */

/* ── Navigation ── */
.carsold-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 48px;
  background: linear-gradient(180deg, rgba(5,5,6,0.90) 0%, transparent 100%);
}

.carsold-logo {
  font-family: var(--font-logo);
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--tmh-text);
  text-decoration: none;
}

.carsold-back {
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tmh-text-dim);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color var(--duration-normal) var(--ease-default);
}
.carsold-back:hover { color: var(--tmh-text-secondary); }

/* ── Hero ── */
.cs-hero {
  padding: 180px 80px 80px;
  max-width: 1400px;
  margin: 0 auto;
}

.cs-hero-title {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 7vw, 6.5rem);
  font-weight: 400;
  line-height: 1;
  color: var(--tmh-text);
  max-width: 900px;
  margin-bottom: 28px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.cs-hero-subtitle {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-style: italic;
  font-weight: 300;
  color: var(--tmh-text-secondary);
  max-width: 620px;
  margin-bottom: 24px;
  line-height: 1.5;
}

/* ── Grid ── */
.cs-grid {
  padding: 40px 80px 120px;
  max-width: 1400px;
  margin: 0 auto;
}

.assets-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
}

/* ── Cartes actifs ── */
.asset-card {
  position: relative;
  overflow: hidden;
  cursor: default;
  background: var(--tmh-bg-2);
}

.asset-img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
  filter: brightness(0.55) saturate(0.6);
  transition: filter 0.6s ease, transform 0.6s ease;
}
.asset-card:hover .asset-img {
  filter: brightness(0.70) saturate(0.8);
  transform: scale(1.04);
}

.asset-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 40%,
    rgba(5,5,6,0.65) 70%,
    rgba(5,5,6,0.90) 100%
  );
}

.asset-info {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 20px 22px;
}

.asset-tag {
  display: inline-block;
  font-size: 7px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tmh-text-dim);
  border: 1px solid var(--glass-border);
  padding: 3px 8px;
  margin-bottom: 10px;
}

.asset-brand {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 300;
  color: var(--tmh-text);
  line-height: 1.1;
}

.asset-model {
  font-size: 10px;
  font-weight: 300;
  color: var(--tmh-text-secondary);
  margin-top: 3px;
  letter-spacing: 0.04em;
}

.asset-year {
  position: absolute;
  top: 18px; right: 18px;
  font-family: var(--font-mono);
  font-size: 18px;
  color: var(--tmh-text-20);
  letter-spacing: 0.06em;
}

/* ── Blur Fade animation (IntersectionObserver) ── */
@keyframes blurFadeIn {
  from { opacity: 0; filter: blur(6px); transform: translateY(10px); }
  to   { opacity: 1; filter: blur(0);   transform: translateY(0); }
}

.cs-hero .blur-item {
  animation: blurFadeIn 0.6s ease forwards;
}

.cs-grid .blur-item,
.cs-bottom-note .blur-item {
  opacity: 0;
  filter: blur(6px);
  transform: translateY(10px);
  transition: opacity 0.55s ease, filter 0.55s ease, transform 0.55s ease;
}

.cs-grid .blur-item.visible,
.cs-bottom-note .blur-item.visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

/* ── Note bas ── */
.cs-bottom-note {
  border-top: 1px solid var(--glass-border);
  padding: 48px 80px;
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cs-bottom-note-txt {
  font-family: var(--font-display);
  font-size: 15px;
  font-style: italic;
  color: var(--tmh-text-dim);
  line-height: 1.6;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .assets-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .carsold-nav { padding: 20px 24px; }
  .cs-hero { padding: 140px 24px 60px; }
  .cs-grid { padding: 24px 24px 80px; }
  .assets-grid { grid-template-columns: repeat(2, 1fr); }
  .cs-bottom-note { padding: 40px 24px; flex-direction: column; gap: 16px; }
}
@media (max-width: 480px) {
  .assets-grid { grid-template-columns: 1fr; }
}



/* EOF styles.css */

/* ═══════════════════════════════════════════════════════════
   WORDPRESS / ELEMENTOR INTEGRATION OVERRIDES
   Force le fond carbone partout pour éviter les fonds blancs
   ═══════════════════════════════════════════════════════════ */
html,
body,
.elementor,
.elementor-section,
.elementor-container,
.elementor-element,
.elementor-widget,
.elementor-widget-html,
.elementor-widget-container,
.page-template-elementor_canvas,
.page-template-elementor_canvas .elementor-section-wrap {
  background-color: #050506;
}
.elementor-widget-html { padding: 0; }
.elementor-widget-container { padding: 0; }
.elementor-section { padding: 0; }
.elementor-container { max-width: none; padding: 0; }


/* ═══════════════════════════════════════════════════════════════
   PAGE: INDEX (Homepage)
   ═══════════════════════════════════════════════════════════════ */

    /* ============================================================
       OVERRIDES : Contraste ameliore
       ============================================================ */
    :root {
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }


    /* ============================================================
       HERO TITLE — Animation GSAP word-by-word
       ============================================================ */
    .hero-title .word {
      display: inline-block;
      overflow: hidden;
      vertical-align: top;
    }
    .hero-title .word-inner {
      display: inline-block;
      transform: translateY(110%);
      will-change: transform;
    }


    /* Parallax + Magnetic */
    .about-image img { will-change: transform; }
    

    /* ─── Hero Homepage ─── */
    .hmg-hero {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      overflow: hidden;
    }
    .hmg-hero-bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }
    .hmg-hero-bg img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center 60%;
      filter: brightness(0.72) saturate(0.75);
    }
    .hmg-hero-bg::after {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(to top,
          #060606 0%,
          rgba(8,8,10,0.88) 18%,
          rgba(8,8,10,0.45) 38%,
          rgba(8,8,10,0.1)  55%,
          transparent 70%),
        linear-gradient(to right,
          rgba(8,8,10,0.5) 0%,
          transparent 45%);
    }
    .hmg-hero-content {
      position: absolute;
      bottom: 72px; left: 72px;
      z-index: 2;
      max-width: 580px;
    }

    .hmg-hero-title .shiny {
      color: var(--tmh-text);
    }
    @keyframes hmgShimmer {
      0%, 100% { background-position: 100% 0; }
      50%       { background-position: -50% 0; }
    }

    .hmg-hero-desc {
      font-family: var(--font-body);
      font-size: 15px; font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.78;
      letter-spacing: 0.005em;
      margin-bottom: 32px;
      opacity: 0;
      animation: hmgFadeUp 0.9s ease forwards 0.75s;
    }
    .hmg-hero-quote {
      display: flex;
      gap: 16px;
      align-items: flex-start;
      opacity: 0;
      animation: hmgFadeUp 0.9s ease forwards 1.0s;
    }
    .hmg-hero-quote-bar {
      display: none;
    }
    .hmg-hero-quote-text {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 400;
      font-size: clamp(1.4rem, 2.2vw, 1.8rem);
      color: var(--tmh-text);
      line-height: 1.55;
      margin-bottom: 10px;
    }
    .hmg-hero-quote-author {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }
    .hmg-hero-scroll {
      position: absolute;
      bottom: 28px; left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      font-family: var(--font-mono);
      font-size: 9px; letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--tmh-text);
      display: flex; flex-direction: column;
      align-items: center; gap: 6px;
      opacity: 0;
      animation: hmgFadeIn 1s ease forwards 1.5s, hmgScroll 2s ease-in-out 2.5s infinite;
    }
    .hmg-hero-scroll svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.5; fill: none; }
    @keyframes hmgFadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes hmgFadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }
    @keyframes hmgScroll {
      0%, 100% { transform: translateX(-50%) translateY(0); }
      50%       { transform: translateX(-50%) translateY(5px); }
    }
    .section h2, .aa-section-title { visibility: visible; }
  
/* --- index.html inline styles --- */
    /* --- Brands Ticker --- */
    .brands-ticker { padding: 4rem 0; }

    /* ─── FROSTED CARDS ─── */

    /* --- Ecosystem Hub + Nodes — pas de frost (cercles animés) --- */

    /* stack-card, actu-card, qr-card → .tmh-card (styles.css) */

    /* --- FAQ open state --- */
    .faq-item.open {
      /* background → token (styles.css) */
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
    }

    /* ─── SECTION SEPARATORS ─── */
    .stats-cinematic { border-bottom: none; }
    .stats-cinematic,
    .ecosystem,
    .about,
    .services-section,
    .vehicles-section,
    .membership-section,
    .platform-section,
    .faq-section,
    .presence-section,
    .actu-teaser-section,
    .cta-contact-section { position: relative; }

    .services-section::before,
    .vehicles-section::before,
    .platform-section::before,
    .faq-section::before,
    .actu-teaser-section::before,
    .cta-contact-section::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }

    /* --- Footer separator --- */
    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }


/* ═══════════════════════════════════════════════════════════════
   PAGE: AUTOMOTIVE ASSETS
   ═══════════════════════════════════════════════════════════════ */

    /* ============================================================
       OVERRIDES : Contraste ameliore
       ============================================================ */
    :root {
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }


    /* ============================================================
       OMBRES PORTEES renforcees
       ============================================================ */
    .aa-vehicle-card,
    .aa-om-card,
    .fo-card,
    .faq-item {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    }
    .aa-vehicle-card:hover,
    .aa-om-card:hover,
    .fo-card:hover {
      box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), 0 0 30px rgba(184, 188, 198, 0.06);
    }

    /* Parallax + Magnetic */
    

    /* ===== AUTOMOTIVE ASSETS PAGE SPECIFIC ===== */

    /* --- Hero (style dp3 — photo background, left-aligned) --- */


    /* Photo pleine hauteur */



    /* Dot grid masqué à gauche (même pattern que douanes) */





    /* Scroll indicator — ancré en bas du hero */

    .aa-scroll-dot {
      animation: scrollBounce 2s ease-in-out infinite;
    }
    @keyframes scrollBounce {
      0%, 100% { cy: 9; opacity: 1; }
      50% { cy: 22; opacity: 0.3; }
    }
    /* Scroll hint */
    .aa-scroll-hint {
      position: absolute;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      color: var(--tmh-text);
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      opacity: 0;
      animation: fadeUp 0.8s ease forwards 1s;
    }
    .aa-scroll-hint svg {
      width: 16px; height: 16px;
      stroke: var(--tmh-text-dim); fill: none; stroke-width: 1.5;
      animation: bounceDown 2s ease-in-out infinite;
    }
    @keyframes bounceDown {
      0%, 100% { transform: translateY(0); opacity: 0.4; }
      50% { transform: translateY(4px); opacity: 1; }
    }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }

    /* ─── Hero Cin&eacute;matique Automotive Assets ─── */




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







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

    /* =========================================
       OFF-MARKET — layout narration + carousel
       ========================================= */

    /* Off-market : transparent pour laisser le gradient page du body */
    .aa-section.aa-om-section {
      background: transparent;
    }

    /* Split 2 colonnes : narration 38% | carousel 62% */
    .aa-om-layout {
      display: grid;
      grid-template-columns: 38fr 62fr;
      gap: 64px;
      align-items: start;
    }
    /* Alignement vertical colonne gauche = colonne droite */
    .aa-om-layout > * {
      align-self: start;
      margin-top: 0;
      padding-top: 0;
    }

    /* --- Colonne gauche : narration --- */
    .aa-om-story {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
    }
    .aa-om-story-quote {
      font-family: var(--font-display);
      font-weight: 400;
      font-style: italic;
      color: var(--tmh-text);
      font-size: clamp(1.4rem, 2.2vw, 1.8rem);
      line-height: 1.55;
      margin-bottom: 32px;
    }
    .aa-om-story-quote em {
      color: var(--tmh-text);
      font-style: italic;
    }
    .aa-om-story-body {
      font-family: var(--font-body);
      font-size: 0.95rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.8;
      margin-bottom: 32px;
    }
    /* Ligne de séparation dorée */
    .aa-om-story-divider {
      width: 40px;
      height: 1px;
      background: var(--tmh-gold);
      opacity: 0.4;
      margin-bottom: 32px;
    }
    /* Preuves sociales / chiffres */
    .aa-om-story-proof {
      display: flex;
      gap: 32px;
      margin-bottom: 36px;
    }
    .aa-om-proof-item {}
    .aa-om-proof-val {
      font-family: var(--font-mono);
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--tmh-text);
      line-height: 1;
    }
    .aa-om-proof-label {
      font-family: var(--font-body);
      font-size: 0.82rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-top: 4px;
    }
    /* Mention discrétion */
    .aa-om-story-nda {
      /* background, border, border-radius, backdrop-filter → .tmh-card */
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 14px 16px;
      border-radius: 10px;
    }
    .aa-om-story-nda svg {
      width: 15px; height: 15px; min-width: 15px;
      fill: none; stroke: var(--tmh-gold); stroke-width: 1.5;
      margin-top: 1px;
    }
    .aa-om-story-nda p {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.55;
    }
    .aa-om-story-nda p strong {
      color: var(--tmh-text);
      font-weight: 500;
    }

    /* --- Colonne droite : petit carousel --- */
    .aa-om-right {}

    /* Label en haut du carousel */
    .aa-om-carousel-label {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 16px;
    }
    .aa-om-carousel-count {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }
    .aa-om-carousel-count span {
      color: var(--tmh-text);
    }

    /* Fenêtre du carousel — pleine largeur, clip */
    .aa-om-window {
      overflow: hidden;
      border-radius: 12px;
      width: 100%;
    }
    /* Track glisse en translateX */
    .aa-om-track {
      display: flex;
      gap: 12px;
      transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* Petite carte paysage : 50% du conteneur */
    .aa-om-card {
      flex: 0 0 calc(50% - 6px);
      height: 200px;
      position: relative;
      border-radius: 10px;
      overflow: hidden;
      cursor: pointer;
      /* background → token (styles.css) */
      transition: border-color 0.3s ease;
    }
    .aa-om-card:hover {
      border-color: var(--tmh-border-gold);
    }
    .aa-om-card img {
      width: 100%; height: 100%;
      object-fit: cover;
      filter: brightness(0.45) saturate(0.7);
      transition: filter 0.45s ease, transform 0.55s ease;
    }
    .aa-om-card:hover img {
      filter: brightness(0.62) saturate(0.9);
      transform: scale(1.06);
    }
    /* Gradient bas */
    .aa-om-card-ov {
      position: absolute; inset: 0;
      background: linear-gradient(to top,
        rgba(8,8,10,0.88) 0%,
        rgba(8,8,10,0.2) 50%,
        transparent 100%
      );
    }
    /* Cadenas top-right minimaliste */
    .aa-om-lock {
      /* background, border, backdrop-filter → .tmh-card */
      position: absolute;
      top: 10px; right: 10px;
      width: 24px; height: 24px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .aa-om-lock svg {
      width: 10px; height: 10px;
      fill: none; stroke: var(--tmh-gold); stroke-width: 2;
    }
    /* Infos bas de carte */
    .aa-om-info {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 12px 14px;
    }
    .aa-om-brand {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-bottom: 3px;
    }
    .aa-om-model {
      font-family: var(--font-body);
      font-size: 1rem;
      color: var(--tmh-text);
      line-height: 1.1;
      margin-bottom: 6px;
    }
    .aa-om-price {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--tmh-text);
    }

    /* Navigation : dots + flèches compactes */
    .aa-om-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 14px;
    }
    .aa-om-dots {
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .aa-om-dot {
      height: 2px;
      width: 18px;
      border-radius: 2px;
      background: rgba(255,255,255,0.18);
      transition: background 0.35s ease, width 0.35s ease, box-shadow 0.35s ease;
      cursor: pointer;
    }
    .aa-om-dot.active {
      width: 32px;
      background: linear-gradient(90deg, var(--tmh-gold), rgba(201,169,110,0.65));
      box-shadow: 0 0 8px rgba(201,169,110,0.45);
    }
    .aa-om-btns { display: flex; gap: 8px; }
    .aa-om-btn {
      /* background, backdrop-filter, transition → styles.css */
      width: 34px; height: 34px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.22);
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }
    .aa-om-btn:hover {
      border-color: rgba(255,255,255,0.42);
    }
    .aa-om-btn svg {
      width: 14px; height: 14px;
      fill: none; stroke: rgba(255, 255, 255, 0.50); stroke-width: 1.5;
      transition: stroke 0.3s ease;
    }
    .aa-om-btn:hover svg {
      stroke: rgba(255, 255, 255, 0.90);
    }

    /* CTA membre sous le carousel */
    .aa-om-cta {
      /* background, border, border-radius, backdrop-filter → .tmh-card */
      margin-top: 24px;
      padding: 20px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }
    .aa-om-cta-text {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.5;
    }
    .aa-om-cta-text strong {
      display: block;
      font-weight: 500;
      color: var(--tmh-text);
      margin-bottom: 2px;
    }

    /* Responsive off-market */
    @media (max-width: 900px) {
      .aa-om-layout {
        grid-template-columns: 1fr;
        gap: 40px;
      }
      .aa-om-story { position: static; }
    }

    /* --- Sticky Sub-nav --- */
    .aa-subnav {
      position: sticky;
      top: 72px;
      z-index: 90;
      background: rgba(8,8,10,0.85);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid rgba(184,188,198,0.08);
      overflow: hidden;
    }
    .aa-subnav-inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      gap: 0;
      overflow-x: scroll;
      overflow-y: visible;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      position: relative;
    }
    .aa-subnav-inner::-webkit-scrollbar { display: none; }
    .aa-subnav-link {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 14px 22px;
      color: rgba(255,255,255,0.35);
      text-decoration: none;
      white-space: nowrap;
      border-bottom: none;
      transition: color 0.35s ease;
      position: relative;
    }
    .aa-subnav-link::after {
      content: '';
      position: absolute;
      bottom: 0; left: 15%; right: 15%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.75), transparent);
      opacity: 0;
      transform: scaleX(0.4);
      transition: opacity 0.35s ease, transform 0.35s ease;
    }
    .aa-subnav-link:hover { color: rgba(255,255,255,0.60); }
    .aa-subnav-link.active { color: rgba(255,255,255,0.88); font-weight: 400; }
    .aa-subnav-link.active::after { opacity: 1; transform: scaleX(1); }

    /* --- Sub-nav dropdown --- */
    .aa-subnav-dropdown-wrap {
      position: relative;
      display: flex;
      align-items: stretch;
    }
    .aa-subnav-dropdown-wrap .aa-subnav-link {
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .aa-subnav-dropdown-wrap .aa-subnav-link svg {
      width: 10px;
      height: 10px;
      stroke: currentColor;
      stroke-width: 2;
      fill: none;
      transition: transform 0.3s ease;
      flex-shrink: 0;
    }
    .aa-subnav-dropdown-wrap:hover .aa-subnav-link svg {
      transform: rotate(180deg);
    }
    .aa-subnav-dropdown {
      position: fixed;
      top: 0;
      left: 0;
      background: var(--tmh-bg-3);
      border: 1px solid rgba(184,188,198,0.12);
      border-radius: 12px;
      padding: 8px;
      min-width: 220px;
      opacity: 0;
      pointer-events: none;
      transform: translateY(6px);
      transition: opacity 0.25s ease, transform 0.25s ease;
      z-index: 9999;
    }
    .aa-subnav-dropdown.is-open {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }
    .aa-subnav-dropdown a {
      display: block;
      padding: 10px 16px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
      text-decoration: none;
      border-radius: 8px;
      transition: background 0.2s ease, color 0.2s ease;
    }
    .aa-subnav-dropdown a:hover {
      background: rgba(184,188,198,0.07);
      color: var(--tmh-text);
    }
    .aa-subnav-dropdown a span {
      display: block;
      font-size: 0.82rem;
      color: var(--tmh-text);
      margin-top: 2px;
      font-weight: 300;
    }

    /* --- Section Shared --- */
    .aa-section {
      padding: 120px 24px;
      position: relative;
      background: transparent;
    }
    .aa-section-inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 24px;
    }
    .aa-section-header {
      margin-bottom: 60px;
    }
    .aa-section-label {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .aa-section-label::before {
      content: '';
      width: 24px;
      height: 1px;
      background: rgba(184,188,198,0.4);
    }
    .aa-section-title {
      font-family: var(--font-display);
      font-weight: 400;
      color: var(--tmh-text);
      line-height: 1.2;
      margin-bottom: 16px;
    }
    .aa-section-title em {
      font-style: normal;
      color: var(--tmh-text);
    }
    .aa-section-subtitle-gold {
      font-family: var(--font-body);
      font-size: 11px;
      font-weight: 400;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-top: 12px;
      margin-bottom: 8px;
    }
    .aa-section-desc {
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.78;
      max-width: 560px;
    }

    /* --- Section Divider (supprimé) --- */

    /* --- Vente Publique Carousel --- */
    .aa-carousel-section {
      padding: 120px 0;
    }
    .aa-carousel-header {
      max-width: 1200px;
      margin: 0 auto 48px;
      padding: 0 24px;
      text-align: center;
    }
    .aa-carousel-controls {
      display: flex;
      gap: 12px;
      justify-content: center;
      margin-top: 40px;
      padding: 0 24px;
    }
    .aa-carousel-btn {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      /* border → token (styles.css) */
      /* background → token (styles.css) */
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      /* box-shadow → token (styles.css) */
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.3s ease, box-shadow 0.3s ease;
    }
    .aa-carousel-btn:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .aa-carousel-btn svg {
      width: 20px;
      height: 20px;
      fill: none;
      stroke: rgba(255, 255, 255, 0.50);
      stroke-width: 1.5;
      transition: stroke 0.3s ease;
    }
    .aa-carousel-btn:hover svg {
      stroke: rgba(255, 255, 255, 0.90);
    }
    .aa-carousel-track {
      display: flex;
      gap: 24px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      -ms-overflow-style: none;
      padding: 0 max(24px, calc((100vw - 1200px) / 2));
    }
    .aa-carousel-track::-webkit-scrollbar { display: none; }

    /* Vehicle Card (Public) */
    .aa-vehicle-card {
      /* background, border, border-radius, backdrop-filter, transition → .tmh-card */
      flex: 0 0 380px;
      scroll-snap-align: start;
      overflow: hidden;
      cursor: pointer;
    }
    .aa-vehicle-card:hover {
      background: var(--glass-fill-2);
      border-color: var(--tmh-border-gold);
      box-shadow: var(--inset-top), var(--inset-bottom), 0 12px 40px var(--overlay-md);
    }
    .aa-vehicle-img {
      position: relative;
      height: 240px;
      overflow: hidden;
    }
    .aa-vehicle-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.6s ease;
    }
    .aa-vehicle-card:hover .aa-vehicle-img img {
      transform: scale(1.05);
    }
    .aa-vehicle-badge {
      position: absolute;
      top: 16px;
      left: 16px;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 6px 14px;
      border-radius: 100px;
      background: rgba(8,8,10,0.7);
      backdrop-filter: blur(10px);
      color: var(--tmh-text);
      border: 1px solid rgba(232,232,236,0.15);
    }
    .aa-vehicle-body {
      padding: 24px;
    }
    .aa-vehicle-year {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      color: var(--tmh-text);
      letter-spacing: 0.05em;
      margin-bottom: 8px;
    }
    .aa-vehicle-name {
      font-family: var(--font-body);
      color: var(--tmh-text);
      margin-bottom: 12px;
    }
    .aa-vehicle-price {
      font-family: var(--font-mono);
      font-size: 1.1rem;
      color: var(--tmh-text);
      font-weight: 500;
      margin-bottom: 16px;
    }
    .aa-vehicle-specs {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
    }
    .aa-vehicle-spec {
      font-family: var(--font-body);
      font-size: 0.82rem;
      color: var(--tmh-text);
      padding: 4px 12px;
      border: 1px solid rgba(232,232,236,0.12);
      border-radius: 100px;
    }

    /* --- Off-Market Section --- */













    /* =========================================
       CAR SOURCING — split narration + timeline
       ========================================= */

    .aa-src-section { background: transparent; }

    /* Split 2 colonnes : narration 45% | timeline 55% */
    .aa-src-layout {
      display: grid;
      grid-template-columns: 38fr 62fr;
      gap: 56px;
      align-items: start;
      position: relative;
    }
    /* Dot grid background */
    .aa-src-section .aa-section-inner::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(rgba(184,188,198,0.05) 1px, transparent 1px);
      background-size: 32px 32px;
      mask-image: radial-gradient(ellipse 60% 50% at 70% 40%, black 20%, transparent 65%);
      -webkit-mask-image: radial-gradient(ellipse 60% 50% at 70% 40%, black 20%, transparent 65%);
      pointer-events: none;
      z-index: 0;
    }
    .aa-src-section .aa-section-inner { position: relative; }

    /* ── LEFT: Story (sticky) ── */
    .aa-src-story {
      position: sticky;
      top: 140px;
    }
    .aa-src-quote {
      font-family: var(--font-display);
      font-style: italic;
      font-size: clamp(1.6rem, 3vw, 2.2rem);
      line-height: 1.35;
      color: var(--tmh-text);
      margin-top: var(--space-5);
    }
    .aa-src-quote em {
      font-style: italic;
      color: var(--tmh-text);
    }
    .aa-src-divider {
      width: 40px;
      height: 1px;
      background: var(--tmh-gold);
      opacity: 0.5;
      margin: var(--space-6) 0;
    }
    .aa-src-body {
      font-family: var(--font-body);
      font-weight: 300;
      font-size: var(--text-base);
      line-height: 1.8;
      color: var(--tmh-text);
      margin-bottom: var(--space-8);
    }

    /* KPIs 2×2 */
    .aa-src-proof {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-bottom: var(--space-8);
      padding: var(--space-5);
      border: 1px solid rgba(232,232,236,0.06);
      border-radius: var(--radius-lg);
      background: var(--tmh-bg-2);
    }
    .aa-src-proof-item { text-align: center; }
    .aa-src-proof-val {
      font-family: var(--font-mono);
      font-size: 1.3rem;
      font-weight: 600;
      color: var(--tmh-text);
    }
    .aa-src-proof-label {
      font-family: var(--font-body);
      font-size: 0.82rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: var(--tmh-text);
      margin-top: 4px;
    }

    /* === Service lié — Douanes === */
    .aa-src-linked-service {
      display: block;
      text-decoration: none;
      /* background → token (styles.css) */
      /* border → token (styles.css) */
      /* box-shadow → token (styles.css) */
      border-radius: 16px;
      padding: 24px;
      margin-bottom: var(--space-8);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition: background 0.4s ease, box-shadow 0.4s ease;
      cursor: pointer;
    }
    .aa-src-linked-service:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }

    /* === Navigation card horizontale (Co-propriété, etc.) === */
    .aa-nav-card {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 20px 24px;
      border-radius: 14px;
      /* border → token (styles.css) */
      /* background → token (styles.css) */
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      /* box-shadow → token (styles.css) */
      text-decoration: none;
      color: var(--tmh-text);
      transition: background 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s cubic-bezier(0.16,1,0.3,1);
    }
    .aa-nav-card:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .aa-nav-card-icon {
      width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
      background: rgba(255, 255, 255, 0.04);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10);
      display: flex; align-items: center; justify-content: center;
    }
    .aa-nav-card-icon svg { width: 18px; height: 18px; stroke: rgba(255,255,255,0.55); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .aa-nav-card-body { flex: 1; }
    .aa-nav-card-label {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 2px; text-transform: uppercase;
      color: rgba(255,255,255,0.45); margin-bottom: 2px;
    }
    .aa-nav-card-title {
      font-family: var(--font-body); font-size: 0.95rem;
      color: rgba(255,255,255,0.88);
    }
    .aa-nav-card-arrow {
      width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
      background: rgba(255, 255, 255, 0.04);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10);
      display: flex; align-items: center; justify-content: center;
      transition: background 0.3s, box-shadow 0.3s, transform 0.3s cubic-bezier(0.16,1,0.3,1);
    }
    .aa-nav-card-arrow svg { width: 12px; height: 12px; stroke: rgba(255,255,255,0.50); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.3s; }
    .aa-nav-card:hover .aa-nav-card-arrow {
      background: rgba(255, 255, 255, 0.10);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
      transform: translateX(4px);
    }
    .aa-nav-card:hover .aa-nav-card-arrow svg { stroke: rgba(255,255,255,0.90); }
    .aa-src-ls-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 20px;
    }
    .aa-src-ls-label {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }
    .aa-src-ls-arrow {
      width: 18px; height: 18px;
      fill: none; stroke: #B8BCC6; stroke-width: 2;
      stroke-linecap: round; stroke-linejoin: round;
      transition: transform 0.3s ease;
    }
    .aa-src-linked-service:hover .aa-src-ls-arrow {
      transform: translateX(5px);
    }
    .aa-src-ls-stamp-wrap {
      display: flex;
      justify-content: center;
      margin-bottom: 20px;
    }
    .aa-src-ls-stamp { width: 130px; height: 130px; }
    /* Anneau tournant : le <g class="aa-src-ls-stamp-ring"> */
    .aa-src-ls-stamp-ring {
      transform-origin: center center;
      animation: ls-stamp-spin 18s linear infinite;
    }
    @keyframes ls-stamp-spin {
      to { transform: rotate(360deg); }
    }
    .aa-src-ls-pills {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      justify-content: center;
    }
    .aa-src-ls-pill {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
      /* background → token (styles.css) */
      border: 1px solid rgba(184,188,198,0.14);
      border-radius: 100px;
      padding: 5px 13px;
      transition: background 0.25s ease, color 0.25s ease;
    }
    .aa-src-linked-service:hover .aa-src-ls-pill {
      background: rgba(184,188,198,0.1);
      color: var(--tmh-text);
    }

    /* ── RIGHT: Card with inline dots ── */
    .aa-src-stepper {
      /* background, border, border-radius, backdrop-filter → .tmh-card */
      width: 100%;
      overflow: hidden;
    }
    /* Gold top line accent */
    .aa-src-stepper::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      z-index: 1;
    }

    /* Dot row inside card */
    .aa-src-stepper-tabs {
      display: flex;
      align-items: center;
      gap: 0;
      padding: 20px 32px 0;
    }

    .aa-src-stab {
      width: 32px; height: 32px;
      border-radius: 50%;
      border: 1px solid rgba(184,188,198,0.15);
      background: transparent;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      color: var(--tmh-text);
      cursor: pointer;
      transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
      flex-shrink: 0;
      padding: 0;
    }
    .aa-src-stab.active {
      border-color: var(--tmh-text);
      background: rgba(184,188,198,0.06);
      color: var(--tmh-text);
      box-shadow: 0 0 12px rgba(184,188,198,0.08);
    }
    .aa-src-stab.passed {
      border-color: var(--tmh-text);
      color: var(--tmh-text);
    }
    .aa-src-stab:hover:not(.active) {
      border-color: var(--tmh-text);
      color: var(--tmh-text);
    }
    /* Hide the old title label */
    .aa-src-stab-title { display: none; }
    .aa-src-stab-num {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      border: none; background: none;
      width: auto; height: auto;
      color: inherit;
    }

    /* Connector line between dots */
    .aa-src-dot-line {
      flex: 1;
      height: 1px;
      background: rgba(184,188,198,0.08);
      position: relative;
    }
    .aa-src-dot-line-fill {
      position: absolute;
      left: 0; top: 0;
      height: 100%;
      background: var(--tmh-gold);
      transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* Hide old progress track */
    .aa-src-stepper-track { display: none; }

    /* Detail panels */
    .aa-src-panels { position: relative; min-height: 340px; }
    .aa-src-panel {
      /* background, border, border-radius, backdrop-filter → .tmh-card */
      display: none;
      padding: 36px 40px;
      overflow: hidden;
    }
    .aa-src-panel.active {
      display: block;
      animation: srcPanelIn 0.38s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    @keyframes srcPanelIn {
      from { opacity: 0; transform: translateY(10px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    /* Gold top accent line */
    .aa-src-panel::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
    }
    /* Ghost background image */
    .aa-src-panel-bg {
      position: absolute;
      top: 0; right: 0;
      width: 45%;
      height: 100%;
      opacity: 0.18;
      mask-image: linear-gradient(90deg, transparent 0%, black 30%, black 70%, transparent 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 30%, black 70%, transparent 100%);
      pointer-events: none;
    }
    .aa-src-panel-bg img {
      width: 100%; height: 100%;
      object-fit: cover;
    }

    /* Panel header: icon + title/duration */
    .aa-src-panel-head {
      display: flex;
      align-items: flex-start;
      gap: 18px;
      margin-bottom: 16px;
      position: relative;
      z-index: 1;
    }
    .aa-src-panel-icon {
      /* background, border → .tmh-card */
      width: 44px; height: 44px;
      flex-shrink: 0;
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      color: var(--tmh-text);
    }
    .aa-src-panel-icon svg { width: 22px; height: 22px; }
    .aa-src-panel-title {
      font-family: var(--font-display);
      color: var(--tmh-text);
      margin-bottom: 6px;
    }
    .aa-src-step-dur {
      /* background, border, border-radius → .tmh-pill */
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      color: var(--tmh-text);
      padding: 4px 12px;
    }
    .aa-src-step-dur svg { width: 14px; height: 14px; }
    .aa-src-step-desc {
      font-family: var(--font-body);
      font-weight: 300;
      font-size: 0.88rem;
      line-height: 1.75;
      color: var(--tmh-text);
      position: relative;
      z-index: 1;
      margin-bottom: 20px;
    }
    /* Feature grid in panels */
    .aa-src-step-feats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6px;
      position: relative;
      z-index: 1;
    }
    .aa-src-step-feat {
      /* background, border, border-radius → .tmh-card */
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 9px 14px;
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
    }
    .aa-src-step-feat-dot {
      width: 5px; height: 5px;
      border-radius: 50%;
      background: var(--tmh-gold);
      flex-shrink: 0;
    }

    /* Step 4 — Étape clé: badge + options */
    .aa-src-step-highlight-badge {
      display: inline-block;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #000000;
      background: var(--tmh-gold);
      border-radius: 100px;
      padding: 3px 10px;
      margin-bottom: 14px;
    }
    .aa-src-step-options {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 16px;
    }
    .aa-src-step-option {
      /* background, border, border-radius → .tmh-card */
      display: flex;
      align-items: center;
      gap: 6px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
      border-radius: 8px;
      padding: 7px 14px;
      cursor: default;
    }
    .aa-src-step-option:hover { border-color: rgba(232,232,236,0.1); }
    .aa-src-step-option svg {
      width: 14px; height: 14px;
      stroke: var(--tmh-gold);
      stroke-width: 1.5; fill: none; flex-shrink: 0;
    }

    /* Guarantee trust badge */
    .aa-src-guarantee {
      /* background, border, border-radius → .tmh-card */
      text-align: center;
      margin-top: var(--space-6);
      padding: var(--space-5);
    }
    .aa-src-guarantee svg {
      display: inline-block;
      vertical-align: middle;
      width: 16px;
      height: 16px;
      margin-right: 7px;
      color: var(--tmh-text);
      opacity: 0.7;
      flex-shrink: 0;
    }
    .aa-src-guarantee p {
      display: inline;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      line-height: 1.7;
      color: var(--tmh-text);
      margin: 0;
    }
    .aa-src-guarantee strong {
      color: var(--tmh-text);
      font-weight: 500;
    }

    /* Responsive */
    @media (max-width: 960px) {
      .aa-src-layout {
        grid-template-columns: 1fr;
        gap: 48px;
      }
      .aa-src-story { position: static; }
    }
    @media (max-width: 640px) {
      .aa-src-stepper-tabs { overflow-x: auto; scrollbar-width: none; }
      .aa-src-stepper-tabs::-webkit-scrollbar { display: none; }
      .aa-src-stab { flex: 0 0 auto; min-width: 72px; }
      .aa-src-stab-title { font-size: 0.82rem; white-space: normal; }
      .aa-src-panel { padding: 20px 18px; }
    }
    @media (max-width: 480px) {
      .aa-src-proof { gap: 14px; padding: var(--space-4); }
    }

    /* --- Co-propri&eacute;t&eacute; New Design --- */

    /* Extra variables scoped to copro section */
    #copropriete {
      --tmh-gold-border: rgba(184,188,198,0.18);
      --tmh-red: #DC2626;
    }

    .cp-wrap { max-width: 1100px; margin: 0 auto; }

    /* Reveal */
    .cp-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .cp-reveal.visible { opacity: 1; transform: none; }

    /* Label — aligned with aa-src eyebrow style */



    /* Hero (section header) */
    .cp-hero {
      text-align: center; padding: 0 0 60px;
      position: relative; overflow: hidden;
    }
    .cp-hero::before { display: none; }
    .cp-hero-eyebrow {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 4px; text-transform: uppercase; color: var(--tmh-text);
      margin-bottom: 24px; position: relative;
    }
    .cp-hero-title {
      font-family: var(--font-display);
      font-weight: 400; line-height: 1.15; max-width: 900px;
      margin: 0 auto 16px; position: relative;
      color: var(--tmh-text);
    }
    .cp-hero-title em { font-style: italic; color: var(--tmh-text); }
    .cp-hero-sub {
      font-family: var(--font-body);
      font-size: 0.9rem; font-weight: 300;
      color: var(--tmh-text);
      max-width: 520px; line-height: 1.7; position: relative;
      margin: 0 auto 24px;
    }

    /* Contrast Old vs New */
    .cp-contrast {
      display: grid; grid-template-columns: 1fr 1px 1fr; gap: 0;
      max-width: 1100px; margin: 0 auto;
    }
    .cp-contrast-side { padding: 36px 40px; }
    .cp-contrast-divider { background: transparent; position: relative; }
    .cp-contrast-divider::after {
      content: 'VS'; position: absolute; top: 50%; left: 50%;
      transform: translate(-50%,-50%);
      background: #000000; padding: 12px 8px;
      font-family: var(--font-mono); font-size: 0.82rem;
      color: var(--tmh-text); letter-spacing: 0.15em;
    }
    .cp-contrast-old { background: rgba(240,100,80,0.02); }
    .cp-contrast-new { background: rgba(184,188,198,0.02); }
    .cp-contrast-tag {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 14px;
    }
    .cp-contrast-old .cp-contrast-tag { color: var(--tmh-red); }
    .cp-contrast-new .cp-contrast-tag { color: var(--tmh-text); }
    .cp-contrast-title {
      font-family: var(--font-display);
      font-weight: 400; margin-bottom: 12px; line-height: 1.3;
    }
    .cp-contrast-old .cp-contrast-title { font-style: italic; }
    .cp-contrast-old .cp-contrast-title em { font-style: italic; color: var(--tmh-red); }
    .cp-contrast-new .cp-contrast-title em { font-style: italic; color: var(--tmh-text); }
    .cp-contrast-body { font-family: var(--font-body); font-size: 0.85rem; font-weight: 300; color: var(--tmh-text); line-height: 1.7; }

    /* Allocation */
    .cp-alloc { padding: 80px 0 20px; }
    .cp-alloc-row {
      display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px;
      align-items: center;
    }
    .cp-alloc-block { text-align: center; }
    .cp-alloc-amount {
      font-family: var(--font-mono);
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 500; margin-bottom: 12px;
    }
    .cp-alloc-old .cp-alloc-amount {
      color: var(--tmh-red);
      text-decoration: line-through;
      text-decoration-color: rgba(220,38,38,0.4);
    }
    .cp-alloc-new .cp-alloc-amount {
      color: var(--tmh-text);
    }
    .cp-alloc-desc { font-family: var(--font-body); font-size: 0.82rem; font-weight: 300; color: var(--tmh-text); max-width: 280px; margin: 0 auto; line-height: 1.65; }
    .cp-alloc-arrow { display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--tmh-text); }
    .cp-alloc-arrow svg { width: 32px; height: 32px; }
    .cp-alloc-arrow-label {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.12em; text-transform: uppercase; color: var(--tmh-text);
    }
    .cp-fleet {
      display: flex; justify-content: center; gap: 16px;
      padding: 48px 0 0; flex-wrap: wrap;
    }
    .cp-fleet-car {
      /* border, border-radius → .tmh-card */
      width: 180px; overflow: hidden; cursor: default;
    }
    .cp-fleet-car:hover {
      border-color: var(--tmh-gold-border);
      box-shadow: none;
      transform: none;
    }
    .cp-fleet-car img { width: 100%; height: 110px; object-fit: cover; display: block; }
    .cp-fleet-car-info {
      padding: 14px 16px;
      background: none;
      border: none;
      box-shadow: none;
      border-radius: 0;
    }
    .cp-fleet-car-name { font-family: var(--font-body); font-size: 0.88rem; font-weight: 500; margin-bottom: 4px; color: var(--tmh-text); }


    /* Divider (supprimé) */

    /* 6 Piliers — expandable columns */
    .cp-piliers { padding: 80px 0; }
    .cp-piliers-header { text-align: left; margin-bottom: 48px; }
    .cp-piliers-title {
      font-family: var(--font-display);
      font-weight: 400; margin-bottom: 12px; line-height: 1.2;
    }
    .cp-piliers-title em { font-style: italic; color: var(--tmh-text); }
    .cp-columns {
      /* background, border, border-radius → .tmh-card */
      display: flex; gap: 0;
      overflow: hidden;
      height: 520px;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      background: transparent;
    }
    .cp-col {
      flex: 1; position: relative;
      transition: flex 0.6s cubic-bezier(0.4, 0, 0.2, 1);
      overflow: hidden; cursor: pointer;
      border-right: 1px solid rgba(184,188,198,0.1);
    }
    .cp-col:last-child { border-right: none; }
    .cp-col::before {
      content: ''; position: absolute; inset: 0;
      background: transparent;
      z-index: 1; transition: background 0.5s;
    }
    .cp-col:hover::before {
      background: transparent;
    }
    .cp-col-bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      transition: transform 0.6s ease;
    }

    .cp-col:hover .cp-col-bg { transform: scale(1.05); }
    .cp-col:hover .cp-col-img { transform: scale(1.05); }
    .cp-col-header {
      position: absolute; bottom: 0; left: 0; top: 0;
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 28px 16px; z-index: 2;
      transition: opacity 0.3s;
    }
    /* Texte vertical dans les colonnes fermées */
    .cp-col:not(.expanded) .cp-col-header {
      align-items: center;
      justify-content: center;
      gap: 14px;
    }
    .cp-col:not(.expanded) .cp-col-num {
      display: none;
    }
    .cp-col:not(.expanded) .cp-col-title {
      writing-mode: vertical-rl;
      transform: rotate(180deg);
      font-size: 0.82rem;
      letter-spacing: 0.14em;
      white-space: nowrap;
    }
    .cp-col-num {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--tmh-text); margin-bottom: 8px;
    }
    .cp-col-title {
      font-family: var(--font-display); font-size: 1rem;
      font-weight: 400; line-height: 1.3;
    }
    .cp-col-title em { font-style: italic; color: var(--tmh-text); }
    .cp-col-body {
      position: absolute; bottom: 0; left: 0; right: 0;
      padding: 32px 28px; z-index: 2;
      opacity: 0; transition: opacity 0s;
    }
    .cp-col-body .cp-col-num { display: none; }
    .cp-col-body h3 {
      font-family: var(--font-display);
      font-weight: 400; margin-bottom: 14px; line-height: 1.3;
    }
    .cp-col-body h3 em { font-style: italic; color: var(--tmh-text); }
    .cp-col-body p { font-family: var(--font-body); font-size: 0.85rem; font-weight: 300; color: var(--tmh-text); line-height: 1.7; }
    .cp-col.expanded { flex: 3; }
    .cp-col.expanded::before {
      background: linear-gradient(180deg, rgba(8,8,10,0.15) 0%, rgba(8,8,10,0.6) 40%, rgba(8,8,10,0.95) 100%);
    }
    .cp-col.expanded .cp-col-header {
      opacity: 0;
      align-items: flex-start;
      justify-content: flex-end;
    }
    .cp-col.expanded .cp-col-body { opacity: 1; transition: opacity 0.5s 0.35s; }
    .cp-col::after {
      content: ''; position: absolute; bottom: 0; left: 0; right: 0;
      height: 2px; background: transparent; z-index: 3;
      transition: background 0.4s;
    }
    .cp-col.expanded::after {
      background: linear-gradient(90deg, var(--tmh-gold), rgba(184,188,198,0.3));
    }

    /* Simulation */
    .cp-sim { padding: 0 0 80px; }
    .cp-case {
      display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
    }
    .cp-case-visual { position: relative; }
    .cp-case-img {
      border-radius: 16px; overflow: hidden; aspect-ratio: 4/3;
      border: 1px solid var(--tmh-gold-border);
    }
    .cp-case-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
    .cp-case-badge {
      /* background, border, border-radius, box-shadow → .tmh-card */
      position: absolute; top: -18px; right: 20px;
      padding: 14px 20px;
      background: rgba(8,8,10,0.35);
    }
    .cp-case-badge-model { font-family: var(--font-body); font-size: 1rem; color: var(--tmh-text); margin-bottom: 4px; }
    .cp-case-badge-price { font-family: var(--font-mono); font-size: 0.82rem; letter-spacing: 1px; color: var(--tmh-text-muted); }
    .cp-case-title {
      font-family: var(--font-display);
      font-weight: 400; margin-bottom: 8px; line-height: 1.2;
    }
    .cp-case-title em { font-style: italic; color: var(--tmh-text); }
    .cp-case-subtitle { font-family: var(--font-body); font-size: 0.88rem; font-weight: 300; color: var(--tmh-text); margin-bottom: 32px; line-height: 1.65; }
    .cp-table {
      width: 100%; border-collapse: collapse; margin-bottom: 20px;
    }
    .cp-table th {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 2px; text-transform: uppercase; color: var(--tmh-text);
      padding: 0 0 16px; text-align: left;
      border-bottom: 1px solid rgba(184,188,198,0.1);
    }
    .cp-table th:nth-child(2),
    .cp-table th:nth-child(3) { text-align: right; }
    .cp-table td {
      padding: 14px 0; border-bottom: 1px solid rgba(232,232,236,0.04);
      font-size: 0.82rem; color: var(--tmh-text);
    }
    .cp-table td:nth-child(2),
    .cp-table td:nth-child(3) {
      text-align: right; font-family: var(--font-mono); font-size: 0.82rem;
    }
    .cp-table td:nth-child(2) { text-decoration: line-through; color: var(--tmh-text); }
    .cp-table td:nth-child(3) { color: var(--tmh-text); }
    .cp-table tr:last-child td {
      border-bottom: none; padding-top: 18px; font-weight: 500;
    }
    .cp-table tr:last-child td:first-child { color: var(--tmh-text); }
    .cp-total-bar {
      display: flex; align-items: center; justify-content: space-between;
      padding: 20px 0 0;
      margin-top: 16px;
      border-top: 1px solid rgba(184,188,198,0.15);
      gap: 16px;
    }
    .cp-total-label { font-size: 0.82rem; color: var(--tmh-text); line-height: 1.5; }
    .cp-total-label strong { color: var(--tmh-text); font-weight: 600; }
    .cp-total-value {
      font-family: var(--font-mono); font-size: 1.6rem; color: var(--tmh-gold);
      white-space: nowrap; flex-shrink: 0;
    }
    .cp-total-value span {
      font-family: var(--font-mono); font-size: 0.82rem;
      color: var(--tmh-text-muted); text-decoration: line-through; margin-right: 10px;
    }

    /* CTA compact */
    .cp-cta-block {
      text-align: center; padding: 40px 24px;
      margin: 0 auto; max-width: 1100px;
    }
    .cp-cta-quote {
      font-family: var(--font-display); font-style: italic; font-weight: 400;
      color: var(--tmh-text); margin-bottom: 6px;
    }
    .cp-cta-quote em { color: var(--tmh-text); }
    .cp-cta-sub { font-family: var(--font-body); font-size: 0.88rem; font-weight: 300; color: var(--tmh-text); margin-bottom: 24px; }
    .cp-cta-btn {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 12px 28px; border-radius: 100px;
      /* border → token (styles.css) */
      /* background → token (styles.css) */
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      /* box-shadow → token (styles.css) */
      color: rgba(255, 255, 255, 0.92);
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.1em; text-transform: uppercase;
      text-decoration: none; cursor: pointer;
      transition: background 0.3s, box-shadow 0.3s;
    }
    .cp-cta-btn:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .cp-cta-btn::after {
      content: '→';
      display: inline-block;
      margin-left: 8px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .cp-cta-btn:hover::after {
      transform: translateX(5px);
    }

    /* Responsive cp */
    @media (max-width: 900px) {
      .cp-contrast { grid-template-columns: 1fr; }
      .cp-contrast-divider { height: 1px; width: 100%; }
      .cp-contrast-side { padding: 32px 24px; }
      .cp-alloc-row { grid-template-columns: 1fr; gap: 20px; }
      .cp-fleet-car { width: 140px; }
      .cp-fleet-car img { height: 90px; }
      .cp-case { grid-template-columns: 1fr; gap: 40px; }
      .cp-case-visual { order: -1; }
      .cp-columns { flex-direction: column; height: auto; }
      .cp-col {
        height: 80px; flex: none;
        transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        border-right: none;
        border-bottom: 1px solid rgba(184,188,198,0.1);
      }
      .cp-col:last-child { border-bottom: none; }
      .cp-col.expanded { height: 400px; }
      .cp-col-header { padding: 20px; }
      .cp-col-body { padding: 24px 20px; }
    }

    /* --- Family Office — Option A: Features list + Dashboard --- */
    #family-office {
      --fo-gold-border: rgba(184,188,198,0.18);
      --fo-muted: rgba(255,255,255,0.65);
      --fo-dim: rgba(255,255,255,0.35);
    }
    .fo-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .fo-reveal.visible { opacity: 1; transform: none; }
    .fo-blur-in { opacity: 0; filter: blur(6px); transform: translateY(16px); transition: opacity 0.7s ease, filter 0.7s ease, transform 0.7s ease; }
    .fo-blur-in.visible { opacity: 1; filter: blur(0); transform: none; }
    .fo-split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; max-width: 1100px; margin: 0 auto; }
    .fo-feature { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-bottom: 1px solid rgba(232,232,236,0.04); }
    .fo-feature:first-child { padding-top: 0; }
    .fo-feature-icon { /* background, border → .tmh-card */ width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .fo-feature-icon svg { width: 18px; height: 18px; stroke: var(--tmh-gold); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .fo-feature-text { flex: 1; }
    .fo-feature-title { font-family: var(--font-body); font-size: 1rem; font-weight: 400; margin-bottom: 4px; }
    .fo-feature-desc { font-size: 0.82rem; color: var(--tmh-text); font-weight: 300; line-height: 1.6; }
    .fo-feature-pills { display: flex; gap: 6px; margin-top: 8px; }
    .fo-pill { font-family: var(--font-mono); font-size: 0.82rem; padding: 3px 10px; border-radius: 100px; border: 1px solid rgba(232,232,236,0.08); color: var(--tmh-text); letter-spacing: 0.5px; }
    /* Dashboard sticky */
    .fo-dashboard-wrap { position: sticky; top: 100px; }
    .fo-dashboard { background: var(--tmh-bg-2); border: 1px solid rgba(232,232,236,0.06); border-radius: 20px; overflow: hidden; }
    .fo-dash-topbar { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid rgba(232,232,236,0.06); }
    .fo-dash-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(232,232,236,0.06); }
    .fo-dash-dot:nth-child(1) { background: rgba(184,188,198,0.4); }
    .fo-dash-dot:nth-child(2) { background: rgba(184,188,198,0.2); }
    .fo-dash-topbar-title { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 1.5px; margin-left: 8px; text-transform: uppercase; }
    .fo-dash-topbar-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
    .fo-dash-avatar { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(135deg, var(--tmh-gold) 0%, #e8d5b0 100%); display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 0.82rem; color: #060606; font-weight: 500; }
    .fo-dash-notif { position: relative; }
    .fo-dash-notif svg { width: 14px; height: 14px; stroke: rgba(232,232,236,0.35); fill: none; stroke-width: 1.5; }
    .fo-dash-notif-badge { position: absolute; top: -2px; right: -2px; width: 7px; height: 7px; border-radius: 50%; background: var(--tmh-gold); border: 2px solid var(--tmh-bg-2); }
    .fo-dash-body { padding: 16px; }
    .fo-dash-welcome { margin-bottom: 14px; }
    .fo-dash-welcome-label { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 4px; }
    .fo-dash-welcome-name { font-family: var(--font-body); font-size: 1.1rem; font-weight: 400; }
    .fo-dash-welcome-name span { color: var(--tmh-text); }
    .fo-dash-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
    .fo-dash-kpi { background: var(--tmh-bg-3); border-radius: 10px; padding: 12px 10px; border: 1px solid rgba(232,232,236,0.06); }
    .fo-dash-kpi-label { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 6px; }
    .fo-dash-kpi-val { font-family: var(--font-mono); font-size: 1rem; font-weight: 500; color: var(--tmh-text); }
    .fo-dash-kpi-change { font-family: var(--font-mono); font-size: 0.82rem; margin-top: 3px; }
    .fo-dash-kpi-change.up { color: #34D399; }
    .fo-dash-chart { background: var(--tmh-bg-3); border-radius: 10px; padding: 14px; border: 1px solid rgba(232,232,236,0.06); margin-bottom: 14px; position: relative; }
    .fo-dash-chart-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
    .fo-dash-chart-title { font-family: var(--font-body); font-size: 0.82rem; font-weight: 400; }
    .fo-dash-chart-tabs { display: flex; gap: 3px; }
    .fo-dash-chart-tab { font-family: var(--font-mono); font-size: 0.82rem; padding: 3px 7px; border-radius: 100px; border: 1px solid rgba(232,232,236,0.06); color: var(--tmh-text); }
    .fo-dash-chart-tab.active { border-color: var(--tmh-text); color: var(--tmh-text); background: rgba(184,188,198,0.05); }
    .fo-dash-chart-svg { width: 100%; height: 100px; }
    .fo-dash-chart-labels { display: flex; justify-content: space-between; margin-top: 6px; }
    .fo-dash-chart-label { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 0.5px; }
    .fo-chart-tooltip { position: absolute; background: var(--tmh-bg-2); border: 1px solid rgba(184,188,198,0.2); border-radius: 8px; padding: 8px 10px; pointer-events: none; }
    .fo-chart-tooltip-date { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 1px; margin-bottom: 3px; }
    .fo-chart-tooltip-car { font-family: var(--font-body); font-size: 0.82rem; margin-bottom: 2px; }
    .fo-chart-tooltip-vals { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); line-height: 1.4; }
    .fo-chart-tooltip-pct { display: inline-block; margin-top: 3px; font-family: var(--font-mono); font-size: 0.82rem; padding: 2px 6px; border-radius: 100px; background: rgba(52,211,153,0.1); color: #34D399; border: 1px solid rgba(52,211,153,0.2); }
    .fo-dash-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
    .fo-dash-garage, .fo-dash-activity { background: var(--tmh-bg-3); border-radius: 10px; padding: 14px; border: 1px solid rgba(232,232,236,0.06); }
    .fo-dash-garage-title, .fo-dash-activity-title { font-family: var(--font-body); font-size: 0.82rem; font-weight: 400; margin-bottom: 12px; }
    .fo-dash-garage-content { display: flex; align-items: center; gap: 14px; }
    .fo-dash-donut-wrap { position: relative; width: 80px; height: 80px; flex-shrink: 0; }
    .fo-dash-donut-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; }
    .fo-dash-donut-count { font-family: var(--font-body); font-size: 1.2rem; font-weight: 400; color: var(--tmh-text); }
    .fo-dash-donut-label { font-family: var(--font-mono); font-size: 0.58rem; color: var(--tmh-text-dim); letter-spacing: 1px; text-transform: uppercase; }
    .fo-dash-legend-item { display: flex; align-items: center; gap: 6px; padding: 3px 0; }
    .fo-dash-legend-dot { width: 7px; height: 7px; border-radius: 2px; flex-shrink: 0; }
    .fo-dash-legend-name { font-size: 0.82rem; color: var(--tmh-text); flex: 1; }
    .fo-dash-legend-count { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); }
    .fo-dash-activity-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; border-bottom: 1px solid rgba(232,232,236,0.03); }
    .fo-dash-activity-item:last-child { border-bottom: none; }
    .fo-dash-activity-icon { width: 24px; height: 24px; border-radius: 6px; background: rgba(184,188,198,0.06); border: 1px solid rgba(184,188,198,0.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
    .fo-dash-activity-icon svg { width: 10px; height: 10px; stroke: var(--tmh-gold); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .fo-dash-activity-text { font-size: 0.82rem; color: var(--tmh-text); line-height: 1.3; }
    .fo-dash-activity-text strong { color: var(--tmh-text); font-weight: 500; }
    .fo-dash-activity-time { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); margin-top: 2px; }
    .fo-dash-vehicles { background: var(--tmh-bg-3); border-radius: 10px; padding: 14px; border: 1px solid rgba(232,232,236,0.06); }
    .fo-dash-vehicles-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
    .fo-dash-vehicles-title { font-family: var(--font-body); font-size: 0.82rem; font-weight: 400; }
    .fo-dash-vehicles-link { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 1px; text-transform: uppercase; text-decoration: none; }
    .fo-dash-vehicles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .fo-dash-vehicle-thumb { border-radius: 8px; overflow: hidden; position: relative; aspect-ratio: 16/10; border: 1px solid rgba(232,232,236,0.06); }
    .fo-dash-vehicle-thumb img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.7); }
    .fo-dash-vehicle-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 6px 8px; background: linear-gradient(0deg, rgba(8,8,10,0.85) 0%, transparent 100%); }
    .fo-dash-vehicle-name { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); letter-spacing: 0.5px; }
    .fo-dash-vehicle-val { font-family: var(--font-mono); font-size: 0.82rem; color: var(--tmh-text); margin-top: 1px; }
    .fo-a-link {
      display: inline-flex; align-items: center; gap: 8px;
      font-family: var(--font-mono); font-size: 0.82rem; letter-spacing: 1px; text-transform: uppercase;
      color: rgba(255,255,255,0.92); text-decoration: none; margin-top: 24px;
      padding: 10px 22px; border-radius: 100px;
      /* border → token (styles.css) */
      /* background → token (styles.css) */
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      /* box-shadow → token (styles.css) */
      transition: background 0.3s, box-shadow 0.3s;
    }
    .fo-a-link:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .fo-a-link::after {
      content: '→';
      display: inline-block;
      margin-left: 8px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .fo-a-link:hover::after {
      transform: translateX(5px);
    }
    /* journey steps */
    .fo-journey { padding: 80px 0; position: relative; }
    .fo-journey-header { text-align: center; margin-bottom: 60px; }
    .fo-journey-title { font-family: var(--font-display); font-weight: 400; }
    .fo-journey-title em { font-style: italic; color: var(--tmh-text); }
    .fo-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; max-width: 1100px; margin: 0 auto; position: relative; }
    .fo-steps::before { display: none; }
    .fo-steps-connector {
      position: absolute;
      top: 8px;
      left: 10%;
      right: 10%;
      height: 1px;
      background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(240,240,244,0.12) 15%,
        rgba(240,240,244,0.22) 50%,
        rgba(240,240,244,0.12) 85%,
        transparent 100%
      );
      pointer-events: none;
      overflow: hidden;
    }
    .fo-steps-beam {
      position: absolute;
      top: 0;
      left: -120px;
      height: 1px;
      width: 120px;
      background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(240,240,244,0.2) 20%,
        rgba(255,255,255,0.85) 50%,
        rgba(240,240,244,0.2) 80%,
        transparent 100%
      );
      box-shadow: 0 0 8px 1px rgba(240,240,244,0.35);
      opacity: 0;
      animation: fo-beam-travel 3.5s ease-in-out infinite;
    }
    @keyframes fo-beam-travel {
      0%   { left: -120px; opacity: 0; }
      8%   { opacity: 1; }
      92%  { opacity: 1; }
      100% { left: 100%; opacity: 0; }
    }
    .fo-step { text-align: center; padding: 0 20px; position: relative; }
    .fo-step-dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--tmh-gold); background: var(--tmh-bg-2); margin: 0 auto 16px; position: relative; z-index: 1; }
    .fo-step-dot::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 6px; height: 6px; border-radius: 50%; background: var(--tmh-gold); }
    .fo-step-num { font-family: var(--font-mono); font-size: 0.82rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--tmh-text); margin-bottom: 12px; }
    .fo-step-title { font-family: var(--font-display); font-weight: 400; margin-bottom: 10px; line-height: 1.3; }
    .fo-step-title em { font-style: italic; color: var(--tmh-text); }
    .fo-step-desc { font-size: 12.5px; color: var(--fo-muted); line-height: 1.7; }
    /* comparison table */
    .aa-subsection-title { font-family: var(--font-display); font-size: clamp(1.35rem, 1.8vw, 1.6rem); font-weight: 400; color: var(--tmh-text); margin-bottom: 8px; letter-spacing: 0.01em; }
    .fo-compare { padding: 80px 0; }
    .fo-compare-header { text-align: center; margin-bottom: 48px; }
    .fo-compare-title { font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 400; margin-bottom: 10px; }
    .fo-compare-title em { font-style: italic; color: var(--tmh-text); }
    .fo-compare-sub { font-size: 14px; color: var(--fo-muted); }
    .fo-compare-table { /* background, border, border-radius → .tmh-card */ max-width: 1000px; margin: 0 auto; overflow: hidden; border-radius: 16px; }
    .fo-compare-head { display: grid; grid-template-columns: 1.6fr 1fr 1fr; padding: 16px 24px; border-bottom: 1px solid var(--fo-gold-border); background: rgba(184,188,198,0.04); }
    .fo-compare-col { font-family: var(--font-mono); font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fo-dim); text-align: center; }
    .fo-compare-col:first-child { text-align: left; }
    .fo-compare-col.tmh { color: var(--tmh-text); font-weight: 500; }
    .fo-compare-row { display: grid; grid-template-columns: 1.6fr 1fr 1fr; padding: 14px 24px; border-bottom: 1px solid rgba(184,188,198,0.06); align-items: center; transition: background 0.2s; }
    .fo-compare-row:last-child { border-bottom: none; }
    .fo-compare-row:hover { background: rgba(184,188,198,0.02); }
    .fo-compare-feature { font-size: 15px; font-weight: 400; color: var(--tmh-text); }
    .fo-compare-cell { text-align: center; }
    .fo-check { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(184,188,198,0.1); }
    .fo-check svg { width: 12px; height: 12px; stroke: var(--tmh-gold); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
    .fo-cross { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(232,232,236,0.04); }
    .fo-cross svg { width: 10px; height: 10px; stroke: var(--fo-dim); fill: none; stroke-width: 2; stroke-linecap: round; }
    .fo-partial { font-family: var(--font-mono); font-size: 0.82rem; color: var(--fo-dim); }
    .fo-cta-fo { text-align: center; padding: 45px 24px 20px; max-width: 1100px; margin: 0 auto; }
    .fo-cta-quote { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: var(--text-xl); color: var(--tmh-text); margin-bottom: 6px; }
    .fo-cta-quote em { color: var(--tmh-text); }
    .fo-cta-sub { font-size: var(--text-sm); color: var(--tmh-text-dim); margin-bottom: 24px; }
    .fo-cta-btn {
      /* background/border/box-shadow → .tmh-btn (styles.css) */
      display: inline-flex; align-items: center; gap: 10px;
      padding: var(--btn-padding); border-radius: 100px;
      color: rgba(255,255,255,0.92); font-family: var(--font-body); font-size: var(--btn-font-size);
      letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; cursor: pointer;
    }
    .fo-cta-btn::after {
      content: '→';
      display: inline-block;
      margin-left: 8px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .fo-cta-btn:hover::after {
      transform: translateX(5px);
    }

    /* --- Services Grid --- */
    .aa-services-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }







    /* --- Platform Section --- */
    .aa-platform-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
    }
    .aa-platform-features {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
    .aa-platform-feature {
      display: flex;
      gap: 16px;
      align-items: flex-start;
    }
    .aa-platform-feature-icon {
      /* background → .tmh-card */
      width: 36px;
      height: 36px;
      min-width: 36px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .aa-platform-feature-icon svg {
      width: 18px;
      height: 18px;
      fill: none;
      stroke: var(--tmh-gold);
      stroke-width: 1.5;
    }
    .aa-platform-feature h4 {
      font-family: var(--font-body);
      font-weight: 500;
      color: var(--tmh-text);
      margin-bottom: 4px;
    }
    .aa-platform-feature p {
      font-family: var(--font-body);
      font-size: 0.85rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.5;
    }
    .aa-platform-mockup {
      position: relative;
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(232,232,236,0.06);
      background: var(--tmh-bg-2);
    }
    .aa-platform-mockup-bar {
      padding: 12px 16px;
      background: var(--tmh-bg-3);
      display: flex;
      align-items: center;
      gap: 8px;
      border-bottom: 1px solid rgba(232,232,236,0.04);
    }
    .aa-platform-mockup-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgba(232,232,236,0.1);
    }
    .aa-platform-mockup-dot:first-child { background: rgba(255,95,87,0.6); }
    .aa-platform-mockup-dot:nth-child(2) { background: rgba(255,189,46,0.6); }
    .aa-platform-mockup-dot:nth-child(3) { background: rgba(39,201,63,0.6); }
    .aa-platform-mockup-content {
      padding: 32px;
    }
    .aa-platform-dashboard {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-bottom: 24px;
    }
    .aa-platform-kpi {
      padding: 16px;
      background: var(--tmh-bg-3);
      border-radius: 10px;
      border: 1px solid rgba(232,232,236,0.04);
    }
    .aa-platform-kpi-label {
      font-family: var(--font-body);
      font-size: 0.82rem;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--tmh-text);
      margin-bottom: 8px;
    }
    .aa-platform-kpi-value {
      font-family: var(--font-mono);
      font-size: 1.3rem;
      font-weight: 600;
      color: var(--tmh-text);
    }
    .aa-platform-chart {
      height: 120px;
      background: var(--tmh-bg-3);
      border-radius: 10px;
      border: 1px solid rgba(232,232,236,0.04);
      position: relative;
      overflow: hidden;
    }
    .aa-platform-chart-line {
      position: absolute;
      bottom: 20px;
      left: 20px;
      right: 20px;
      height: 60px;
    }
    .aa-platform-chart-line svg {
      width: 100%;
      height: 100%;
    }

    /* --- Stats Section --- */




    /* --- CTA Section --- */







    /* --- Assurance Section --- */
    .aa-assurance-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: start;
    }
    .aa-assurance-intro {
      position: sticky;
      top: 120px;
    }
    .aa-assurance-intro .aa-section-desc {
      margin-bottom: 32px;
    }
    .aa-assurance-highlight {
      /* background, border, border-radius → .tmh-card */
      padding: 28px 32px;
      margin-top: 32px;
    }
    .aa-assurance-highlight-title {
      font-family: var(--font-display);
      color: var(--tmh-text);
      margin-bottom: 12px;
      line-height: 1.3;
    }
    .aa-assurance-highlight-desc {
      font-family: var(--font-body);
      font-size: 0.95rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.7;
      margin-bottom: 20px;
    }
    .aa-assurance-highlight-cta {
      /* background, border, border-radius → .tmh-btn */
      gap: 8px;
      font-size: 0.85rem;
      font-weight: 500;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.92);
      text-decoration: none;
      padding: var(--btn-padding);
      transition: background 0.3s, box-shadow 0.3s;
    }
    .aa-assurance-highlight-cta:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .aa-assurance-highlight-cta::after {
      content: '→';
      display: inline-block;
      margin-left: 8px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .aa-assurance-highlight-cta:hover::after {
      transform: translateX(5px);
    }
    .aa-assurance-highlight-cta svg {
      display: none;
      width: 14px;
      height: 14px;
      stroke: currentColor;
      stroke-width: 1.5;
      fill: none;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .aa-assurance-cards {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .aa-assurance-card {
      /* background → token (styles.css) */
      border: 1px solid rgba(184,188,198,0.08);
      border-radius: 16px;
      padding: 28px 32px;
      position: relative;
      overflow: hidden;
    }
    .aa-assurance-card-bg {
      position: absolute;
      top: 0; right: 0;
      width: 70%;
      height: 100%;
      opacity: 0.40;
      mask-image: linear-gradient(90deg, transparent 0%, black 20%, black 85%, transparent 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 20%, black 85%, transparent 100%);
      pointer-events: none;
    }
    .aa-assurance-card-bg img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center;
    }
    .aa-assurance-card-head {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-bottom: 12px;
    }
    .aa-assurance-card-icon {
      /* background, border, border-radius → .tmh-card */
      width: 40px;
      height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .aa-assurance-card-icon svg {
      width: 20px;
      height: 20px;
      stroke: var(--tmh-gold);
      stroke-width: 1.5;
      fill: none;
    }
    .aa-assurance-card h3 {
      font-family: var(--font-body);
      font-weight: 500;
      color: var(--tmh-text);
    }
    .aa-assurance-card p {
      font-family: var(--font-body);
      font-size: 0.9rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.65;
    }
    .aa-assurance-card-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 14px;
    }
    .aa-assurance-pill {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      letter-spacing: 0.03em;
      color: var(--tmh-text);
      /* background → token (styles.css) */
      border: 1px solid rgba(232,232,236,0.12);
      border-radius: 8px;
      padding: 5px 14px;
    }

    .aa-assurance-kpis {
      display: flex;
      align-items: stretch;
      gap: 0;
      margin-top: 40px;
    }
    .aa-assurance-kpi {
      text-align: center;
    }
    .aa-assurance-kpi-val {
      font-family: var(--font-body);
      font-size: 2rem;
      color: var(--tmh-text);
      line-height: 1;
      margin-bottom: 6px;
    }
    .aa-assurance-kpi-label {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }

    .aa-assurance-brands {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 24px;
    }
    .aa-assurance-brand {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
      background: rgba(184,188,198,0.05);
      border: 1px solid rgba(184,188,198,0.1);
      border-radius: 8px;
      padding: 6px 16px;
      transition: border-color 0.3s ease;
    }
    .aa-assurance-brand:hover {
      border-color: var(--tmh-text);
    }

    /* --- Detailing Section (full-width centré, 3 colonnes) --- */
    .aa-det-section { background: transparent; }
    .aa-det-header {
      text-align: center;
      max-width: 640px;
      margin: 0 auto var(--space-10);
    }
    .aa-det-header .aa-section-label { justify-content: center; }
    .aa-det-header .aa-section-desc { max-width: 520px; margin: 12px auto 0; }

    /* Protection strip */
    .aa-det-prot-strip {
      display: flex;
      justify-content: center;
      gap: 16px;
      margin-bottom: 56px;
    }
    .aa-det-prot {
      /* background, border, border-radius → .tmh-card */
      flex: 0 1 200px;
      text-align: center;
      padding: 20px 16px;
      transition: border-color 0.3s ease;
    }
    .aa-det-prot:hover { border-color: var(--tmh-text); }
    .aa-det-prot-name {
      font-family: var(--font-body);
      font-size: 0.88rem;
      font-weight: 500;
      color: var(--tmh-text);
      margin-bottom: 4px;
    }
    .aa-det-prot-dur {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      color: var(--tmh-text);
      letter-spacing: 0.05em;
      margin-bottom: 8px;
    }
    .aa-det-prot-desc {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.5;
    }

    /* --- Comparatif étoiles --- */
    .aa-det-compare {
      background: var(--glass-fill-1);
      backdrop-filter: blur(12px) saturate(140%);
      -webkit-backdrop-filter: blur(12px) saturate(140%);
      border: 1px solid var(--tmh-border-gold);
      border-radius: 16px;
      overflow: hidden;
      box-shadow: var(--shadow-card-md);
    }
    .aa-det-compare-head {
      display: grid;
      grid-template-columns: 1.2fr 1fr 1fr 1fr;
      align-items: end;
      padding: 20px 32px 24px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      background: linear-gradient(180deg, rgba(176,180,190,0.04) 0%, transparent 100%);
    }
    .aa-det-compare-criteria-label {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.16em;
      color: var(--tmh-text-dim);
      text-transform: uppercase;
      padding-bottom: 4px;
    }
    .aa-det-compare-product {
      text-align: center;
      padding: 0 12px;
      position: relative;
    }
    .aa-det-compare-product-name {
      font-family: var(--font-display);
      font-size: 1.15rem;
      font-weight: 400;
      color: var(--tmh-text);
      margin-bottom: 4px;
      letter-spacing: 0.01em;
    }
    .aa-det-compare-product-sub {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.1em;
      color: var(--tmh-text-dim);
      text-transform: uppercase;
    }
    .aa-det-compare-product-best {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .aa-det-compare-product-best::before {
      content: "RECOMMAND\00c9";
      display: inline-block;
      margin-bottom: 10px;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.18em;
      color: var(--tmh-gold);
      background: rgba(176,180,190,0.08);
      border: 1px solid var(--tmh-border-gold);
      border-radius: 20px;
      padding: 4px 12px;
      white-space: nowrap;
    }
    .aa-det-compare-product-best .aa-det-compare-product-name {
      background: linear-gradient(135deg, var(--tmh-gold-light) 0%, var(--tmh-gold) 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .aa-det-compare-row {
      display: grid;
      grid-template-columns: 1.2fr 1fr 1fr 1fr;
      align-items: center;
      padding: 22px 32px;
      border-bottom: 1px solid rgba(255,255,255,0.05);
      transition: background 0.3s ease;
    }
    .aa-det-compare-row:last-child { border-bottom: none; }
    .aa-det-compare-row:hover { background: rgba(255,255,255,0.02); }
    .aa-det-compare-criteria {
      display: flex;
      align-items: center;
      gap: 10px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 500;
      color: var(--tmh-text);
      letter-spacing: 0.02em;
    }
    .aa-det-compare-criteria svg {
      fill: none;
      stroke: var(--tmh-gold);
      stroke-width: 1.5;
      opacity: 0.75;
    }
    .aa-det-compare-stars {
      display: flex;
      justify-content: center;
      gap: 4px;
    }
    .aa-det-compare-stars .star {
      width: 14px;
      height: 14px;
      background: var(--tmh-gold);
      clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
      transition: all 0.3s ease;
    }
    .aa-det-compare-stars .star.empty {
      background: rgba(255,255,255,0.1);
    }
    .aa-det-compare-row:hover .aa-det-compare-stars .star:not(.empty) {
      background: var(--tmh-gold-light);
      filter: drop-shadow(0 0 4px rgba(176,180,190,0.4));
    }

    /* 3 stages columns */
    .aa-det-stages {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-bottom: 48px;
    }
    .aa-det-stage {
      /* background → token (styles.css) */
      border: 1px solid rgba(232,232,236,0.06);
      border-radius: 16px;
      padding: 32px 28px;
      display: flex;
      flex-direction: column;
      transition: border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
    }
    .aa-det-stage:hover {
      border-color: var(--tmh-border-gold);
      transform: translateY(-4px);
      box-shadow: 0 12px 40px rgba(0,0,0,0.3);
    }
    /* Premium highlight */
    .aa-det-stage-premium {
      border-color: var(--tmh-border-gold);
      position: relative;
    }
    .aa-det-stage-popular {
      display: inline-block;
      font-family: var(--font-mono);
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: #000000;
      background: var(--tmh-gold);
      border-radius: 100px;
      padding: 3px 12px;
      flex-shrink: 0;
    }

    .aa-det-stage-badge {
      display: inline-block;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #000000;
      background: var(--tmh-gold);
      border-radius: 6px;
      padding: 3px 10px;
      margin-bottom: 14px;
    }
    .aa-det-stage h3 {
      font-family: var(--font-display);
      color: var(--tmh-text);
      margin-bottom: 6px;
    }
    .aa-det-stage-price {
      font-family: var(--font-mono);
      font-size: 1.4rem;
      font-weight: 600;
      color: var(--tmh-text);
      margin-bottom: 16px;
    }
    .aa-det-stage-meta {
      display: flex;
      gap: 20px;
      margin-bottom: 16px;
      padding-bottom: 16px;
      border-bottom: 1px solid rgba(232,232,236,0.06);
    }
    .aa-det-stage-meta span {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--tmh-text);
      display: flex;
      align-items: center;
      gap: 5px;
    }
    .aa-det-stage-meta svg {
      width: 13px; height: 13px;
      stroke: var(--tmh-text-dim);
      stroke-width: 1.5; fill: none;
    }
    .aa-det-stage p {
      font-family: var(--font-body);
      font-size: 0.84rem;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.65;
      margin-bottom: 16px;
      flex: 1;
    }
    .aa-det-stage-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .aa-det-pill {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 400;
      color: var(--tmh-text);
      background: rgba(232,232,236,0.06);
      border: 1px solid rgba(232,232,236,0.08);
      border-radius: 8px;
      padding: 5px 12px;
    }

    /* Options strip */
    .aa-det-options {
      max-width: 800px;
      margin: 0 auto 48px;
    }
    .aa-det-options-title {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--tmh-text);
      text-align: center;
      margin-bottom: 16px;
    }
    .aa-det-option-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 14px 0;
      border-bottom: 1px solid rgba(232,232,236,0.06);
    }
    .aa-det-option-row:last-child { border-bottom: none; }
    .aa-det-option-name {
      font-family: var(--font-body);
      font-size: 0.85rem;
      font-weight: 400;
      color: var(--tmh-text);
    }
    .aa-det-option-price {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      color: var(--tmh-text);
    }

    /* Member CTA box */
    .aa-det-member {
      display: flex;
      align-items: center;
      gap: 20px;
      max-width: 700px;
      margin: 0 auto;
      padding: 24px 32px;
      border: 1px solid rgba(184,188,198,0.15);
      border-radius: 14px;
      background: rgba(184,188,198,0.03);
    }
    .aa-det-member-icon {
      /* background, border, border-radius → .tmh-card */
      width: 44px; height: 44px;
      display: flex;
      align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .aa-det-member-icon svg {
      width: 22px; height: 22px;
      stroke: var(--tmh-gold);
      stroke-width: 1.5; fill: none;
    }
    .aa-det-member-text {
      flex: 1;
    }
    .aa-det-member-text h4 {
      font-family: var(--font-body);
      font-weight: 500;
      color: var(--tmh-text);
      margin-bottom: 4px;
    }
    .aa-det-member-text p {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--tmh-text);
    }
    .aa-det-member-cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 500;
      color: var(--tmh-text);
      text-decoration: none;
      white-space: nowrap;
      transition: gap 0.3s ease;
    }
    .aa-det-member-cta:hover { gap: 14px; }
    .aa-det-member-cta svg {
      width: 16px; height: 16px;
      stroke: var(--tmh-gold); stroke-width: 2; fill: none;
    }

    /* --- Responsive --- */
    @media (max-width: 1024px) {
      .aa-det-stages { grid-template-columns: 1fr 1fr; }
      .aa-det-prot-strip { flex-wrap: wrap; }
      .aa-det-member { flex-direction: column; text-align: center; }
      .aa-assurance-layout { grid-template-columns: 1fr; gap: 48px; }
      .aa-assurance-intro { position: static; }
      .aa-services-grid { grid-template-columns: 1fr 1fr; }

      .aa-platform-layout { grid-template-columns: 1fr; }
    }
    @media (max-width: 768px) {

      .aa-section { padding: 80px 20px; }
      .aa-carousel-section { padding: 80px 0; }
      .aa-services-grid { grid-template-columns: 1fr; }

      .aa-vehicle-card { flex: 0 0 300px; }

      .aa-platform-dashboard { grid-template-columns: 1fr; }
      .fo-split { grid-template-columns: 1fr; }
      .fo-dashboard-wrap { position: static; }
      .aa-det-stages { grid-template-columns: 1fr; }
      .aa-assurance-kpis { grid-template-columns: repeat(3, 1fr); gap: 16px; }
      .fo-steps { grid-template-columns: repeat(2, 1fr); gap: 40px; }
      .fo-steps::before { display: none; }
      .fo-steps-connector { display: none; }
      .fo-compare-head, .fo-compare-row { grid-template-columns: 1.4fr 1fr 1fr; }
    }
    @media (max-width: 480px) {


      .fo-steps { grid-template-columns: 1fr; }
      .fo-compare-head, .fo-compare-row { grid-template-columns: 1.8fr 0.8fr 0.8fr; padding: 12px 16px; }
    }
    /* ─── Colorimetry overrides (inline) ─── */
    .leasing-immersive-badge { color: var(--tmh-text); }
    .section h2, .aa-section-title { visibility: visible; }
  
/* --- automotive-assets.html inline styles (block 1) --- */
    /* ─── SECTIONS RELATIVE ─── */
    .aa-carousel-section, .aa-om-section, .aa-src-section,
    .aa-section, .aa-det-section, .dp-ecosystem { position: relative; }

    /* ─── AMBIENT ORBS — supprimées en V10 ─── */
    .frost-orb { display: none; }

    /* ═══════════════════════════════════════
       CP-COL — Glassmorphism (vitre givr&eacute;e)
       SVG nettes dessous + vitre blur au-dessus
       ═══════════════════════════════════════ */
    .cp-col::before,
    .cp-col:hover::before,
    .cp-col.expanded::before {
      background: rgba(255,255,255,0.03);
      backdrop-filter: blur(6px) saturate(140%);
      -webkit-backdrop-filter: blur(6px) saturate(140%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
    }
    /* Shimmer gauche — séparateur entre colonnes */
    .cp-col::after {
      display: block;
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 1px; height: 100%;
      background: linear-gradient(180deg, transparent, rgba(255,255,255,0.22), transparent);
      z-index: 3; pointer-events: none;
    }
    .cp-col:first-child::after { display: none; }
    .cp-col { border-right: none; }
    /* Wrapper : border + box-shadow du glass-card */
    .cp-columns {
      border: 1px solid rgba(255,255,255,0.3);
      border-radius: 20px;
      overflow: hidden;
      box-shadow:
        0 8px 32px rgba(0,0,0,0.1),
        inset 0 1px 0 rgba(255,255,255,0.5),
        inset 0 -1px 0 rgba(255,255,255,0.1),
        inset 0 0 0px 0px rgba(255,255,255,0);
    }
    /* Typographie — alignement référence douanes */
    .cp-col-title {
      font-family: var(--font-body);
      font-size: 1.1rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.10em;
    }
    .cp-col-num {
      display: none;
    }
    .cp-col-body h3 {
      font-family: var(--font-body);
      font-weight: 600;
    }

    /* ═══════════════════════════════════════
       V2 — FROSTED CARDS (high contrast)
       Plus de blur, borders 2× plus visibles, luminous edges 2× plus intenses
       ═══════════════════════════════════════ */

    /* --- 1. VENTE PUBLIQUE --- */
    .aa-carousel-section { overflow: visible; }
    /* aa-vehicle-card → .tmh-card (styles.css) */

    /* --- 2. OFF-MARKET --- */
    /* aa-om-card → .tmh-card (styles.css) */

    /* --- 3. CAR SOURCING — preserve layout --- */
    .aa-src-panel {
      border: 1px solid rgba(184,188,198,0.15);
    }

    /* --- 4. LEASING --- */
    .leasing-immersive { position: relative; }
    /* La ligne lumineuse est gérée par box-shadow inset sur .leasing-immersive-inner */

    /* --- 5. CO-PROPRIÉTÉ --- */
    .cp-contrast { position: relative; }
    .cp-contrast::before { display: none; }
    .cp-contrast-side {
      background: #000000;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      border: none;
    }
    .cp-col-body {
      background: transparent;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }

    /* --- 6. FAMILY OFFICE — keep original, just enhance dashboard --- */
    .fo-dashboard {
      border: 1px solid rgba(184,188,198,0.18);
      box-shadow: 0 50px 100px rgba(0,0,0,0.90), inset 0 1px 0 rgba(184,188,198,0.12);
    }

    /* --- 7. PLATFORM — keep original --- */

    /* --- 8. ASSURANCE --- */
    /* aa-assurance-card → .tmh-card (styles.css) */

    /* --- 9. DETAILING --- */
    /* .aa-det-stage → .tmh-card (styles.css) */

    /* --- 10. CTA --- */
    .dp-ecosystem { position: relative; }
    .dp-ecosystem::before {
      content: ''; position: absolute; top: 0; left: 12%; right: 12%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }

    /* --- 11. FOOTER --- */
    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }

    /* TABLE — flat dans la carte, sans bordure propre */
    .cp-table {
      border: none;
      border-radius: 0;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      padding: 0;
      border-collapse: collapse;
      border-spacing: 0;
    }
    .cp-table th {
      padding: 16px 0 14px;
      font-size: 0.82rem;
      letter-spacing: 2.5px;
      color: var(--tmh-text);
      opacity: 0.55;
      border-bottom: 1px solid rgba(184,188,198,0.15);
    }
    .cp-table td {
      padding: 16px 0;
      font-size: 0.88rem;
      font-weight: 400;
      color: var(--tmh-text);
      border-bottom: 1px solid rgba(184,188,198,0.07);
    }
    .cp-table tr:hover td {
      background: rgba(184,188,198,0.04);
    }
    .cp-table tr:last-child td {
      border-bottom: none;
      font-weight: 500;
    }

    /* ═══════════════════════════════════════
       CO-PROPRIÉTÉ — VS divider + citation
       ═══════════════════════════════════════ */
    .cp-contrast-divider {
      display: flex;
      align-items: center;
      justify-content: center;
      background: transparent;
      min-width: 2px;
      width: 2px;
      position: relative;
    }
    .cp-contrast-divider::after {
      content: 'VS';
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      background: #060606;
      color: var(--tmh-text);
      opacity: 1;
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.2em;
      padding: 14px 10px;
      z-index: 2;
    }
    .cp-cta-quote {
      font-family: var(--font-display);
      font-weight: 400;
      font-style: italic;
      font-size: clamp(1.4rem, 2.2vw, 1.8rem);
      line-height: 1.55;
    }

    /* ═══════════════════════════════════════
       SECTION SEPARATORS — lignes horizontales entre sections
       ═══════════════════════════════════════ */
    .aa-om-section::before,
    .aa-src-section::before,
    #vente-publique::before,
    #leasing::before,
    #copropriete::before,
    #family-office::before,
    #plateforme::before,
    #assurance::before,
    #detailing::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }

    /* ── CTA Actifs Traités ── */
    .aa-sold-cta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 32px;
      position: relative;
      overflow: hidden;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,0.10);
      background: rgba(10,10,12,0.85);
      padding: 22px 40px;
      text-decoration: none;
      transition: border-color 300ms;
    }
    .aa-sold-cta::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
    }
    .aa-sold-cta:hover { border-color: rgba(184,188,198,0.28); }
    .aa-sold-damier {
      position: absolute; inset: 0;
      background: repeating-conic-gradient(
        rgba(255,255,255,0.035) 0% 25%, transparent 0% 50%
      ) 0 0 / 20px 20px;
      pointer-events: none;
      mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.35) 30%, rgba(0,0,0,0.55) 65%, transparent 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.35) 30%, rgba(0,0,0,0.55) 65%, transparent 100%);
    }
    .aa-sold-left {
      display: flex; align-items: center; gap: 20px;
      position: relative; z-index: 1; flex: 1; min-width: 0;
    }
    .aa-sold-eyebrow {
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.18em; text-transform: uppercase;
      color: var(--tmh-gold); flex-shrink: 0;
    }
    .aa-sold-sep {
      width: 1px; height: 18px; flex-shrink: 0;
      background: rgba(255,255,255,0.15);
    }
    .aa-sold-title {
      font-family: var(--font-display); font-size: 1.35rem; font-weight: 300;
      color: var(--tmh-text); line-height: 1; white-space: nowrap;
    }
    .aa-sold-right { position: relative; z-index: 1; flex-shrink: 0; }
    .aa-sold-btn {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 11px 24px; border-radius: 100px;
      font-family: var(--font-mono); font-size: 0.82rem;
      letter-spacing: 0.1em; text-transform: uppercase;
      background: transparent;
      border: 1px solid rgba(184,188,198,0.25);
      color: var(--tmh-gold-light);
      transition: background 250ms, border-color 250ms, color 250ms;
      white-space: nowrap;
    }
    .aa-sold-btn svg { width: 14px; height: 14px; transition: transform 250ms; }
    .aa-sold-cta:hover .aa-sold-btn {
      background: rgba(176,180,190,0.12);
      border-color: rgba(184,188,198,0.45);
      color: var(--tmh-text);
    }
    .aa-sold-cta:hover .aa-sold-btn svg { transform: translateX(3px); }

/* --- automotive-assets.html inline styles (block 2: cmp-pill badges) --- */
          .cmp-pill { display:inline-block; font-family:var(--font-mono); font-size:0.82rem; letter-spacing:0.12em; padding:4px 14px; border-radius:100px; }
          .cmp-ok   { background:rgba(176,180,190,0.15); border:1px solid rgba(176,180,190,0.35); color:var(--tmh-gold-light); }
          .cmp-no   { background:rgba(255,60,60,0.08); border:1px solid rgba(255,60,60,0.2); color:rgba(255,100,100,0.7); text-decoration:line-through; }
          .cmp-mid  { background:rgba(255,190,60,0.08); border:1px solid rgba(255,190,60,0.22); color:rgba(255,190,80,0.85); }


/* ═══════════════════════════════════════════════════════════════
   PAGE: DOUANES
   ═══════════════════════════════════════════════════════════════ */

    :root {
      
      /* Contraste ameliore */
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }




    /* Ombres renforcees */
    .service-detail-card, .faq-item {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    }
    .service-detail-card:hover{
      box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), 0 0 30px rgba(184, 188, 198, 0.06);
    }
    

    /* ─── Hero Cinématique Douanes ─── */
    .cst-hero {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }



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







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

    /* ── Sticky Sub-nav (identique AA) ── */
    .aa-subnav {
      position: sticky; top: 72px; z-index: 90;
      background: rgba(8,8,10,0.85);
      backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid rgba(184,188,198,0.08);
      overflow: hidden;
    }
    .aa-subnav-inner {
      max-width: 1200px; margin: 0 auto;
      display: flex; gap: 0;
      overflow-x: scroll; overflow-y: visible;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none; -ms-overflow-style: none; position: relative;
    }
    .aa-subnav-inner::-webkit-scrollbar { display: none; }
    .aa-subnav-link {
      font-family: var(--font-body); font-size: 0.82rem; font-weight: 300;
      letter-spacing: 0.12em; text-transform: uppercase; padding: 14px 22px;
      color: rgba(255,255,255,0.35); text-decoration: none; white-space: nowrap;
      border-bottom: none; transition: color 0.35s ease; position: relative;
    }
    .aa-subnav-link::after {
      content: ''; position: absolute; bottom: 0; left: 15%; right: 15%;
      height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.75), transparent);
      opacity: 0; transform: scaleX(0.4); transition: opacity 0.35s ease, transform 0.35s ease;
    }
    .aa-subnav-link:hover { color: rgba(255,255,255,0.60); }
    .aa-subnav-link.active { color: rgba(255,255,255,0.88); font-weight: 400; }
    .aa-subnav-link.active::after { opacity: 1; transform: scaleX(1); }
    .section h2, .aa-section-title { visibility: visible; }

  
/* --- douanes.html inline styles --- */
    /* ─── FROSTED CARDS ─── */

    /* --- Country Cards --- */
    /* .dp2-country → .tmh-card (styles.css) */
    .dp2-country-glow { display: none; }
    .dp2-country * { pointer-events: none; }

    /* .dp-stamp-card → .tmh-card (styles.css) */

    /* --- Journey — glassmorphism sombre, sans variation au hover --- */
    .dp-journey-row { border-bottom: none; position: relative; cursor: default; }
    .dp-journey-row::before {
      background: rgba(8,8,10,0.68);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      transition: none;
    }
    .dp-journey-row.expanded::before,
    .dp-journey-row:hover::before,
    .dp-journey-row.expanded:hover::before {
      background: rgba(8,8,10,0.68);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      transition: none;
    }
    .dp-journey-row::after { transition: none; }
    .dp-journey-bg { transition: none; }
    .dp-journey-row:hover .dp-journey-bg { transform: none; }
    .dp-journey-row { transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
    /* Shimmer horizontal entre rows */
    .dp-journey-row::after {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      width: 100%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
      z-index: 3; pointer-events: none;
    }
    .dp-journey-row:first-child::after { display: none; }
    /* .dp-journey-stack → .tmh-card (styles.css) */
    .dp-journey-bar,
    .dp-journey-body { background: transparent; }

    /* --- TVA Cases — supprimer border-left + hover effect --- */
    .dp-tva-case { border-left: none; cursor: default; }
    .dp-tva-case:hover {
      background: transparent;
      border-left: none;
      border-left-color: transparent;
    }

    /* .dp-tva-card → .tmh-card (styles.css) */

    /* .tg-card → .tmh-card (styles.css) */

    /* --- Suppression images de fond (tarifs) --- */
    .tarifs-glass-bg,
    .tarifs-france-bg { display: none; }

    /* .tarifs-france-card → .tmh-card (styles.css) */

    /* --- Resolution Cards — wrap neutralisé, res-card = tmh-card standard --- */
    .res-card-wrap {
      padding: 0;
      overflow: visible;
    }
    .res-card-wrap::before,
    .res-card-wrap::after { display: none; }
    .res-service-left::before { display: none; } /* orbe haut-gauche */

    /* .res-card → .tmh-card (styles.css) */

    /* .card-cg, .card-tva → .tmh-card (styles.css) */

    /* ─── SECTION SEPARATORS ─── */
    .dp2-countries,
    .dp-journey,
    .dp-tva,
    .dp-resolution,
    .dp-crisis,
    .dp-ecosystem { position: relative; }

    .dp-journey::before,
    .dp-tva::before,
    .dp-resolution::before,
    .dp-crisis::before,
    .dp-ecosystem::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }

    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }


/* ═══════════════════════════════════════════════════════════════
   PAGE: FINTECH
   ═══════════════════════════════════════════════════════════════ */

    :root {
      
      /* Contraste ameliore */
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }



    /* Ombres renforcees */
    .service-detail-card, .dp-step-card, .faq-item {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    }
    .service-detail-card:hover, .dp-step-card:hover {
      box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), 0 0 30px rgba(184, 188, 198, 0.06);
    }
    

    /* ─── Hub wrap / glow / pills ─── */
    .fph-hub-wrap {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .fph-hub-glow {
      position: absolute;
      width: 260px; height: 260px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(176,180,190,0.06) 0%, transparent 70%);
      pointer-events: none;
    }
    .fph-hub-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      justify-content: center;
      margin-top: 18px;
      max-width: 200px;
    }
    .fph-hub-pill {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.12em;
      color: rgba(176,180,190,0.5);
      border: 1px solid rgba(176,180,190,0.15);
      border-radius: 20px;
      padding: 3px 10px;
    }
    /* Featured nodes */
    .fph-node.featured {
      background: rgba(176,180,190,0.05);
      border-color: rgba(176,180,190,0.22);
    }
    .fph-node.featured .fph-node-icon {
      background: rgba(176,180,190,0.10);
      border-color: rgba(176,180,190,0.30);
    }
    .fph-node.featured .fph-node-icon svg { stroke: var(--tmh-gold-light, #CDD0D8); }

    /* ─── Éditorial Manifeste ─── */
    .fp-manifeste-editorial {
      max-width: 820px;
      margin: 64px auto 0;
      text-align: center;
    }

    .fp-manifeste-quote {
      font-family: var(--font-display);
      font-weight: 400;
      font-style: italic;
      font-size: clamp(1.4rem, 2.2vw, 1.8rem);
      line-height: 1.55;
      color: var(--tmh-text);
      margin-bottom: 20px;
    }
    .fp-manifeste-author {
      font-family: var(--font-body);
      font-size: 10px;
      font-weight: 400;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }

    /* ─── Hero Cinématique ─── */
    .fin-hero {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }




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







    @keyframes scrollHint {
      0%, 100% { transform: translateX(-50%) translateY(0); }
      50%       { transform: translateX(-50%) translateY(6px); }
    }
    .section h2, .aa-section-title { visibility: visible; }
  
/* --- fintech.html inline styles --- */
    /* ─── FROSTED CARDS ─── */

    /* --- Expandable Pillar Columns — glass commun, référence douanes --- */

    /* Icône supprimée (pas de logo) */
    .fp-pillar-header-icon { display: none; }

    /* Photos — filtre supprimé, identique à douanes (aucun filtre) */
    .fp-pillar-bg {
      display: block;
      filter: none;
    }
    .fp-pillar:hover .fp-pillar-bg,
    .fp-pillar.expanded .fp-pillar-bg {
      filter: none;
    }

    /* Wrapper — gap: 0 comme dp-journey-stack + glass-card */
    /* .fp-pillars-cols → .tmh-card (styles.css) */
    .fp-pillars-cols { gap: 0; }

    /* Glass sombre sur ::before — identique à dp-journey-row */
    .fp-pillar::before,
    .fp-pillar:hover::before,
    .fp-pillar.expanded::before {
      background: rgba(8,8,10,0.68);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
    }

    /* Shimmer vertical entre colonnes — subtil */
    .fp-pillar::after {
      display: block;
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 1px; height: 100%;
      background: linear-gradient(180deg, transparent, rgba(255,255,255,0.22), transparent);
      z-index: 3; pointer-events: none;
    }
    .fp-pillar:first-child::after { display: none; }
    .fp-pillar.expanded::after    { display: none; }

    /* Pas de border individuelle */
    .fp-pillar { border: none; }

    /* Corps étendu — transparent */
    .fp-pillar-body {
      background: transparent;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }

    /* Typographie — alignement référence douanes */
    .fp-pillar-header-num {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.12em;
      opacity: 0.6;
    }
    .fp-pillar-header-name {
      font-family: var(--font-body);
      font-size: 1.1rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.10em;
    }
    .fp-pillar-body-label {
      font-family: var(--font-mono);
      font-size: 0.82rem;
      letter-spacing: 0.12em;
      opacity: 0.6;
    }
    .fp-pillar-body h3 {
      font-family: var(--font-body);
      font-weight: 600;
    }
    /* Stats pills — identiques aux dp-journey-doc-pill */
    /* .fp-pillar-stat → .tmh-pill (styles.css) */
    .fp-pillar-stat { font-size: 0.82rem; letter-spacing: 0.06em; white-space: nowrap; }

    /* --- Process Steps — hover supprimé --- */
    .fph-step-dot { transition: none; }
    .fph-step:hover .fph-step-dot {
      border-color: rgba(232,232,236,0.2);
      box-shadow: none;
      transform: none;
    }

    /* ── iPad Mockup ── */
    .ipad-mockup {
      display: flex;
      justify-content: center;
      perspective: 1200px;
    }

    .ipad-bezel {
      position: relative;
      background: linear-gradient(145deg, #2a2a2e 0%, #1a1a1e 40%, #111114 100%);
      border-radius: 28px;
      padding: 22px 18px;
      box-shadow:
        0 0 0 1px rgba(255,255,255,0.08),
        0 40px 80px rgba(0,0,0,0.7),
        inset 0 1px 0 rgba(255,255,255,0.1);
      width: 100%;
      max-width: 900px;
    }

    .ipad-camera {
      width: 8px; height: 8px;
      border-radius: 50%;
      background: #0a0a0c;
      border: 1px solid rgba(255,255,255,0.06);
      margin: 0 auto 10px;
    }

    .ipad-screen {
      border-radius: 10px;
      overflow: hidden;
      background: #000000;
      box-shadow: inset 0 0 0 1px rgba(0,0,0,0.5);
    }

    /* boutons décoratifs */
    .ipad-btn-top {
      position: absolute;
      top: -1px; right: 80px;
      width: 48px; height: 3px;
      background: linear-gradient(to bottom, #222226, #1a1a1e);
      border-radius: 0 0 2px 2px;
    }
    .ipad-btn-side {
      position: absolute;
      right: -1px; top: 100px;
      width: 3px; height: 60px;
      background: linear-gradient(to right, #222226, #1a1a1e);
      border-radius: 0 2px 2px 0;
    }

    /* override max-width sur la table dans le mockup */
    .ipad-mockup .fp-compare-table {
      max-width: 100%;
      border-radius: 0;
      border: none;
      box-shadow: none;
    }

    /* .fph-hub, .fph-node, .fp-compare-table → .tmh-card (styles.css) */

    /* --- Vault Items — original inchangé --- */

    /* --- Summary Stats — border-top supprimé --- */
    .fph-summary { border-top: none; }


    /* ─── SÉPARATEURS — toutes sections ─── */
    .fp-pillars,
    .fp-compare,
    .fph-process,
    .fp-vault,
    .dp-ecosystem { position: relative; }

    .fp-compare::before,
    .dp-ecosystem::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      width: auto;
      height: 1px;
      transform: none;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }


    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }


/* ═══════════════════════════════════════════════════════════════
   PAGE: LEGALTECH
   ═══════════════════════════════════════════════════════════════ */

    :root {
      
      /* Contraste ameliore */
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }




    /* Ombres renforcees */
    .dr-pillar-card, .dr-vault-card, .dr-step-card {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    }
    .dr-pillar-num { display: none; }
    .dr-pillar-card:hover, .dr-vault-card:hover, .dr-step-card:hover {
      box-shadow: none;
    }
    

    /* ─── Hero Cinématique LegalTech ─── */
    .lgt-hero {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }



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







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

    /* ─────────────────────────────────────
       SECTION HOLDING
    ───────────────────────────────────── */
    .holding-section {
      padding: 96px 0 80px;
      position: relative;
      overflow: hidden;
    }
    .holding-section::before {
      content: '';
      position: absolute;
      top: 0; left: 50%;
      transform: translateX(-50%);
      width: 600px; height: 400px;
      background: radial-gradient(ellipse, rgba(184,188,198,0.04) 0%, transparent 70%);
      pointer-events: none;
    }
    .holding-header {
      text-align: center;
      margin-bottom: 64px;
    }


    .holding-header h2 {
      font-family: var(--font-display);
        font-weight: 400;
      letter-spacing: -0.02em;
      line-height: 1.1;
      color: var(--tmh-text);
      margin-bottom: 18px;
    }
    .holding-subtitle {
      font-family: var(--font-body);
        font-style: italic;
      font-weight: 400;
      color: var(--tmh-text);
      max-width: 580px;
      margin: 0 auto;
      line-height: 1.55;
    }
    .holding-subtitle + .holding-subtitle { margin-top: 0; }
    /* Statement */





    .holding-statement-text .word {
      display: inline-block;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.4s cubic-bezier(0.25,0.46,0.45,0.94), transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    }
    .holding-statement-text .word.visible {
      opacity: 1;
      transform: translateY(0);
    }
    /* Stats bande — style homepage stat-cinematic */
    .holding-stats-band {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 0;
      border-top: none;
      border-bottom: none;
      padding: 56px 0;
      margin-bottom: 72px;
    }
    .holding-stat {
      flex: 1;
      min-width: 120px;
      text-align: center;
      padding: 0 40px;
      border-right: none;
      position: relative;
    }
    .holding-stat + .holding-stat-sep + .holding-stat,
    .holding-stat-sep {
      flex-shrink: 0;
    }
    .holding-stat-sep {
      width: 1px;
      height: 60px;
      background: linear-gradient(180deg, transparent, rgba(184,188,198,0.28), transparent);
    }
    .holding-stat:last-child { border-right: none; }
    .holding-stat-value {
      font-family: var(--font-mono);
      font-size: var(--text-3xl);
      font-weight: 500;
      line-height: 1;
      color: var(--tmh-text);
      opacity: 0.85;
      margin-bottom: 12px;
      display: block;
    }
    .holding-stat-label {
      font-size: var(--text-xs);
      font-weight: 400;
      letter-spacing: 0.4em;
      text-transform: uppercase;
      color: var(--tmh-text);
      line-height: 1.5;
    }
    @media (min-width: 1024px) {
      .holding-stat-value { font-size: var(--text-4xl); }
    }
    /* Split */
    .holding-split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      overflow: hidden;
      margin-bottom: 72px;
    }
    .holding-photo {
      position: relative;
      min-height: 560px;
      overflow: hidden;
    }
    .holding-photo img {
      width: 100%; height: 100%;
      object-fit: cover;
      filter: brightness(0.7) saturate(0.9);
      transform: scale(1.05);
      transition: transform 8s cubic-bezier(0.25,0.46,0.45,0.94);
    }
    .holding-split:hover .holding-photo img { transform: scale(1.0); }
    .holding-photo::after {
      content: '';
      position: absolute;
      inset: 12px;
      border: 1px solid rgba(184,188,198,0.2);
      border-radius: 8px;
      pointer-events: none;
      z-index: 2;
    }
    .holding-photo-overlay {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 40%;
      background: linear-gradient(to top, rgba(8,8,10,0.85), transparent);
      z-index: 1;
    }
    .holding-photo-caption {
      position: absolute;
      bottom: 24px; left: 24px;
      z-index: 3;
      font-family: var(--font-logo);
      font-size: 9px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--tmh-text);
    }
    .holding-content {
      background: transparent;
      border: none;
      border-radius: 0;
      box-shadow: none;
      backdrop-filter: none;
      padding: 48px 44px;
      display: flex;
      flex-direction: column;
      gap: 28px;
    }
    .holding-desc {
      font-size: 16px;
      font-weight: 300;
      color: var(--tmh-text-secondary);
      line-height: 1.8;
    }
    .holding-advantages { display: flex; flex-direction: column; gap: 12px; }
    .holding-advantage {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 15px 16px;
      /* background/border/border-radius → .tmh-card (styles.css) */
      position: relative;
      overflow: hidden;
      cursor: default;
      transition: border-color 0.25s cubic-bezier(0.25,0.46,0.45,0.94);
    }
    .holding-advantage:hover { border-color: rgba(255,255,255,0.18); }
    .holding-advantage-icon {
      width: 30px; height: 30px;
      /* background/border/border-radius → .tmh-card (styles.css) */
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; margin-top: 1px;
    }
    .holding-advantage-icon svg {
      width: 13px; height: 13px;
      stroke: var(--tmh-gold); stroke-width: 1.5; fill: none;
    }
    .holding-advantage-text strong {
      display: block;
      font-size: 14px; font-weight: 500;
      color: var(--tmh-text); margin-bottom: 3px;
    }
    .holding-advantage-text span {
      font-size: 13px; font-weight: 300;
      color: var(--tmh-text); line-height: 1.55;
    }
    /* Processus */
    .holding-process-section { margin-bottom: 56px; }
    .holding-process-header { text-align: center; margin-bottom: 40px; }
    .holding-process-label {
      font-family: var(--font-body);
      font-size: 10px;
      font-weight: 400;
      letter-spacing: 0.30em;
      text-transform: uppercase;
      color: var(--tmh-text);
      display: block;
      margin-bottom: 10px;
    }
    .holding-process-title {
      font-family: var(--font-body);
      font-size: clamp(1.2rem, 2vw, 1.5rem);
      font-weight: 300;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: var(--tmh-text);
      line-height: 1.2;
    }
    .holding-process-steps {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0; position: relative;
    }
    .holding-process-steps::before { display: none; }
    .holding-process-connector {
      position: absolute;
      top: 20px;
      left: calc(12.5% + 8px); right: calc(12.5% + 8px);
      height: 1px;
      background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(240,240,244,0.12) 15%,
        rgba(240,240,244,0.22) 50%,
        rgba(240,240,244,0.12) 85%,
        transparent 100%
      );
      overflow: hidden;
      z-index: 0;
      pointer-events: none;
    }
    .holding-process-beam {
      position: absolute;
      top: 0; left: -120px;
      height: 1px; width: 120px;
      background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(240,240,244,0.2) 20%,
        rgba(255,255,255,0.85) 50%,
        rgba(240,240,244,0.2) 80%,
        transparent 100%
      );
      box-shadow: 0 0 8px 1px rgba(240,240,244,0.35);
      opacity: 0;
      animation: hp-beam-travel 3.5s ease-in-out infinite;
    }
    @keyframes hp-beam-travel {
      0%   { left: -120px; opacity: 0; }
      8%   { opacity: 1; }
      92%  { opacity: 1; }
      100% { left: 100%; opacity: 0; }
    }
    .holding-process-step {
      display: flex; flex-direction: column;
      align-items: center; text-align: center;
      padding: 0 16px; position: relative; z-index: 1;
    }
    .holding-process-dot {
      width: 40px; height: 40px;
      /* background/border/border-radius → .tmh-card (styles.css) */
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 16px; position: relative;
    }
    .holding-process-dot::before { display: none; }
    .holding-process-num {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 600;
      color: var(--tmh-text); opacity: 0.8; letter-spacing: 0.05em;
    }
    .holding-process-step-name {
      font-size: 13px; font-weight: 500;
      color: var(--tmh-text); margin-bottom: 6px; line-height: 1.3;
    }
    .holding-process-step-desc {
      font-size: 12px; font-weight: 300;
      color: var(--tmh-text); line-height: 1.55;
    }
    .holding-process-duration {
      display: inline-block;
      font-family: var(--font-mono);
      font-size: 0.82rem; letter-spacing: 0.08em;
      color: var(--tmh-text);
      /* border/border-radius → .tmh-pill (styles.css) */
      padding: 2px 7px; margin-top: 8px;
    }
    /* Why title + CTA */
    .holding-why-title {
      font-family: var(--font-body);
        font-weight: 300;
      font-style: normal;
      color: var(--tmh-text);
      letter-spacing: 0.01em;
      line-height: 1.5;
      text-align: center;
      max-width: 680px;
      margin: 0 auto 24px;
    }
    .holding-cta-block { text-align: center; }
    .holding-cta {
      display: inline-flex; align-items: center; gap: 12px;
      font-family: var(--font-body);
      font-size: 10.5px; font-weight: 500;
      letter-spacing: 0.14em; text-transform: uppercase;
      color: rgba(255,255,255,0.92); text-decoration: none;
      /* border → token (styles.css) */
      /* background → token (styles.css) */
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      /* box-shadow → token (styles.css) */
      padding: 16px 36px; border-radius: 100px;
      transition: background 0.3s, box-shadow 0.3s;
    }
    .holding-cta:hover {
      /* background → token (styles.css) */
      /* box-shadow → token (styles.css) */
    }
    .holding-cta::after {
      content: '→';
      display: inline-block;
      margin-left: 8px;
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .holding-cta:hover::after {
      transform: translateX(5px);
    }
    @media (max-width: 768px) {
      .holding-split { grid-template-columns: 1fr; }
      .holding-photo { min-height: 260px; }
      .holding-stats-band { flex-wrap: wrap; padding: 32px 0; }
      .holding-stat { min-width: 45%; padding: 20px 16px; }
      .holding-stat-sep { display: none; }
      .holding-process-steps { grid-template-columns: repeat(2, 1fr); gap: 32px; }
      .holding-process-steps::before { display: none; }
    }
    .aa-subnav {
      position: sticky;
      top: 64px;
      z-index: 90;
      background: rgba(8,8,10,0.92);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(184,188,198,0.12);
    }
    .aa-subnav-inner {
      display: flex;
      gap: 0;
      overflow-x: auto;
      scrollbar-width: none;
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 var(--space-6);
    }
    .aa-subnav-inner::-webkit-scrollbar { display: none; }
    .aa-subnav-link {
      flex-shrink: 0;
      padding: 14px 22px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 300;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.35);
      text-decoration: none;
      border-bottom: none;
      transition: color 0.35s ease;
      position: relative;
    }
    .aa-subnav-link::after {
      content: ''; position: absolute; bottom: 0; left: 15%; right: 15%;
      height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.75), transparent);
      opacity: 0; transform: scaleX(0.4); transition: opacity 0.35s ease, transform 0.35s ease;
    }
    .aa-subnav-link:hover { color: rgba(255,255,255,0.60); }
    .aa-subnav-link.active { color: rgba(255,255,255,0.88); font-weight: 400; }
    .aa-subnav-link.active::after { opacity: 1; transform: scaleX(1); }


    /* ══════════════════════════════════════════════════════════
       SYSTÈME TYPOGRAPHIQUE — PROPOSITION C
       Jost (eyebrow) · Bodoni Moda (H1) · Jost (H2 H3 body)
       Bodoni Moda card-sub · Opacités ≥ 72%
    ══════════════════════════════════════════════════════════ */

    /* — EYEBROW — Jost 400, gold 80% — */
    .hero-imm-category,
    .holding-process-label {
      font-family: var(--font-body);
      font-size: 1rem;
      font-weight: 400;
      letter-spacing: 0.30em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-bottom: 22px;
    }

    /* — H1 — Bodoni Moda 400, naturel (pas uppercase) — */
    .hero-imm-title {
      line-height: 1.12;
      margin-bottom: 22px;
    }

    /* — H1 2e ligne — blanc ivoire — */
    .hero-imm-title .shiny {
      background: none;
      color: var(--tmh-text);
    }

    /* — HERO DESC — Jost 300, opacité 80% — */
    .hero-imm-desc {
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 300;
      line-height: 1.78;
      color: var(--tmh-text);
      letter-spacing: 0.005em;
    }

    /* — H2 — hérite de la règle globale (Bodoni Moda 400) — */
    .dr-pillars-header h2,
    .dr-process-header h2,
    .dr-vault-header h2,
    .holding-header h2 {
      line-height: 1.2;
      margin-bottom: 12px;
    }

    /* — SECTION-SUBTITLE — blanc ivoire — */
    .section-subtitle {
      color: var(--tmh-text);
    }
    .holding-subtitle {
      font-family: var(--font-body);
        font-style: normal;
      font-weight: 400;
      color: var(--tmh-text);
      line-height: 1.65;
      letter-spacing: 0.005em;
      margin-bottom: 0;
    }

    /* — BODY — Jost 300, Warm #D4C5A9 — */
    .section-desc,
    .holding-desc {
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 300;
      color: var(--tmh-text);
      line-height: 1.78;
      letter-spacing: 0.005em;
    }

    /* — H3 — Jost 600 uppercase, hiérarchie forte — */
    .dr-pillar-card h3,
    .dr-step-card h3,
    .dr-vault-card h4 {
      font-family: var(--font-body);
        font-weight: 600;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-bottom: 6px;
    }

    /* — ATTRIBUTION CITATION — */
    .dr-manifeste-author {
      font-family: var(--font-body);
      font-size: 10px;
      font-weight: 400;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-top: 20px;
    }

    /* — CARD-SUB — Jost 400 label sous H3 — */
    .dr-pillar-sub {
      font-family: var(--font-body);
      font-size: 10px;
      font-weight: 400;
      font-style: normal;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--tmh-text);
      margin-bottom: 14px;
    }
    .section h2, .aa-section-title { visibility: visible; }
  
/* --- legaltech.html inline styles --- */
    /* ─── FROSTED CARDS ─── */

    /* --- Pillar Cards (4 services) --- */
    .dr-pillar-card {
      /* background/border → .tmh-card (styles.css) */
      backdrop-filter: blur(31px) saturate(1.4);
      -webkit-backdrop-filter: blur(31px) saturate(1.4);
      position: relative;
    }
    .dr-pillar-card::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      z-index: 2; pointer-events: none;
    }

    /* --- Process Step Cards --- */
    /* --- Step Cards — original inchangé --- */

    /* --- Vault Section — background aligné sur dr-process-section (#000000) --- */
    .dr-vault-section { background: #000000; }

    /* --- Vault / Guarantee Cards --- */
    .dr-vault-card {
      /* background/border → .tmh-card (styles.css) */
      backdrop-filter: blur(31px) saturate(1.4);
      -webkit-backdrop-filter: blur(31px) saturate(1.4);
      position: relative;
    }
    .dr-vault-card::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      z-index: 2; pointer-events: none;
    }

    /* --- Holding Split Panel --- */
    .holding-split {
      /* border → .tmh-card (styles.css) */
    }
    .holding-content {
      /* background → .tmh-card (styles.css) */
      backdrop-filter: blur(31px) saturate(1.4);
      -webkit-backdrop-filter: blur(31px) saturate(1.4);
    }

    /* --- Holding Advantage Items --- */
    .holding-advantage {
      /* background/border → .tmh-card (styles.css) */
      backdrop-filter: blur(31px) saturate(1.4);
      -webkit-backdrop-filter: blur(31px) saturate(1.4);
    }

    /* ─── SECTION SEPARATORS ─── */
    .dr-manifeste-section,
    .dr-pillars-section,
    .dr-process-section,
    .dr-vault-section,
    .holding-section,
    .dp-ecosystem { position: relative; }

    .dr-process-section::before,
    .dr-vault-section::before,
    .holding-section::before,
    .dp-ecosystem::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      width: auto;
      height: 1px;
      transform: none;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }

    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }


/* ═══════════════════════════════════════════════════════════════
   PAGE: CONNECTION
   ═══════════════════════════════════════════════════════════════ */

    .page-connection {
      font-family: 'Montserrat', sans-serif;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 40px 20px;
      background:
        radial-gradient(ellipse 90% 70% at 50% 40%, #111118 0%, #08080A 65%);
      color: var(--tmh-text);
    }

    /* ────────────────────────
       LOGO AU-DESSUS DE LA CARTE
    ──────────────────────── */
    .page-logo {
      font-family: 'Cinzel', serif;
      font-size: 11px;
      letter-spacing: 0.32em;
      color: rgba(240,240,244,0.55);
      margin-bottom: 32px;
      text-align: center;
    }

    /* ────────────────────────
       CARTE LIQUID GLASS
    ──────────────────────── */
    .card {
      width: 100%;
      max-width: 480px;
      /* border-radius/background/border → .tmh-card (styles.css) */
      overflow: hidden;

      /* Liquid glass */
      backdrop-filter: blur(40px) saturate(140%);
      -webkit-backdrop-filter: blur(40px) saturate(140%);

      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),   /* reflet spéculaire haut */
        inset 0 -1px 0 rgba(255,255,255,0.04),  /* bord bas discret */
        0 32px 80px rgba(0,0,0,0.55),            /* ombre portée */
        0 0 0 1px rgba(255,255,255,0.04);        /* contour externe */
    }

    /* Reflet de lumière interne en haut */
    .card-shimmer {
      height: 1px;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(255,255,255,0.35) 30%,
        rgba(255,255,255,0.45) 50%,
        rgba(255,255,255,0.35) 70%,
        transparent 100%
      );
    }

    .card-body {
      padding: 40px 44px 44px;
    }

    /* ────────────────────────
       HEADER DE LA CARTE
    ──────────────────────── */
    .card-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 52px;
      font-weight: 300;
      line-height: 0.95;
      text-align: center;
      color: var(--tmh-text);
      letter-spacing: 0.02em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }

    .card-subtitle {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-style: italic;
      font-weight: 300;
      text-align: center;
      color: rgba(240,240,244,0.70);
      margin-bottom: 32px;
    }

    /* ────────────────────────
       TABS
    ──────────────────────── */
    .tabs {
      display: flex;
      border-bottom: 1px solid rgba(255,255,255,0.1);
      margin-bottom: 28px;
    }

    .tab {
      flex: 1;
      padding: 10px;
      text-align: center;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.55);
      background: none;
      border: none;
      border-bottom: 1.5px solid transparent;
      margin-bottom: -1px;
      cursor: pointer;
      transition: color 0.2s, border-color 0.2s;
    }

    .tab.active {
      color: rgba(240,240,244,0.9);
      border-bottom-color: rgba(240,240,244,0.55);
    }

    /* ────────────────────────
       FORMULAIRES
    ──────────────────────── */
    .form { display: none; }
    .form.active { display: block; }

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

    .field { margin-bottom: 16px; }

    .field label {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 8px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.65);
      margin-bottom: 7px;
    }

    .field label .badge {
      font-size: 7px;
      color: rgba(240,240,244,0.45);
      /* background/border-radius → .tmh-pill (styles.css) */
      padding: 1px 6px;
      letter-spacing: 0.08em;
      text-transform: none;
      font-weight: 400;
    }

    .field input {
      width: 100%;
      padding: 12px 15px;
      /* background/border/border-radius → .tmh-card (styles.css) */
      color: var(--tmh-text);
      font-family: 'Montserrat', sans-serif;
      font-size: 13px;
      font-weight: 300;
      outline: none;
      transition: background 0.2s, border-color 0.2s;
    }

    .field input::placeholder { color: rgba(240,240,244,0.35); }

    .field input:focus {
      background: rgba(255,255,255,0.09);
      border-color: rgba(255,255,255,0.22);
    }

    /* Champ mot de passe avec bouton voir */
    .password-wrap {
      position: relative;
    }

    .password-wrap input {
      padding-right: 56px;
    }

    .password-toggle {
      position: absolute;
      right: 14px;
      top: 50%;
      transform: translateY(-50%);
      background: none;
      border: none;
      font-family: 'Montserrat', sans-serif;
      font-size: 8px;
      font-weight: 600;
      letter-spacing: 0.14em;
      color: rgba(240,240,244,0.55);
      cursor: pointer;
      transition: color 0.2s;
    }
    .password-toggle:hover { color: rgba(240,240,244,0.85); }

    /* Mot de passe oublié */
    .forgot {
      display: block;
      text-align: right;
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      color: rgba(240,240,244,0.52);
      text-decoration: none;
      margin-bottom: 22px;
      transition: color 0.2s;
    }
    .forgot:hover { color: rgba(240,240,244,0.55); }

    /* Checkbox CGU */
    .checkbox-field {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 20px;
    }

    .checkbox-field input[type="checkbox"] {
      width: 16px;
      height: 16px;
      min-width: 16px;
      margin-top: 1px;
      border-radius: 3px;
      accent-color: var(--tmh-text);
      cursor: pointer;
    }

    .checkbox-field span {
      font-size: 11px;
      font-weight: 300;
      color: rgba(240,240,244,0.60);
      line-height: 1.6;
    }

    .checkbox-field a {
      color: rgba(240,240,244,0.6);
      text-decoration: underline;
      text-decoration-color: rgba(240,240,244,0.25);
    }

    /* ────────────────────────
       BOUTONS
    ──────────────────────── */
    button.btn-primary {
      width: 100%;
      padding: 15px;
      background: #FFFFFF;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: #08080A;
      transition: background 0.2s, transform 0.15s;
      margin-bottom: 16px;
    }

    button.btn-primary:hover {
      background: #fff;
      transform: translateY(-1px);
    }

    /* Divider ou */
    .or {
      display: flex;
      align-items: center;
      gap: 14px;
      margin: 0 0 16px;
      font-size: 10px;
      color: rgba(240,240,244,0.40);
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
    }
    .or::before, .or::after {
      content: '';
      flex: 1;
      height: 1px;
      background: rgba(255,255,255,0.08);
    }

    /* Link bas du formulaire */
    .form-link {
      text-align: center;
      font-size: 0.9rem;
      color: rgba(240,240,244,0.55);
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
    }

    .form-link a {
      color: rgba(240,240,244,0.6);
      text-decoration: underline;
      text-decoration-color: rgba(240,240,244,0.25);
      transition: color 0.2s;
    }

    .form-link a:hover { color: rgba(240,240,244,0.9); }

    /* Footer carte */
    .page-footer {
      margin-top: 24px;
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      font-style: italic;
      font-weight: 300;
      color: rgba(240,240,244,0.55);
      text-align: center;
      line-height: 1.6;
    }
  
/* --- connection.html inline styles (scoped to .page-connection) --- */

    .page-logo { text-align: center; margin-bottom: 32px; }

    .card {
      width: 100%;
      max-width: 480px;
      background: rgba(18,18,22,0.82);
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,0.08);
      overflow: hidden;
      backdrop-filter: blur(40px) saturate(140%);
      -webkit-backdrop-filter: blur(40px) saturate(140%);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        inset 0 -1px 0 rgba(255,255,255,0.04),
        0 32px 80px rgba(0,0,0,0.55),
        0 0 0 1px rgba(255,255,255,0.04);
    }

    .card-shimmer {
      height: 1px;
      background: linear-gradient(90deg,
        transparent 0%, rgba(255,255,255,0.35) 30%,
        rgba(255,255,255,0.45) 50%, rgba(255,255,255,0.35) 70%,
        transparent 100%);
    }

    .card-body { padding: 40px 44px 44px; }

    .card-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 44px;
      font-weight: 300;
      line-height: 0.95;
      text-align: center;
      color: var(--tmh-text);
      letter-spacing: 0.02em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }

    .card-subtitle {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-style: italic;
      font-weight: 300;
      text-align: center;
      color: rgba(240,240,244,0.70);
      margin-bottom: 20px;
    }

    .tabs {
      display: flex;
      margin-bottom: 28px;
    }
    .tab {
      flex: 1;
      padding: 10px;
      text-align: center;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.55);
      background: none;
      border: none;
      position: relative;
      cursor: pointer;
      transition: color 0.2s;
    }
    .tab::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      transition: background 0.2s;
    }
    .tab.active {
      color: rgba(240,240,244,0.9);
    }
    .tab.active::after {
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      height: 1.5px;
    }

    .form { display: none; }
    .form.active { display: block; }

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

    .field { margin-bottom: 16px; }

    .field label {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.65);
      margin-bottom: 7px;
    }
    .field label .badge {
      font-size: 7px;
      color: rgba(240,240,244,0.45);
      padding: 1px 6px;
      letter-spacing: 0.08em;
      text-transform: none;
      font-weight: 400;
    }

    .field input {
      width: 100%;
      padding: 12px 15px;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 6px;
      color: var(--tmh-text);
      font-family: 'Montserrat', sans-serif;
      font-size: 13px;
      font-weight: 300;
      outline: none;
      transition: background 0.2s, border-color 0.2s;
    }
    .field input::placeholder { color: rgba(240,240,244,0.35); }
    .field input:focus {
      background: rgba(255,255,255,0.09);
      border-color: rgba(255,255,255,0.22);
    }

    .password-wrap { position: relative; }
    .password-wrap input { padding-right: 80px; }
    .password-toggle {
      position: absolute;
      right: 14px;
      top: 50%;
      transform: translateY(-50%);
      background: none;
      border: none;
      font-family: 'Montserrat', sans-serif;
      font-size: 8px;
      font-weight: 600;
      letter-spacing: 0.14em;
      color: rgba(240,240,244,0.55);
      cursor: pointer;
      transition: color 0.2s;
    }
    .password-toggle:hover { color: rgba(240,240,244,0.85); }

    .forgot {
      display: block;
      text-align: right;
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      color: rgba(240,240,244,0.52);
      text-decoration: none;
      margin-bottom: 22px;
      transition: color 0.2s;
    }
    .forgot:hover, .forgot:visited { color: rgba(240,240,244,0.55); }

    .checkbox-field {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 20px;
    }
    .checkbox-field input[type="checkbox"] {
      width: 16px;
      height: 16px;
      min-width: 16px;
      margin-top: 1px;
      border-radius: 3px;
      accent-color: var(--tmh-text);
      cursor: pointer;
    }
    .checkbox-field span {
      font-size: 11px;
      font-weight: 300;
      color: rgba(240,240,244,0.60);
      line-height: 1.6;
    }
    .checkbox-field a, .checkbox-field a:visited {
      color: rgba(240,240,244,0.6);
      text-decoration: underline;
      text-decoration-color: rgba(240,240,244,0.25);
    }

    button.btn-primary {
      width: 100%;
      padding: 15px;
      background: var(--tmh-text);
      border: none;
      border-radius: 8px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: #08080A;
      transition: background 0.2s, transform 0.15s;
      margin-bottom: 16px;
    }
    button.btn-primary:hover { background: #fff; transform: translateY(-1px); }
    .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

    .form-link {
      text-align: center;
      font-size: 0.9rem;
      color: rgba(240,240,244,0.55);
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
    }
    .form-link a, .form-link a:visited {
      color: rgba(240,240,244,0.6);
      text-decoration: none;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent) no-repeat 0 100%;
      background-size: 100% 1px;
      padding-bottom: 2px;
      transition: color 0.2s;
    }
    .form-link a:hover { color: rgba(240,240,244,0.9); }

    .login-error {
      font-family: 'Montserrat', sans-serif;
      font-size: 11px;
      color: rgba(255,100,100,0.75);
      margin-bottom: 14px;
      display: none;
    }
    .login-error.visible { display: block; }

    .page-footer {
      margin-top: 24px;
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      font-style: italic;
      font-weight: 300;
      color: rgba(240,240,244,0.55);
      text-align: center;
      line-height: 1.6;
    }

/* ────────────────────────
   RESPONSIVE — CONNECTION
──────────────────────── */
@media (max-width: 767px) {
  .page-connection {
    padding: 24px 16px;
    justify-content: flex-start;
    padding-top: 48px;
  }

  .card {
    max-width: 100%;
  }

  .card-body {
    padding: 28px 20px 32px;
  }

  .card-title {
    font-size: 32px;
    line-height: 1;
  }

  .card-subtitle {
    font-size: 15px;
    margin-bottom: 16px;
  }

  .fields-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .page-logo {
    font-size: 9px;
    letter-spacing: 0.24em;
    margin-bottom: 20px;
  }
}

@media (max-width: 380px) {
  .card-title {
    font-size: 26px;
  }

  .card-body {
    padding: 22px 16px 26px;
  }
}


/* ═══════════════════════════════════════════════════════════════
   PAGE: ACTUALITES
   ═══════════════════════════════════════════════════════════════ */

    :root {
      
      /* Contraste ameliore */
      --tmh-text-secondary: rgba(255, 255, 255, 0.82);
      --tmh-text-dim: rgba(255, 255, 255, 0.55);
      --tmh-border: rgba(255, 255, 255, 0.14);
      --tmh-surface: rgba(255, 255, 255, 0.07);
      --tmh-surface-hover: rgba(255, 255, 255, 0.10);
      --tmh-ivory-muted: rgba(255, 255, 255, 0.65);
      --tmh-ivory-dim: rgba(255, 255, 255, 0.10);
      --tmh-ivory-border: rgba(255, 255, 255, 0.14);
      --tmh-border-gold: rgba(184, 188, 198, 0.22);
    }



    /* Ombres renforcees */
    .actu-card {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    }
    .actu-card:hover {
      box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), 0 0 30px rgba(184, 188, 198, 0.06);
    }
    .actu-hero { position: relative; overflow: hidden; }
    .section h2, .aa-section-title { visibility: visible; }

  
/* --- actualites.html inline styles --- */
    /* ─── FROSTED CARDS ─── */

    /* --- Article Cards --- */
    .actu-card {
      /* background/border → .tmh-card (styles.css) */
      backdrop-filter: blur(31px) saturate(1.4);
      -webkit-backdrop-filter: blur(31px) saturate(1.4);
      position: relative;
    }
    .actu-card::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      z-index: 2; pointer-events: none;
    }

    /* --- Filter Pills --- */
    .actu-filter-pill {
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(184,188,198,0.12);
    }
    .actu-filter-pill.active {
      border-color: rgba(184,188,198,0.28);
    }

    /* ─── SECTION SEPARATORS ─── */
    .actu-grid-section,
    .dp-ecosystem { position: relative; }

    .dp-ecosystem::before {
      content: '';
      position: absolute;
      top: 0; left: 5%; right: 5%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none;
      z-index: 5;
    }

    .footer { position: relative; }
    .footer::before {
      content: ''; position: absolute; top: 0; left: 8%; right: 8%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      pointer-events: none; z-index: 5;
    }


/* ═══════════════════════════════════════════════════════════════
   ELEMENTOR RESET — neutralise les styles Elementor sur WordPress
   ═══════════════════════════════════════════════════════════════ */

html, body,
.elementor,
.elementor-section,
.elementor-container,
.elementor-element,
.elementor-widget,
.elementor-widget-html,
.elementor-widget-container,
.page-template-elementor_canvas,
.page-template-elementor_canvas .elementor-section-wrap {
  background-color: #050506 !important;
}

.elementor-widget-wrap,
.elementor-element .elementor-widget-wrap {
  padding: 0 !important;
}

.elementor-section,
.elementor-container {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

.elementor-widget:not(:last-child) {
  margin-bottom: 0 !important;
}

.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
  padding: 0 !important;
}

.elementor-widget-html,
.elementor-widget-container {
  overflow: visible !important;
}

/* Carousel overflow fix — scroll-based only (pas .aa-om-track qui utilise transform) */
.aa-carousel-track,
.vehicles-carousel {
  overflow-x: auto !important;
  padding-top: 40px !important;
  margin-top: -40px !important;
  box-sizing: border-box !important;
}


/* ═══════════════════════════════════════════════════════════════
   PAGE: MOT DE PASSE OUBLIE
   ═══════════════════════════════════════════════════════════════ */

/* --- mot-de-passe-oublie.html inline styles (scoped to .page-forgot) --- */
    .page-forgot {
      font-family: 'Montserrat', sans-serif;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 40px 20px;
      background: radial-gradient(ellipse 90% 70% at 50% 40%, #111118 0%, #08080A 65%);
      color: var(--tmh-text);
    }

    .page-logo { text-align: center; margin-bottom: 32px; }

    .card {
      width: 100%;
      max-width: 480px;
      background: rgba(18,18,22,0.82);
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,0.08);
      overflow: hidden;
      backdrop-filter: blur(40px) saturate(140%);
      -webkit-backdrop-filter: blur(40px) saturate(140%);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        inset 0 -1px 0 rgba(255,255,255,0.04),
        0 32px 80px rgba(0,0,0,0.55),
        0 0 0 1px rgba(255,255,255,0.04);
    }

    .card-shimmer {
      height: 1px;
      background: linear-gradient(90deg,
        transparent 0%, rgba(255,255,255,0.35) 30%,
        rgba(255,255,255,0.45) 50%, rgba(255,255,255,0.35) 70%,
        transparent 100%);
    }

    .card-body { padding: 40px 44px 44px; }

    .card-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 44px;
      font-weight: 300;
      line-height: 0.95;
      text-align: center;
      color: var(--tmh-text);
      letter-spacing: 0.02em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }

    .card-subtitle {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-style: italic;
      font-weight: 300;
      text-align: center;
      color: rgba(240,240,244,0.70);
      margin-bottom: 20px;
    }

    .form { display: none; }
    .form.active { display: block; }

    .field { margin-bottom: 16px; }

    .field label {
      display: block;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.65);
      margin-bottom: 7px;
    }

    .field input {
      width: 100%;
      padding: 12px 15px;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 6px;
      color: var(--tmh-text);
      font-family: 'Montserrat', sans-serif;
      font-size: 13px;
      font-weight: 300;
      outline: none;
      transition: background 0.2s, border-color 0.2s;
    }
    .field input::placeholder { color: rgba(240,240,244,0.35); }
    .field input:focus {
      background: rgba(255,255,255,0.09);
      border-color: rgba(255,255,255,0.22);
    }

    .field-hint {
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      font-style: italic;
      color: rgba(240,240,244,0.45);
      margin-top: 6px;
      line-height: 1.5;
    }

    .field-error {
      font-family: 'Montserrat', sans-serif;
      font-size: 11px;
      color: rgba(255,100,100,0.75);
      margin-top: 6px;
      display: none;
    }

    .divider {
      width: 60px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent);
      margin: 0 auto 28px;
    }

    button.btn-primary {
      width: 100%;
      padding: 15px;
      background: var(--tmh-text);
      border: none;
      border-radius: 8px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: #08080A;
      transition: background 0.2s, transform 0.15s;
      margin-bottom: 16px;
    }
    button.btn-primary:hover { background: #fff; transform: translateY(-1px); }
    .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

    button.btn-ghost {
      width: 100%;
      padding: 14px;
      background: transparent;
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 8px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(240,240,244,0.45);
      text-decoration: none;
      display: block;
      text-align: center;
      transition: border-color 0.2s, color 0.2s;
      margin-bottom: 16px;
    }
    button.btn-ghost:hover { border-color: rgba(255,255,255,0.28); color: rgba(240,240,244,0.8); }

    .form-link {
      text-align: center;
      font-size: 0.9rem;
      color: rgba(240,240,244,0.55);
      font-style: italic;
      font-family: 'Cormorant Garamond', serif;
    }
    .form-link a, .form-link a:visited {
      color: rgba(240,240,244,0.6);
      text-decoration: none;
      background: linear-gradient(90deg, transparent, rgba(184,188,198,0.28), transparent) no-repeat 0 100%;
      background-size: 100% 1px;
      padding-bottom: 2px;
      transition: color 0.2s;
    }
    .form-link a:hover { color: rgba(240,240,244,0.9); }

    .success-state { display: none; text-align: center; }
    .success-state.active { display: block; }

    .success-icon {
      width: 52px;
      height: 52px;
      margin: 0 auto 24px;
      border-radius: 50%;
      border: 1px solid rgba(176,180,190,0.35);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .success-icon svg { display: block; }

    .success-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 26px;
      font-weight: 300;
      color: var(--tmh-text);
      margin-bottom: 14px;
      letter-spacing: 0.04em;
    }

    .success-body {
      font-family: 'Montserrat', sans-serif;
      font-size: 12px;
      font-weight: 300;
      color: rgba(240,240,244,0.45);
      line-height: 1.8;
      margin-bottom: 32px;
    }
    .success-body strong { color: rgba(240,240,244,0.75); font-weight: 400; }

    .page-footer {
      margin-top: 24px;
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.9rem;
      font-style: italic;
      font-weight: 300;
      color: rgba(240,240,244,0.55);
      text-align: center;
      line-height: 1.6;
    }


/* ============================================================
   ARTICLE ACTUALITE — Page article individuel
   ============================================================ */

/* ── ARTICLE HERO ─────────────────────────────── */
.art-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--tmh-bg);
  padding-top: 100px;
}
.art-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* RÈGLE UNIQUE — tous les hero d'articles : la photo s'affiche en entier,
   jamais zoomée ni recadrée, quelle que soit l'orientation (portrait OU paysage),
   centrée, et ses bords se fondent dans le fond sombre. Aucun réglage par photo. */
.art-hero-bg img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  display: block;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 70%, transparent 100%);
          mask-image: radial-gradient(ellipse at center, #000 70%, transparent 100%);
}
.art-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(5,5,6,0.65) 0%,
    rgba(5,5,6,0.55) 45%,
    rgba(5,5,6,0.92) 100%
  );
}
.art-hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 0 var(--space-16, 4rem);
}
.art-hero-content .container {
  max-width: 860px;
}
.art-hero-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tmh-ivory);
  text-decoration: none;
  margin-bottom: var(--space-4);
  transition: color 0.25s ease, opacity 0.25s ease;
  text-shadow: 0 1px 8px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.7);
  opacity: 0.9;
}
.art-hero-back:hover { color: var(--tmh-ivory); }
.art-hero-back svg { flex-shrink: 0; }
.art-hero-badge {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tmh-gold-light);
  background: rgba(5,5,6,0.45);
  border: 1px solid rgba(184,188,198,0.4);
  border-radius: 2px;
  padding: 3px 10px;
  backdrop-filter: blur(4px);
}
.art-hero-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300;
  line-height: 1.2;
  color: var(--tmh-ivory);
  margin-bottom: var(--space-4);
  max-width: 720px;
}
.art-hero-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--tmh-text-dim);
  letter-spacing: 0.04em;
}
.art-hero-meta-sep {
  width: 1px; height: 14px;
  background: var(--tmh-border);
}

/* ── ARTICLE BODY ─────────────────────────────── */
.art-body {
  background: var(--tmh-bg);
  padding: 64px 0 80px;
}
.art-body .container {
  max-width: 760px;
}
.art-content {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--tmh-text-secondary);
}
.art-content p { margin-bottom: 1.6em; }
.art-content h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 400;
  color: var(--tmh-ivory);
  margin: 2.4em 0 0.8em;
  line-height: 1.25;
}
.art-content h3 {
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  font-weight: 400;
  color: var(--tmh-ivory);
  margin: 2em 0 0.6em;
  line-height: 1.3;
}
.art-content strong { font-weight: 600; color: var(--tmh-text); }
.art-content em { font-style: italic; color: var(--tmh-gold-light); }
.art-content ul, .art-content ol { padding-left: 1.5em; margin-bottom: 1.6em; }
.art-content li { margin-bottom: 0.5em; }
.art-content blockquote,
.art-content .wp-block-quote {
  border-left: 2px solid var(--tmh-gold) !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: none !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 2.5em 0 !important;
  padding: 0.5em 0 0.5em 1.8em !important;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 300;
  font-style: italic;
  color: var(--tmh-text-secondary);
  line-height: 1.6;
}
.art-content blockquote p,
.art-content .wp-block-quote p {
  margin-bottom: 0.4em;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 300;
  font-style: italic;
  color: var(--tmh-text-secondary);
}
.art-content cite,
.art-content .wp-block-quote cite {
  font-size: 0.78rem;
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--tmh-gold);
  text-transform: uppercase;
}
.art-content a {
  color: var(--tmh-gold-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.art-content img {
  width: 100%; height: auto;
  border-radius: 4px;
  margin: 2em 0;
  display: block;
}
.art-content hr {
  border: none;
  border-top: 1px solid var(--tmh-border);
  margin: 2.5em 0;
}

/* ── ARTICLE DIVIDER ──────────────────────────── */
.art-divider {
  width: 40px; height: 1px;
  background: var(--tmh-border-gold);
  margin: 0 0 48px;
}

/* ── LOADING STATE ────────────────────────────── */
.art-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40vh;
  font-family: var(--font-body);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tmh-text-dim);
}
.art-loading-dot {
  display: inline-block;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--tmh-gold);
  margin: 0 3px;
  animation: art-dot-pulse 1.2s ease-in-out infinite;
}
.art-loading-dot:nth-child(2) { animation-delay: 0.2s; }
.art-loading-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes art-dot-pulse {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
  40% { transform: scale(1); opacity: 1; }
}

@media (max-width: 767px) {
  .art-hero { min-height: 55vh; }
  .art-hero-content { padding-bottom: 2.5rem; }
  .art-body { padding: 40px 0 56px; }
}
