/*
Theme Name:  Hello Elementor — Vela Nova
Theme URI:   https://vela-nova.fr
Description: Thème enfant de Hello Elementor pour Vela Nova. Contient l'intégralité du design system : variables CSS, classes globales, effets lumineux.
Author:      Vela Nova
Template:    hello-elementor
Version:     1.10.0
Text Domain: hello-elementor-vela-nova
*/

/* =============================================================
   1. DESIGN SYSTEM — VARIABLES CSS (préfixe --vna-)
   Palette chaude : crème lumineuse + accent ambre sur fond nuit profond.
   L'émotion vient du contraste, de l'espace et des images.
   ============================================================= */
:root {

  /* Thème nativement sombre (aide les navigateurs/extensions à ne pas inverser) */
  color-scheme: dark;

  /* --- Couleurs --- */
  --vna-color-night:   #060E1F; /* Fond nuit (dominant) */
  --vna-color-deep:    #0F1B30; /* Fond profond */
  --vna-color-muted:   #8C8E79; /* Sourdine, texte secondaire */
  --vna-color-text:    #F4F0D3; /* Crème lumineuse, texte clair */
  --vna-color-accent:  #FD8E2D; /* Accent ambre — la lumière chaude (parcimonie) */

  /* Alias sémantiques */
  --vna-bg:            var(--vna-color-night);
  --vna-bg-alt:        var(--vna-color-deep);
  --vna-text:          var(--vna-color-text);
  --vna-text-muted:    var(--vna-color-muted);
  --vna-link:          var(--vna-color-accent);
  --vna-border:        rgba(140, 142, 121, 0.22);
  --vna-overlay:       rgba(6, 14, 31, 0.55); /* Voile foncé sur images */

  /* --- Typographie --- */
  --vna-font-heading:  'Cardo', Georgia, 'Times New Roman', serif;
  --vna-font-body:     'Inter', system-ui, -apple-system, sans-serif;

  /* Tailles — titres (Cardo, jamais < 28px) */
  --vna-fs-display:    clamp(3rem,   6vw, 5rem);    /* Hero H1 */
  --vna-fs-h1:         clamp(2.5rem, 5vw, 4rem);
  --vna-fs-h2:         clamp(2rem,   4vw, 3rem);
  --vna-fs-h3:         clamp(1.75rem,3vw, 2.25rem);
  --vna-fs-h4:         clamp(1.5rem, 2.5vw, 1.875rem);

  /* Tailles — corps (Inter) */
  --vna-fs-lead:       1.25rem;   /* Intro / chapeau */
  --vna-fs-body:       1rem;      /* Corps courant */
  --vna-fs-small:      0.875rem;  /* Légences, meta */
  --vna-fs-eyebrow:    0.75rem;   /* Eyebrow/surtitres */

  /* Hauteurs de ligne */
  --vna-lh-heading:    1.15;
  --vna-lh-body:       1.7;
  --vna-lh-lead:       1.5;

  /* Espacement des lettres */
  --vna-ls-heading:    -0.02em;
  --vna-ls-eyebrow:     0.18em;
  --vna-ls-body:        0;

  /* Largeur max de texte (60-70 car/ligne ≈ 680px) */
  --vna-text-width:    680px;

  /* --- Espacement (échelle en multiples de 8) --- */
  --vna-space-1:    8px;
  --vna-space-2:   16px;
  --vna-space-3:   24px;
  --vna-space-4:   32px;
  --vna-space-6:   48px;
  --vna-space-8:   64px;
  --vna-space-12:  96px;
  --vna-space-16: 128px;

  /* Padding vertical sections */
  --vna-section-py:         var(--vna-space-12); /* 96px desktop */
  --vna-section-py-hero:    var(--vna-space-16); /* 128px hero */

  /* --- Bordures & arrondi --- */
  --vna-radius-sm:  4px;
  --vna-radius:     8px;
  --vna-radius-lg: 16px;

  /* --- Transitions --- */
  --vna-transition: 220ms ease;

  /* --- Z-index --- */
  --vna-z-overlay: 10;
  --vna-z-nav:     100;
  --vna-z-modal:   200;
}

/* =============================================================
   2. RESET & BASE
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  background-color: var(--vna-color-night); /* fond nuit plein écran garanti */
}

body {
  margin: 0;
  background-color: var(--vna-bg);
  color: var(--vna-text);
  font-family: var(--vna-font-body);
  font-size: var(--vna-fs-body);
  line-height: var(--vna-lh-body);
  letter-spacing: var(--vna-ls-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Liens */
a {
  color: var(--vna-link);
  text-decoration: none;
  transition: color var(--vna-transition), opacity var(--vna-transition);
}
a:hover { opacity: 0.8; }

/* Images */
img, video {
  display: block;
  max-width: 100%;
  height: auto;
}

/* =============================================================
   3. TYPOGRAPHIE GLOBALE
   ============================================================= */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--vna-font-heading);
  line-height: var(--vna-lh-heading);
  letter-spacing: var(--vna-ls-heading);
  color: var(--vna-text);
  margin-top: 0;
  margin-bottom: var(--vna-space-3);
  font-weight: 700;
}

h1 { font-size: var(--vna-fs-h1); }
h2 { font-size: var(--vna-fs-h2); }
h3 { font-size: var(--vna-fs-h3); }
h4 { font-size: var(--vna-fs-h4); }

p {
  margin-top: 0;
  margin-bottom: var(--vna-space-3);
  max-width: var(--vna-text-width);
}

/* =============================================================
   4. CLASSES GLOBALES (préfixe .vna-)
   ============================================================= */

/* --- Sections --- */
.vna-section {
  padding-top:    var(--vna-section-py);
  padding-bottom: var(--vna-section-py);
  position: relative;
}

.vna-section--hero {
  padding-top:    var(--vna-section-py-hero);
  padding-bottom: var(--vna-section-py-hero);
  background-color: var(--vna-bg);
}

