/* ============================================================
   FONTS — locally hosted (RGPD compliant, no external requests)
   Variable fonts: one file covers a weight range.
   ============================================================ */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond.woff2') format('woff2-variations'),
       url('../assets/fonts/cormorant-garamond.woff2') format('woff2');
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('../assets/fonts/cormorant-garamond-italic.woff2') format('woff2-variations'),
       url('../assets/fonts/cormorant-garamond-italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../assets/fonts/jost.woff2') format('woff2-variations'),
       url('../assets/fonts/jost.woff2') format('woff2');
}

@font-face {
  font-family: 'Italianno';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("data:font/woff2;base64,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") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Italianno';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("data:font/woff2;base64,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") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ============================================================
   SITE STYLES — extracted from REFERENCES/site_source.html
   ============================================================ */

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

  :root {
    --bordeaux: #6b2d1a;
    --bordeaux-light: #8b3d27;
    --bordeaux-deep: #4a1e10;
    --beige: #faf8f5;
    --beige-mid: #f2ede6;
    --champagne: #c9a882;
    --champagne-light: #e8d9c5;
    --champagne-text: #7a5f2e;  /* assombri pour passer WCAG AA strict (~5:1) sur beige */
    --white: #ffffff;
    --text-dark: #2a1a14;
    --text-mid: #6b5a52;
    --text-light: #a8948c;
    --font-serif: 'Cormorant Garamond', Georgia, serif;
    --font-sans: 'Jost', sans-serif;
    --font-script: 'Italianno', 'Snell Roundhand', 'Apple Chancery', cursive;
    --font-classical: 'Cormorant Garamond', Georgia, serif;
  }

  html { scroll-behavior: smooth; }

  body {
    font-family: var(--font-sans);
    background: var(--beige);
    color: var(--text-dark);
    overflow-x: hidden;
  }

  /* ─── NAV ─── */
  .nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 48px;
    height: 72px;
    transition: background 0.4s ease, box-shadow 0.4s ease;
  }
  .nav.scrolled {
    background: rgba(250,248,245,0.96);
    box-shadow: 0 1px 0 rgba(107,45,26,0.1);
    backdrop-filter: blur(12px);
  }
  .nav-logo {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.12em;
    color: var(--bordeaux);
    text-transform: uppercase;
    cursor: pointer;
  }
  .nav-links {
    display: flex;
    align-items: center;
    gap: 40px;
    list-style: none;
  }
  .nav-links a {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-mid);
    text-decoration: none;
    transition: color 0.2s;
    /* Touch-target padding so each nav link is comfortably tappable. */
    display: inline-block;
    padding: 12px 0;
  }
  .nav-links a:hover { color: var(--bordeaux); }
  .nav-right {
    display: flex;
    align-items: center;
    gap: 24px;
  }
  .lang-switch {
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.15em;
    cursor: pointer;
    color: var(--text-mid);
    background: none;
    border: none;
    font-family: var(--font-sans);
    text-transform: uppercase;
    transition: color 0.2s;
    /* Touch-target target: 44×44 minimum (WCAG / mobile a11y). */
    min-width: 44px;
    min-height: 44px;
    padding: 12px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .lang-switch:hover { color: var(--bordeaux); }
  .nav-cta {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 10px 24px;
    border: 1px solid var(--bordeaux);
    color: var(--bordeaux);
    background: transparent;
    cursor: pointer;
    transition: all 0.25s;
    text-decoration: none;
  }
  .nav-cta:hover {
    background: var(--bordeaux);
    color: var(--white);
  }

  /* ─── HERO ─── */
  .hero {
    position: relative;
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
  }
  .hero-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 120px 64px 80px 80px;
    position: relative;
    z-index: 2;
  }
  .hero-eyebrow {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne-text);
    margin-bottom: 28px;
    opacity: 0;
    transform: translateY(16px);
    animation: fadeUp 0.9s ease 0.2s forwards;
  }
  .hero-title {
    font-family: var(--font-serif);
    font-size: clamp(52px, 5.5vw, 88px);
    font-weight: 300;
    line-height: 1.05;
    color: var(--bordeaux);
    margin-bottom: 32px;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeUp 0.9s ease 0.4s forwards;
  }
  .hero-title em {
    font-style: italic;
    font-weight: 300;
  }
  .hero-tagline {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.6;
    max-width: 380px;
    margin-bottom: 52px;
    opacity: 0;
    transform: translateY(16px);
    animation: fadeUp 0.9s ease 0.6s forwards;
  }
  .hero-actions {
    display: flex;
    align-items: center;
    gap: 32px;
    opacity: 0;
    transform: translateY(16px);
    animation: fadeUp 0.9s ease 0.8s forwards;
  }
  .btn-primary {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 16px 40px;
    background: var(--bordeaux);
    color: var(--white);
    border: 1px solid var(--bordeaux);
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
  }
  .btn-primary:hover {
    background: var(--bordeaux-deep);
    border-color: var(--bordeaux-deep);
  }
  .btn-ghost {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-mid);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    transition: color 0.2s;
    background: none;
    border: none;
  }
  .btn-ghost:hover { color: var(--bordeaux); }
  .btn-ghost::after {
    content: '';
    display: block;
    width: 28px;
    height: 1px;
    background: currentColor;
    transition: width 0.3s;
  }
  .btn-ghost:hover::after { width: 44px; }

  .hero-right {
    position: relative;
    overflow: hidden;
  }
  .hero-image-placeholder {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--beige-mid) 0%, var(--champagne-light) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }
  .placeholder-lines {
    display: flex;
    flex-direction: column;
    gap: 6px;
    opacity: 0.35;
  }
  .placeholder-line {
    height: 1px;
    background: var(--bordeaux);
  }
  .placeholder-label {
    font-family: var(--font-sans);
    font-size: 9px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-top: 16px;
  }
  /* Decorative overlay */
  .hero-right::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--bordeaux);
    opacity: 0.04;
    z-index: 1;
  }
  /* Decorative corner frame */
  .hero-frame {
    position: absolute;
    top: 40px; right: 40px;
    width: 120px; height: 120px;
    border-top: 1px solid var(--champagne);
    border-right: 1px solid var(--champagne);
    z-index: 2;
    opacity: 0.6;
  }
  .hero-frame-bl {
    position: absolute;
    bottom: 40px; left: 40px;
    width: 120px; height: 120px;
    border-bottom: 1px solid var(--champagne);
    border-left: 1px solid var(--champagne);
    z-index: 2;
    opacity: 0.6;
  }

  
  
  
  

  @keyframes fadeUp {
    to { opacity: 1; transform: translateY(0); }
  }

  /* ─── SECTION HEADERS ─── */
  .section-header {
    text-align: center;
    margin-bottom: 72px;
  }
  .section-eyebrow {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne-text);
    margin-bottom: 16px;
    display: block;
  }
  .section-title {
    font-family: var(--font-serif);
    font-size: clamp(36px, 4vw, 60px);
    font-weight: 300;
    color: var(--bordeaux);
    line-height: 1.1;
  }
  .section-title em { font-style: italic; }
  .section-sub {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    margin-top: 16px;
  }

  /* ─── GALLERY ─── */
  
  
  
  
  
  
  
  
  
  
  
  
  /* ─── PACKS ─── */
  .packs-section {
    padding: 120px 0;
    background: var(--beige);
  }
  .packs-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .packs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    margin-top: 72px;
  }
  .pack-card {
    background: var(--white);
    padding: 48px 36px;
    position: relative;
    cursor: pointer;
    transition: all 0.35s ease;
    border-top: 2px solid transparent;
  }
  .pack-card:hover, .pack-card.featured {
    border-top-color: var(--bordeaux);
    background: var(--beige);
  }
  .pack-card.featured {
    background: var(--bordeaux);
    color: var(--white);
  }
  .pack-badge {
    font-family: var(--font-sans);
    font-size: 9px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--champagne);
    margin-bottom: 20px;
    display: block;
  }
  .pack-card.featured .pack-badge { color: var(--champagne-light); }
  .pack-name {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 300;
    line-height: 1.1;
    color: var(--bordeaux);
    margin-bottom: 8px;
  }
  .pack-card.featured .pack-name { color: var(--white); }
  
  .pack-card.featured .pack-price { color: var(--champagne-light); }
  
  
  .pack-card.featured .pack-price span { color: rgba(255,255,255,0.6); }
  /* Inclusions bubbles — listent en un coup d'œil ce que contient
     chaque collection (sous le sous-titre promise). */
  .pack-includes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
  }
  .pack-include {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bordeaux);
    background: rgba(107, 45, 26, 0.06);
    border: 1px solid rgba(107, 45, 26, 0.14);
    padding: 5px 11px 4px;
    border-radius: 100px;
    line-height: 1.3;
    white-space: nowrap;
  }
  /* Sur la carte Cérémonie (fond bordeaux), on inverse les bulles
     pour qu'elles ressortent sur le fond sombre. */
  .pack-card.featured .pack-include {
    color: var(--beige);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.22);
  }
  /* Pill spéciale pour les inclusions offertes (Enveloppe sur Cérémonie).
     Fond champagne + texte bordeaux foncé : se démarque du reste. */
  .pack-include--free {
    color: var(--bordeaux-deep, #4a1f12) !important;
    background: var(--champagne) !important;
    border-color: var(--champagne) !important;
    font-weight: 500;
  }
  .pack-divider {
    height: 1px;
    background: var(--champagne-light);
    margin: 24px 0;
  }
  .pack-card.featured .pack-divider { background: rgba(255,255,255,0.2); }
  .pack-scarcity {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
    padding: 10px 14px;
    background: rgba(140, 110, 60, 0.06);
    border-left: 2px solid var(--bordeaux);
  }
  .pack-scarcity-dot {
    flex-shrink: 0;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--bordeaux);
    position: relative;
  }
  .pack-scarcity-dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid var(--bordeaux);
    opacity: 0.35;
    animation: scarcity-pulse 2.2s ease-out infinite;
  }
  @keyframes scarcity-pulse {
    0%   { transform: scale(0.6); opacity: 0.55; }
    70%  { transform: scale(1.4); opacity: 0; }
    100% { transform: scale(1.4); opacity: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .pack-scarcity-dot::after { animation: none; }
  }
  .pack-scarcity-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    line-height: 1.35;
  }
  .pack-scarcity-text strong {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bordeaux);
  }
  .pack-scarcity-text span {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
  }
  .pack-cta {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 13px 28px;
    border: 1px solid var(--bordeaux);
    color: var(--bordeaux);
    background: transparent;
    cursor: pointer;
    transition: all 0.25s;
    width: 100%;
    text-align: center;
    display: block;
  }
  .pack-cta:hover {
    background: var(--bordeaux);
    color: var(--white);
  }
  .pack-card.featured .pack-cta {
    border-color: var(--white);
    color: var(--white);
  }
  .pack-card.featured .pack-cta:hover {
    background: var(--white);
    color: var(--bordeaux);
  }
  
  
  
  
  
  

  /* ============================================================
     CONFIGURATOR — split layout with live preview (V2 design)
     ============================================================ */

  /* Step-transition animation — same opacity + translateY language as
     the site's .reveal scroll-in animation, but faster (clicks, not
     scrolls). Triggered by JS adding .animate-in on each step change. */
  @keyframes cfg-step-enter {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .proto-shell.animate-in .proto-head  { animation: cfg-step-enter 0.5s ease both; }
  .proto-shell.animate-in .controls    { animation: cfg-step-enter 0.55s 0.08s ease both; }
  .proto-shell.animate-in .preview-col { animation: cfg-step-enter 0.55s 0.16s ease both; }
  @media (prefers-reduced-motion: reduce) {
    .proto-shell.animate-in .proto-head,
    .proto-shell.animate-in .controls,
    .proto-shell.animate-in .preview-col { animation: none; }
  }

  /* Section wrapper — light beige background, replaces the old dark theme. */
  .config-section {
    padding: 120px 0;
    background: var(--beige);
  }
  .config-container {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
  }

  /* Adopt a few extra tokens used by the new design. */
  .config-section {
    --bg-warm: #f2ede6;
    --line: rgba(107,45,26,0.30);
    --line-mid: rgba(107,45,26,0.18);
    --line-soft: rgba(107,45,26,0.08);
  }

  /* The wizard root is just a positioning context — the shell holds the layout. */
  .config-wizard { width: 100%; }

  .proto-shell {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  /* ─── Header (per-step eyebrow + title + sub on left, step pills on right) ── */
  .proto-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 40px;
    gap: 48px;
  }
  .proto-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne-text);
    margin-bottom: 14px;
  }
  .proto-title {
    font-family: var(--font-serif);
    font-size: 44px;
    font-weight: 300;
    line-height: 1.05;
    color: var(--bordeaux);
    margin: 0;
  }
  .proto-title em { font-style: italic; }
  .proto-sub {
    font-family: var(--font-serif);
    font-size: 17px;
    font-style: italic;
    color: var(--text-mid);
    margin-top: 12px;
    line-height: 1.5;
  }
  .step-indicator {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
    padding-top: 18px;
  }
  .step-pill {
    display: flex; align-items: center; gap: 10px;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--text-light);
    background: none; border: none; cursor: pointer;
    padding: 0;
    opacity: 0.5;
    transition: opacity 0.2s, color 0.2s;
  }
  .step-pill:not(:disabled):hover { opacity: 0.85; }
  .step-pill:disabled { cursor: default; }
  .step-pill .num {
    width: 26px; height: 26px; border-radius: 50%;
    border: 1px solid currentColor;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: 13px;
    background: var(--beige);
  }
  .step-pill.active { opacity: 1; color: var(--bordeaux); }
  .step-pill.active .num { background: var(--bordeaux); color: var(--beige); border-color: var(--bordeaux); }
  .step-pill.done { opacity: 0.85; color: var(--bordeaux); cursor: pointer; }
  .step-pill.done .num { background: var(--beige); border-color: var(--bordeaux); color: var(--bordeaux); }
  .step-sep { width: 24px; height: 1px; background: var(--line-mid); }

  /* ─── Split layout ── */
  .split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: start;
  }
  .split--full { grid-template-columns: 1fr; }
  /* Post-submit: switch to flexbox so the lone faire-part centres
     horizontally regardless of the original grid columns. */
  .split--submitted {
    display: flex;
    justify-content: center;
    align-items: flex-start;
  }
  .split--submitted .preview-col {
    width: 100%;
    max-width: 460px;
    position: static;
    margin: 0 auto;
  }

  .controls {
    display: flex;
    flex-direction: column;
    gap: 36px;
  }
  .control-group .label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--line-soft);
    padding-bottom: 12px;
    gap: 12px;
  }
  .control-label {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bordeaux);
  }
  .control-value {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 15px;
    color: var(--text-mid);
    text-align: right;
  }
  .control-value.empty { color: var(--text-mid); opacity: 0.88; }

  /* ─── Pack cards (step 1) — cfg- prefix to avoid collisions with the
       Collections section which also uses .pack-card / .pack-name etc. ── */
  .cfg-pack-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
  .cfg-pack-card {
    appearance: none;
    background: transparent;
    border: 1px solid var(--line-mid);
    padding: 28px 24px 32px;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: relative;
    min-height: 280px;
    color: inherit;
    font: inherit;
  }
  .cfg-pack-card:hover { border-color: var(--bordeaux); }
  .cfg-pack-card.selected {
    border-color: var(--bordeaux);
    box-shadow: inset 0 0 0 1px var(--bordeaux);
    background: rgba(107,45,26,0.025);
  }
  .cfg-pack-featured-badge {
    position: absolute;
    top: -8px; left: 50%; transform: translateX(-50%);
    background: var(--bordeaux);
    color: var(--beige);
    font-family: var(--font-sans);
    font-size: 8.5px;
    font-weight: 400;
    letter-spacing: 0.28em;
    padding: 5px 10px 4px;
    white-space: nowrap;
  }
  .cfg-pack-badge {
    font-family: var(--font-sans);
    font-size: 9.5px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--champagne-text);
  }
  .cfg-pack-name {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1;
  }
  .cfg-pack-promise {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 14px;
    color: var(--text-mid);
    line-height: 1.4;
    flex: 1;
  }
  .cfg-pack-price {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--text-dark);
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--line-soft);
  }
  .cfg-pack-price small {
    display: block;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    color: var(--text-mid);
    letter-spacing: 0.05em;
    margin-top: 3px;
  }

  /* ─── Style chips ── */
  .style-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 8px;
  }
  .style-chip {
    appearance: none; background: transparent;
    border: 1px solid var(--line-mid);
    padding: 14px 12px;
    cursor: pointer;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 400;
    color: var(--text-dark);
    letter-spacing: 0.01em;
    transition: all 0.25s ease;
    text-align: center;
    line-height: 1;
  }
  .style-chip:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
  .style-chip.selected { background: var(--bordeaux); color: var(--beige); border-color: var(--bordeaux); }

  /* ─── Palette swatches ── */
  .palette-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  .palette-swatch {
    appearance: none; background: transparent;
    border: 1px solid var(--line-mid);
    padding: 14px;
    cursor: pointer; text-align: left;
    transition: border-color 0.25s, box-shadow 0.25s;
    display: flex; flex-direction: column; gap: 10px;
    color: inherit;
    font: inherit;
  }
  .palette-swatch:hover { border-color: var(--bordeaux); }
  .palette-swatch.selected { border-color: var(--bordeaux); box-shadow: inset 0 0 0 1px var(--bordeaux); }
  .palette-dots {
    display: flex;
    gap: 4px;
    height: 16px;
    width: 100%;
  }
  .palette-dots .palette-dot {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    height: 16px;
    align-self: stretch;
  }
  .palette-name {
    font-family: var(--font-serif);
    font-size: 14px;
    font-style: italic;
    color: var(--text-dark);
  }
  .palette-swatch.selected .palette-name { color: var(--bordeaux); }

  /* ─── Toggle "Fond plein" ── */
  .invert-toggle-row {
    margin-top: 14px;
    display: flex;
    justify-content: flex-start;
  }
  .invert-toggle {
    appearance: none;
    background: transparent;
    border: 1px solid var(--line-mid);
    padding: 10px 16px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    font: inherit;
    transition: border-color 0.25s, box-shadow 0.25s, color 0.25s;
  }
  .invert-toggle:hover { border-color: var(--bordeaux); }
  .invert-toggle.active {
    border-color: var(--bordeaux);
    box-shadow: inset 0 0 0 1px var(--bordeaux);
  }
  .invert-toggle-swatch {
    display: inline-block;
    width: 16px; height: 16px;
    background: var(--beige);
    border: 1px solid var(--line-mid);
    transition: background 0.25s, border-color 0.25s;
  }
  .invert-toggle.active .invert-toggle-swatch {
    background: var(--bordeaux);
    border-color: var(--bordeaux);
  }
  .invert-toggle-label {
    font-family: var(--font-serif);
    font-size: 14px;
    font-style: italic;
    color: var(--text-dark);
    letter-spacing: 0;
    text-transform: none;
  }
  .invert-toggle.active .invert-toggle-label {
    color: var(--bordeaux);
  }

  /* ─── Inputs ── */
  .input-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .input-field label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 10px;
  }
  .input-field .lbl-optional {
    text-transform: none;
    letter-spacing: 0;
    opacity: 0.6;
    font-style: italic;
    font-family: var(--font-serif);
    font-weight: 400;
  }
  .input-field input, .input-field textarea {
    width: 100%; background: transparent; border: none;
    border-bottom: 1px solid var(--line-mid);
    padding: 10px 0 12px;
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
    color: var(--text-dark);
    outline: none;
    transition: border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
  }
  .input-field textarea {
    font-size: 16px;
    resize: vertical;
    min-height: 60px;
    line-height: 1.5;
  }
  .input-field input::placeholder, .input-field textarea::placeholder {
    color: var(--text-light); opacity: 0.5; font-style: italic;
  }
  .input-field input:focus, .input-field textarea:focus { border-bottom-color: var(--bordeaux); }
  .input-hint {
    margin: 8px 0 0;
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.5;
  }

  /* ─── Extras (step 3) ── */
  /* Free extra picker — Cérémonie only. Champagne accents to convey "gift". */
  .free-extra-section { margin-bottom: 28px; }
  .free-extra-head { margin-bottom: 14px; }
  .free-extra-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 6px;
  }
  .free-extra-sub {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 13.5px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.5;
  }
  .free-extra-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
  }
  @media (max-width: 767px) {
    .free-extra-grid { grid-template-columns: repeat(2, 1fr); }
  }
  .free-extra-card {
    position: relative;
    background: transparent;
    border: 1px dashed var(--champagne);
    padding: 16px 12px 12px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    transition: background 0.2s, border-color 0.2s, transform 0.15s;
    font-family: inherit;
    color: inherit;
  }
  .free-extra-card:hover { border-color: var(--bordeaux); background: rgba(201, 168, 130, 0.06); }
  .free-extra-card.chosen {
    background: rgba(201, 168, 130, 0.14);
    border-style: solid;
    border-color: var(--bordeaux);
  }
  .free-extra-icon {
    width: 38px; height: 38px;
    border: 1px solid var(--champagne);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--bordeaux);
  }
  .free-extra-card.chosen .free-extra-icon { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--beige); }
  .free-extra-icon span {
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    line-height: 1;
  }
  .free-extra-name {
    font-family: var(--font-serif);
    font-size: 13px;
    font-style: italic;
    text-align: center;
    color: var(--bordeaux);
    line-height: 1.3;
  }
  .free-extra-badge {
    font-family: var(--font-sans);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--champagne-text);
    padding: 3px 8px;
    background: rgba(201, 168, 130, 0.18);
    border-radius: 100px;
  }
  .free-extra-card.chosen .free-extra-badge {
    background: var(--bordeaux);
    color: var(--beige);
  }

  .extras-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .extra-card {
    border: 1px solid var(--line-mid);
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: border-color 0.2s, background 0.2s;
    background: transparent;
  }
  .extra-card.selected { border-color: var(--bordeaux); background: rgba(107,45,26,0.02); }
  .extra-icon {
    width: 42px; height: 42px;
    border: 1px solid var(--line-mid);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: var(--bordeaux);
  }
  .extra-icon span {
    font-family: var(--font-serif);
    font-size: 17px;
    font-style: italic;
  }
  .extra-info { flex: 1; min-width: 0; }
  .extra-name {
    font-family: var(--font-serif);
    font-size: 17px;
    color: var(--text-dark);
    line-height: 1.2;
  }
  .extra-price {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--text-light);
    margin-top: 2px;
    letter-spacing: 0.05em;
  }
  .qty-stepper {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
  }
  .qty-btn {
    appearance: none; background: transparent;
    width: 28px; height: 28px;
    border: 1px solid var(--line-mid);
    border-radius: 50%;
    font-size: 14px;
    color: var(--bordeaux);
    cursor: pointer;
    transition: all 0.2s;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
    padding: 0;
  }
  .qty-btn:hover { border-color: var(--bordeaux); background: var(--bordeaux); color: var(--beige); }
  .qty-btn:disabled { opacity: 0.3; cursor: not-allowed; }
  .qty-btn:disabled:hover { background: transparent; color: var(--bordeaux); }
  .qty-input {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 400;
    color: var(--text-dark);
    width: 44px;
    text-align: center;
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    padding: 2px 0;
    outline: none;
    appearance: textfield;
    -moz-appearance: textfield;
    transition: border-color 0.2s, color 0.2s;
  }
  .qty-input::-webkit-outer-spin-button,
  .qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  .qty-input:hover { border-bottom-color: var(--champagne); }
  .qty-input:focus {
    border-bottom-color: var(--bordeaux);
    color: var(--bordeaux);
  }
  .extra-card:not(.selected) .qty-input { color: var(--text-light); opacity: 0.6; }
  .extra-card.selected .qty-input { color: var(--bordeaux); opacity: 1; font-weight: 500; }

  /* Extra inclus dans un pack (ex. menus dans Cérémonie) — désactivé visuellement */
  .extra-card.included {
    background: rgba(140, 110, 60, 0.04);
    border-color: var(--champagne-light);
    cursor: default;
  }
  .extra-card.included .extra-icon {
    opacity: 0.5;
  }
  .extra-included {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--bordeaux);
    font-style: italic;
  }
  .extra-included-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px; height: 14px;
    border-radius: 50%;
    background: var(--champagne-light);
    color: var(--bordeaux);
    font-size: 9px;
    font-weight: 600;
    flex-shrink: 0;
    line-height: 1;
    font-style: normal;
  }

  /* ─── Delivery chips (step 4) ── */
  .cfg-mini-label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 10px;
  }
  /* ─── Cérémonie exclusive: Plan de table (step 3) ─── */
  .ceremony-exclusive {
    margin-top: 32px;
  }
  .ceremony-exclusive-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
  }
  .ceremony-exclusive-line {
    flex: 1;
    height: 1px;
    background: var(--champagne-light);
  }
  .ceremony-exclusive-text {
    flex-shrink: 0;
    text-align: center;
    padding: 0 4px;
  }
  .ceremony-exclusive-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
  }
  .ceremony-exclusive-title {
    margin: 4px 0 0;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 13.5px;
    font-weight: 300;
    color: var(--text-mid);
  }
  .plan-table-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 22px;
    background: var(--beige);
    border: 1px solid var(--line-mid);
    cursor: pointer;
    transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
  }
  .plan-table-badge {
    position: absolute;
    top: -10px;
    right: 18px;
    background: var(--bordeaux);
    color: var(--beige);
    font-family: var(--font-serif);
    font-size: 11px;
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0.02em;
    padding: 4px 12px;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(107, 45, 26, 0.15);
    white-space: nowrap;
    pointer-events: none;
  }
  .plan-table-badge::before {
    content: '✦';
    margin-right: 5px;
    font-size: 10px;
    color: var(--champagne-light);
    font-style: normal;
  }
  .plan-table-card:hover {
    border-color: var(--bordeaux);
  }
  .plan-table-card.selected {
    border-color: var(--bordeaux);
    background: rgba(107, 45, 26, 0.03);
    box-shadow: inset 3px 0 0 var(--bordeaux);
  }
  .plan-table-input {
    position: absolute;
    width: 1px; height: 1px;
    opacity: 0; pointer-events: none;
    left: -9999px;
  }
  .plan-table-check {
    flex-shrink: 0;
    width: 22px; height: 22px;
    border: 1px solid var(--bordeaux);
    border-radius: 4px;
    position: relative;
    transition: background 0.2s, border-color 0.2s;
  }
  .plan-table-card.selected .plan-table-check {
    background: var(--bordeaux);
  }
  .plan-table-card.selected .plan-table-check::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 12px;
    border: solid var(--white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
  }
  .plan-table-input:focus + .plan-table-check {
    outline: 2px solid var(--champagne);
    outline-offset: 2px;
  }
  .plan-table-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .plan-table-name {
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--text-dark);
  }
  .plan-table-meta {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
  }
  .plan-table-price {
    flex-shrink: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    color: var(--bordeaux);
  }
  .plan-table-quote {
    flex-shrink: 0;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bordeaux);
    font-style: italic;
  }
  .plan-table-note {
    margin: 10px 0 0;
    padding: 10px 14px;
    background: rgba(140, 110, 60, 0.06);
    border-left: 2px solid var(--champagne);
    font-family: var(--font-sans);
    font-size: 12px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.5;
  }
  @media (max-width: 600px) {
    .plan-table-card {
      flex-wrap: wrap;
      padding: 16px 18px;
    }
    .plan-table-price, .plan-table-quote {
      width: 100%;
      text-align: right;
      margin-top: 4px;
    }
  }

  .delivery-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .delivery-chip {
    appearance: none; background: transparent;
    border: 1px solid var(--line-mid);
    padding: 16px 18px;
    cursor: pointer; text-align: left;
    transition: border-color 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font: inherit;
    color: inherit;
  }
  .delivery-chip:hover { border-color: var(--bordeaux); }
  .delivery-chip.selected {
    border-color: var(--bordeaux);
    box-shadow: inset 0 0 0 1px var(--bordeaux);
  }
  .delivery-name {
    font-family: var(--font-serif);
    font-size: 17px;
    color: var(--text-dark);
    line-height: 1.2;
  }
  .delivery-cost {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--champagne-text);
    letter-spacing: 0.05em;
  }
  .delivery-chip.selected .delivery-name { color: var(--bordeaux); }
  .delivery-chip.is-free { border-color: var(--champagne); }
  .delivery-chip.is-free.selected { border-color: var(--bordeaux); }
  .delivery-cost-strike {
    text-decoration: line-through;
    color: var(--text-light);
    opacity: 0.7;
    margin-right: 4px;
  }
  .delivery-cost-free {
    font-weight: 500;
    color: var(--bordeaux);
    text-transform: uppercase;
    letter-spacing: 0.12em;
  }
  .delivery-free-hint {
    margin: 12px 0 0;
    font-family: var(--font-serif);
    font-size: 13px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.4;
  }
  .delivery-free-hint.is-met {
    color: var(--bordeaux);
    font-style: normal;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .delivery-free-hint-mark {
    display: inline-block;
    width: 14px; height: 14px;
    border-radius: 50%;
    background: var(--champagne);
    color: var(--bordeaux);
    text-align: center;
    line-height: 14px;
    font-size: 9px;
    font-weight: 700;
    margin-right: 6px;
    vertical-align: middle;
    position: relative;
    top: -1px;
  }
  .recap-free {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bordeaux);
    background: var(--champagne);
    padding: 2px 8px 1px;
    border-radius: 100px;
    margin-left: 4px;
  }
  .recap-promo-amount {
    font-family: var(--font-sans);
    font-weight: 500;
    color: var(--bordeaux);
  }

  /* ─── Promo code field (step 5) ── */
  .promo-field {
    margin: 18px 0 8px;
    padding: 16px 18px;
    background: rgba(201, 168, 130, 0.06);
    border: 1px dashed var(--champagne);
  }
  .promo-field-label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 8px;
  }
  .promo-field-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
  }
  .promo-field input {
    flex: 1;
    min-width: 180px;
    background: var(--white);
    border: 1px solid var(--champagne-light);
    padding: 10px 12px;
    font-family: var(--font-sans);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dark);
    outline: none;
    transition: border-color 0.2s;
  }
  .promo-field input:focus { border-color: var(--bordeaux); }
  .promo-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.02em;
  }
  .promo-status--pending { color: var(--text-mid); font-style: italic; }
  .promo-status--valid { color: var(--bordeaux); }
  .promo-status--invalid { color: #b34a3a; }
  .promo-status-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px; height: 16px;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
  }
  .promo-status--valid .promo-status-mark { background: var(--bordeaux); color: var(--beige); }
  .promo-status--invalid .promo-status-mark { background: #b34a3a; color: var(--white); }
  .promo-field-hint {
    margin: 8px 0 0;
    font-family: var(--font-serif);
    font-size: 12px;
    font-style: italic;
    color: var(--text-light);
    line-height: 1.4;
  }

  /* ─── Pay options (step 5) ── */
  .pay-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .pay-card {
    appearance: none; background: transparent;
    border: 1px solid var(--line-mid);
    padding: 18px 20px;
    cursor: pointer; text-align: left;
    transition: border-color 0.25s, box-shadow 0.25s;
    display: flex; align-items: flex-start; gap: 14px;
    color: inherit;
    font: inherit;
    width: 100%;
  }
  .pay-card:hover { border-color: var(--bordeaux); }
  .pay-card.selected { border-color: var(--bordeaux); box-shadow: inset 0 0 0 1px var(--bordeaux); }
  .pay-radio {
    width: 18px; height: 18px; border-radius: 50%;
    border: 1px solid var(--line-mid);
    flex-shrink: 0;
    margin-top: 3px;
    position: relative;
  }
  .pay-card.selected .pay-radio { border-color: var(--bordeaux); }
  .pay-card.selected .pay-radio::after {
    content: '';
    position: absolute; inset: 3px;
    background: var(--bordeaux);
    border-radius: 50%;
  }
  .pay-text { flex: 1; }
  .pay-title {
    display: block;
    font-family: var(--font-serif);
    font-size: 17px;
    color: var(--text-dark);
    line-height: 1.3;
  }
  .pay-desc {
    display: block;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    color: var(--text-mid);
    margin-top: 6px;
    line-height: 1.5;
  }

  /* ─── Preview column ── */
  .preview-col {
    position: sticky;
    top: 24px;
  }
  .preview-frame {
    background: var(--bg-warm);
    padding: 36px 28px 28px;
    border: 1px solid var(--line-soft);
  }
  .preview-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line-soft);
  }
  .preview-meta-label {
    font-family: var(--font-sans);
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--text-light);
  }
  .preview-meta-status {
    font-family: var(--font-serif);
    font-size: 13px;
    font-style: italic;
    color: var(--text-mid);
  }

  .invitation-stage {
    position: relative;
    aspect-ratio: 3/4;
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
    overflow: hidden;
    background: #fff;
    box-shadow:
      0 1px 0 rgba(0,0,0,0.04),
      0 18px 40px -12px rgba(107,45,26,0.18),
      0 4px 12px -4px rgba(107,45,26,0.08);
    transition: opacity 0.25s ease;
  }
  .invitation-stage.empty {
    background: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: none;
    border: 1px dashed var(--line-mid);
  }
  /* Post-submit: full confirmation message lives inside the faire-part.
     We override aspect-ratio/overflow/max-width so the payment block grows
     freely with its content (otherwise it gets clipped). */
  .invitation-stage.submitted-mode {
    aspect-ratio: auto;
    overflow: visible;
    max-width: 480px;
    background: var(--bg-warm);
    box-shadow: none;
    border: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
  }
  .invitation-stage.submitted-mode .confirm-screen {
    padding: 0;
    max-width: 100%;
    margin: 0 auto;
  }
  .invitation-stage.submitted-mode .confirm-icon {
    width: 52px; height: 52px;
    margin: 0 auto 22px;
    font-size: 20px;
  }
  .invitation-stage.submitted-mode .confirm-title {
    font-size: 22px;
    margin-bottom: 14px;
  }
  .invitation-stage.submitted-mode .confirm-sub {
    font-size: 13px;
    line-height: 1.55;
  }
  /* Thank-you card dressed in the selected palette colours, so the
     confirmation visually echoes the composition the couple just sent. */
  .invitation-stage.submitted-mode.has-palette {
    background: var(--paper);
    border-color: rgba(0,0,0,0.08);
    box-shadow:
      0 1px 0 rgba(0,0,0,0.04),
      0 18px 40px -14px rgba(0,0,0,0.12);
  }
  .invitation-stage.submitted-mode.has-palette .confirm-icon {
    border-color: var(--accent);
    color: var(--accent);
  }
  .invitation-stage.submitted-mode.has-palette .confirm-title {
    color: var(--ink);
  }
  .invitation-stage.submitted-mode.has-palette .confirm-sub {
    color: var(--ink);
    opacity: 0.7;
  }
  .invitation-stage.submitted-mode.has-palette .confirm-sub em {
    color: var(--ink);
    opacity: 1;
    font-style: italic;
  }
  .empty-msg { text-align: center; padding: 0 32px; }
  .empty-msg-icon {
    width: 36px; height: 36px;
    margin: 0 auto 18px;
    border: 1px solid var(--line-mid);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
  }
  .empty-msg-icon::after {
    content: ''; width: 8px; height: 8px;
    border-radius: 50%; background: var(--line-mid);
  }
  .empty-msg-text {
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    color: var(--text-light);
    line-height: 1.5;
  }

  .invitation-card {
    position: absolute;
    inset: 0;
    background: var(--paper, #fefcf7);
    color: var(--ink, #2a1a14);
    padding: 9% 12%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    transition: background-color 0.35s ease, color 0.35s ease;
  }
  .invitation-card::before {
    content: ''; position: absolute; inset: 0;
    background-image:
      radial-gradient(rgba(0,0,0,0.025) 1px, transparent 1px),
      radial-gradient(rgba(0,0,0,0.018) 1px, transparent 1px);
    background-size: 3px 3px, 7px 7px;
    background-position: 0 0, 2px 4px;
    pointer-events: none;
    mix-blend-mode: multiply;
    opacity: 0.6;
  }
  .invitation-card::after {
    content: ''; position: absolute; inset: 6%;
    border: 0.5px solid currentColor;
    opacity: 0.18;
    pointer-events: none;
  }
  .invitation-card.no-border::after { display: none; }
  .ornament-top, .ornament-bottom {
    width: 100%;
    display: flex; justify-content: center; align-items: center;
    position: relative; z-index: 2; line-height: 0;
  }
  .ornament-top svg, .ornament-bottom svg {
    display: block; width: 100%; height: auto; max-height: 100%; overflow: visible;
  }
  .ornament-top { min-height: 22%; }
  .ornament-bottom { min-height: 16%; }
  .text-block {
    text-align: center; position: relative; z-index: 2; flex: 1;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 16px;
    padding: 12px 0;
  }
  .text-eyebrow, .text-date {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: 9px;
    letter-spacing: 0.45em;
    text-transform: uppercase;
    opacity: 0.85;
  }
  .text-rule {
    width: 38px; height: 1px;
    background: currentColor; opacity: 0.5;
  }
  .text-initials {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(38px, 7.5vw, 64px);
    line-height: 1;
    color: var(--accent, var(--ink));
    letter-spacing: -0.01em;
    white-space: nowrap;
  }
  .style-Moderne .text-initials {
    font-family: var(--font-sans);
    font-style: normal; font-weight: 200;
    font-size: clamp(34px, 7vw, 58px);
    letter-spacing: 0.04em;
    color: var(--ink);
  }
  .style-Velour .text-eyebrow,
  .style-Velour .text-date {
    letter-spacing: 0.6em;
  }
  .style-Classique .text-initials {
    font-style: normal; font-weight: 500;
  }
  .style-Gaufrage .text-initials {
    text-shadow: 0 1px 0 rgba(255,255,255,0.5), 0 -1px 1px rgba(0,0,0,0.18);
  }

  /* ── CHAMPÊTRE — illustration complète (SVG de Yasmina) ── */
  .invitation-stage:has(.champetre-full) {
    aspect-ratio: 623 / 964;
  }
  .invitation-card.champetre-full {
    padding: 0;
    overflow: hidden;
    color: var(--ink);
  }
  .invitation-card.champetre-full::before,
  .invitation-card.champetre-full::after { display: none; }
  .champetre-svg-wrap {
    position: absolute; inset: 0; z-index: 1;
    display: flex; justify-content: center; align-items: center;
    pointer-events: none;
    background: var(--paper, #fefcf7);
    overflow: hidden;
  }
  .champetre-svg-wrap svg {
    width: 100%; height: 100%;
    max-width: 100%; max-height: 100%;
    display: block;
  }
  .champetre-text {
    position: absolute; inset: 0; z-index: 2;
    padding: 0 12%;
    font-family: var(--font-classical);
    color: var(--ink);
    pointer-events: none;
  }
  .champetre-text > div {
    position: absolute; left: 0; right: 0;
    text-align: center;
  }
  .champetre-intro {
    top: 33%;
    font-style: italic;
    font-size: clamp(8px, 1.15vw, 11px);
    letter-spacing: 0.01em;
    opacity: 0.92;
  }
  .champetre-names {
    top: 41%;
    font-family: var(--font-script);
    line-height: 1.05;
    padding: 0 6%;
    word-break: break-word;
  }
  .champetre-names.short  { font-size: clamp(32px, 5.4vw, 52px); }
  .champetre-names.medium { font-size: clamp(22px, 3.8vw, 36px); }
  .champetre-names.long   { font-size: clamp(17px, 2.8vw, 26px); }
  .champetre-names.xlong  { font-size: clamp(14px, 2.2vw, 20px); }
  .champetre-date {
    top: 58%;
    font-weight: 700;
    font-size: clamp(13px, 2.1vw, 19px);
    letter-spacing: 0.005em;
  }
  .champetre-time {
    top: 64%;
    font-style: italic;
    font-size: clamp(9px, 1.35vw, 12px);
    opacity: 0.95;
  }
  .champetre-place {
    top: 73%;
    font-weight: 700;
    font-size: clamp(10px, 1.5vw, 13px);
    line-height: 1.35;
  }
  .champetre-place > div { display: block; margin-bottom: 1px; }
  .champetre-sep {
    top: 83%;
    font-size: 16px;
    font-weight: 400;
    opacity: 0.75;
    letter-spacing: 0.1em;
  }
  .champetre-rsvp {
    top: 87%;
    font-style: italic;
    font-size: clamp(7px, 1vw, 10px);
    opacity: 0.85;
  }

  .card-extras-overlay {
    position: absolute;
    bottom: 4%;
    right: 6%;
    display: flex;
    gap: 6px;
    z-index: 3;
  }
  .card-extras-overlay .pic {
    width: 22px; height: 22px;
    border: 1px solid currentColor;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    opacity: 0.85;
    font-size: 11px;
    color: var(--ink);
    background: var(--paper);
  }

  .palette-row {
    margin-top: 20px;
    display: flex; align-items: center; gap: 16px;
  }
  .palette-row-label {
    font-family: var(--font-sans);
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--text-light);
  }
  .palette-row-dots {
    display: flex; gap: 8px; flex: 1;
  }
  .palette-row-dots span {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 1px solid var(--line-soft);
  }
  .palette-row-dots.empty span { background: transparent; border-style: dashed; }
  .preview-caption {
    margin-top: 16px;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 13px;
    color: var(--text-light);
    text-align: center;
    line-height: 1.5;
    min-height: 19px;
  }
  .preview-disclaimer {
    margin-top: 4px;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 11px;
    color: var(--text-light);
    text-align: center;
    line-height: 1.4;
    opacity: 0.7;
  }

  /* ─── Récap (step 4) ── */
  .recap-list { display: flex; flex-direction: column; }
  .recap-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 16px 0;
    border-bottom: 1px solid var(--line-soft);
    gap: 16px;
  }
  .recap-key {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-mid);
    flex-shrink: 0;
  }
  .recap-val {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 400;
    color: var(--text-dark);
    text-align: right;
    line-height: 1.3;
  }
  .recap-val em { color: var(--text-light); font-style: italic; font-size: 14px; }
  .recap-edit {
    background: none; border: none;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    cursor: pointer;
    margin-left: 12px;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .recap-edit:hover { color: var(--bordeaux-deep); }
  .recap-total {
    display: flex; align-items: baseline; justify-content: space-between;
    padding-top: 24px;
    margin-top: 12px;
    border-top: 1px solid var(--line-mid);
  }
  .recap-total-label {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
  }
  .recap-total-val {
    font-family: var(--font-serif);
    font-size: 42px;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1;
  }

  /* ─── Nav buttons ── */
  .step-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid var(--line-soft);
  }
  .btn-back {
    appearance: none; background: none; border: none;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--text-mid);
    cursor: pointer;
    display: flex; align-items: center; gap: 10px;
    padding: 14px 0;
    transition: color 0.2s;
  }
  .btn-back::before {
    content: '';
    width: 24px; height: 1px;
    background: currentColor;
  }
  .btn-back:hover { color: var(--bordeaux); }
  .btn-back.hidden { visibility: hidden; }
  .btn-next {
    appearance: none; background: var(--bordeaux);
    border: 1px solid var(--bordeaux);
    color: var(--beige);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 16px 36px;
    cursor: pointer;
    transition: all 0.25s ease;
  }
  .btn-next:hover {
    background: var(--bordeaux-deep);
    border-color: var(--bordeaux-deep);
  }
  .btn-next:disabled {
    opacity: 0.35; cursor: not-allowed;
    background: var(--bordeaux); border-color: var(--bordeaux);
  }

  /* Mobile preview toggle */
  .mobile-preview-toggle {
    display: none;
    appearance: none;
    background: none;
    border: 1px solid var(--line-mid);
    width: 100%;
    padding: 12px 16px;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--bordeaux);
    cursor: pointer;
    margin-bottom: 16px;
  }

  /* ─── Confirm screen (step 5 post-submit) ── */
  .confirm-screen {
    text-align: center;
    padding: 36px 24px;
  }
  .confirm-icon {
    width: 64px; height: 64px;
    border: 1px solid var(--champagne-text);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 28px;
    color: var(--champagne-text);
    font-size: 22px;
  }
  .confirm-title {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 28px;
    color: var(--bordeaux);
    margin-bottom: 14px;
    line-height: 1.2;
  }
  .confirm-sub {
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.6;
    max-width: 360px;
    margin: 0 auto;
  }
  .confirm-sub em { font-style: italic; color: var(--bordeaux); }

  /* ─── Payment details bloc (after submit) ── */
  .confirm-payment {
    box-sizing: border-box;
    margin-top: 28px;
    padding: 22px 24px;
    background: rgba(201, 168, 130, 0.08);
    border: 1px solid var(--champagne);
    text-align: left;
  }
  .confirm-payment--note {
    text-align: center;
  }
  .confirm-payment--note p {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 14px;
    font-style: italic;
    line-height: 1.55;
    color: var(--text-mid);
  }
  .confirm-payment-title {
    margin: 0 0 16px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    text-align: center;
  }
  .confirm-payment-list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .confirm-pay-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 4px 0;
    border-bottom: 1px solid rgba(201, 168, 130, 0.25);
  }
  .confirm-pay-row:last-child { border-bottom: none; }
  .confirm-pay-row dt {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-mid);
    flex: 0 0 auto;
  }
  .confirm-pay-row dd {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 14px;
    color: var(--text-dark);
    text-align: right;
  }
  .confirm-pay-row dd strong {
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--bordeaux);
    font-weight: 400;
  }
  .confirm-pay-mono {
    font-family: 'Menlo', 'Consolas', monospace !important;
    font-size: 13px !important;
    letter-spacing: 0.04em;
  }
  .confirm-pay-row--accent dd { color: var(--bordeaux); }
  .confirm-pay-row--communication {
    background: var(--white);
    border: 1px solid var(--champagne);
    padding: 12px 14px !important;
    margin-top: 6px;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    border-bottom: 1px solid var(--champagne) !important;
  }
  .confirm-pay-row--communication dd {
    font-style: italic;
    color: var(--bordeaux);
    text-align: left;
    font-size: 15px;
    width: 100%;
  }
  .confirm-payment-note {
    margin: 18px 0 0;
    font-family: var(--font-serif);
    font-size: 12.5px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.5;
    text-align: center;
  }
  /* Dark-palette mode adjustments */
  .invitation-stage.submitted-mode.has-palette .confirm-payment {
    background: rgba(255, 255, 255, 0.5);
    border-color: var(--ink);
    opacity: 0.95;
  }
  .invitation-stage.submitted-mode.has-palette .confirm-payment-title,
  .invitation-stage.submitted-mode.has-palette .confirm-pay-row--accent dd,
  .invitation-stage.submitted-mode.has-palette .confirm-pay-row dd strong,
  .invitation-stage.submitted-mode.has-palette .confirm-pay-row--communication dd {
    color: var(--ink);
  }
  @media (max-width: 600px) {
    .confirm-pay-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
    }
    .confirm-pay-row dd { text-align: left; }
  }

  /* ─── Responsive (≤ 1023px) ── */
  @media (max-width: 1023px) {
    .config-container { padding: 0 20px; }
    .proto-head { flex-direction: column; gap: 24px; margin-bottom: 28px; }
    .proto-title { font-size: 32px; }
    .step-indicator { padding-top: 0; gap: 8px; flex-wrap: wrap; }
    .step-sep { width: 12px; }
    .step-pill { font-size: 9px; gap: 6px; letter-spacing: 0.18em; }
    .step-pill .num { width: 22px; height: 22px; font-size: 11px; }

    .split { grid-template-columns: 1fr; gap: 24px; }
    .preview-col {
      position: static;
      order: -1;
    }
    .preview-col.collapsed .preview-frame { display: none; }
    .mobile-preview-toggle { display: block; }

    .cfg-pack-grid { grid-template-columns: 1fr; gap: 10px; }
    .cfg-pack-card { min-height: auto; padding: 22px 20px; }
    .cfg-pack-card.featured .cfg-pack-featured-badge { display: none; }
    .cfg-pack-card.featured { border-color: var(--bordeaux); }

    .style-grid { grid-template-columns: 1fr 1fr; }
    .palette-grid { grid-template-columns: 1fr 1fr; }
    .extras-grid { grid-template-columns: 1fr; }
    .input-row { grid-template-columns: 1fr; }
    .delivery-grid { grid-template-columns: 1fr 1fr; }

    .btn-next, .btn-back { padding: 14px 22px; font-size: 10px; }
  }

  /* ─── TESTIMONIALS ─── */
  .testimonials-section {
    padding: 120px 0;
    background: var(--beige);
  }
  .testimonials-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .testimonials-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2px;
    margin-top: 72px;
  }
  .testimonial-card {
    background: var(--white);
    padding: 48px 40px;
    position: relative;
  }
  .testimonial-card:nth-child(2) {
    background: var(--bordeaux);
    margin-top: -32px;
  }
  .quote-mark {
    font-family: var(--font-serif);
    font-size: 80px;
    font-weight: 300;
    line-height: 0.6;
    color: var(--champagne-light);
    margin-bottom: 24px;
    display: block;
  }
  .testimonial-card:nth-child(2) .quote-mark { color: rgba(255,255,255,0.2); }
  .testimonial-text {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--text-dark);
    margin-bottom: 32px;
  }
  .testimonial-card:nth-child(2) .testimonial-text { color: rgba(255,255,255,0.9); }
  .testimonial-author {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .testimonial-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--beige-mid);
    flex-shrink: 0;
  }
  .testimonial-card:nth-child(2) .testimonial-avatar { background: rgba(255,255,255,0.15); }
  .testimonial-name {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.1em;
    color: var(--text-dark);
  }
  .testimonial-card:nth-child(2) .testimonial-name { color: var(--white); }
  .testimonial-info {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    color: var(--text-light);
    margin-top: 3px;
  }
  .testimonial-card:nth-child(2) .testimonial-info { color: rgba(255,255,255,0.5); }

  /* ─── CONTACT ─── */
  .contact-section {
    padding: 120px 0;
    background: var(--white);
  }
  .contact-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 48px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
  }
  .contact-left h2 {
    font-family: var(--font-serif);
    font-size: clamp(40px, 4vw, 64px);
    font-weight: 300;
    color: var(--bordeaux);
    line-height: 1.1;
    margin-top: 16px;
  }
  .contact-left h2 em { font-style: italic; }
  .contact-left p {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.7;
    margin-top: 24px;
    margin-bottom: 40px;
  }
  .contact-detail {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .contact-item {
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    color: var(--text-mid);
  }
  .contact-item-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--champagne);
    flex-shrink: 0;
  }
  /* ─── WhatsApp link (premium, discreet) ─── */
  .wa-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-top: 32px;
    padding: 16px 22px;
    background: var(--beige);
    border: 1px solid var(--champagne-light);
    color: var(--text-dark);
    text-decoration: none;
    transition: background 0.25s, border-color 0.25s, transform 0.25s;
    max-width: 380px;
  }
  .wa-link:hover {
    background: var(--white);
    border-color: var(--bordeaux);
    transform: translateY(-1px);
  }
  .wa-link:focus-visible {
    outline: 2px solid var(--bordeaux);
    outline-offset: 3px;
  }
  .wa-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--bordeaux);
    color: var(--white);
    flex-shrink: 0;
    transition: transform 0.25s;
  }
  .wa-link:hover .wa-link-icon { transform: rotate(-6deg); }
  .wa-link-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  .wa-link-label {
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bordeaux);
  }
  .wa-link-sub {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.4;
  }
  @media (max-width: 767px) {
    .wa-link { width: 100%; max-width: none; }
  }
  .contact-right {}
  .contact-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .contact-field label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-bottom: 8px;
  }
  .contact-field input,
  .contact-field textarea,
  .contact-field select {
    width: 100%;
    background: var(--beige);
    border: 1px solid var(--champagne-light);
    border-radius: 0;
    padding: 14px 16px;
    color: var(--text-dark);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    outline: none;
    transition: border-color 0.2s;
    resize: none;
  }
  .contact-field input:focus,
  .contact-field textarea:focus,
  .contact-field select:focus { border-color: var(--bordeaux); background: var(--white); }
  .contact-field-optional {
    text-transform: none;
    letter-spacing: 0.04em;
    font-size: 10px;
    font-style: italic;
    color: var(--text-light);
    margin-left: 6px;
    font-weight: 300;
  }
  .contact-field-hint {
    margin: 8px 0 0;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.5;
  }
  /* ─── File attachment field (shared: contact + configurator) ─── */
  .file-field { display: block; }
  .file-field-input {
    position: absolute;
    width: 1px; height: 1px;
    opacity: 0; pointer-events: none;
    left: -9999px;
  }
  .file-field-trigger {
    box-sizing: border-box;
    width: 100%;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 32px;
    padding: 18px 24px;
    background: var(--beige);
    border: 1px dashed var(--champagne);
    border-radius: 0;
    cursor: pointer;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.06em;
    color: var(--text-dark);
    transition: background 0.2s, border-color 0.2s;
    text-transform: none;
  }
  .file-field-trigger:hover {
    background: var(--white);
    border-color: var(--bordeaux);
  }
  .file-field-input:focus + .file-field-trigger,
  .file-field-trigger:focus-within {
    border-color: var(--bordeaux);
    outline: 2px solid var(--champagne);
    outline-offset: 2px;
  }
  .file-field-icon {
    display: inline-block;
    position: relative;
    flex-shrink: 0;
    width: 22px; height: 22px;
    margin-right: 18px;
    border-radius: 50%;
    background: var(--bordeaux);
  }
  .file-field-icon::before,
  .file-field-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background: var(--white);
    transform: translate(-50%, -50%);
  }
  .file-field-icon::before { width: 10px; height: 1.5px; }
  .file-field-icon::after  { width: 1.5px; height: 10px; }
  .file-field-cta {
    display: inline-block;
    position: relative;
    top: -6px;
  }
  .file-field-list {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .file-field-list:empty { display: none; }
  .file-field-item {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--beige);
    border-left: 2px solid var(--champagne);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 300;
    color: var(--text-dark);
  }
  .file-field-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }
  .file-field-size {
    color: var(--text-light);
    font-size: 11px;
    letter-spacing: 0.04em;
  }
  .file-field-remove {
    width: 28px; height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--champagne-light);
    color: var(--text-mid);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
  }
  .file-field-remove:hover {
    background: var(--bordeaux);
    color: var(--white);
    border-color: var(--bordeaux);
  }
  .file-field-error {
    display: none;
    margin: 10px 0 0;
    padding: 8px 12px;
    background: rgba(180, 50, 50, 0.06);
    border-left: 2px solid #b43232;
    font-family: var(--font-sans);
    font-size: 12px;
    color: #8a2424;
  }
  .contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .btn-submit {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 16px 40px;
    background: var(--bordeaux);
    color: var(--white);
    border: 1px solid var(--bordeaux);
    cursor: pointer;
    transition: all 0.25s;
    width: 100%;
    margin-top: 8px;
  }
  .btn-submit:hover { background: var(--bordeaux-deep); border-color: var(--bordeaux-deep); }

  /* ─── FOOTER ─── */
  .footer {
    background: var(--text-dark);
    padding: 64px 80px 40px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 48px;
    align-items: start;
  }
  .footer-brand {}
  .footer-logo {
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--champagne);
  }
  .footer-tagline {
    font-family: var(--font-serif);
    font-size: 13px;
    font-style: italic;
    color: rgba(255,255,255,0.65);
    margin-top: 8px;
    line-height: 1.5;
  }
  .footer-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
  .footer-nav a {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    text-decoration: none;
    transition: color 0.2s;
  }
  .footer-nav a:hover { color: var(--champagne); }
  .footer-right {
    text-align: right;
  }
  .footer-social {
    display: flex;
    gap: 20px;
    justify-content: flex-end;
    margin-bottom: 20px;
  }
  .footer-social a {
    font-family: var(--font-sans);
    font-size: 9px;
    font-weight: 300;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    text-decoration: none;
    transition: color 0.2s;
  }
  .footer-social a:hover { color: var(--champagne); }
  .footer-bottom {
    grid-column: 1 / -1;
    border-top: 1px solid rgba(255,255,255,0.07);
    padding-top: 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
  }
  .footer-copy {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.55);
  }
  .footer-location {
    font-family: var(--font-serif);
    font-size: 12px;
    font-style: italic;
    color: rgba(255,255,255,0.6);
  }

  /* ─── REVEAL ANIMATIONS ─── */
  .reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.75s ease, transform 0.75s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
  .reveal-delay-4 { transition-delay: 0.4s; }

  /* ─── ABOUT ─── */
  .about-section {
    padding: 0;
    background: var(--beige-mid);
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 600px;
  }
  .about-left {
    background: var(--bordeaux);
    padding: 100px 72px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .about-right {
    padding: 100px 72px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .about-left .section-eyebrow { color: var(--champagne-light); }
  .about-left .section-title { color: var(--white); text-align: left; margin-bottom: 0; }
  .about-right p {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.8;
    color: var(--text-mid);
    margin-bottom: 24px;
  }
  .about-stats {
    display: flex;
    gap: 48px;
    margin-top: 40px;
  }
  .about-stat-num {
    font-family: var(--font-serif);
    font-size: 40px;
    font-weight: 300;
    color: var(--bordeaux);
  }
  .about-stat-label {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-top: 4px;
  }

  /* ─── FAQ ─── */
  .faq-section {
    padding: 120px 0;
    background: var(--beige);
  }
  .faq-container {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .faq-list {
    margin-top: 56px;
    border-top: 1px solid var(--champagne-light);
  }
  .faq-item {
    border-bottom: 1px solid var(--champagne-light);
  }
  .faq-question {
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    padding: 28px 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1.4;
    transition: color 0.2s;
  }
  .faq-question:hover { color: var(--bordeaux-deep); }
  .faq-toggle {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    position: relative;
    margin-top: 4px;
  }
  .faq-toggle::before,
  .faq-toggle::after {
    content: '';
    position: absolute;
    background: var(--bordeaux);
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .faq-toggle::before {
    top: 50%; left: 0;
    width: 22px; height: 1px;
    transform: translateY(-50%);
  }
  .faq-toggle::after {
    top: 0; left: 50%;
    width: 1px; height: 22px;
    transform: translateX(-50%);
  }
  .faq-item.open .faq-toggle::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }
  .faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.45s ease, padding 0.45s ease;
  }
  .faq-answer-inner {
    padding-bottom: 28px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-mid);
    max-width: 720px;
  }
  .faq-item.open .faq-answer { max-height: 480px; }
  .faq-item.open .faq-answer:has(.wedding-calendar) { max-height: 1400px; }
  @media (max-width: 767px) {
    .faq-section { padding: 72px 0; }
    .faq-container { padding: 0 20px; }
    .faq-question { font-size: 17px; padding: 22px 0; }
    .faq-answer-inner { font-size: 13.5px; }
    .faq-item.open .faq-answer:has(.wedding-calendar) { max-height: 2400px; }
  }

  /* ─── WEDDING CALENDAR (FAQ Q7) ─── */
  .faq-cal-intro {
    margin: 0 0 20px;
  }
  .wedding-calendar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin: 0 0 22px;
  }
  .cal-cell {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: var(--beige-mid);
    border-left: 2px solid var(--champagne);
    border-radius: 2px;
    font-size: 12.5px;
    line-height: 1.4;
  }
  .cal-wedding {
    font-family: var(--font-sans);
    font-weight: 500;
    color: var(--bordeaux);
    letter-spacing: 0.01em;
  }
  .cal-arrow {
    color: var(--champagne-text);
    font-size: 14px;
    font-weight: 400;
    text-align: center;
  }
  .cal-deadline {
    font-family: var(--font-sans);
    font-weight: 400;
    color: var(--text-mid);
    text-align: right;
  }
  .faq-cal-note {
    margin: 0;
    padding: 14px 18px;
    background: rgba(140, 110, 60, 0.06);
    border-left: 2px solid var(--champagne);
    font-size: 13px;
    font-style: italic;
    color: var(--text-mid);
  }
  @media (max-width: 900px) {
    .wedding-calendar { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 480px) {
    .wedding-calendar { grid-template-columns: 1fr; }
    .cal-cell { font-size: 12px; padding: 10px 12px; }
  }

  /* ─── SAMPLE KIT — bandeau teaser dans le configurateur ─── */
  .sample-teaser {
    margin: 0 0 48px;
    border: 1px solid var(--champagne-light);
    background: var(--white);
    transition: border-color 0.3s, box-shadow 0.3s;
  }
  .sample-teaser[data-open="true"] {
    border-color: var(--bordeaux);
    box-shadow: 0 8px 24px rgba(107, 45, 26, 0.06);
  }
  .sample-teaser-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 26px;
  }
  .sample-teaser-text {
    flex: 1;
    min-width: 0;
  }
  .sample-teaser-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 4px;
  }
  .sample-teaser-title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    font-weight: 300;
    color: var(--text-dark);
    line-height: 1.4;
  }
  .sample-teaser-toggle {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 12px 22px;
    background: transparent;
    border: 1px solid var(--bordeaux);
    color: var(--bordeaux);
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
  }
  .sample-teaser-toggle:hover {
    background: var(--bordeaux);
    color: var(--beige);
  }
  .sample-teaser-toggle-icon {
    position: relative;
    flex-shrink: 0;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--bordeaux);
    transition: background 0.2s, transform 0.35s ease;
  }
  /* + drawn in CSS — guarantees perfect centering vs glyph baseline issues */
  .sample-teaser-toggle-icon::before,
  .sample-teaser-toggle-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background: var(--beige);
    transform: translate(-50%, -50%);
    transition: background 0.2s;
  }
  .sample-teaser-toggle-icon::before { width: 8px; height: 1.5px; }
  .sample-teaser-toggle-icon::after  { width: 1.5px; height: 8px; }
  .sample-teaser-toggle:hover .sample-teaser-toggle-icon {
    background: var(--beige);
  }
  .sample-teaser-toggle:hover .sample-teaser-toggle-icon::before,
  .sample-teaser-toggle:hover .sample-teaser-toggle-icon::after {
    background: var(--bordeaux);
  }
  /* Open state : rotate the whole + 45° so it becomes a × close icon */
  .sample-teaser[data-open="true"] .sample-teaser-toggle-icon {
    transform: rotate(135deg);
  }

  /* Slide-down animation — uses max-height + opacity + padding for a smooth reveal */
  .sample-teaser-body {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    padding: 0 26px;
    border-top: 1px solid transparent;
    transition:
      max-height 0.5s ease,
      opacity 0.35s ease 0.1s,
      padding 0.45s ease,
      border-top-color 0.4s ease;
  }
  .sample-teaser[data-open="true"] .sample-teaser-body {
    max-height: 1400px;
    opacity: 1;
    padding: 8px 26px 26px;
    border-top-color: var(--champagne-light);
  }
  @media (prefers-reduced-motion: reduce) {
    .sample-teaser-toggle-icon,
    .sample-teaser-body { transition: none; }
  }
  .sample-teaser-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 36px;
    padding-top: 22px;
  }
  .sample-teaser-info {
    padding-right: 4px;
  }
  .sample-desc {
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-mid);
    margin: 0 0 24px;
  }
  .sample-includes {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .sample-includes li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 400;
    color: var(--text-dark);
  }
  .sample-includes-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--champagne-light);
    color: var(--bordeaux);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    flex-shrink: 0;
  }
  .sample-price {
    margin: 0;
    padding: 14px 18px;
    background: var(--white);
    border-left: 3px solid var(--bordeaux);
    font-family: var(--font-sans);
    font-size: 13.5px;
    font-weight: 300;
    color: var(--text-mid);
  }
  .sample-price strong {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
    color: var(--bordeaux);
    margin: 0 4px;
  }
  .sample-price-note {
    font-style: italic;
    color: var(--text-light);
    font-size: 12.5px;
  }
  .sample-form {
    background: var(--beige);
    border: 1px solid var(--champagne-light);
    padding: 22px 22px 20px;
  }
  .sample-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 18px;
  }
  .sample-field {
    margin-bottom: 18px;
  }
  .sample-field label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-bottom: 8px;
  }
  .sample-field input,
  .sample-field textarea {
    width: 100%;
    background: var(--beige);
    border: 1px solid var(--champagne-light);
    padding: 12px 14px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    color: var(--text-dark);
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    resize: vertical;
  }
  .sample-field input:focus,
  .sample-field textarea:focus {
    border-color: var(--bordeaux);
    background: var(--white);
  }
  /* Zone selector — radio cards */
  .sample-zone-label {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-bottom: 8px;
  }
  .sample-zone-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .sample-zone-option {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: var(--beige);
    border: 1px solid var(--champagne-light);
    padding: 10px 14px !important;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-size: inherit !important;
    color: var(--text-dark) !important;
  }
  .sample-zone-option:has(input:checked) {
    border-color: var(--bordeaux);
    background: var(--white);
  }
  .sample-zone-option input[type="radio"] {
    width: auto !important;
    margin: 0;
    accent-color: var(--bordeaux);
  }
  .sample-zone-name {
    font-family: var(--font-serif);
    font-size: 14px;
    color: var(--text-dark);
    flex: 1;
  }
  .sample-zone-cost {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--champagne-text);
    letter-spacing: 0.05em;
  }
  .sample-submit {
    width: 100%;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 16px;
    background: var(--bordeaux);
    color: var(--beige);
    border: none;
    cursor: pointer;
    transition: opacity 0.2s, transform 0.2s;
  }
  .sample-submit:hover:not(:disabled) { opacity: 0.92; transform: translateY(-1px); }
  .sample-submit:disabled { opacity: 0.5; cursor: wait; }
  .sample-status {
    margin: 14px 0 0;
    min-height: 1.4em;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
  }
  .sample-status.is-success { color: #2d5a2d; font-style: italic; }
  .sample-status.is-error   { color: #8a2424; }
  .sample-status.is-sending { color: var(--text-light); font-style: italic; }
  .sample-fineprint {
    margin: 14px 0 0;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-light);
    line-height: 1.5;
  }
  @media (max-width: 900px) {
    .sample-teaser-grid { grid-template-columns: 1fr; gap: 28px; }
    .sample-teaser-info { padding-right: 0; }
  }
  @media (max-width: 600px) {
    .sample-teaser-head { flex-direction: column; align-items: stretch; gap: 16px; padding: 18px 20px; }
    .sample-teaser-toggle { width: 100%; justify-content: center; }
    .sample-teaser-body { padding: 8px 20px 22px; }
    .sample-form-row { grid-template-columns: 1fr; gap: 0; }
  }

  /* ─── QUICK FAQ (préfooter) ─── */
  .quick-faq-section {
    background: var(--beige);
    padding: 80px 64px;
  }
  .quick-faq-container {
    max-width: 1200px;
    margin: 0 auto;
  }
  .quick-faq-eyebrow {
    display: block;
    text-align: center;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin-bottom: 32px;
  }
  .quick-faq-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
  }
  .quick-faq-card {
    text-align: left;
    padding: 22px 22px 26px;
    background: var(--white);
    border: 1px solid var(--champagne-light);
    border-top: 2px solid var(--bordeaux);
    transition: transform 0.25s, box-shadow 0.25s;
  }
  .quick-faq-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(107, 45, 26, 0.08);
  }
  .quick-faq-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; height: 30px;
    border-radius: 50%;
    background: var(--beige-mid);
    color: var(--bordeaux);
    font-size: 14px;
    line-height: 1;
    margin-bottom: 14px;
  }
  .quick-faq-q {
    margin: 0 0 8px;
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1.3;
  }
  .quick-faq-a {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.6;
    color: var(--text-mid);
  }
  .quick-faq-link {
    text-align: center;
    margin: 32px 0 0;
  }
  .quick-faq-link a {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bordeaux);
    text-decoration: none;
    border-bottom: 1px solid var(--champagne);
    padding-bottom: 4px;
    transition: border-color 0.2s;
  }
  .quick-faq-link a:hover {
    border-bottom-color: var(--bordeaux);
  }
  @media (max-width: 900px) {
    .quick-faq-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  }
  @media (max-width: 600px) {
    .quick-faq-section { padding: 60px 20px; }
    .quick-faq-grid { grid-template-columns: 1fr; }
  }

  /* ─── NEWSLETTER (capture des prospects pas encore prêts) ─── */
  .newsletter-section {
    background: var(--bordeaux);
    color: var(--beige);
    padding: 80px 64px;
    text-align: center;
  }
  .newsletter-container {
    max-width: 620px;
    margin: 0 auto;
  }
  .newsletter-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--champagne-light);
    margin-bottom: 18px;
  }
  .newsletter-title {
    font-family: var(--font-serif);
    font-size: clamp(28px, 4vw, 38px);
    font-weight: 300;
    line-height: 1.2;
    color: var(--beige);
    margin: 0 0 14px;
  }
  .newsletter-title em {
    font-style: italic;
    color: var(--champagne-light);
  }
  .newsletter-sub {
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.6;
    color: rgba(255,255,255,0.7);
    margin: 0 0 32px;
  }
  .newsletter-form {
    margin: 0;
  }
  .newsletter-row {
    display: flex;
    gap: 0;
    border: 1px solid var(--champagne);
    background: rgba(255,255,255,0.05);
    transition: border-color 0.2s;
  }
  .newsletter-row:focus-within {
    border-color: var(--champagne-light);
    background: rgba(255,255,255,0.08);
  }
  .newsletter-input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    padding: 16px 20px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    color: var(--beige);
    outline: none;
  }
  .newsletter-input::placeholder {
    color: rgba(255,255,255,0.4);
    font-style: italic;
  }
  .newsletter-btn {
    background: var(--champagne);
    color: var(--bordeaux);
    border: none;
    padding: 16px 28px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s;
    white-space: nowrap;
  }
  .newsletter-btn:hover:not(:disabled) {
    background: var(--champagne-light);
  }
  .newsletter-btn:disabled {
    opacity: 0.5;
    cursor: wait;
  }
  .newsletter-status {
    margin: 16px 0 0;
    min-height: 1.5em;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    color: rgba(255,255,255,0.7);
  }
  .newsletter-status.is-success { color: var(--champagne-light); font-style: italic; }
  .newsletter-status.is-error   { color: #f5b5a8; }
  .newsletter-status.is-sending { color: rgba(255,255,255,0.5); font-style: italic; }
  .newsletter-fineprint {
    margin: 24px 0 0;
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 300;
    line-height: 1.6;
    color: rgba(255,255,255,0.5);
  }
  .newsletter-fineprint a {
    color: var(--champagne-light);
    text-decoration: underline;
    text-decoration-color: rgba(255,255,255,0.3);
    text-underline-offset: 3px;
  }
  .newsletter-fineprint a:hover {
    text-decoration-color: var(--champagne-light);
  }
  .visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0);
    border: 0;
  }
  @media (max-width: 600px) {
    .newsletter-section { padding: 60px 20px; }
    .newsletter-row { flex-direction: column; }
    .newsletter-btn { width: 100%; }
  }

  /* ─── LEGAL SECTION (Mentions légales + Politique de confidentialité) ─── */
  .legal-section {
    background: var(--beige-mid);
    padding: 96px 64px;
    border-top: 1px solid var(--champagne-light);
  }
  .legal-container {
    max-width: 820px;
    margin: 0 auto;
  }
  .legal-container .section-eyebrow {
    display: block;
    margin-bottom: 14px;
  }
  .legal-container .section-title {
    margin-bottom: 18px;
  }
  .legal-disclaimer {
    margin: 0 0 40px;
    padding: 16px 20px;
    background: rgba(140, 110, 60, 0.06);
    border-left: 2px solid var(--champagne);
    font-family: var(--font-sans);
    font-size: 13px;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.55;
  }
  .legal-block {
    margin-bottom: 32px;
  }
  .legal-block h3 {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--bordeaux);
    margin: 0 0 12px;
  }
  .legal-block p {
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-mid);
    margin: 0;
  }
  .legal-block p strong {
    font-weight: 500;
    color: var(--text-dark);
  }
  .legal-block p a {
    color: var(--bordeaux);
    text-decoration: underline;
    text-decoration-color: var(--champagne);
    text-underline-offset: 3px;
  }
  .legal-block p a:hover {
    text-decoration-color: var(--bordeaux);
  }
  .legal-section-title {
    margin: 56px 0 24px;
    padding-top: 32px;
    border-top: 1px solid var(--champagne-light);
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 300;
    color: var(--bordeaux);
    letter-spacing: 0.01em;
  }
  .legal-footer-note {
    margin: 48px 0 0;
    padding-top: 24px;
    border-top: 1px solid var(--champagne-light);
    font-family: var(--font-sans);
    font-size: 12px;
    font-style: italic;
    color: var(--text-light);
    text-align: center;
  }
  .footer-legal-link,
  .footer-legal-link:link,
  .footer-legal-link:visited {
    color: rgba(255,255,255,0.55);
    text-decoration: none;
    transition: color 0.2s;
  }
  .footer-legal-link:hover {
    color: var(--champagne);
  }
  @media (max-width: 767px) {
    .legal-section { padding: 72px 20px; }
    .legal-block p { font-size: 13.5px; }
    .legal-section-title { font-size: 19px; }
  }

  /* ─── COOKIE BANNER (RGPD) ─── */
  .cookie-banner {
    position: fixed;
    bottom: 16px;
    left: 16px;
    right: 16px;
    max-width: 720px;
    margin: 0 auto;
    background: var(--white);
    border: 1px solid var(--champagne);
    border-left: 3px solid var(--bordeaux);
    padding: 18px 22px;
    z-index: 9999;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    gap: 20px;
    transform: translateY(120%);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
  }
  .cookie-banner.visible {
    transform: translateY(0);
    opacity: 1;
  }
  .cookie-banner-text {
    flex: 1;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.55;
    color: var(--text-mid);
    margin: 0;
  }
  .cookie-banner-text a {
    color: var(--bordeaux);
    text-decoration: underline;
    text-decoration-color: var(--champagne);
    text-underline-offset: 3px;
  }
  .cookie-banner-cta {
    flex-shrink: 0;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 12px 22px;
    border: 1px solid var(--bordeaux);
    background: var(--bordeaux);
    color: var(--white);
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
    white-space: nowrap;
  }
  .cookie-banner-cta:hover {
    background: var(--bordeaux-dark, #5a2417);
  }
  @media (max-width: 600px) {
    .cookie-banner { flex-direction: column; align-items: flex-start; gap: 14px; }
    .cookie-banner-cta { width: 100%; text-align: center; }
  }

  /* ─── COUNTDOWN (configurateur étape 2) ─── */
  .wedding-countdown {
    margin-top: 18px;
    padding: 14px 18px;
    background: var(--beige);
    border-left: 2px solid var(--champagne);
    border-radius: 2px;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: border-left-color 0.25s, background 0.25s;
  }
  .wedding-countdown.urgent {
    border-left-color: #b87333;
    background: rgba(184, 115, 51, 0.05);
  }
  .wedding-countdown.tight {
    border-left-color: #c34a3a;
    background: rgba(195, 74, 58, 0.05);
  }
  .wedding-countdown-dot {
    flex-shrink: 0;
    width: 8px; height: 8px;
    margin-left: 6px;
    border-radius: 50%;
    background: var(--bordeaux);
    position: relative;
  }
  .wedding-countdown-dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid var(--bordeaux);
    opacity: 0.35;
    animation: countdown-pulse 2.2s ease-out infinite;
  }
  .wedding-countdown.urgent .wedding-countdown-dot { background: #b87333; }
  .wedding-countdown.urgent .wedding-countdown-dot::after { border-color: #b87333; }
  .wedding-countdown.tight .wedding-countdown-dot { background: #c34a3a; }
  .wedding-countdown.tight .wedding-countdown-dot::after { border-color: #c34a3a; }
  @keyframes countdown-pulse {
    0%   { transform: scale(0.6); opacity: 0.55; }
    70%  { transform: scale(1.4); opacity: 0; }
    100% { transform: scale(1.4); opacity: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .wedding-countdown-dot::after { animation: none; }
  }
  .wedding-countdown-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .wedding-countdown-main {
    font-family: var(--font-serif);
    font-size: 15px;
    font-style: italic;
    color: var(--text-dark);
    line-height: 1.3;
  }
  .wedding-countdown-sub {
    font-family: var(--font-sans);
    font-size: 11.5px;
    color: var(--text-mid);
    font-style: italic;
  }

  /* ─── SIGNATURE INTRO BANNER ─── */
  .signature-intro {
    grid-column: 1 / -1;
    background: var(--bordeaux);
    color: var(--white);
    padding: 28px 36px;
    margin-bottom: 16px;
    border-left: 3px solid var(--champagne);
  }
  .signature-intro-eyebrow {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne);
    display: block;
    margin-bottom: 12px;
  }
  .signature-intro-text {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.55;
    color: var(--white);
  }
  @media (max-width: 767px) {
    .signature-intro { padding: 22px 24px; }
    .signature-intro-text { font-size: 16px; }
  }

  /* ─── MISC ─── */
  .placeholder-stripe {
    width: 100%;
    height: 100%;
    background-image: repeating-linear-gradient(
      45deg,
      transparent,
      transparent 12px,
      rgba(107,45,26,0.04) 12px,
      rgba(107,45,26,0.04) 14px
    );
  }

  /* ─── L'ATELIER ─── */
  .atelier-section {
    padding: 120px 0;
    background: var(--white);
  }
  .atelier-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .atelier-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-top: 56px;
  }
  .atelier-item {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }
  .atelier-thumb {
    width: 100%;
    aspect-ratio: 3/4;
    position: relative;
    background: linear-gradient(160deg, var(--beige-mid) 0%, var(--champagne-light) 60%, var(--beige) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .atelier-item figcaption {
    font-family: var(--font-serif);
    font-size: 17px;
    font-style: italic;
    color: var(--bordeaux);
    text-align: center;
    letter-spacing: 0.01em;
  }

  /* ─── YASMINA (notre propre histoire) ─── */
  .yasmina-section {
    padding: 0 0 120px;
    background: var(--beige-mid);
  }
  .yasmina-hero {
    width: 100%;
    height: 64vh;
    min-height: 480px;
    position: relative;
    background: linear-gradient(135deg, var(--bordeaux-deep) 0%, var(--bordeaux) 50%, var(--champagne-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 96px;
    overflow: hidden;
  }
  .yasmina-hero .placeholder-label { color: rgba(255,255,255,0.7); }
  .yasmina-container {
    max-width: 920px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .yasmina-body {
    text-align: center;
    margin-top: 32px;
  }
  .yasmina-body p {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.8;
    color: var(--text-mid);
    margin-bottom: 18px;
  }
  .yasmina-quote {
    margin: 72px auto;
    max-width: 780px;
    text-align: center;
    padding: 0 24px;
    position: relative;
  }
  .yasmina-quote::before, .yasmina-quote::after {
    content: '';
    display: block;
    width: 56px;
    height: 1px;
    background: var(--champagne);
    margin: 0 auto 32px;
    opacity: 0.6;
  }
  .yasmina-quote::after { margin: 32px auto 0; }
  .yasmina-quote p {
    font-family: var(--font-serif);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 300;
    font-style: italic;
    line-height: 1.55;
    color: var(--bordeaux);
  }
  .yasmina-quote cite {
    display: block;
    font-style: normal;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-top: 24px;
  }
  .yasmina-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin: 72px auto;
  }
  .yasmina-thumb {
    aspect-ratio: 1/1;
    position: relative;
    background: linear-gradient(155deg, var(--beige) 0%, var(--champagne-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .yasmina-callout {
    background: var(--white);
    border-left: 2px solid var(--champagne);
    padding: 36px 40px;
    margin-top: 64px;
  }
  .yasmina-callout .callout-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne);
    margin-bottom: 16px;
  }
  .yasmina-callout p {
    font-family: var(--font-serif);
    font-size: 17px;
    font-style: italic;
    line-height: 1.65;
    color: var(--text-dark);
    margin-bottom: 14px;
  }
  .yasmina-callout cite {
    font-style: normal;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.15em;
    color: var(--text-light);
  }

  /* ─── PORTFOLIO MARIAGES ─── */
  .mariages-section {
    padding: 120px 0;
    background: var(--white);
  }
  .mariages-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px;
  }
  .mariages-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-top: 56px;
  }
  .mariage-card {
    background: var(--beige);
    cursor: pointer;
    overflow: hidden;
    transition: transform 0.4s ease;
  }
  .mariage-card:hover { transform: translateY(-4px); }
  .mariage-card--featured { grid-column: span 1; }
  .mariage-thumb {
    width: 100%;
    aspect-ratio: 4/3;
    position: relative;
    background: linear-gradient(135deg, var(--bordeaux-deep) 0%, var(--bordeaux) 50%, var(--champagne) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .mariage-thumb .placeholder-label { color: rgba(255,255,255,0.6); }
  .mariage-thumb--ghost {
    background: linear-gradient(135deg, var(--beige-mid) 0%, var(--champagne-light) 100%);
    opacity: 0.6;
  }
  .mariage-thumb--ghost .placeholder-label { color: var(--text-light); }
  .mariage-meta {
    padding: 32px 32px 36px;
  }
  .mariage-tag {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--champagne);
    display: block;
    margin-bottom: 14px;
  }
  .mariage-name {
    font-family: var(--font-serif);
    font-size: 36px;
    font-weight: 300;
    color: var(--bordeaux);
    line-height: 1.05;
    margin-bottom: 16px;
  }
  .mariage-name em { font-style: italic; }
  .mariage-desc {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--text-mid);
    margin-bottom: 18px;
  }
  .mariage-tags {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
  }
  .mariage-tags span {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--text-light);
    border: 1px solid var(--champagne-light);
    padding: 6px 12px;
  }

  /* ─── COLLECTIONS (packs refined) ─── */
  .packs-grid--three {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .pack-promise {
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: italic;
    color: var(--text-mid);
    margin: 12px 0 8px;
    line-height: 1.4;
  }
  .pack-card.featured .pack-promise { color: rgba(255,255,255,0.8); }
  .pack-narrative {
    font-family: var(--font-serif);
    font-size: 14.5px;
    font-style: italic;
    font-weight: 300;
    line-height: 1.7;
    color: var(--bordeaux);
    margin-bottom: 18px;
    position: relative;
    padding-left: 14px;
    border-left: 1px solid var(--champagne);
  }
  .pack-card.featured .pack-narrative {
    color: var(--champagne-light);
    border-left-color: rgba(255, 255, 255, 0.35);
  }
  .pack-pricing {
    margin: auto 0 24px;
  }
  /* Lead price : per-guest amount with eyebrow */
  .pack-price-lead {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--champagne-light);
  }
  .pack-price-eyebrow {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-light);
  }
  .pack-price-amount {
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 300;
    color: var(--bordeaux);
    line-height: 1.1;
    letter-spacing: -0.01em;
  }
  .pack-card.featured .pack-price-lead { border-bottom-color: rgba(255,255,255,0.18); }
  .pack-card.featured .pack-price-eyebrow { color: rgba(255,255,255,0.55); }
  .pack-card.featured .pack-price-amount { color: var(--champagne-light); }
  /* Ligne de réassurance "✓ Impression incluse" — sous le prix lead */
  .pack-incl-line {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--bordeaux);
    margin-bottom: 8px;
  }
  /* Signature : ✓ reste au-dessus du prix → séparateur sous la ✓ */
  .pack-incl-line:has(+ .pack-price-small) {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--champagne-light);
  }
  .pack-incl-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--champagne-light);
    color: var(--bordeaux);
    font-size: 10px;
    font-weight: 600;
    flex-shrink: 0;
    line-height: 1;
  }
  /* Inversion sur Cérémonie (fond bordeaux) */
  .pack-card.featured .pack-incl-line {
    color: var(--beige);
    border-bottom-color: rgba(255, 255, 255, 0.18);
  }
  .pack-card.featured .pack-incl-mark {
    background: rgba(255, 255, 255, 0.15);
    color: var(--beige);
  }
  /* Sur Première Impression (entry) — version inline plus discrète */
  .pack-entry-incl {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--bordeaux);
    margin-top: 16px;
    margin-bottom: 8px;
  }
  .pack-price-small {
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--bordeaux);
    margin-bottom: 4px;
  }
  .pack-card.featured .pack-price-small { color: var(--champagne-light); }
  .pack-price-small span {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.05em;
    color: var(--text-light);
  }
  .pack-card.featured .pack-price-small span { color: rgba(255,255,255,0.5); }
  .pack-price-small strong {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 300;
    color: var(--bordeaux);
  }
  .pack-card.featured .pack-price-small strong { color: var(--champagne-light); }
  .pack-price-note {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    color: var(--text-light);
    line-height: 1.5;
  }
  .pack-card.featured .pack-price-note { color: rgba(255,255,255,0.5); }
  .pack-card {
    display: flex;
    flex-direction: column;
  }

  /* Première Impression — porte d'entrée */
  .pack-entry {
    background: var(--beige-mid);
    padding: 40px 48px;
    margin-top: 2px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    cursor: pointer;
    transition: background 0.3s ease;
  }
  .pack-entry:hover { background: var(--champagne-light); }
  .pack-entry-eyebrow {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--champagne-text);
    display: block;
    margin-bottom: 8px;
  }
  .pack-entry-title {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 300;
    color: var(--bordeaux);
    margin-bottom: 6px;
  }
  .pack-entry-desc {
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    color: var(--text-mid);
    line-height: 1.6;
    margin-bottom: 8px;
  }
  .pack-entry-price {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    color: var(--text-light);
    letter-spacing: 0.05em;
  }
  .pack-entry-cta {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bordeaux);
    text-decoration: none;
    flex-shrink: 0;
    border: 1px solid var(--bordeaux);
    padding: 14px 24px;
    transition: all 0.25s;
  }
  .pack-entry-cta:hover {
    background: var(--bordeaux);
    color: var(--white);
  }

  /* ─── NOTRE ENGAGEMENT — 5 réassurances ─── */
  .commitment-section {
    padding: 120px 48px;
    background: var(--beige-mid);
    border-top: 1px solid var(--champagne-light);
  }
  .commitment-inner {
    max-width: 1280px;
    margin: 0 auto;
  }
  .commitment-section .section-header {
    text-align: center;
    margin-bottom: 64px;
  }
  .commitment-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 32px;
  }
  .commitment-card {
    text-align: left;
    padding: 8px 0;
    position: relative;
  }
  .commitment-card + .commitment-card::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background: var(--champagne-light);
  }
  .commitment-num {
    display: block;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 28px;
    font-weight: 300;
    color: var(--champagne-text);
    line-height: 1;
    margin-bottom: 18px;
  }
  .commitment-title {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1.25;
    margin-bottom: 10px;
  }
  .commitment-desc {
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    color: var(--text-mid);
    line-height: 1.6;
  }
  @media (max-width: 1023px) {
    .commitment-section { padding: 80px 32px; }
    .commitment-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 36px 32px;
    }
    .commitment-card + .commitment-card::before { display: none; }
  }
  @media (max-width: 599px) {
    .commitment-section { padding: 64px 24px; }
    .commitment-grid {
      grid-template-columns: 1fr;
      gap: 28px;
    }
  }

  /* ═══════════════════════════════════════════════
     RESPONSIVE — Mobile First
     480px  → small phones
     768px  → tablets / large phones landscape
     1024px → desktop (existing styles kick in)
  ═══════════════════════════════════════════════ */

  /* ── Base mobile overrides (< 768px) ── */
  @media (max-width: 767px) {

    /* L'ATELIER */
    .atelier-section { padding: 72px 0; }
    .atelier-container { padding: 0 20px; }
    .atelier-grid {
      grid-template-columns: 1fr;
      gap: 36px;
      margin-top: 40px;
    }

    /* YASMINA */
    .yasmina-hero { height: 56vh; min-height: 320px; margin-bottom: 56px; }
    .yasmina-container { padding: 0 20px; }
    .yasmina-gallery {
      grid-template-columns: 1fr 1fr;
      gap: 4px;
      margin: 48px auto;
    }
    .yasmina-quote { margin: 48px auto; }
    .yasmina-callout { padding: 28px 24px; }

    /* MARIAGES PORTFOLIO */
    .mariages-section { padding: 72px 0; }
    .mariages-container { padding: 0 20px; }
    .mariages-grid {
      grid-template-columns: 1fr;
      gap: 16px;
    }
    .mariage-meta { padding: 24px 24px 28px; }
    .mariage-name { font-size: 30px; }

    /* COLLECTIONS */
    .packs-grid--three { grid-template-columns: 1fr !important; }
    .pack-entry {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
      padding: 28px 24px;
    }

    /* NAV */
    .nav {
      padding: 0 20px;
      height: 60px;
    }
    .nav-links { display: none; }
    .nav-right { gap: 14px; }
    .nav-cta { padding: 8px 16px; font-size: 10px; }

    /* HERO — stack vertically */
    .hero {
      grid-template-columns: 1fr;
      grid-template-rows: auto 52vw;
      height: auto;
      min-height: 100svh;
    }
    .hero-left {
      padding: 100px 24px 48px;
      grid-row: 1;
    }
    .hero-title {
      font-size: clamp(40px, 11vw, 60px);
      margin-bottom: 20px;
    }
    .hero-tagline {
      font-size: 15px;
      margin-bottom: 36px;
      max-width: 100%;
    }
    .hero-actions {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
    }
    .hero-right {
      grid-row: 2;
      height: 52vw;
      min-height: 220px;
    }
    

    /* ABOUT */
    .about-section {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto;
    }
    .about-left {
      padding: 64px 24px 48px;
    }
    .about-right {
      padding: 48px 24px 64px;
    }
    .about-stats {
      gap: 28px;
      flex-wrap: wrap;
    }
    .about-stat-num { font-size: 32px; }

    /* GALLERY */
    
    
    

    /* PACKS */
    .packs-section { padding: 72px 0; }
    .packs-container { padding: 0 20px; }
    .packs-grid {
      grid-template-columns: 1fr;
      gap: 2px;
      margin-top: 48px;
    }
    .pack-card { padding: 36px 24px; }
    
    
    

    /* CONFIGURATOR */
    .config-section { padding: 72px 0; }
    .config-container { padding: 0 20px; }

    /* TESTIMONIALS */
    .testimonials-section { padding: 72px 0; }
    .testimonials-container { padding: 0 20px; }
    .testimonials-grid {
      grid-template-columns: 1fr;
      gap: 2px;
    }
    .testimonial-card:nth-child(2) { margin-top: 0; }
    .testimonial-text { font-size: 16px; }

    /* CONTACT */
    .contact-section { padding: 72px 0; }
    .contact-container {
      grid-template-columns: 1fr;
      gap: 48px;
      padding: 0 20px;
    }
    .contact-row { grid-template-columns: 1fr; }
    .contact-left h2 { font-size: clamp(32px, 9vw, 48px); }

    /* FOOTER */
    .footer {
      grid-template-columns: 1fr;
      padding: 48px 20px 32px;
      gap: 36px;
    }
    .footer-nav {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 16px;
      text-align: left;
      justify-content: flex-start;
    }
    .footer-right { text-align: left; }
    .footer-social { justify-content: flex-start; }
    .footer-bottom {
      flex-direction: column;
      gap: 8px;
      align-items: flex-start;
    }

    /* SECTION HEADERS */
    .section-header { margin-bottom: 48px; }
    .section-title { font-size: clamp(28px, 8vw, 44px); }
  }

  /* ── Tablet (768px – 1023px) ── */
  @media (min-width: 768px) and (max-width: 1023px) {

    /* L'ATELIER */
    .atelier-grid {
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    /* YASMINA */
    .yasmina-gallery { grid-template-columns: repeat(2, 1fr); }

    /* MARIAGES */
    .mariages-grid { grid-template-columns: 1fr; }

    /* COLLECTIONS */
    .packs-grid--three { grid-template-columns: 1fr 1fr !important; }

    /* NAV */
    .nav { padding: 0 32px; }
    .nav-links { gap: 24px; }

    /* HERO */
    .hero { grid-template-columns: 1fr 1fr; }
    .hero-left { padding: 100px 40px 60px; }
    .hero-title { font-size: clamp(44px, 6vw, 68px); }

    /* ABOUT */
    .about-left { padding: 72px 40px; }
    .about-right { padding: 72px 40px; }

    /* GALLERY */
    
    
    

    /* PACKS */
    .packs-container { padding: 0 32px; }
    .packs-grid { grid-template-columns: 1fr 1fr; }
    

    /* CONFIGURATOR */
    .config-container { padding: 0 32px; }

    /* TESTIMONIALS */
    .testimonials-container { padding: 0 32px; }
    .testimonials-grid { grid-template-columns: 1fr; }
    .testimonial-card:nth-child(2) { margin-top: 0; }

    /* CONTACT */
    .contact-container {
      grid-template-columns: 1fr;
      padding: 0 32px;
      gap: 48px;
    }

    /* FOOTER */
    .footer {
      grid-template-columns: 1fr 1fr;
      padding: 56px 32px 36px;
    }
    .footer-bottom { grid-column: 1 / -1; }
  }

  /* ── Hamburger menu (mobile) ── */
  .hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
    background: none;
    border: none;
    /* Touch-target target: 44×44 on mobile (a11y) */
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1001;          /* sits above the drawer overlay */
  }
  .hamburger span {
    display: block;
    width: 22px;
    height: 1px;
    background: var(--bordeaux);
    transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1),
                opacity 0.2s ease;
    transform-origin: center;
  }
  /* Open state: lines morph into a centred ✕ */
  .hamburger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0.4); }
  .hamburger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  @media (max-width: 767px) {
    .hamburger { display: flex; }
  }

  /* Mobile nav drawer — always in the DOM so we can fade/scale it in.
     `visibility: hidden` keeps it un-tabbable when closed; the transition
     restores focusability on `.open`. */
  .mobile-nav {
    position: fixed;
    inset: 0;
    background: rgba(250,248,245,0.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    z-index: 999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 36px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(1.02);
    transition: opacity 0.32s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.32s;
  }
  .mobile-nav.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
    transition: opacity 0.32s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s;
  }
  .mobile-nav a {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 300;
    color: var(--bordeaux);
    text-decoration: none;
    letter-spacing: 0.05em;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .mobile-nav.open a {
    opacity: 1;
    transform: translateY(0);
  }
  .mobile-nav.open a:nth-child(1) { transition-delay: 0.10s; }
  .mobile-nav.open a:nth-child(2) { transition-delay: 0.15s; }
  .mobile-nav.open a:nth-child(3) { transition-delay: 0.20s; }
  .mobile-nav.open a:nth-child(4) { transition-delay: 0.25s; }
  .mobile-nav.open a:nth-child(5) { transition-delay: 0.30s; }
  .mobile-nav.open a:nth-child(6) { transition-delay: 0.35s; }
  @media (prefers-reduced-motion: reduce) {
    .mobile-nav, .mobile-nav a, .hamburger span { transition: none; }
  }
  .mobile-nav-close {
    position: absolute;
    top: 20px; right: 20px;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    color: var(--bordeaux);
    background: none; border: none; cursor: pointer;
  }
  .mobile-nav-lang {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--champagne);
    background: none; border: none; cursor: pointer;
    margin-top: 8px;
  }

  /* ============================================================
     SIGNATURE INTRO BANNER — shown above the Contact form when
     the user comes from the Signature CTA.
     ============================================================ */
  .signature-intro {
    grid-column: 1 / -1;
    background: rgba(107, 45, 26, 0.06);
    border-left: 2px solid var(--champagne);
    padding: 24px 28px;
    margin-bottom: 40px;
  }
  .signature-intro-eyebrow {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--champagne);
    margin-bottom: 10px;
  }
  .signature-intro-text {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 18px;
    font-weight: 300;
    color: var(--text-dark);
    line-height: 1.6;
    margin: 0;
  }
  /* 4-step process — "Comment ça se passe" — affiché dans le banner
     Signature pour rassurer sur le processus avant l'envoi du devis. */
  .signature-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--champagne-light);
  }
  .signature-step {
    position: relative;
    padding-right: 12px;
  }
  /* Flèche entre chaque étape — pseudo-element à droite */
  .signature-step:not(:last-child)::after {
    content: '→';
    position: absolute;
    right: -16px;
    top: 6px;
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--champagne-text);
    opacity: 0.55;
  }
  .signature-step-num {
    display: block;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 20px;
    font-weight: 300;
    color: var(--champagne-text);
    line-height: 1;
    margin-bottom: 10px;
  }
  .signature-step-title {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 400;
    color: var(--bordeaux);
    line-height: 1.2;
    margin: 0 0 6px;
  }
  .signature-step-desc {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    color: var(--text-mid);
    line-height: 1.55;
    margin: 0;
  }
  @media (max-width: 767px) {
    .signature-steps {
      grid-template-columns: 1fr;
      gap: 18px;
    }
    .signature-step { padding-right: 0; padding-bottom: 18px; border-bottom: 1px solid var(--champagne-light); }
    .signature-step:last-child { border-bottom: none; padding-bottom: 0; }
    .signature-step:not(:last-child)::after {
      content: '↓';
      right: auto; left: 50%;
      top: auto; bottom: -10px;
      transform: translateX(-50%);
    }
  }

  /* Contact form status message — used by the submit handler */
  .contact-form-status {
    margin-top: 18px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.5;
    min-height: 1em;
  }
  .contact-form-status.is-success { color: var(--bordeaux); }
  .contact-form-status.is-error   { color: #b03a2e; }
  .contact-form-status.is-sending { color: var(--text-mid); font-style: italic; }

  /* ============================================================
     MEDIA — make <img> and <video> fill their fixed-ratio wrappers.
     Each wrapper already has an aspect-ratio (or a fixed height for the
     yasmina-hero), so we just stretch the media and crop to cover.
     ============================================================ */
  .yasmina-hero img,
  .yasmina-thumb img,
  .atelier-thumb img,
  .atelier-thumb video,
  .mariage-thumb img,
  .hero-image-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  /* When a real image is in place we no longer need the gradient or the
     dark overlay used for the placeholder version. */
  .yasmina-hero:has(img) { background: none; }
  .yasmina-hero img { position: absolute; inset: 0; }

  /* Clickable portfolio thumbnail — opens the lightbox.
     Renders as a button while looking identical to the image-only thumb. */
  .mariage-thumb--clickable {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
    color: inherit;
    font: inherit;
  }
  .mariage-thumb--clickable .mariage-thumb-zoom {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(42, 26, 20, 0.7);
    color: var(--beige);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-size: 22px;
    font-weight: 300;
    line-height: 1;
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
  }
  .mariage-thumb--clickable:hover .mariage-thumb-zoom,
  .mariage-thumb--clickable:focus-visible .mariage-thumb-zoom {
    opacity: 1;
    transform: scale(1);
  }

  /* ============================================================
     LIGHTBOX — overlay full-viewport pour navigation manuelle
     dans une galerie de photos. Navigation : prev/next, ←/→, Esc.
     ============================================================ */
  .lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(20, 12, 8, 0.94);
    backdrop-filter: blur(8px);
    padding: 48px;
    opacity: 0;
    transition: opacity 0.25s ease;
  }
  .lightbox[hidden] { display: none; }
  .lightbox.is-open { opacity: 1; }

  .lightbox-stage {
    max-width: min(1200px, 92vw);
    max-height: 84vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
  }
  .lightbox-img {
    max-width: 100%;
    max-height: 78vh;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
  }
  .lightbox-caption {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 15px;
    color: rgba(250, 248, 245, 0.7);
    text-align: center;
    max-width: 600px;
  }

  .lightbox-close,
  .lightbox-prev,
  .lightbox-next {
    position: absolute;
    background: transparent;
    border: 1px solid rgba(250, 248, 245, 0.25);
    color: var(--beige);
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-weight: 300;
  }
  .lightbox-close:hover,
  .lightbox-prev:hover,
  .lightbox-next:hover {
    background: rgba(250, 248, 245, 0.08);
    border-color: var(--champagne);
    color: var(--champagne);
  }
  .lightbox-close {
    top: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 18px;
  }
  .lightbox-prev,
  .lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border-radius: 50%;
    font-size: 32px;
    line-height: 1;
  }
  .lightbox-prev { left: 32px; }
  .lightbox-next { right: 32px; }

  .lightbox-counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(250, 248, 245, 0.5);
  }

  @media (max-width: 767px) {
    .lightbox { padding: 16px; }
    .lightbox-close { top: 12px; right: 12px; width: 38px; height: 38px; }
    .lightbox-prev, .lightbox-next { width: 42px; height: 42px; font-size: 26px; }
    .lightbox-prev { left: 8px; }
    .lightbox-next { right: 8px; }
    .lightbox-counter { bottom: 12px; font-size: 10px; }
  }

  /* Inline error banner shown above the configurator nav when the
     Web3Forms submission fails. */
  .config-submit-error {
    margin-top: 24px;
    padding: 14px 18px;
    border: 1px solid rgba(176, 58, 46, 0.5);
    background: rgba(176, 58, 46, 0.06);
    color: #8a2a22;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 300;
    line-height: 1.5;
    text-align: center;
  }
