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

/* =====================================================================
   DAS Design System — feuille de style unique (front-office)
   Traduit le design system "DAS" (tokens + composants) en CSS natif.
   Thème commutable via  <html data-theme="terracotta|emerald|indigo">
   ===================================================================== */

/* ── Tokens : neutres encre + statuts ─────────────────────────────── */
:root {
  --color-ink-950: #0B0A0A;
  --color-ink-900: #19140F;
  --color-ink-800: #292320;
  --color-ink-700: #423B36;
  --color-ink-600: #57504A;
  --color-ink-500: #79716B;
  --color-ink-400: #A8A29D;
  --color-ink-300: #D6D2CE;
  --color-ink-200: #E8E4E0;
  --color-ink-150: #F0EDEA;
  --color-ink-100: #F5F2EF;
  --color-ink-50:  #FAF8F6;
  --color-white:   #FFFFFF;

  --color-stone-950: var(--color-ink-950);
  --color-stone-900: var(--color-ink-900);
  --color-stone-800: var(--color-ink-800);
  --color-stone-700: var(--color-ink-700);
  --color-stone-600: var(--color-ink-600);
  --color-stone-500: var(--color-ink-500);
  --color-stone-400: var(--color-ink-400);
  --color-stone-300: var(--color-ink-300);
  --color-stone-200: var(--color-ink-200);
  --color-stone-150: var(--color-ink-150);
  --color-stone-100: var(--color-ink-100);
  --color-stone-50:  var(--color-ink-50);

  --color-green-800: #14532D;
  --color-green-700: #15803D;
  --color-green-600: #16A34A;
  --color-green-200: #BBF7D0;
  --color-green-100: #DCFCE7;
  --color-green-50:  #F0FDF4;
  --color-red-700:   #B91C1C;
  --color-red-600:   #DC2626;
  --color-red-100:   #FEE2E2;
  --color-red-50:    #FEF2F2;
  --color-amber-700: #B45309;
  --color-amber-100: #FEF3C7;
  --color-amber-50:  #FFFBEB;

  --color-success:        var(--color-green-600);
  --color-success-bg:     var(--color-green-50);
  --color-success-border: var(--color-green-200);
  --color-danger:         var(--color-red-600);
  --color-danger-bg:      var(--color-red-50);
  --color-danger-border:  var(--color-red-100);
  --color-warning:        var(--color-amber-700);
  --color-warning-bg:     var(--color-amber-50);
  --color-warning-border: var(--color-amber-100);
  --color-info:           var(--color-ink-700);
  --color-info-bg:        var(--color-ink-50);
  --color-info-border:    var(--color-ink-200);

  --color-text-primary:     var(--color-ink-900);
  --color-text-secondary:   var(--color-ink-600);
  --color-text-muted:       var(--color-ink-400);
  --color-text-placeholder: var(--color-ink-400);
  --color-text-inverse:     var(--color-white);
  --color-text-success:     var(--color-green-700);
  --color-text-danger:      var(--color-red-600);

  --color-surface-page:    var(--color-ink-50);
  --color-surface-card:    var(--color-white);
  --color-surface-header:  var(--color-ink-900);
  --color-surface-footer:  var(--color-ink-950);
  --color-surface-overlay: rgba(25, 20, 15, 0.06);

  --color-border:        var(--color-ink-200);
  --color-border-strong: var(--color-ink-300);

  /* Typographie */
  --font-sans:    'Hanken Grotesk', 'Marianne', system-ui, -apple-system, sans-serif;
  --font-mono:    'SFMono-Regular', 'Consolas', monospace;
  --font-ui:      var(--font-sans);
  --font-body:    var(--font-sans);
  --font-display: var(--font-sans);

  --text-xs: 12px;  --text-sm: 13px;  --text-base: 15px; --text-md: 16px;
  --text-lg: 18px;  --text-xl: 21px;  --text-2xl: 25px;  --text-3xl: 30px;
  --text-4xl: 37px; --text-5xl: 46px; --text-6xl: 58px;  --text-7xl: 72px;
  --text-8xl: 88px;

  --weight-light: 300; --weight-regular: 400; --weight-medium: 500;
  --weight-semibold: 600; --weight-bold: 700; --weight-extrabold: 800;

  --leading-none: 1; --leading-tight: 1.08; --leading-snug: 1.25;
  --leading-normal: 1.6; --leading-relaxed: 1.75;

  --tracking-tightest: -0.04em; --tracking-tighter: -0.03em; --tracking-tight: -0.02em;
  --tracking-normal: 0; --tracking-wide: 0.02em; --tracking-wider: 0.06em; --tracking-widest: 0.14em;

  /* Espacements (base 4px) */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px; --space-5: 20px;
  --space-6: 24px; --space-7: 28px; --space-8: 32px; --space-10: 40px; --space-12: 48px;
  --space-14: 56px; --space-16: 64px; --space-20: 80px; --space-24: 96px; --space-32: 128px;

  --width-content: 780px;
  --width-form: 560px;
  --width-page: 1180px;

  /* Rayons */
  --radius-xs: 4px; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px;
  --radius-xl: 20px; --radius-2xl: 28px; --radius-3xl: 36px; --radius-full: 9999px;
  --radius-button: 10px; --radius-input: 10px; --radius-card: 18px; --radius-card-lg: 24px;
  --radius-badge: 6px; --radius-chip: var(--radius-full);

  /* Ombres */
  --shadow-xs: 0 1px 2px rgba(25,20,15,0.05);
  --shadow-sm: 0 1px 2px rgba(25,20,15,0.04), 0 4px 10px -2px rgba(25,20,15,0.06);
  --shadow-md: 0 1px 3px rgba(25,20,15,0.05), 0 8px 22px -6px rgba(25,20,15,0.10);
  --shadow-lg: 0 2px 6px rgba(25,20,15,0.05), 0 16px 38px -10px rgba(25,20,15,0.14);
  --shadow-xl: 0 4px 10px rgba(25,20,15,0.05), 0 30px 64px -16px rgba(25,20,15,0.20);
  --shadow-2xl: 0 8px 16px rgba(25,20,15,0.06), 0 48px 96px -24px rgba(25,20,15,0.28);
  --shadow-card: var(--shadow-md);
  --shadow-card-hover: 0 4px 12px -2px rgba(25,20,15,0.08), 0 24px 54px -14px rgba(25,20,15,0.20);
  --shadow-button: 0 1px 2px rgba(0,0,0,0.10), 0 8px 20px -6px var(--accent-glow);
  --shadow-button-hover: 0 2px 4px rgba(0,0,0,0.12), 0 14px 30px -8px var(--accent-glow);
  --shadow-button-sheen: inset 0 1px 0 rgba(255,255,255,0.18);
  --shadow-glow: 0 0 0 1px var(--accent-soft), 0 18px 50px -16px var(--accent-glow);
  --shadow-input: 0 0 0 4px var(--accent-ring);
  --shadow-trust: 0 8px 20px -6px rgba(22,163,74,0.30);
}