.vna-section--alt {
  background-color: var(--vna-bg-alt);
}

/* Padding mobile réduit */
@media (max-width: 767px) {
  .vna-section {
    padding-top:    48px;
    padding-bottom: 48px;
  }
  .vna-section--hero {
    padding-top:    64px;
    padding-bottom: 64px;
  }
}

/* --- Conteneur texte --- */
.vna-text-wrap {
  max-width: var(--vna-text-width);
}

.vna-text-wrap--center {
  max-width: var(--vna-text-width);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* --- Eyebrow (surtitre) --- */
.vna-eyebrow {
  display: block;
  font-family: var(--vna-font-body);
  font-size: var(--vna-fs-eyebrow);
  font-weight: 600;
  letter-spacing: var(--vna-ls-eyebrow);
  text-transform: uppercase;
  color: var(--vna-color-accent);
  margin-bottom: var(--vna-space-2);
}

/* --- Display (grand titre hero) --- */
.vna-display {
  font-family: var(--vna-font-heading);
  font-size: var(--vna-fs-display);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 700;
  color: var(--vna-text);
  margin-bottom: var(--vna-space-4);
}

/* --- Lead (chapeau intro) --- */
.vna-lead {
  font-family: var(--vna-font-body);
  font-size: var(--vna-fs-lead);
  line-height: var(--vna-lh-lead);
  color: var(--vna-color-text);
  max-width: var(--vna-text-width);
  opacity: 0.85;
}

/* --- Body text --- */
.vna-body {
  font-family: var(--vna-font-body);
  font-size: var(--vna-fs-body);
  line-height: var(--vna-lh-body);
  color: var(--vna-text);
}

.vna-body--muted {
  color: var(--vna-text-muted);
}

/* --- Small / meta --- */
.vna-small {
  font-size: var(--vna-fs-small);
  color: var(--vna-text-muted);
}

/* --- Accent text --- */
.vna-accent {
  color: var(--vna-color-accent);
}

/* --- Divider --- */
.vna-divider {
  border: none;
  border-top: 1px solid var(--vna-border);
  margin: var(--vna-space-8) 0;
}

.vna-divider--accent {
  border-top-color: var(--vna-color-accent);
  width: 48px;
  margin-left: 0;
}

/* --- Bouton CTA --- */
.vna-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--vna-space-2);
  font-family: var(--vna-font-body);
  font-size: var(--vna-fs-body);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 14px 32px;
  border: 1px solid var(--vna-color-accent);
  color: var(--vna-color-accent);
  background: transparent;
  cursor: pointer;
  transition: background var(--vna-transition), color var(--vna-transition);
  text-decoration: none;
}
.vna-btn:hover {
  background: var(--vna-color-accent);
  color: var(--vna-color-night);
  opacity: 1;
}

.vna-btn--filled {
  background: var(--vna-color-accent);
  color: var(--vna-color-night);
}
.vna-btn--filled:hover {
  background: var(--vna-color-text);
  border-color: var(--vna-color-text);
  color: var(--vna-color-night);
}

/* =============================================================
   5. IMAGE + OVERLAY (voile foncé)
   ============================================================= */
.vna-image-wrap {
  position: relative;
  overflow: hidden;
  line-height: 0;
}

.vna-image-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--vna-overlay);
  pointer-events: none;
}

.vna-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.05) brightness(0.92);
}

/* =============================================================
   6. EFFETS LUMINEUX
   Principe : ZÉRO gradient décoratif, ZÉRO glow, ZÉRO néon.
   L'émotion vient du contraste et du vide.
   Seul effet autorisé : le grain SVG (texture cinématographique).
   ============================================================= */

/* Grain SVG — texture cinématographique sur les sections hero */
.vna-grain {
  position: relative;
  isolation: isolate;
}
.vna-grain::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}
.vna-grain > * { position: relative; z-index: 2; }

/* Filet accent (trait horizontal argent-bleu) */
.vna-trace {
  display: block;
  width: 40px;
  height: 1px;
  background: var(--vna-color-accent);
  margin-bottom: var(--vna-space-4);
}

.vna-trace--center {
  margin-left: auto;
  margin-right: auto;
}

/* Zone lumineuse unique par écran (tache de lumière douce) */
/* Usage : appliquer sur l'élément hero principal. */
.vna-spotlight {
  position: relative;
  overflow: hidden;
}
.vna-spotlight::after {
  content: '';
  position: absolute;
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 60%;
  background: radial-gradient(
    ellipse at center,
    rgba(253, 142, 45, 0.08) 0%,
    transparent 70%
  );
  pointer-events: none;
  z-index: 0;
}
.vna-spotlight > * { position: relative; z-index: 1; }

/* =============================================================
   7. OVERRIDES HELLO ELEMENTOR / ELEMENTOR
   ============================================================= */

/* Fond global */
.elementor-page,
.e-con,
.elementor-section-wrap {
  background-color: transparent;
}

/* Titres Elementor : forcer la typo heading */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--vna-font-heading) !important;
  letter-spacing: var(--vna-ls-heading);
}

/* Texte Elementor */
.elementor-widget-text-editor {
  font-family: var(--vna-font-body);
  line-height: var(--vna-lh-body);
}

/* Bouton Elementor — cohérence avec .vna-btn */
.elementor-button {
  font-family: var(--vna-font-body) !important;
  letter-spacing: 0.04em;
}

/* Navigation : fond nuit */
.site-header,
#site-header {
  background-color: var(--vna-bg);
  border-bottom: 1px solid var(--vna-border);
}

/* Footer */
.site-footer,
#site-footer {
  background-color: var(--vna-bg-alt);
  color: var(--vna-text-muted);
  font-size: var(--vna-fs-small);
  padding: var(--vna-space-6) 0;
  border-top: 1px solid var(--vna-border);
}

/* Hello Elementor désactive les marges par défaut — on aligne */
.page-content,
.entry-content {
  padding: 0;
  margin: 0;
}

/* =============================================================
   8. MOBILE FIRST — ajustements responsives
   ============================================================= */
@media (max-width: 767px) {
  :root {
    --vna-section-py: 48px;
  }

  .vna-display {
    font-size: clamp(2rem, 8vw, 3rem);
  }

  .vna-lead {
    font-size: 1.1rem;
  }

  .vna-btn {
    width: 100%;
    justify-content: center;
  }
}

/* =============================================================
   9. EN-TÊTE / NAVIGATION GLOBALE (charte « Clair-obscur »)
   Barre fixe, transparente au repos, qui se teinte de nuit et se
   floute dès que la page défile (classe .is-scrolled ajoutée en JS).
   Injectée dans header.php — présente sur toutes les pages.
   ============================================================= */
.vn-nav {
  /* tokens locaux dérivés du design system */
  --vn-bord:       clamp(20px, 5vw, 64px);
  --vn-ligne:      rgba(140, 142, 121, 0.30);
  --vn-ligne-fine: rgba(140, 142, 121, 0.16);
  --vn-profond:    var(--vna-color-deep);

  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--vna-z-nav);
  transition: background 0.35s ease, border-color 0.35s ease;
  border-bottom: 1px solid transparent;
}

/* Au défilement : teinte nuit + flou */
.vn-nav.is-scrolled {
  background: color-mix(in srgb, var(--vna-color-night) 90%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom-color: var(--vn-ligne-fine);
}

.vn-nav-in {
  max-width: 1240px;
  margin: 0 auto;
  padding: 18px var(--vn-bord);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--vna-space-3);
}

.vn-logo {
  display: inline-flex;
  align-items: center;
}
.vn-logo img {
  height: 30px;
  width: auto;
  display: block;
}

/* Liste de liens (menu WordPress : <ul class="vn-links"><li><a>) */
.vn-links {
  display: flex;
  align-items: center;
  gap: var(--vna-space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}
.vn-links li {
  display: flex;
  align-items: center;
}
.vn-links a {
  font-family: var(--vna-font-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--vna-color-text);
  opacity: 0.78;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.vn-links a:hover {
  opacity: 1;
  color: var(--vna-color-accent);
}
/* État « page active » (classes ajoutées par WordPress sur le <li>).
   On n'altère pas la braise d'ambre de « Nous écrire » (:not(.vn-write)). */
.vn-links li.current-menu-item:not(.vn-write):not(.menu-item-type-custom) > a,
.vn-links li.current_page_item:not(.vn-write):not(.menu-item-type-custom) > a {
  opacity: 1;
  color: var(--vna-color-text);
  border-bottom: 1px solid var(--vna-color-muted);
  padding-bottom: 2px;
}

/* « Nous écrire » : l'unique braise d'ambre.
   Ajouter la classe CSS « vn-write » à l'entrée de menu voulue. */
.vn-links .vn-write a {
  opacity: 1;
  color: var(--vna-color-accent);
  border-bottom: 1px solid color-mix(in srgb, var(--vna-color-accent) 50%, transparent);
  padding-bottom: 2px;
}

/* Bouton burger (mobile uniquement) */
.vn-burger {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--vn-ligne);
  background: none;
  color: var(--vna-color-text);
  border-radius: 50%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}

@media (max-width: 880px) {
  .vn-links {
    display: none;
  }
  .vn-burger {
    display: inline-flex;
  }
}

/* =============================================================
   10. PAGE D'ACCUEIL (Elementor V4 atomic) — préfixe vnh-
   Maquette « Lumière de scène ». Spécificité (0,3,0)
   [.elementor .vnh-x.vnh-x] pour battre base-desktop.css (0,2,0).
   Chaque conteneur redéclare display + padding (annule le 10px de base).
   Tokens réutilisés du design system (--vna-*). Lignes : sourdine 30/16 %.
   ============================================================= */

/* — Sections : conteneur centré + rythme vertical — */
.elementor .vnh-section.vnh-section{display:block;max-width:1240px;margin-inline:auto;padding:clamp(72px,11vw,128px) clamp(20px,5vw,64px);}

/* — Surtitre (eyebrow) — */
.elementor .vnh-eyebrow.vnh-eyebrow{display:flex;align-items:center;gap:14px;padding:0;margin:0;font-family:var(--vna-font-body);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--vna-color-muted);}
.elementor .vnh-dot.vnh-dot{display:block;flex:none;padding:0;width:7px;height:7px;border-radius:50%;background:var(--vna-color-accent);}

/* — Emphase inline (italique ambre) & lien au fil du texte — */
.elementor .vnh-it{font-style:italic;color:var(--vna-color-accent);}
.elementor .vnh-inline{color:var(--vna-color-accent);border-bottom:1px solid color-mix(in srgb,var(--vna-color-accent) 45%,transparent);padding-bottom:1px;text-decoration:none;}
.elementor .vnh-inline:hover{border-bottom-color:var(--vna-color-accent);}