/* ── Thème 1 — Terracotta (défaut) ────────────────────────────────── */
:root,
[data-theme="terracotta"] {
  --color-primary-950: #4A1706; --color-primary-900: #7C2D12; --color-primary-800: #9A3412;
  --color-primary-700: #C2410C; --color-primary-600: #DC5430; --color-primary-500: #F2683C;
  --color-primary-400: #F98D60; --color-primary-300: #FCB088; --color-primary-200: #FDD0B5;
  --color-primary-100: #FCE6D8; --color-primary-50: #FFF5EF; --color-primary-25: #FFFAF6;
  --accent-glow: rgba(220,84,48,0.24); --accent-ring: rgba(220,84,48,0.16); --accent-soft: rgba(220,84,48,0.08);
  --accent-gradient: linear-gradient(135deg, #F2683C 0%, #C2410C 100%);
  --accent-gradient-dim: linear-gradient(135deg, rgba(242,104,60,0.16) 0%, rgba(194,65,12,0.10) 100%);
  --hero-mesh: radial-gradient(900px 520px at 78% 8%, rgba(242,104,60,0.16), transparent 60%), radial-gradient(700px 460px at 8% 92%, rgba(220,84,48,0.10), transparent 62%);
  --color-brand: #C2410C; --color-interactive: #DC5430; --color-interactive-hover: #C2410C;
  --color-interactive-press: #9A3412; --color-text-brand: #C2410C; --color-text-link: #C2410C;
  --color-border-focus: #DC5430; --color-border-brand: #DC5430;
}

/* ── Thème 2 — Emerald ────────────────────────────────────────────── */
[data-theme="emerald"] {
  --color-primary-950: #03301F; --color-primary-900: #064E32; --color-primary-800: #036A45;
  --color-primary-700: #047857; --color-primary-600: #059669; --color-primary-500: #10B981;
  --color-primary-400: #34D399; --color-primary-300: #6EE7B7; --color-primary-200: #A7F3D0;
  --color-primary-100: #D1FAE5; --color-primary-50: #ECFDF5; --color-primary-25: #F4FEFA;
  --accent-glow: rgba(5,150,105,0.24); --accent-ring: rgba(5,150,105,0.16); --accent-soft: rgba(5,150,105,0.08);
  --accent-gradient: linear-gradient(135deg, #10B981 0%, #047857 100%);
  --accent-gradient-dim: linear-gradient(135deg, rgba(16,185,129,0.16) 0%, rgba(4,120,87,0.10) 100%);
  --hero-mesh: radial-gradient(900px 520px at 78% 8%, rgba(16,185,129,0.16), transparent 60%), radial-gradient(700px 460px at 8% 92%, rgba(5,150,105,0.10), transparent 62%);
  --color-brand: #047857; --color-interactive: #059669; --color-interactive-hover: #047857;
  --color-interactive-press: #036A45; --color-text-brand: #047857; --color-text-link: #047857;
  --color-border-focus: #059669; --color-border-brand: #059669;
}

/* ── Thème 3 — Indigo ─────────────────────────────────────────────── */
[data-theme="indigo"] {
  --color-primary-950: #1E1B4B; --color-primary-900: #312E81; --color-primary-800: #3730A3;
  --color-primary-700: #4338CA; --color-primary-600: #4F46E5; --color-primary-500: #6366F1;
  --color-primary-400: #818CF8; --color-primary-300: #A5B4FC; --color-primary-200: #C7CBFF;
  --color-primary-100: #E0E3FF; --color-primary-50: #EEF0FF; --color-primary-25: #F6F7FF;
  --accent-glow: rgba(79,70,229,0.24); --accent-ring: rgba(79,70,229,0.16); --accent-soft: rgba(79,70,229,0.08);
  --accent-gradient: linear-gradient(135deg, #6366F1 0%, #4338CA 100%);
  --accent-gradient-dim: linear-gradient(135deg, rgba(99,102,241,0.16) 0%, rgba(67,56,202,0.10) 100%);
  --hero-mesh: radial-gradient(900px 520px at 78% 8%, rgba(99,102,241,0.16), transparent 60%), radial-gradient(700px 460px at 8% 92%, rgba(79,70,229,0.10), transparent 62%);
  --color-brand: #4338CA; --color-interactive: #4F46E5; --color-interactive-hover: #4338CA;
  --color-interactive-press: #3730A3; --color-text-brand: #4338CA; --color-text-link: #4338CA;
  --color-border-focus: #4F46E5; --color-border-brand: #4F46E5;
}

/* ── Base ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-primary);
  background: var(--color-surface-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg { max-width: 100%; }
a { color: var(--color-text-link); text-decoration: none; }
a:hover { text-decoration: underline; }
::selection { background: var(--accent-soft); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: var(--weight-semibold); line-height: var(--leading-snug); color: var(--color-text-primary); letter-spacing: var(--tracking-tight); }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--color-border); margin: var(--space-8) 0; }

.das-container { max-width: var(--width-page); margin: 0 auto; padding-left: var(--space-10); padding-right: var(--space-10); }
.das-eyebrow { font-size: var(--text-xs); font-weight: var(--weight-bold); letter-spacing: var(--tracking-widest); text-transform: uppercase; color: var(--color-primary-600); }
.das-section { padding: var(--space-24) var(--space-10); }
.das-muted { color: var(--color-text-muted); }
.das-center { text-align: center; }

/* ── Bouton ───────────────────────────────────────────────────────── */
.das-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 42px; padding: 0 20px; font-size: var(--text-base);
  font-family: var(--font-ui); font-weight: var(--weight-semibold); letter-spacing: 0.04em;
  line-height: 1; border-radius: var(--radius-button); border: 1.5px solid transparent;
  background: var(--color-interactive); color: #fff; cursor: pointer; white-space: nowrap;
  user-select: none; text-decoration: none; flex-shrink: 0;
  box-shadow: var(--shadow-button), var(--shadow-button-sheen);
  transition: background .15s, box-shadow .15s, transform .1s;
}
.das-btn:hover { background: var(--color-interactive-hover); box-shadow: var(--shadow-button-hover), var(--shadow-button-sheen); transform: translateY(-1px); text-decoration: none; color: #fff; }
.das-btn:active { transform: none; background: var(--color-interactive-press); }
.das-btn svg { flex-shrink: 0; }
.das-btn--secondary { background: transparent; color: var(--color-interactive); border-color: var(--color-interactive); box-shadow: none; }
.das-btn--secondary:hover { background: var(--color-primary-50); color: var(--color-interactive); box-shadow: none; }
.das-btn--ghost { background: transparent; color: var(--color-text-secondary); border-color: var(--color-border); box-shadow: none; }
.das-btn--ghost:hover { background: var(--color-stone-100); color: var(--color-text-secondary); box-shadow: none; }
.das-btn--success { background: var(--color-success); box-shadow: var(--shadow-trust), var(--shadow-button-sheen); }
.das-btn--success:hover { background: var(--color-green-700); }
.das-btn--white { background: #fff; color: var(--color-interactive); box-shadow: var(--shadow-lg); }
.das-btn--white:hover { background: #fff; color: var(--color-interactive-hover); }
.das-btn--sm { height: 32px; padding: 0 14px; font-size: var(--text-sm); gap: 6px; }
.das-btn--lg { height: 50px; padding: 0 26px; font-size: var(--text-md); gap: 10px; }
.das-btn--xl { height: 60px; padding: 0 32px; font-size: 17px; gap: 10px; }
.das-btn--full { width: 100%; }
.das-btn[disabled], .das-btn--disabled { opacity: .45; cursor: not-allowed; transform: none !important; box-shadow: none; }

/* ── Carte ────────────────────────────────────────────────────────── */
.das-card {
  background: var(--color-surface-card); border-radius: var(--radius-card);
  box-shadow: var(--shadow-card); overflow: hidden;
}
.das-card--outlined { box-shadow: none; border: 1.5px solid var(--color-border); }
.das-card--elevated { box-shadow: var(--shadow-lg); }
.das-card__body { padding: var(--space-6); }

/* ── Badge ────────────────────────────────────────────────────────── */
.das-badge {
  display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px;
  font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.06em;
  border-radius: var(--radius-badge); border: 1px solid var(--color-ink-200);
  background: var(--color-ink-100); color: var(--color-ink-600); line-height: 1.4; white-space: nowrap;
}
.das-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.das-badge--success { background: var(--color-success-bg); color: var(--color-success); border-color: var(--color-success-border); }
.das-badge--warning { background: var(--color-warning-bg); color: var(--color-warning); border-color: var(--color-warning-border); }
.das-badge--danger  { background: var(--color-danger-bg);  color: var(--color-danger);  border-color: var(--color-danger-border); }
.das-badge--brand   { background: var(--color-primary-50); color: var(--color-primary-700); border-color: var(--color-primary-200); }

/* ── Alerte ───────────────────────────────────────────────────────── */
.das-alert {
  display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--radius-md);
  border: 1px solid var(--color-ink-200); background: var(--color-ink-50);
  color: var(--color-text-secondary); font-size: var(--text-sm); line-height: var(--leading-normal);
}
.das-alert__icon { flex-shrink: 0; margin-top: 1px; color: var(--color-ink-700); }
.das-alert__title { font-weight: var(--weight-semibold); margin-bottom: 4px; color: var(--color-ink-800); }
.das-alert--success { background: var(--color-success-bg); border-color: var(--color-success-border); }
.das-alert--success .das-alert__icon, .das-alert--success .das-alert__title { color: var(--color-success); }
.das-alert--warning { background: var(--color-warning-bg); border-color: var(--color-warning-border); }
.das-alert--warning .das-alert__icon, .das-alert--warning .das-alert__title { color: var(--color-warning); }
.das-alert--danger { background: var(--color-danger-bg); border-color: var(--color-danger-border); }
.das-alert--danger .das-alert__icon, .das-alert--danger .das-alert__title { color: var(--color-danger); }

/* ── Champs de formulaire (réutilise les classes Symfony existantes) ── */
.das-form .form-control,
.das-form select,
.das-form textarea,
.das-input {
  width: 100%; height: 46px; padding: 0 14px;
  font-family: var(--font-sans); font-size: var(--text-base); font-weight: var(--weight-light);
  color: var(--color-text-primary); background: var(--color-surface-card);
  border: 1.5px solid var(--color-border-strong); border-radius: var(--radius-input) !important;
  outline: none; transition: border-color .14s, box-shadow .14s; box-sizing: border-box;
}
.das-form textarea, textarea.das-input { height: auto; min-height: 96px; padding: 12px 14px; resize: vertical; line-height: var(--leading-normal); }
.das-form .form-control::placeholder, .das-input::placeholder { color: var(--color-text-placeholder); }
.das-form .form-control:focus,
.das-form select:focus,
.das-form textarea:focus,
.das-input:focus { border-color: var(--color-border-focus); box-shadow: var(--shadow-input); }
.das-form select {
  -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A8A29D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
.das-form .form-label,
.das-label {
  display: block; margin-bottom: 6px; font-size: var(--text-sm); font-weight: var(--weight-semibold);
  letter-spacing: 0.04em; color: var(--color-text-secondary);
}
.das-form .form-text, .das-form .invalid-feedback, .das-hint { font-size: var(--text-xs); color: var(--color-text-muted); margin-top: 6px; }
.das-form .is-invalid, .das-form .form-control.is-invalid { border-color: var(--color-danger); }
.das-form .invalid-feedback, .das-form .form-error { color: var(--color-text-danger); }
.das-form .mb-3, .das-field { margin-bottom: var(--space-4); }

/* ── Indicateur d'étapes ──────────────────────────────────────────── */
.das-stepper { display: flex; align-items: center; justify-content: center; gap: 4px; }
.das-stepper__item { display: flex; align-items: center; gap: 9px; }
.das-stepper__num {
  width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: var(--weight-bold); background: var(--color-ink-150); color: var(--color-ink-500);
}
.das-stepper__label { font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--color-text-muted); }
.das-stepper__line { width: 40px; height: 1.5px; background: var(--color-ink-200); margin: 0 8px; }
.das-stepper__item--active .das-stepper__num { background: var(--color-interactive); color: #fff; }
.das-stepper__item--active .das-stepper__label { color: var(--color-ink-900); font-weight: var(--weight-bold); }
.das-stepper__item--done .das-stepper__num { background: var(--color-success); color: #fff; }

/* ── En-tête du site ──────────────────────────────────────────────── */
.das-header {
  position: sticky; top: 0; z-index: 100; height: 66px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--space-10); background: transparent;
  border-bottom: 1px solid transparent; transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
.das-header.is-scrolled {
  background: rgba(255,255,255,0.82); backdrop-filter: saturate(180%) blur(16px);
  -webkit-backdrop-filter: saturate(180%) blur(16px); border-bottom-color: var(--color-ink-150);
}
.das-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.das-brand:hover { text-decoration: none; }
.das-brand__mark {
  width: 30px; height: 30px; border-radius: 9px; background: var(--accent-gradient);
  display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-button);
  color: #fff; font-weight: var(--weight-extrabold); font-size: 14px; flex-shrink: 0;
}
.das-brand__name { font-weight: var(--weight-bold); font-size: 16px; letter-spacing: -0.02em; color: var(--color-ink-900); }
.das-brand__name span { color: var(--color-text-muted); font-weight: var(--weight-medium); }
.das-nav { display: flex; gap: 34px; align-items: center; }
.das-nav a { font-size: 14px; font-weight: var(--weight-medium); color: var(--color-ink-600); letter-spacing: -0.01em; }
.das-nav a:hover { color: var(--color-ink-900); text-decoration: none; }
.das-header__burger { display: none; background: none; border: 0; cursor: pointer; color: var(--color-ink-900); }

/* ── Pied de page ─────────────────────────────────────────────────── */
.das-footer { background: var(--color-ink-950); padding: var(--space-14) var(--space-10) var(--space-9); color: var(--color-ink-500); }
.das-footer__grid { max-width: var(--width-page); margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--space-12); margin-bottom: var(--space-12); }
.das-footer__lead { color: var(--color-ink-500); font-size: 13px; line-height: var(--leading-relaxed); max-width: 320px; }
.das-footer__col-title { color: var(--color-ink-400); font-size: 11px; font-weight: var(--weight-bold); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 18px; }
.das-footer a { display: block; color: var(--color-ink-500); font-size: 13px; margin-bottom: 10px; }
.das-footer a:hover { color: #fff; text-decoration: none; }
.das-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.das-footer__brand .das-brand__name { color: #fff; }
.das-footer__bottom { max-width: var(--width-page); margin: 0 auto; border-top: 1px solid rgba(255,255,255,0.07); padding-top: var(--space-6); display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: var(--color-ink-600); gap: 16px; flex-wrap: wrap; }

/* ── Barre de confiance ───────────────────────────────────────────── */
.das-trustbar { display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: center; }
.das-trustbar__item { display: flex; align-items: center; gap: 8px; font-size: var(--text-sm); letter-spacing: 0.03em; color: var(--color-text-secondary); }
.das-trustbar__item svg { opacity: .7; }
.das-trustbar--dark .das-trustbar__item { color: rgba(255,255,255,.75); }

/* ── Fil d'Ariane ─────────────────────────────────────────────────── */
.das-breadcrumb { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: var(--text-sm); }
.das-breadcrumb a { color: var(--color-text-link); letter-spacing: .03em; }
.das-breadcrumb span.sep { color: var(--color-ink-300); display: inline-flex; }
.das-breadcrumb span.current { font-weight: var(--weight-semibold); color: var(--color-text-primary); }

/* ── Hero ─────────────────────────────────────────────────────────── */
.das-hero { position: relative; background: var(--color-ink-50); overflow: hidden; }
.das-hero__mesh { position: absolute; inset: 0; background: var(--hero-mesh); z-index: 0; }
.das-hero__inner { position: relative; z-index: 1; max-width: var(--width-page); margin: 0 auto; padding: 88px var(--space-10) 100px; display: flex; gap: var(--space-16); align-items: center; }
.das-hero__copy { flex: 1 1 58%; min-width: 0; }
.das-hero__pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: var(--radius-full); background: #fff; border: 1px solid var(--color-ink-200); box-shadow: var(--shadow-xs); margin-bottom: 28px; font-size: 13px; font-weight: var(--weight-semibold); color: var(--color-ink-700); }
.das-hero__pill .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-primary-600); }
.das-hero h1 { font-size: var(--text-6xl); font-weight: var(--weight-bold); line-height: 1.04; letter-spacing: var(--tracking-tightest); margin-bottom: 24px; }
.das-hero__accent { background: var(--accent-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.das-hero__lead { font-size: var(--text-lg); line-height: var(--leading-normal); color: var(--color-ink-600); margin-bottom: 36px; max-width: 480px; }
.das-hero__actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.das-price-inline { display: flex; flex-direction: column; }
.das-price-inline b { font-size: var(--text-base); color: var(--color-ink-900); }
.das-price-inline span { font-size: var(--text-xs); color: var(--color-text-muted); }
.das-hero__art { flex: 0 0 auto; display: flex; justify-content: center; }
.das-hero__trust { position: relative; z-index: 1; border-top: 1px solid var(--color-ink-150); background: rgba(255,255,255,0.5); }
.das-hero__trust > div { max-width: var(--width-page); margin: 0 auto; padding: 20px var(--space-10); }

/* Carte statut flottante */
.das-statuscard { position: relative; width: 340px; flex-shrink: 0; }
.das-statuscard__halo { position: absolute; inset: -30px; background: var(--accent-gradient-dim); filter: blur(40px); border-radius: 50%; z-index: 0; }
.das-statuscard__panel { position: relative; z-index: 2; background: rgba(255,255,255,0.72); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.9); border-radius: var(--radius-xl); padding: 24px; box-shadow: var(--shadow-2xl); }
.das-statuscard__row { display: flex; align-items: center; gap: 12px; padding: 9px 0; }
.das-statuscard__node { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--color-ink-100); }
.das-statuscard__node--done { background: var(--color-primary-600); }
.das-statuscard__node--active { background: #fff; border: 2px solid var(--color-primary-600); box-shadow: 0 0 0 4px var(--accent-ring); }
.das-statuscard__badge { position: absolute; bottom: -18px; left: -26px; z-index: 3; background: #fff; border-radius: var(--radius-lg); padding: 12px 16px; box-shadow: var(--shadow-lg); display: flex; align-items: center; gap: 10px; }

/* ── Bento services ───────────────────────────────────────────────── */
.das-bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.das-bento__panel { background: var(--color-ink-50); border: 1px solid var(--color-ink-150); border-radius: 22px; padding: 14px; }
.das-bento__col { display: flex; flex-direction: column; gap: 16px; }
.das-bento__stats { background: var(--color-ink-50); border: 1px solid var(--color-ink-150); border-radius: 22px; padding: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; }
.das-bento__stat b { display: block; font-size: var(--text-3xl); font-weight: var(--weight-bold); color: var(--color-ink-900); letter-spacing: var(--tracking-tighter); line-height: 1; }
.das-bento__stat span { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: 6px; display: block; }
.das-bento__promo { flex: 1; background: var(--accent-gradient); border-radius: 22px; padding: 28px; color: #fff; display: flex; flex-direction: column; justify-content: center; box-shadow: var(--shadow-glow); position: relative; overflow: hidden; }
.das-bento__promo .blob { position: absolute; top: -40px; right: -40px; width: 160px; height: 160px; border-radius: 50%; background: rgba(255,255,255,0.12); }
.das-service-row { display: flex; align-items: center; gap: 18px; padding: 18px 20px; border-radius: var(--radius-lg); text-decoration: none; transition: background .15s; }
.das-service-row:hover { background: var(--accent-soft); text-decoration: none; }
.das-service-row__num { font-size: var(--text-sm); font-weight: var(--weight-bold); color: var(--color-primary-600); letter-spacing: 0.04em; width: 24px; flex-shrink: 0; }
.das-service-row__title { font-size: 17px; font-weight: var(--weight-semibold); color: var(--color-ink-900); letter-spacing: -0.01em; }
.das-service-row__desc { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: 2px; }
.das-service-row__arrow { color: var(--color-ink-300); flex-shrink: 0; transition: color .15s, transform .15s; }
.das-service-row:hover .das-service-row__arrow { color: var(--color-primary-600); transform: translateX(3px); }

/* ── Tarif ────────────────────────────────────────────────────────── */
.das-pricing { background: #fff; border-radius: 28px; box-shadow: var(--shadow-xl); overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; }
.das-pricing__left { padding: 56px 48px; }
.das-pricing__price { font-size: var(--text-7xl); font-weight: var(--weight-bold); color: var(--color-ink-900); letter-spacing: var(--tracking-tightest); line-height: 1; }
.das-pricing__right { padding: 56px 48px; background: var(--color-ink-50); border-left: 1px solid var(--color-ink-150); }
.das-check-list { display: flex; flex-direction: column; gap: 15px; }
.das-check-list__item { display: flex; align-items: flex-start; gap: 13px; font-size: var(--text-sm); color: var(--color-ink-700); line-height: 1.5; }
.das-check-list__mark { width: 20px; height: 20px; border-radius: 50%; background: var(--accent-soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }

/* ── Process ──────────────────────────────────────────────────────── */
.das-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.das-process__num { width: 40px; height: 40px; border-radius: 12px; background: var(--accent-soft); border: 1px solid var(--color-primary-100); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: var(--weight-bold); color: var(--color-primary-700); }

/* ── Bandeau CTA ──────────────────────────────────────────────────── */
.das-ctaband { position: relative; overflow: hidden; background: var(--color-ink-900); border-radius: 28px; padding: 64px 56px; text-align: center; }
.das-ctaband__mesh { position: absolute; inset: 0; background: var(--hero-mesh); opacity: .7; }
.das-ctaband h2 { font-size: var(--text-5xl); color: #fff; letter-spacing: var(--tracking-tighter); margin-bottom: 16px; }
.das-ctaband p { font-size: 17px; color: rgba(255,255,255,0.7); margin: 0 auto 32px; max-width: 440px; }

/* ── Wizard (formulaire façon Typeform) ───────────────────────────── */
.das-wizard { font-family: var(--font-sans); background: #fff; min-height: 100vh; }
.das-wizard__progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; background: var(--color-ink-100); z-index: 200; }
.das-wizard__progress-bar { height: 100%; width: 0; background: var(--color-primary-700); transition: width .4s ease; }
.das-wizard__bar { position: fixed; top: 3px; left: 0; right: 0; height: 56px; background: #fff; display: flex; align-items: center; padding: 0 var(--space-8); justify-content: space-between; z-index: 100; border-bottom: 1px solid var(--color-ink-100); }
.das-wizard__back { background: none; border: none; cursor: pointer; font-family: var(--font-sans); font-size: 13px; color: var(--color-ink-500); display: inline-flex; align-items: center; gap: 6px; padding: 0; }
.das-wizard__count { width: 80px; text-align: right; font-size: 12px; letter-spacing: 0.08em; color: var(--color-ink-400); }
.das-wizard__stage { padding: 120px var(--space-8) 60px; min-height: 100vh; display: flex; align-items: flex-start; justify-content: center; }
.das-wizard__layout { display: flex; gap: 60px; align-items: flex-start; width: 100%; max-width: 880px; }
.das-wizard__main { flex: 1; }
.das-wizard__step { display: none; }
.das-wizard__step.is-active { display: block; animation: das-fade-in .28s ease; }
@keyframes das-fade-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.das-wizard__q { font-size: 34px; font-weight: var(--weight-semibold); letter-spacing: var(--tracking-tighter); color: var(--color-text-primary); margin-bottom: 32px; line-height: 1.18; }
.das-wizard__hint { margin-top: 12px; font-size: 12px; color: var(--color-text-muted); }
.das-wizard__actions { display: flex; align-items: center; gap: 16px; margin-top: 36px; }

/* Récap latéral du wizard */
.das-recap-aside { background: var(--color-ink-50); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 20px; font-size: 13px; min-width: 240px; }
.das-recap-aside__title { font-size: 11px; font-weight: var(--weight-bold); letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-primary-700); margin-bottom: 16px; }
.das-recap-aside__row { margin-bottom: 12px; }
.das-recap-aside__row dt { font-size: 11px; font-weight: var(--weight-semibold); letter-spacing: 0.06em; color: var(--color-text-muted); margin-bottom: 2px; text-transform: uppercase; }
.das-recap-aside__row dd { margin: 0; color: var(--color-text-primary); }
.das-recap-aside__total { border-top: 1px solid var(--color-border); padding-top: 16px; margin-top: 8px; display: flex; justify-content: space-between; align-items: center; }
.das-recap-aside__total b { font-size: 18px; }

/* ── Récap / formules (page commande) ─────────────────────────────── */
.das-recap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.das-recap-card { border: 1px solid var(--color-ink-150); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.das-recap-card__head { padding: 14px 22px; background: var(--color-ink-50); border-bottom: 1px solid var(--color-ink-150); font-size: 13px; font-weight: var(--weight-bold); color: var(--color-ink-900); }
.das-recap-card__body { padding: 6px 22px 14px; }
.das-recap-field { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--color-ink-100); }
.das-recap-field:last-child { border-bottom: 0; }
.das-recap-field dt { font-size: 13px; color: var(--color-text-muted); flex-shrink: 0; margin: 0; }
.das-recap-field dd { font-size: 14px; font-weight: var(--weight-medium); color: var(--color-ink-900); text-align: right; margin: 0; }
.das-recap-field--strong dd { font-weight: var(--weight-bold); }

.das-plans { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 16px; align-items: start; }
.das-plan { background: #fff; border: 1px solid var(--color-ink-200); border-radius: var(--radius-card); padding: 26px 24px; }
.das-plan--muted { background: var(--color-ink-50); }
.das-plan--featured { position: relative; border: 2px solid var(--color-interactive); border-radius: var(--radius-xl); padding: 28px 26px; box-shadow: var(--shadow-glow); }
.das-plan__ribbon { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--accent-gradient); color: #fff; font-size: 11px; font-weight: var(--weight-bold); letter-spacing: 0.08em; padding: 5px 14px; border-radius: var(--radius-full); box-shadow: var(--shadow-button); }
.das-plan__name { font-size: 16px; font-weight: var(--weight-bold); color: var(--color-ink-900); margin-bottom: 4px; }
.das-plan__price { font-size: 26px; font-weight: var(--weight-bold); color: var(--color-ink-900); letter-spacing: var(--tracking-tight); }
.das-plan--featured .das-plan__price { font-size: 34px; letter-spacing: var(--tracking-tighter); }
.das-plan__meta { font-size: 12px; color: var(--color-text-muted); margin-bottom: 18px; }
.das-li { display: flex; align-items: flex-start; gap: 11px; padding: 6px 0; font-size: 13.5px; color: var(--color-ink-700); line-height: 1.5; }
.das-li svg { flex-shrink: 0; margin-top: 1px; }
.das-li--off { color: var(--color-text-muted); }

/* ── Confirmation / succès ────────────────────────────────────────── */
.das-confirm { background: var(--color-ink-50); min-height: 70vh; display: flex; align-items: center; justify-content: center; padding: 40px 24px; }
.das-confirm__card { max-width: 540px; width: 100%; background: #fff; border-radius: var(--radius-card); box-shadow: var(--shadow-lg); padding: 48px 40px; text-align: center; }
.das-confirm__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--color-success-bg); border: 1px solid var(--color-success-border); display: flex; align-items: center; justify-content: center; margin: 0 auto 28px; }

/* ── FAQ / accordéon ──────────────────────────────────────────────── */
.das-faq__item { border-bottom: 1px solid var(--color-ink-150); }
.das-faq__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font-sans); font-size: 16px; font-weight: var(--weight-semibold); color: var(--color-ink-900); }
.das-faq__q .icon { flex-shrink: 0; color: var(--color-primary-600); transition: transform .2s; }
.das-faq__item.is-open .das-faq__q .icon { transform: rotate(45deg); }
.das-faq__a { font-size: 15px; color: var(--color-ink-600); line-height: var(--leading-relaxed); padding: 0 0 22px; max-width: 660px; display: none; }
.das-faq__item.is-open .das-faq__a { display: block; }

/* ── Liens SEO / maillage ─────────────────────────────────────────── */
.das-linkgrid { display: grid; gap: 10px 20px; }
.das-linkgrid--4 { grid-template-columns: repeat(4, 1fr); }
.das-linkgrid--3 { grid-template-columns: repeat(3, 1fr); }
.das-linkgrid a { font-size: 14px; color: var(--color-ink-600); padding: 4px 0; }
.das-linkgrid a:hover { color: var(--color-primary-700); text-decoration: none; }

/* ── Animations au scroll ─────────────────────────────────────────── */
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1); will-change: opacity, transform; }
[data-reveal].revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; } }

/* =====================================================================
   Couche de compatibilité — markup Bootstrap hérité (pages non refondues)
   ===================================================================== */
.container, .container-fluid { width: 100%; margin: 0 auto; padding-left: var(--space-4); padding-right: var(--space-4); }
.container { max-width: 1140px; }
.row { display: flex; flex-wrap: wrap; margin-left: -12px; margin-right: -12px; }
.row > * { padding-left: 12px; padding-right: 12px; }
.row.g-0 { margin: 0; } .row.g-0 > * { padding: 0; }
.row.g-3 { row-gap: var(--space-3); } .row.g-4 { row-gap: var(--space-4); }
[class^="col-"], [class*=" col-"], .col { flex: 1 1 0%; min-width: 0; }
.col-12 { flex: 0 0 100%; max-width: 100%; }
.col-6 { flex: 0 0 50%; max-width: 50%; }
.col-auto { flex: 0 0 auto; width: auto; }
@media (min-width: 768px) {
  .col-md-3 { flex: 0 0 25%; max-width: 25%; }
  .col-md-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .col-md-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
  .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  .col-md-7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
  .col-md-8 { flex: 0 0 66.6667%; max-width: 66.6667%; }
}
@media (min-width: 992px) {
  .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
  .col-lg-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .col-lg-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
  .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
  .col-lg-8 { flex: 0 0 66.6667%; max-width: 66.6667%; }
}

/* Composants Bootstrap mappés sur le design system */
.card { background: var(--color-surface-card); border-radius: var(--radius-card); box-shadow: var(--shadow-card); border: none; overflow: hidden; }
.card.border-0 { box-shadow: var(--shadow-card); }
.card-body { padding: var(--space-6); }
.card-title { font-weight: var(--weight-semibold); color: var(--color-ink-900); }
.card-text { color: var(--color-text-secondary); }
.shadow, .shadow-sm, .shadow-lg, .shadow-soft { box-shadow: var(--shadow-card) !important; }
.hover-lift { transition: box-shadow .18s, transform .14s; }
.hover-lift:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 20px; font-family: var(--font-ui); font-weight: var(--weight-semibold); font-size: var(--text-base); letter-spacing: 0.04em; border-radius: var(--radius-button); border: 1.5px solid transparent; cursor: pointer; text-decoration: none; transition: background .15s, box-shadow .15s, transform .1s; }
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn-primary, .btn-success { background: var(--color-interactive); color: #fff; box-shadow: var(--shadow-button), var(--shadow-button-sheen); }
.btn-primary:hover, .btn-success:hover { background: var(--color-interactive-hover); color: #fff; }
.btn-success { background: var(--color-success); box-shadow: var(--shadow-trust); }
.btn-success:hover { background: var(--color-green-700); }
.btn-outline-primary { background: transparent; color: var(--color-interactive); border-color: var(--color-interactive); }
.btn-outline-primary:hover { background: var(--color-primary-50); color: var(--color-interactive); }
.btn-white { background: #fff; color: var(--color-interactive); box-shadow: var(--shadow-lg); }
.btn-light { background: var(--color-ink-100); color: var(--color-ink-800); }
.btn-lg { height: 50px; padding: 0 26px; font-size: var(--text-md); }
.btn-sm { height: 34px; padding: 0 14px; font-size: var(--text-sm); }
.btn-block, .btn-wide { width: 100%; }
.btn-pill, .rounded-pill { border-radius: var(--radius-full) !important; }
.form-control, .form-select { width: 100%; min-height: 46px; padding: 0 14px; font-family: var(--font-sans); font-size: var(--text-base); color: var(--color-text-primary); background: #fff; border: 1.5px solid var(--color-border-strong); border-radius: var(--radius-input); outline: none; transition: border-color .14s, box-shadow .14s; }
textarea.form-control { min-height: 96px; padding: 12px 14px; }
.form-control:focus, .form-select:focus { border-color: var(--color-border-focus); box-shadow: var(--shadow-input); }
.form-label { display: inline-block; margin-bottom: 6px; font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--color-text-secondary); }
.input-group { display: flex; width: 100%; }
.input-group > .form-control { flex: 1 1 auto; }

/* Utilitaires Bootstrap usuels */
.d-none { display: none !important; } .d-block { display: block !important; }
.d-flex { display: flex !important; } .d-inline-flex { display: inline-flex !important; }
.d-grid { display: grid !important; } .d-inline-block { display: inline-block !important; }
.flex-column { flex-direction: column !important; } .flex-wrap { flex-wrap: wrap !important; }
.align-items-center { align-items: center !important; } .align-items-start { align-items: flex-start !important; }
.justify-content-center { justify-content: center !important; } .justify-content-between { justify-content: space-between !important; }
.justify-content-end { justify-content: flex-end !important; }
.text-center { text-align: center !important; } .text-end, .text-right { text-align: right !important; } .text-start { text-align: left !important; }
.text-muted { color: var(--color-text-muted) !important; } .text-body { color: var(--color-text-secondary) !important; }
.text-white { color: #fff !important; } .text-white-70 { color: rgba(255,255,255,0.7) !important; }
.text-primary { color: var(--color-text-brand) !important; } .text-danger { color: var(--color-danger) !important; }
.text-success { color: var(--color-success) !important; } .text-warning { color: var(--color-warning) !important; }
.text-dark { color: var(--color-ink-900) !important; } .text-light { color: var(--color-ink-100) !important; }
.fw-bold, .font-weight-bold { font-weight: var(--weight-bold) !important; }
.fw-semibold { font-weight: var(--weight-semibold) !important; }
.fw-medium, .font-weight-medium { font-weight: var(--weight-medium) !important; }
.fw-normal { font-weight: var(--weight-regular) !important; }
.lead { font-size: var(--text-lg); color: var(--color-ink-600); line-height: var(--leading-normal); }
.small, small { font-size: var(--text-sm); }
.display-1, .display-2, .display-3, .display-4 { font-weight: var(--weight-bold); letter-spacing: var(--tracking-tighter); line-height: 1.1; }
.display-4 { font-size: var(--text-5xl); }
.h1, h1.h1 { font-size: var(--text-5xl); } .h2 { font-size: var(--text-4xl); } .h3 { font-size: var(--text-2xl); }
.h4 { font-size: var(--text-xl); } .h5 { font-size: var(--text-lg); }
.list-unstyled { list-style: none; padding-left: 0; }
.w-100 { width: 100% !important; } .h-100 { height: 100% !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.mt-auto { margin-top: auto !important; }
.rounded { border-radius: var(--radius-md) !important; } .rounded-3 { border-radius: var(--radius-lg) !important; }
.bg-white { background: #fff !important; } .bg-light { background: var(--color-ink-50) !important; }
.sr-only, .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.shadow-soft { box-shadow: var(--shadow-md) !important; }

/* Espacements (échelle Bootstrap : 1=.25rem … 5=3rem) */
.m-0{margin:0!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}
.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}
.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}
.me-1,.mr-1{margin-right:.25rem!important}.me-2,.mr-2{margin-right:.5rem!important}.me-3,.mr-3{margin-right:1rem!important}
.ms-2,.ml-2{margin-left:.5rem!important}.ms-3,.ml-3{margin-left:1rem!important}
.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}
.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}
.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}
.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}
.g-4{gap:1.5rem}.g-3{gap:1rem}

/* Compat — onglets, alertes, list-group, badges, spinner */
.nav-tabs { display: flex; gap: 4px; list-style: none; padding: 0; margin: 0 0 16px; border-bottom: 1px solid var(--color-ink-200); flex-wrap: wrap; }
.nav-tabs .nav-link { background: none; border: none; border-bottom: 2px solid transparent; padding: 10px 16px; font-family: var(--font-sans); font-weight: var(--weight-semibold); font-size: 14px; color: var(--color-ink-600); cursor: pointer; }
.nav-tabs .nav-link.active { color: var(--color-primary-700); border-bottom-color: var(--color-interactive); }
.tab-pane { display: none; }
.tab-pane.active, .tab-pane.show.active { display: block; }
.alert { padding: 14px 16px; border-radius: var(--radius-md); border: 1px solid var(--color-ink-200); background: var(--color-ink-50); color: var(--color-ink-700); font-size: 14px; margin-bottom: 16px; }
.alert-success { background: var(--color-success-bg); border-color: var(--color-success-border); color: var(--color-green-700); }
.alert-danger { background: var(--color-danger-bg); border-color: var(--color-danger-border); color: var(--color-red-700); }
.alert-info { background: var(--accent-soft); border-color: var(--color-primary-100); color: var(--color-ink-700); }
.alert-warning { background: var(--color-warning-bg); border-color: var(--color-warning-border); color: var(--color-amber-700); }
.list-group { list-style: none; padding: 0; margin: 0; border-radius: var(--radius-md); }
.list-group-item { padding: 10px 14px; background: #fff; border: 1px solid var(--color-ink-150); border-top: none; cursor: pointer; }
.list-group-item:first-child { border-top: 1px solid var(--color-ink-150); border-radius: var(--radius-md) var(--radius-md) 0 0; }
.list-group-item:hover, .list-group-item-action:hover { background: var(--color-ink-50); }
.badge { display: inline-flex; align-items: center; padding: 4px 10px; font-size: 12px; font-weight: var(--weight-semibold); border-radius: var(--radius-badge); background: var(--color-ink-100); color: var(--color-ink-700); }
.badge-primary, .bg-primary { background: var(--color-interactive) !important; color: #fff !important; }
.badge-soft-primary, .badge-soft-blue { background: var(--color-primary-50); color: var(--color-primary-700); }
.badge-soft-pink { background: var(--color-danger-bg); color: var(--color-danger); }
.bg-warning { background: var(--color-warning-bg) !important; color: var(--color-amber-700) !important; }
.spinner-border { display: inline-block; width: 36px; height: 36px; border: 3px solid var(--accent-ring); border-top-color: var(--color-interactive); border-radius: 50%; animation: das-spin .7s linear infinite; }
@keyframes das-spin { to { transform: rotate(360deg); } }

/* =====================================================================
   Pages internes (demarche, commande, profil…)
   ===================================================================== */
.das-inner { background: var(--color-ink-50); min-height: 60vh; }
.das-inner__wrap { max-width: var(--width-page); margin: 0 auto; padding: 32px var(--space-10) 80px; }
.das-pagehead { margin-bottom: 28px; }
.das-pagehead h1 { font-size: var(--text-3xl); letter-spacing: var(--tracking-tighter); margin: 12px 0 6px; }
.das-pagehead p { color: var(--color-ink-600); margin: 0; }
.das-grid-2 { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 24px; align-items: start; }

.das-section-card { background: #fff; border: 1px solid var(--color-ink-150); border-radius: var(--radius-card); overflow: hidden; margin-bottom: 24px; }
.das-section-card__head { padding: 16px 24px; border-bottom: 1px solid var(--color-ink-150); font-weight: var(--weight-bold); color: var(--color-ink-900); display: flex; align-items: center; gap: 10px; font-size: var(--text-md); }
.das-section-card__head .ic { color: var(--color-primary-600); display: inline-flex; }
.das-section-card__body { padding: 24px; }

.das-sidecard { background: #fff; border: 1px solid var(--color-ink-150); border-radius: var(--radius-card); padding: 22px; margin-bottom: 16px; }
.das-sidecard--accent { background: var(--accent-soft); border-color: var(--color-primary-100); }
.das-sidecard__title { font-size: 13px; font-weight: var(--weight-bold); letter-spacing: 0.02em; color: var(--color-ink-900); display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.das-sidecard--sticky { position: sticky; top: 88px; }
.das-listcheck { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.das-listcheck li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--color-ink-700); }
.das-listcheck li svg { flex-shrink: 0; margin-top: 2px; color: var(--color-success); }

.das-loc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.das-loc { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border: 1px solid var(--color-ink-200); border-radius: var(--radius-md); color: var(--color-ink-700); background: #fff; font-size: 14px; transition: border-color .14s, color .14s, box-shadow .14s; }
.das-loc:hover { border-color: var(--color-interactive); color: var(--color-primary-700); text-decoration: none; box-shadow: var(--shadow-sm); }
.das-loc svg { color: var(--color-primary-600); flex-shrink: 0; }

.das-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.das-table th { text-align: left; padding: 12px 16px; background: var(--color-ink-50); color: var(--color-ink-600); font-weight: var(--weight-semibold); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid var(--color-ink-150); }
.das-table td { padding: 12px 16px; border-bottom: 1px solid var(--color-ink-100); color: var(--color-ink-700); }
.das-table tr:last-child td { border-bottom: 0; }

.das-info { margin-bottom: 16px; }
.das-info__label { font-size: 12px; font-weight: var(--weight-semibold); letter-spacing: .04em; text-transform: uppercase; color: var(--color-text-muted); display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.das-info__value { color: var(--color-ink-800); line-height: 1.5; }
.das-info__value a { color: var(--color-text-link); }
.das-stat-mini { padding: 10px 0; }
.das-stat-mini small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); }
.das-stat-mini b { font-size: 16px; color: var(--color-ink-900); }

/* Wizard en carte (in-page) */
.das-wizard-card { background: #fff; border: 1px solid var(--color-ink-150); border-radius: var(--radius-card-lg); padding: 32px; box-shadow: var(--shadow-md); }
.das-wizard-card__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.das-wizard-card__track { height: 5px; background: var(--color-ink-100); border-radius: var(--radius-full); overflow: hidden; margin-bottom: 28px; }
.das-wizard-card__track .das-wizard__progress-bar { background: var(--color-primary-600); }
.das-wizard-card__count { font-size: 12px; letter-spacing: .08em; color: var(--color-text-muted); }
.das-wizard-card .das-wizard__step { display: none; }
.das-wizard-card .das-wizard__step.is-active { display: block; animation: das-fade-in .28s ease; }
.das-wizard-card__q { font-size: 24px; font-weight: var(--weight-semibold); letter-spacing: var(--tracking-tight); color: var(--color-text-primary); margin-bottom: 24px; line-height: 1.25; }
.das-wizard-card__nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--color-ink-100); }

/* Cartes de choix (mode de réception) */
.das-choice-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 18px 22px; border-radius: 10px; border: 1.5px solid var(--color-border); background: #fff; cursor: pointer; text-align: left; transition: border-color .15s, background .15s, box-shadow .15s; font-family: var(--font-sans); margin-bottom: 12px; }
.das-choice-card:hover { border-color: var(--color-border-strong); }
.das-choice-card.is-selected { border-color: var(--color-interactive); background: var(--color-primary-50); box-shadow: 0 0 0 3px var(--accent-ring); }
.das-choice-card__radio { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--color-stone-300); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.das-choice-card.is-selected .das-choice-card__radio { border-color: var(--color-interactive); }
.das-choice-card.is-selected .das-choice-card__radio::after { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--color-interactive); }
.das-choice-card__t { font-size: 16px; color: var(--color-text-primary); }
.das-choice-card.is-selected .das-choice-card__t { color: var(--color-interactive); font-weight: var(--weight-semibold); }
.das-choice-card__h { font-size: 13px; color: var(--color-text-muted); margin-top: 4px; }
/* Disposition en ligne (options courtes : civilité, exemplaires) */
.das-choice--row { display: flex; gap: 12px; flex-wrap: wrap; }
.das-choice--row .das-choice-card { width: auto; flex: 1 1 0; min-width: 130px; margin-bottom: 0; justify-content: space-between; }
.das-choice--error .das-choice-card { border-color: var(--color-danger); }
.das-banner-info { display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; background: var(--accent-soft); border: 1px solid var(--color-primary-100); border-radius: var(--radius-md); font-size: 13px; color: var(--color-ink-700); margin-top: 24px; }

/* Erreurs de formulaire Symfony */
.das-form ul { list-style: none; padding: 0; margin: 6px 0 0; }
.das-form ul li { color: var(--color-danger); font-size: var(--text-xs); }
.das-form .form-actions { margin-top: var(--space-6); }

/* Page commune (modèle Tournan-en-Brie) */
.das-commune { background: #fff; }
.das-commune__wrap { max-width: 1100px; margin: 0 auto; padding: 26px var(--space-10) 80px; }
.das-commune__hero { display: grid; grid-template-columns: 1fr 360px; gap: 48px; margin-top: 26px; align-items: start; }
.das-commune__pill { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: var(--radius-full); background: var(--accent-soft); margin-bottom: 20px; font-size: 12px; font-weight: var(--weight-semibold); color: var(--color-primary-700); }
.das-commune h1 { font-size: 42px; font-weight: var(--weight-bold); letter-spacing: -0.035em; line-height: 1.08; margin-bottom: 20px; }
.das-commune__lead { font-size: 18px; line-height: 1.65; color: var(--color-ink-600); margin-bottom: 28px; }
.das-commune__stats { display: flex; gap: 28px; flex-wrap: wrap; }
.das-commune__stat small { display: block; font-size: 12px; font-weight: var(--weight-semibold); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .06em; }
.das-commune__stat b { font-size: 20px; color: var(--color-ink-900); letter-spacing: -0.02em; }
.das-commune__section { margin-top: 64px; }
.das-commune__section--tight { margin-top: 24px; }
.das-commune h2 { font-size: 28px; font-weight: var(--weight-bold); letter-spacing: -0.025em; color: var(--color-ink-900); }
.das-convert { position: sticky; top: 88px; background: #fff; border: 1px solid var(--color-ink-150); border-radius: 20px; box-shadow: var(--shadow-lg); padding: 28px; overflow: hidden; }
.das-convert__bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--accent-gradient); }
.das-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.das-team__item { background: var(--color-ink-50); border-radius: 12px; padding: 14px 16px; }
.das-team__item small { display: block; font-size: 11px; font-weight: var(--weight-semibold); color: var(--color-text-muted); margin-bottom: 4px; }
.das-team__item b { font-size: 14px; color: var(--color-ink-900); }
.das-otherslink { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border: 1px solid var(--color-ink-150); border-radius: 16px; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.das-otherslink:hover { border-color: var(--color-primary-600); box-shadow: var(--shadow-sm); text-decoration: none; }
.das-qui-card { background: var(--color-ink-50); border: 1px solid var(--color-ink-150); border-radius: 16px; padding: 24px 26px; }
.das-qui-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.das-qui-grid > div { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--color-ink-700); line-height: 1.5; }
.das-qui-grid svg { flex-shrink: 0; margin-top: 2px; color: var(--color-primary-600); }
@media (max-width: 900px) {
  .das-commune__hero { grid-template-columns: 1fr; gap: 28px; }
  .das-convert { position: static; }
  .das-team { grid-template-columns: 1fr 1fr; }
  .das-commune__wrap { padding: 20px var(--space-5) 64px; }
  .das-commune h1 { font-size: var(--text-4xl); }
  .das-qui-grid { grid-template-columns: 1fr; }
}

/* ── CRO : preuve sociale, comparatif, réassurance, CTA collante ──── */
.das-rating { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-ink-600); }
.das-rating__stars { display: inline-flex; gap: 1px; color: #F59E0B; }
.das-rating b { color: var(--color-ink-900); }

.das-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; }
.das-compare__card { border: 1px solid var(--color-ink-200); border-radius: 18px; padding: 28px 26px; background: #fff; display: flex; flex-direction: column; }
.das-compare__card--free { background: var(--color-ink-50); }
.das-compare__card--paid { border: 2px solid var(--color-interactive); box-shadow: var(--shadow-glow); position: relative; }
.das-compare__tag { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--accent-gradient); color: #fff; font-size: 11px; font-weight: var(--weight-bold); letter-spacing: .08em; padding: 5px 14px; border-radius: var(--radius-full); box-shadow: var(--shadow-button); white-space: nowrap; }
.das-compare__head { font-size: 16px; font-weight: var(--weight-bold); color: var(--color-ink-900); margin-bottom: 2px; }
.das-compare__sub { font-size: 13px; color: var(--color-text-muted); margin-bottom: 14px; }
.das-compare__price { font-size: 26px; font-weight: var(--weight-bold); color: var(--color-ink-900); letter-spacing: -0.02em; line-height: 1; margin-bottom: 18px; }
.das-compare__list { list-style: none; padding: 0; margin: 0 0 20px; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.das-compare__list li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; }
.das-compare__list li svg { flex-shrink: 0; margin-top: 1px; }
.das-compare__list--free li { color: var(--color-text-muted); }
.das-compare__list--paid li { color: var(--color-ink-700); }

.das-reassure { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; justify-content: center; padding: 14px 18px; background: var(--color-ink-50); border: 1px solid var(--color-ink-150); border-radius: 12px; margin-bottom: 24px; }
.das-reassure span { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: var(--weight-medium); color: var(--color-ink-600); }
.das-reassure svg { color: var(--color-success); flex-shrink: 0; }

.das-stickybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 120; display: none; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 16px; background: rgba(255,255,255,0.94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--color-ink-150); box-shadow: 0 -4px 20px rgba(25,20,15,0.08); }
.das-stickybar__price b { font-size: 16px; color: var(--color-ink-900); }
.das-stickybar__price small { display: block; font-size: 11px; color: var(--color-text-muted); }
.das-stickybar .das-btn { flex-shrink: 0; }

@media (max-width: 900px) {
  .das-compare { grid-template-columns: 1fr; }
  .das-stickybar { display: flex; }
  .das-commune__wrap { padding-bottom: 96px; }
}

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .das-hero__inner { flex-direction: column; padding: 64px var(--space-6) 72px; gap: var(--space-10); }
  .das-pricing, .das-bento, .das-recap-grid, .das-plans { grid-template-columns: 1fr; }
  .das-bento__panel, .das-bento__col { grid-column: auto; }
  .das-process { grid-template-columns: 1fr 1fr; }
  .das-footer__grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .das-wizard__layout { flex-direction: column; gap: 32px; }
  .das-recap-aside { width: 100%; }
  .das-nav { display: none; }
  .das-header__burger { display: inline-flex; }
  .das-linkgrid--4, .das-linkgrid--3 { grid-template-columns: 1fr 1fr; }
  .das-grid-2 { grid-template-columns: 1fr; }
  .das-loc-grid { grid-template-columns: 1fr 1fr; }
  .das-inner__wrap { padding: 24px var(--space-5) 64px; }
  .das-wizard-card { padding: 24px 20px; }
}
@media (max-width: 560px) {
  .das-container, .das-section { padding-left: var(--space-5); padding-right: var(--space-5); }
  .das-hero h1 { font-size: var(--text-4xl); }
  .das-pricing__price { font-size: var(--text-5xl); }
  .das-process { grid-template-columns: 1fr; }
  .das-wizard__q { font-size: 26px; }
  .das-statuscard { width: 100%; }
}