/* — Bouton primaire (l'unique braise) — */
.elementor .vnh-btn.vnh-btn{display:inline-flex;align-items:center;gap:12px;line-height:1;font-family:var(--vna-font-body);font-size:16px;font-weight:600;letter-spacing:.01em;padding:16px 32px;border-radius:3px;border:1px solid var(--vna-color-accent);background:var(--vna-color-accent);color:var(--vna-color-night);text-decoration:none;transition:background .18s ease,border-color .18s ease,color .18s ease;}
.elementor .vnh-btn.vnh-btn:hover{background:color-mix(in srgb,var(--vna-color-accent) 84%,#fff);border-color:color-mix(in srgb,var(--vna-color-accent) 84%,#fff);color:var(--vna-color-night);}

/* — Lien fléché discret (bouton stylé plat) — */
.elementor .vnh-cta.vnh-cta{display:inline-flex;align-items:center;gap:10px;padding:0 0 4px;background:none;border:none;border-bottom:1px solid color-mix(in srgb,var(--vna-color-accent) 40%,transparent);border-radius:0;font-family:var(--vna-font-body);font-size:15px;font-weight:600;color:var(--vna-color-accent);white-space:nowrap;cursor:pointer;transition:gap .2s,border-color .2s;}
.elementor .vnh-cta.vnh-cta:hover{gap:16px;border-bottom-color:var(--vna-color-accent);}

/* — En-tête de mouvement (I / II) — */
.elementor .vnh-mvt.vnh-mvt{display:flex;align-items:baseline;gap:24px;padding:24px 0 0;margin:0 0 64px;border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnh-mvt-num.vnh-mvt-num{flex:none;margin:0;padding:0;font-family:var(--vna-font-heading);font-style:italic;font-size:clamp(34px,5vw,60px);line-height:.9;color:var(--vna-color-accent);}
.elementor .vnh-mvt-name.vnh-mvt-name{margin:0;padding:0 0 .4em;font-family:var(--vna-font-body);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--vna-color-muted);}

/* ── SECTION 1 · HERO ── */
.elementor .vnh-hero.vnh-hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;min-height:100svh;max-width:1240px;margin-inline:auto;padding:clamp(120px,18vh,200px) clamp(20px,5vw,64px) clamp(48px,9vh,96px);}
.elementor .vnh-hero-bg.vnh-hero-bg{position:absolute;inset:0;z-index:0;display:block;padding:0;background:var(--vna-color-night);}
.elementor .vnh-hero-img.vnh-hero-img,.elementor .vnh-hero-img.vnh-hero-img img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;opacity:.55;filter:grayscale(.18) contrast(1.05);}
.elementor .vnh-hero-veil.vnh-hero-veil{position:absolute;inset:0;z-index:1;display:block;padding:0;background:color-mix(in srgb,var(--vna-color-night) 62%,transparent);}
.elementor .vnh-hero-in.vnh-hero-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;padding:0;}
.elementor .vnh-h1.vnh-h1{margin:32px 0 0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(38px,6.6vw,92px);line-height:1.02;letter-spacing:-.005em;max-width:18ch;color:var(--vna-color-text);}
.elementor .vnh-change.vnh-change{margin:24px 0 0;padding:0;font-family:var(--vna-font-heading);font-style:italic;font-size:clamp(26px,3.4vw,44px);line-height:1.1;color:var(--vna-color-accent);}
.elementor .vnh-hero-act.vnh-hero-act{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:0;margin-top:clamp(36px,5vw,56px);}

/* ── SECTION 2 · LE PROJET ── */
.elementor .vnh-projet.vnh-projet{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(40px,7vw,104px);align-items:start;padding:0;}
.elementor .vnh-projet-col.vnh-projet-col{display:block;padding:0;}
.elementor .vnh-projet-title.vnh-projet-title{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(32px,4.6vw,58px);line-height:1.07;letter-spacing:-.005em;max-width:11ch;color:var(--vna-color-text);}
.elementor .vnh-prose.vnh-prose{display:block;padding:0;max-width:680px;}
.elementor .vnh-prose-lead.vnh-prose-lead{margin:0 0 24px;padding:0;font-family:var(--vna-font-body);font-size:clamp(19px,1.6vw,22px);line-height:1.55;color:var(--vna-color-text);}
.elementor .vnh-prose-p.vnh-prose-p{margin:0 0 24px;padding:0;font-family:var(--vna-font-body);font-size:clamp(17px,1.4vw,19px);line-height:1.62;color:#dcdcc9;}
.elementor .vnh-prose-end.vnh-prose-end{margin-bottom:0;}
.elementor .vnh-figure.vnh-figure{display:block;padding:0;margin:clamp(56px,8vw,96px) 0 0;}
.elementor .vnh-frame.vnh-frame{position:relative;overflow:hidden;display:block;padding:0;background:var(--vna-color-deep);border:1px solid rgba(140,142,121,.16);aspect-ratio:21/9;}
.elementor .vnh-frame-img.vnh-frame-img,.elementor .vnh-frame-img.vnh-frame-img img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.12) contrast(1.04);}
.elementor .vnh-figcap.vnh-figcap{display:flex;align-items:center;gap:12px;padding:0;margin-top:14px;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:11.5px;letter-spacing:.06em;color:var(--vna-color-muted);}
.elementor .vnh-figcap-tk.vnh-figcap-tk{flex:none;display:block;padding:0;width:24px;height:1px;background:var(--vna-color-accent);}

/* ── SECTION 3 · CE QU'ON CHERCHE ── */
.elementor .vnh-cherche-intro.vnh-cherche-intro{display:block;padding:0;max-width:30ch;margin:0 0 64px;}
.elementor .vnh-cherche-title.vnh-cherche-title{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(28px,3.8vw,46px);line-height:1.07;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnh-cols.vnh-cols{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;border-top:1px solid rgba(140,142,121,.30);}
.elementor .vnh-col.vnh-col{display:flex;flex-direction:column;gap:24px;padding:clamp(32px,4vw,52px) 0;}
.elementor .vnh-col-first.vnh-col-first{padding-right:clamp(32px,5vw,72px);}
.elementor .vnh-col-last.vnh-col-last{padding-left:clamp(32px,5vw,72px);border-left:1px solid rgba(140,142,121,.16);}
.elementor .vnh-idx.vnh-idx{margin:0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:13px;letter-spacing:.05em;color:var(--vna-color-accent);}
.elementor .vnh-col-title.vnh-col-title{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(24px,2.8vw,33px);line-height:1.07;letter-spacing:-.005em;max-width:18ch;color:var(--vna-color-text);}
.elementor .vnh-col-p.vnh-col-p{margin:0;padding:0;font-family:var(--vna-font-body);font-size:16.5px;line-height:1.6;color:#c7caba;max-width:42ch;}
.elementor .vnh-col-act.vnh-col-act{display:block;padding:16px 0 0;margin-top:auto;}

/* ── SECTION 4 · RAPPEL CONTACT ── */
.elementor .vnh-contact.vnh-contact{position:relative;overflow:hidden;display:block;text-align:center;max-width:1240px;margin-inline:auto;padding:clamp(96px,14vw,168px) clamp(20px,5vw,64px);border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnh-contact-in.vnh-contact-in{position:relative;z-index:2;display:block;padding:0;max-width:760px;margin-inline:auto;}
.elementor .vnh-contact-title.vnh-contact-title{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(36px,5.6vw,76px);line-height:1;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnh-contact-sub.vnh-contact-sub{margin:32px auto 0;padding:0;max-width:54ch;font-family:var(--vna-font-body);font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:#cfd2c2;}
.elementor .vnh-contact-act.vnh-contact-act{display:block;padding:0;margin-top:clamp(40px,5vw,56px);}

/* ── PIED DE PAGE ── */
.elementor .vnh-foot.vnh-foot{display:block;max-width:1240px;margin-inline:auto;padding:64px clamp(20px,5vw,64px) 32px;border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnh-foot-grid.vnh-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;padding:0;margin:0 0 48px;}
.elementor .vnh-foot-brand.vnh-foot-brand{display:block;padding:0;}
.elementor .vnh-mark.vnh-mark{margin:0 0 16px;padding:0;font-family:var(--vna-font-heading);font-size:26px;line-height:1.07;color:var(--vna-color-text);}
.elementor .vnh-tag.vnh-tag{margin:0;padding:0;font-family:var(--vna-font-body);font-size:14px;line-height:1.6;color:var(--vna-color-muted);max-width:300px;}
.elementor .vnh-foot-col.vnh-foot-col{display:flex;flex-direction:column;gap:14px;padding:0;}
.elementor .vnh-foot-h4.vnh-foot-h4{margin:0;padding:0 0 10px;font-family:var(--vna-font-body);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--vna-color-muted);}
.elementor .vnh-foot-link.vnh-foot-link{margin:0;padding:0;font-family:var(--vna-font-body);font-size:15px;color:#cfd2c2;}
.elementor .vnh-foot-link.vnh-foot-link a{color:#cfd2c2;text-decoration:none;transition:color .2s;}
.elementor .vnh-foot-link.vnh-foot-link a:hover{color:var(--vna-color-accent);}
/* Colonnes de liens rendues par un menu WordPress (Apparence → Menus) */
.elementor .vnh-foot-menu.vnh-foot-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.elementor .vnh-foot-menu.vnh-foot-menu li{margin:0;padding:0;}
.elementor .vnh-foot-menu.vnh-foot-menu a{font-family:var(--vna-font-body);font-size:15px;color:#cfd2c2;text-decoration:none;transition:color .2s;}
.elementor .vnh-foot-menu.vnh-foot-menu a:hover{color:var(--vna-color-accent);}
.elementor .vnh-foot-ph.vnh-foot-ph{margin:0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:13px;color:var(--vna-color-muted);}
.elementor .vnh-foot-bottom.vnh-foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:24px 0 0;margin:0;border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnh-foot-meta.vnh-foot-meta{margin:0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:11.5px;letter-spacing:.04em;color:var(--vna-color-muted);}

/* ── Responsive ── */
@media (max-width:880px){
  .elementor .vnh-projet.vnh-projet{grid-template-columns:1fr;gap:48px;}
  .elementor .vnh-cols.vnh-cols{grid-template-columns:1fr;border-top:none;}
  .elementor .vnh-col-first.vnh-col-first{padding-right:0;border-top:1px solid rgba(140,142,121,.30);}
  .elementor .vnh-col-last.vnh-col-last{padding-left:0;border-left:none;border-top:1px solid rgba(140,142,121,.16);}
  .elementor .vnh-foot-grid.vnh-foot-grid{grid-template-columns:1fr 1fr;}
  .elementor .vnh-foot-brand.vnh-foot-brand{grid-column:1 / -1;}
}
@media (max-width:520px){
  .elementor .vnh-foot-grid.vnh-foot-grid{grid-template-columns:1fr;}
}

/* ── Emplacements d'image vides (façon maquette « Clair-obscur ») ──
   On masque le placeholder gris d'Elementor pour garder le fond sombre.
   Le cadre figure affiche alors un « + » et un libellé discrets, comme
   la maquette. Dès qu'un vrai visuel est ajouté (src ≠ placeholder),
   l'image s'affiche normalement et recouvre le libellé. */
.elementor img.vnh-hero-img[src*="placeholder"],
.elementor img.vnh-frame-img[src*="placeholder"]{opacity:0;}
.elementor .vnh-frame-img.vnh-frame-img{position:relative;z-index:1;}
.elementor .vnh-frame.vnh-frame::before{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,calc(-50% - 15px));z-index:0;font-family:var(--vna-font-body);font-size:30px;font-weight:300;line-height:1;color:var(--vna-color-muted);opacity:.45;}
.elementor .vnh-frame.vnh-frame::after{content:"SALLE / SCÈNE";position:absolute;top:50%;left:50%;transform:translate(-50%,calc(-50% + 16px));z-index:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:12px;letter-spacing:.18em;color:var(--vna-color-muted);opacity:.55;}

/* =============================================================
   11. PAGE « LE PROJET » (Elementor V4 atomic) — préfixe vnp-
   Note d'intention. Même méthode que §10 : spécificité (0,3,0),
   tokens --vna-*, lignes sourdine 30/16 %. Réutilise plusieurs
   classes de §10 (vnh-eyebrow, vnh-dot, vnh-it, vnh-inline,
   vnh-btn, vnh-mvt*, vnh-frame*, vnh-figcap*, vnh-foot*).
   ============================================================= */

/* — En-tête de page — */
.elementor .vnp-phead.vnp-phead{position:relative;overflow:hidden;display:block;max-width:1240px;margin-inline:auto;padding:clamp(140px,20vh,210px) clamp(20px,5vw,64px) clamp(56px,9vw,104px);}
.elementor .vnp-phead-bg.vnp-phead-bg{position:absolute;inset:0;z-index:0;display:block;padding:0;background:var(--vna-color-night);}
.elementor .vnp-phead-img.vnp-phead-img,.elementor .vnp-phead-img.vnp-phead-img img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;opacity:.4;filter:grayscale(.2) contrast(1.05);}
.elementor .vnp-phead-veil.vnp-phead-veil{position:absolute;inset:0;z-index:1;display:block;padding:0;background:color-mix(in srgb,var(--vna-color-night) 68%,transparent);}
.elementor .vnp-phead-in.vnp-phead-in{position:relative;z-index:2;display:block;padding:0;}
.elementor .vnp-eyebrow-p.vnp-eyebrow-p{margin:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;}
.elementor .vnp-h1.vnp-h1{margin:32px 0 0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(40px,6.4vw,86px);line-height:1.02;letter-spacing:-.005em;max-width:15ch;color:var(--vna-color-text);}
.elementor .vnp-reponse.vnp-reponse{margin:clamp(28px,4vw,40px) 0 0;padding:0;max-width:680px;font-family:var(--vna-font-body);font-size:clamp(18px,1.7vw,22px);line-height:1.6;color:#e2dfca;}

/* — Section générique (mouvement) — */
.elementor .vnp-section.vnp-section{display:block;max-width:1240px;margin-inline:auto;padding:clamp(64px,10vw,120px) clamp(20px,5vw,64px);}
.elementor .vnp-mv-grid.vnp-mv-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(36px,6vw,96px);align-items:start;padding:0;}
.elementor .vnp-mv-col.vnp-mv-col{display:block;padding:0;}
.elementor .vnp-h2.vnp-h2{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(30px,4.2vw,52px);line-height:1.08;letter-spacing:-.005em;max-width:12ch;color:var(--vna-color-text);}
.elementor .vnp-prose.vnp-prose{display:block;padding:0;max-width:680px;}
.elementor .vnp-prose-lead.vnp-prose-lead{margin:0 0 24px;padding:0;font-family:var(--vna-font-body);font-size:clamp(17px,1.4vw,19px);line-height:1.62;color:var(--vna-color-text);}
.elementor .vnp-prose-p.vnp-prose-p{margin:0 0 24px;padding:0;font-family:var(--vna-font-body);font-size:clamp(17px,1.4vw,19px);line-height:1.62;color:#dcdcc9;}
.elementor .vnp-prose-end.vnp-prose-end{margin-bottom:0;}

/* — Démarche artistique : trois partis pris (vnp-pp) — */
.elementor .vnp-pp.vnp-pp{display:grid;grid-template-columns:40px 1fr;gap:clamp(14px,2vw,28px);padding:clamp(24px,3.5vw,34px) 0;margin:0;border-top:1px solid rgba(140,142,121,.22);}
.elementor .vnp-pp-first.vnp-pp-first{margin-top:clamp(28px,4vw,40px);}
.elementor .vnp-pp-last.vnp-pp-last{border-bottom:1px solid rgba(140,142,121,.22);}
.elementor .vnp-pp-num.vnp-pp-num{margin:0;padding:5px 0 0;font-family:var(--vna-font-body);font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--vna-color-accent);}
.elementor .vnp-pp-body.vnp-pp-body{display:block;padding:0;}
.elementor .vnp-pp-h.vnp-pp-h{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(22px,2.5vw,28px);line-height:1.14;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnp-pp-p.vnp-pp-p{margin:14px 0 0;padding:0;font-family:var(--vna-font-body);font-size:16.5px;line-height:1.62;color:#cdcebb;max-width:54ch;}

/* — Figure (réutilise vnh-frame / vnh-figcap) — */
.elementor .vnp-figure-sec.vnp-figure-sec{display:block;max-width:1240px;margin-inline:auto;padding:clamp(8px,2vw,24px) clamp(20px,5vw,64px);}
.elementor .vnh-figcap .vnp-figcap-p.vnp-figcap-p{margin:0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:11.5px;letter-spacing:.06em;color:var(--vna-color-muted);}

/* — Panneau « Où nous en sommes » — */
.elementor .vnp-panel.vnp-panel{display:block;padding:0;background:var(--vna-color-deep);border-top:1px solid rgba(140,142,121,.16);border-bottom:1px solid rgba(140,142,121,.16);}
.elementor .vnp-status.vnp-status{display:flex;flex-wrap:wrap;gap:16px;padding:0;margin:0 0 32px;}
.elementor .vnp-chip.vnp-chip{display:inline-flex;align-items:center;gap:9px;padding:8px 16px;margin:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:12px;letter-spacing:.04em;color:var(--vna-color-muted);border:1px solid rgba(140,142,121,.16);border-radius:999px;}
.elementor .vnp-chip.vnp-chip::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--vna-color-muted);}
.elementor .vnp-chip-on.vnp-chip-on{color:var(--vna-color-text);border-color:color-mix(in srgb,var(--vna-color-accent) 35%,transparent);}
.elementor .vnp-chip-on.vnp-chip-on::before{background:var(--vna-color-accent);}

/* — Rejoindre (l'unique CTA) — */
.elementor .vnp-join.vnp-join{border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnp-join-lede.vnp-join-lede{display:block;padding:0;max-width:34ch;margin:0 0 64px;}
.elementor .vnp-join-h2.vnp-join-h2{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(32px,4.8vw,60px);line-height:1.06;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnp-join-lede-p.vnp-join-lede-p{margin:24px 0 0;padding:0;font-family:var(--vna-font-body);font-size:clamp(17px,1.4vw,19px);line-height:1.6;max-width:680px;color:#d3d4c4;}
.elementor .vnp-audiences.vnp-audiences{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;border-top:1px solid rgba(140,142,121,.30);}
.elementor .vnp-aud.vnp-aud{display:flex;flex-direction:column;gap:24px;padding:clamp(32px,4vw,52px) 0;}
.elementor .vnp-aud-first.vnp-aud-first{padding-right:clamp(32px,5vw,72px);}
.elementor .vnp-aud-last.vnp-aud-last{padding-left:clamp(32px,5vw,72px);border-left:1px solid rgba(140,142,121,.16);}
.elementor .vnp-aud-role.vnp-aud-role{margin:0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:13px;letter-spacing:.05em;color:var(--vna-color-accent);}
.elementor .vnp-aud-h3.vnp-aud-h3{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(24px,2.7vw,32px);line-height:1.07;letter-spacing:-.005em;max-width:16ch;color:var(--vna-color-text);}
.elementor .vnp-aud-p.vnp-aud-p{margin:0;padding:0;font-family:var(--vna-font-body);font-size:16.5px;line-height:1.6;color:#c7caba;max-width:44ch;}
.elementor .vnp-join-act.vnp-join-act{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:clamp(36px,5vw,56px) 0 0;margin-top:clamp(48px,6vw,72px);border-top:1px solid rgba(140,142,121,.16);}
.elementor .vnp-join-act-p.vnp-join-act-p{margin:0;padding:0;max-width:40ch;font-family:var(--vna-font-heading);font-style:italic;font-size:clamp(20px,2.2vw,28px);line-height:1.3;color:var(--vna-color-text);}

/* — FAQ (tout déplié) — */
.elementor .vnp-faq-head.vnp-faq-head{display:block;padding:0;margin:0 0 48px;}
.elementor .vnp-faq-h2.vnp-faq-h2{margin:0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(28px,3.6vw,44px);line-height:1.08;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnp-faq.vnp-faq{display:block;padding:0;max-width:840px;border-top:1px solid rgba(140,142,121,.30);}
.elementor .vnp-faq-item.vnp-faq-item{display:block;padding:32px 0;border-bottom:1px solid rgba(140,142,121,.16);}
.elementor .vnp-faq-q.vnp-faq-q{margin:0 0 16px;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(19px,2vw,25px);line-height:1.2;color:var(--vna-color-text);}
.elementor .vnp-faq-a.vnp-faq-a{display:block;padding:0;max-width:680px;}
.elementor .vnp-faq-a-p.vnp-faq-a-p{margin:0;padding:0;font-family:var(--vna-font-body);font-size:16.5px;line-height:1.6;color:#c7caba;}

/* — Em dans la marque de pied (réutilise vnh-foot) — */
.elementor .vnh-mark em{font-style:italic;font-weight:400;color:var(--vna-color-accent);}

/* — Emplacement d'image vide de l'en-tête — */
.elementor img.vnp-phead-img[src*="placeholder"]{opacity:0;}

/* — Responsive — */
@media (max-width:880px){
  .elementor .vnp-mv-grid.vnp-mv-grid{grid-template-columns:1fr;gap:32px;}
  .elementor .vnp-pp.vnp-pp{grid-template-columns:32px 1fr;gap:16px;}
  .elementor .vnp-audiences.vnp-audiences{grid-template-columns:1fr;}
  .elementor .vnp-aud-first.vnp-aud-first{padding-right:0;border-top:1px solid rgba(140,142,121,.30);}
  .elementor .vnp-aud-last.vnp-aud-last{padding-left:0;border-left:none;border-top:1px solid rgba(140,142,121,.16);}
}

/* =============================================================
   12. PAGE « CONTACT » — gabarit codé (template-contact.php), préfixe vnc-
   Page non-Elementor (formulaire codé, sans plugin). base-desktop.css n'est
   pas chargé ici : la spécificité simple (.vnc-page .vnc-x) suffit. Le pied
   de page réutilise les classes vnh-foot* (d'où le wrapper .elementor).
   Tokens --vna-*. Une seule braise d'ambre : le bouton d'envoi.
   ============================================================= */

/* — En-tête — */
.vnc-page{display:block;background:var(--vna-color-night);color:var(--vna-color-text);}
.vnc-page .vnc-phead{max-width:880px;margin-inline:auto;padding:clamp(140px,20vh,210px) clamp(20px,5vw,64px) clamp(28px,5vw,44px);}
.vnc-page .vnc-eyebrow{display:inline-flex;align-items:center;gap:14px;margin:0;font-family:var(--vna-font-body);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--vna-color-muted);}
.vnc-page .vnc-dot{width:7px;height:7px;border-radius:50%;background:var(--vna-color-accent);flex:none;}
.vnc-page .vnc-h1{margin:32px 0 0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(40px,6.4vw,76px);line-height:1.04;letter-spacing:-.005em;color:var(--vna-color-text);}
.vnc-page .vnc-it{font-style:italic;color:var(--vna-color-accent);}
.vnc-page .vnc-lead{margin:clamp(24px,4vw,32px) 0 0;max-width:680px;font-family:var(--vna-font-body);font-size:clamp(18px,1.7vw,21px);line-height:1.6;color:#e2dfca;}

/* — Grille aside + formulaire — */
.vnc-page .vnc-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(36px,6vw,80px);align-items:start;max-width:1080px;margin-inline:auto;padding:clamp(40px,6vw,72px) clamp(20px,5vw,64px) clamp(64px,9vw,112px);}
.vnc-page .vnc-aside{display:flex;flex-direction:column;gap:28px;}
.vnc-page .vnc-aside-h{margin:0;font-family:var(--vna-font-body);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--vna-color-muted);}
.vnc-page .vnc-who{display:block;}
.vnc-page .vnc-who-role{margin:0 0 4px;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:13px;letter-spacing:.04em;color:var(--vna-color-accent);}
.vnc-page .vnc-who-p{margin:0;font-family:var(--vna-font-body);font-size:15px;line-height:1.55;color:#c7caba;max-width:30ch;}

/* — Formulaire — */
.vnc-page .vnc-form{display:flex;flex-direction:column;gap:22px;max-width:560px;}
.vnc-page .vnc-field{display:flex;flex-direction:column;gap:8px;}
.vnc-page .vnc-label{font-family:var(--vna-font-body);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--vna-color-text);}
.vnc-page .vnc-input{font-family:var(--vna-font-body);font-size:16px;line-height:1.5;color:var(--vna-color-text);background:var(--vna-color-deep);border:1px solid rgba(140,142,121,.30);border-radius:3px;padding:13px 16px;width:100%;transition:border-color .18s ease,background .18s ease;}
.vnc-page .vnc-input::placeholder{color:var(--vna-color-muted);}
.vnc-page .vnc-input:focus{outline:none;border-color:var(--vna-color-accent);background:color-mix(in srgb,var(--vna-color-deep) 82%,#000);}
.vnc-page .vnc-textarea{resize:vertical;min-height:148px;}
.vnc-page .vnc-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23FD8E2D' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;}
.vnc-page select.vnc-select option{color:#10131c;background:#F4F0D3;}
.vnc-page .vnc-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;}
.vnc-page .vnc-submit{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;font-family:var(--vna-font-body);font-size:16px;font-weight:600;letter-spacing:.01em;line-height:1;padding:16px 32px;border-radius:3px;border:1px solid var(--vna-color-accent);background:var(--vna-color-accent);color:var(--vna-color-night);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease;}
.vnc-page .vnc-submit:hover{background:color-mix(in srgb,var(--vna-color-accent) 84%,#fff);border-color:color-mix(in srgb,var(--vna-color-accent) 84%,#fff);}
.vnc-page .vnc-submit:focus-visible{outline:2px solid var(--vna-color-accent);outline-offset:3px;}
.vnc-page .vnc-arr{font-weight:400;}
.vnc-page .vnc-consent{margin:0;font-family:var(--vna-font-body);font-size:13px;line-height:1.5;color:var(--vna-color-muted);max-width:48ch;}
.vnc-page .vnc-inline{color:var(--vna-color-accent);border-bottom:1px solid color-mix(in srgb,var(--vna-color-accent) 45%,transparent);}
.vnc-page .vnc-inline:hover{border-bottom-color:var(--vna-color-accent);}

/* — Messages — */
.vnc-page .vnc-alert{margin:0 0 28px;padding:18px 22px;border-radius:4px;border:1px solid;max-width:560px;}
.vnc-page .vnc-alert-ok{background:color-mix(in srgb,var(--vna-color-accent) 10%,transparent);border-color:color-mix(in srgb,var(--vna-color-accent) 45%,transparent);}
.vnc-page .vnc-alert-err{background:rgba(190,70,45,.10);border-color:rgba(205,90,65,.55);}
.vnc-page .vnc-alert-t{margin:0 0 4px;font-family:var(--vna-font-heading);font-size:21px;line-height:1.1;color:var(--vna-color-text);}
.vnc-page .vnc-alert-d{margin:0;font-family:var(--vna-font-body);font-size:15px;line-height:1.55;color:#d3d4c4;}
.vnc-page .vnc-alert-d + .vnc-alert-d{margin-top:4px;}

/* — Responsive — */
@media (max-width:880px){
  .vnc-page .vnc-grid{grid-template-columns:1fr;gap:40px;}
}

/* =============================================================
   13. PAGES LÉGALES (Elementor V4 atomic) — préfixe vnl-
   Mentions légales + politique de confidentialité. Colonne de lecture
   étroite, sobre. Spécificité (0,3,0). Réutilise vnh-eyebrow/vnh-dot,
   vnp-eyebrow-p, vnh-inline (liens), vnh-foot* (pied).
   ============================================================= */
.elementor .vnl-phead.vnl-phead{display:block;max-width:880px;margin-inline:auto;padding:clamp(140px,20vh,200px) clamp(20px,5vw,64px) clamp(20px,4vw,36px);}
.elementor .vnl-h1.vnl-h1{margin:28px 0 0;padding:0;font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(36px,5.4vw,62px);line-height:1.04;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnl-date.vnl-date{margin:18px 0 0;padding:0;font-family:var(--vna-font-mono,ui-monospace,Menlo,Consolas,monospace);font-size:12px;letter-spacing:.06em;color:var(--vna-color-muted);}
.elementor .vnl-lead.vnl-lead{margin:20px 0 0;padding:0;max-width:680px;font-family:var(--vna-font-body);font-size:clamp(16px,1.5vw,18px);line-height:1.6;color:#d3d4c4;}
.elementor .vnl-section.vnl-section{display:block;max-width:880px;margin-inline:auto;padding:clamp(32px,5vw,56px) clamp(20px,5vw,64px) clamp(64px,9vw,110px);}
.elementor .vnl-col.vnl-col{display:block;padding:0;max-width:760px;}
.elementor .vnl-block.vnl-block{display:block;padding:0;margin:0 0 clamp(32px,4vw,44px);}
.elementor .vnl-block-end.vnl-block-end{margin-bottom:0;}
.elementor .vnl-h2.vnl-h2{margin:0 0 16px;padding:18px 0 0;border-top:1px solid rgba(140,142,121,.16);font-family:var(--vna-font-heading);font-weight:400;font-size:clamp(22px,2.6vw,30px);line-height:1.12;letter-spacing:-.005em;color:var(--vna-color-text);}
.elementor .vnl-p.vnl-p{margin:0 0 14px;padding:0;font-family:var(--vna-font-body);font-size:16.5px;line-height:1.7;color:#c7caba;}
.elementor .vnl-p-end.vnl-p-end{margin-bottom:0;}
.elementor .vnl-p strong{color:var(--vna-color-text);font-weight:600;}
