@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');
:root{--bg:#090909;--panel:#10100f;--gold:#d5a344;--gold2:#f0c56a;--text:#f5f2eb;--muted:#aaa49a;--line:#2b2925}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Montserrat,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.loader{position:fixed;inset:0;background:#050505;z-index:99;display:grid;place-items:center;transition:.8s}.loader img{width:min(420px,70vw);animation:pulse 1.4s ease-in-out infinite alternate}.loader span{position:absolute;width:0;height:1px;background:var(--gold);bottom:20%;animation:load 1.4s forwards}.loaded .loader{opacity:0;visibility:hidden}.nav{height:86px;position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;padding:0 6vw;background:rgba(5,5,5,.78);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}.brand img{width:145px;height:68px;object-fit:cover;object-position:center}.nav nav{margin-left:auto;display:flex;gap:28px;font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.nav nav a{position:relative}.nav nav a:after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:1px;background:var(--gold);transition:.3s}.nav nav a:hover:after{width:100%}.lang,.menu{margin-left:24px;border:1px solid var(--gold);background:transparent;color:#fff;padding:10px 13px;cursor:pointer}.menu{display:none}.hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:130px 8vw 80px;overflow:hidden}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.98) 0%,rgba(5,5,5,.86) 42%,rgba(5,5,5,.25) 100%),radial-gradient(circle at 78% 42%,#654418 0,#1d1710 23%,#080808 60%);transform:scale(1.05);will-change:transform}.hero-bg:after{content:"";position:absolute;right:6%;top:18%;width:40%;height:64%;border:1px solid rgba(213,163,68,.18);background:linear-gradient(135deg,rgba(213,163,68,.08),transparent 50%);box-shadow:inset 0 0 100px #000}.hero-content{position:relative;max-width:720px;z-index:2}.eyebrow,.kicker{font-size:12px;letter-spacing:4px;color:#c6bfb3}.hero h1{font-size:clamp(54px,7vw,105px);margin:18px 0 0;line-height:.9;letter-spacing:-3px}.hero h1 em,.hero h2 span,.section h2 span,.quote h2 span{font-style:normal;color:var(--gold2)}.hero h2{font-weight:300;font-size:clamp(30px,4vw,55px);margin:22px 0}.hero-content>p:not(.eyebrow){max-width:650px;line-height:1.8;color:#cbc6bd}.actions{display:flex;gap:16px;margin-top:35px}.btn{display:inline-flex;justify-content:center;align-items:center;padding:17px 24px;text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:1px;transition:.3s;cursor:pointer}.gold{background:linear-gradient(110deg,#e9b95b,#c58d2c);color:#090909;border:1px solid #e4b75f}.gold:hover{transform:translateY(-3px);box-shadow:0 10px 35px rgba(213,163,68,.22)}.outline{border:1px solid #80652f}.outline:hover{background:#d5a344;color:#080808}.scroll{position:absolute;right:3vw;bottom:45px;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:#827c73}.trust{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);background:#0d0d0c}.trust>div{padding:25px 6vw;display:flex;align-items:center;gap:18px;border-right:1px solid var(--line)}.trust b{color:var(--gold);font-size:28px}.trust strong,.trust small{display:block}.trust strong{font-size:11px;letter-spacing:2px;text-transform:uppercase}.trust small{color:var(--muted);margin-top:6px;font-size:10px}.section{padding:110px 7vw}.split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.image-card{height:540px;background:radial-gradient(circle at 40% 30%,#815e2b 0,#292016 22%,#111 60%);border:1px solid #302a20;position:relative;overflow:hidden}.image-card:after{content:"NSG";position:absolute;bottom:-30px;right:15px;font-size:170px;font-weight:700;color:rgba(213,163,68,.06)}.section h2,.quote h2{font-size:clamp(34px,4vw,58px);font-weight:400;margin:18px 0 25px}.copy p{color:var(--muted);line-height:1.9}.areas{color:var(--gold)!important;letter-spacing:2px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:50px}.card{padding:38px 28px;border:1px solid var(--line);background:linear-gradient(145deg,#121211,#0b0b0b);min-height:260px;transition:.4s}.card:hover{transform:translateY(-8px);border-color:#80652f}.card i{font-style:normal;color:var(--gold);font-size:35px}.card h3{text-transform:uppercase;font-size:14px;letter-spacing:1.5px;margin-top:28px}.card p,.note{color:var(--muted);font-size:13px;line-height:1.8}.gallery{background:#0c0c0b}.gallery-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-top:35px}.g{height:330px;border:1px solid #332b20;background-size:cover;transition:.5s}.g:hover{transform:scale(1.015)}.g1{background:linear-gradient(135deg,#3d2d1c,#0d0d0c 65%)}.g2{background:linear-gradient(45deg,#0c0c0c,#73542c 55%,#17120c)}.g3{background:linear-gradient(160deg,#1d1d1c,#513c22,#080808)}.quote{padding:110px 7vw;display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;background:radial-gradient(circle at 10% 30%,#2c2012 0,#0a0a09 34%)}.form{display:grid;gap:14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form input,.form select,.form textarea{width:100%;background:#11110f;border:1px solid #34312b;color:#fff;padding:16px;font:inherit}.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold)}.upload{border:1px dashed #5c4a29;padding:15px;color:#b9b2a7;font-size:12px}.upload input{border:0;padding:10px 0 0;background:transparent}.form-msg{font-size:12px;color:var(--gold)}footer{padding:50px 7vw;border-top:1px solid var(--line);display:grid;grid-template-columns:180px 1fr 1fr auto;gap:30px;align-items:center;color:#aaa}footer img{width:150px}footer a{color:var(--gold2)}footer p,footer small{font-size:11px}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{from{opacity:.55;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes load{to{width:220px}}@media(max-width:900px){.nav{height:74px;padding:0 5vw}.brand img{width:115px;height:58px}.menu{display:block;margin-left:auto}.nav nav{position:absolute;top:74px;left:0;right:0;display:none;flex-direction:column;background:#090909;padding:30px}.nav.open nav{display:flex}.lang{margin-left:10px}.hero{padding-inline:6vw}.hero-bg{background:radial-gradient(circle at 75% 30%,#493217 0,#0a0a0a 42%)}.trust{grid-template-columns:1fr}.trust>div{border-bottom:1px solid var(--line)}.split,.quote{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr}.g{height:260px}footer{grid-template-columns:1fr 1fr}.image-card{height:380px}}@media(max-width:560px){.section,.quote{padding:80px 6vw}.cards{grid-template-columns:1fr}.actions,.two{grid-template-columns:1fr;display:grid}.hero h1{letter-spacing:-1px}footer{grid-template-columns:1fr}.scroll{display:none}}
.hero-bg {
  background:
    linear-gradient(90deg, rgba(5,5,5,.96) 0%, rgba(5,5,5,.80) 38%, rgba(5,5,5,.18) 70%, rgba(5,5,5,.05) 100%),
    url('assets/hero-nsg.png') center center / cover no-repeat !important;
}

/* ===== MENU MOBILE NSG ===== */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 85px;
}

@media (max-width: 900px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(5,5,5,.94);
    backdrop-filter: blur(14px);
  }

  .header .menu {
    display: block;
    position: relative;
    z-index: 1002;
    border: 1px solid rgba(218,169,63,.6);
    background: #080808;
    color: #e0b44d;
    width: 48px;
    height: 48px;
    font-size: 0;
    cursor: pointer;
  }

  .header .menu::before,
  .header .menu::after {
    content: "";
    position: absolute;
    left: 12px;
    width: 22px;
    height: 2px;
    background: #e0b44d;
    transition: .3s ease;
  }

  .header .menu::before {
    top: 17px;
    box-shadow: 0 6px 0 #e0b44d;
  }

  .header .menu::after {
    top: 29px;
  }

  .header .menu.open::before {
    top: 23px;
    transform: rotate(45deg);
    box-shadow: none;
  }

  .header .menu.open::after {
    top: 23px;
    transform: rotate(-45deg);
  }

  .header nav {
    display: flex !important;
    position: fixed;
    top: 0;
    right: 0;
    width: min(82vw, 380px);
    height: 100vh;
    padding: 110px 35px 40px;
    background: rgba(7,7,7,.98);
    border-left: 1px solid rgba(218,169,63,.25);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    z-index: 1001;

    transform: translateX(105%);
    transition: transform .4s cubic-bezier(.22,.61,.36,1);
  }

  .header nav.open {
    transform: translateX(0);
  }

  .header nav a {
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
    font-size: 14px;
    letter-spacing: .14em;
  }

  body.menu-open {
    overflow: hidden;
  }
}

/* ===== IMAGES PREMIUM NSG ===== */

/* Grande image À propos */
.image-card {
  background:
    linear-gradient(to top, rgba(0,0,0,.25), rgba(0,0,0,.03)),
    url('assets/about-nsg.webp') center center / cover no-repeat !important;
  overflow: hidden;
  transition: transform .6s ease, box-shadow .6s ease;
}

.image-card:hover {
  transform: scale(1.015);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}

/* Galerie Inspirations */
.gallery-grid .g {
  position: relative;
  overflow: hidden;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  transition: transform .55s ease, filter .55s ease;
}

.gallery-grid .g1 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.42), rgba(0,0,0,.02) 60%),
    url('assets/inspiration-cuisine.webp') !important;
}

.gallery-grid .g2 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.42), rgba(0,0,0,.02) 60%),
    url('assets/inspiration-bain.webp') !important;
}

.gallery-grid .g3 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.42), rgba(0,0,0,.02) 60%),
    url('assets/inspiration-salon.webp') !important;
}

.gallery-grid .g:hover {
  transform: translateY(-6px) scale(1.015);
  filter: brightness(1.08);
}

/* ===== MOBILE — IMAGES NSG UNIQUEMENT ===== */
@media (max-width: 768px) {

  /* À propos */
  #apropos .image-card {
    width: 100%;
    min-height: 380px;
    background-position: center center !important;
    background-size: cover !important;
    transform: none;
  }

  /* Inspirations */
  #realisations .gallery-grid {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }

  #realisations .gallery-grid .g {
    width: 100%;
    min-height: 330px;
    background-size: cover !important;
    background-position: center center !important;
    transform: none;
  }

  /* Pas d'effet hover gênant sur écran tactile */
  #realisations .gallery-grid .g:hover,
  #apropos .image-card:hover {
    transform: none;
    filter: none;
    box-shadow: none;
  }
}

/* Hover seulement sur les appareils avec souris */
@media (hover: hover) and (pointer: fine) {

  #apropos .image-card:hover {
    transform: scale(1.015);
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
  }

  #realisations .gallery-grid .g:hover {
    transform: translateY(-6px) scale(1.015);
    filter: brightness(1.08);
  }
}

/* ===== NSG ANIMATIONS PREMIUM V2 ===== */

/* Apparition douce au scroll */
.reveal {
  opacity: 0;
  transform: translateY(35px);
  transition:
    opacity 0.9s cubic-bezier(.2,.8,.2,1),
    transform 0.9s cubic-bezier(.2,.8,.2,1);
}

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

/* Effet premium sur les cartes de services */
.service {
  transition: transform .45s ease, box-shadow .45s ease;
}

@media (hover: hover) and (pointer: fine) {
  .service:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(0,0,0,.25);
  }
}

/* Respecte les utilisateurs qui désactivent les animations */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .service {
    transition: none !important;
    transform: none !important;
  }
}

/* ===== NSG INSPIRATIONS PLUS CLAIRES ===== */

#realisations .gallery-grid .g {
  filter: brightness(1.18) contrast(1.02);
}

@media (hover: hover) and (pointer: fine) {
  #realisations .gallery-grid .g:hover {
    filter: brightness(1.28) contrast(1.03);
  }
}


/* ===== NSG INSPIRATIONS V2 ===== */

#realisations .gallery-grid .g1 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.28), rgba(0,0,0,0) 55%),
    url('assets/inspiration-cuisine-v2.webp') !important;
}

#realisations .gallery-grid .g2 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.28), rgba(0,0,0,0) 55%),
    url('assets/inspiration-bain-v2.webp') !important;
}

#realisations .gallery-grid .g3 {
  background-image:
    linear-gradient(to top, rgba(0,0,0,.28), rgba(0,0,0,0) 55%),
    url('assets/inspiration-salon-v2.webp') !important;
}

#realisations .gallery-grid .g {
  filter: brightness(1.08) contrast(1.02);
  background-position: center !important;
  background-size: cover !important;
}


/* ==================================================
   GESTION NSG — PREMIUM MOTION V3
   ================================================== */

/* Titres : mouvement plus cinématique */
.section h2,
.gallery h2 {
  transition:
    transform 1s cubic-bezier(.16,1,.3,1),
    opacity 1s ease;
}

/* Images À propos + Inspirations */
#apropos .image-card,
#realisations .gallery-grid .g {
  transition:
    transform .8s cubic-bezier(.16,1,.3,1),
    filter .8s ease,
    box-shadow .8s ease;
}

/* Inspirations : effet de profondeur */
@media (hover:hover) and (pointer:fine) {

  #realisations .gallery-grid .g:hover {
    transform: translateY(-10px) scale(1.035);
    filter: brightness(1.18) contrast(1.03);
    box-shadow:
      0 30px 70px rgba(0,0,0,.55),
      0 0 0 1px rgba(201,166,92,.35);
  }

  #apropos .image-card:hover {
    transform: scale(1.025);
    box-shadow:
      0 30px 80px rgba(0,0,0,.45),
      0 0 0 1px rgba(201,166,92,.25);
  }
}

/* Boutons : reflet doré animé */
.btn {
  position: relative;
  overflow: hidden;
  transition:
    transform .35s ease,
    box-shadow .35s ease;
}

.btn::after {
  content: "";
  position: absolute;
  top: -50%;
  left: -80%;
  width: 45%;
  height: 200%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.30),
    transparent
  );
  transform: rotate(20deg);
  transition: left .7s ease;
  pointer-events: none;
}

@media (hover:hover) and (pointer:fine) {
  .btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(201,166,92,.18);
  }

  .btn:hover::after {
    left: 140%;
  }
}

/* Ligne dorée animée sous les petits titres */
.kicker {
  position: relative;
  display: inline-block;
}

.kicker::after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  margin-top: 8px;
  background: currentColor;
  transition: width 1s cubic-bezier(.16,1,.3,1);
}

.kicker.active::after,
.reveal.active .kicker::after {
  width: 100%;
}

/* Mobile : animations plus légères */
@media (max-width:768px) {
  #realisations .gallery-grid .g,
  #apropos .image-card {
    transition: transform .6s ease, filter .6s ease;
  }
}

/* Accessibilité */
@media (prefers-reduced-motion:reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* ===== NSG REVEAL GAUCHE / DROITE ===== */

.section .reveal:nth-child(odd),
.gallery .reveal:nth-child(odd) {
  transform: translateX(-45px);
}

.section .reveal:nth-child(even),
.gallery .reveal:nth-child(even) {
  transform: translateX(45px);
}

.section .reveal.active,
.gallery .reveal.active {
  opacity: 1;
  transform: translateX(0);
}

/* Mobile : déplacement plus léger */
@media (max-width: 768px) {
  .section .reveal:nth-child(odd),
  .gallery .reveal:nth-child(odd) {
    transform: translateX(-20px);
  }

  .section .reveal:nth-child(even),
  .gallery .reveal:nth-child(even) {
    transform: translateX(20px);
  }

  .section .reveal.active,
  .gallery .reveal.active {
    transform: translateX(0);
  }
}


/* ===== NSG INSPIRATIONS — MOUVEMENT CINEMATIQUE ===== */

#realisations .gallery-grid .g {
  background-size: 105% !important;
  transition:
    background-size 6s cubic-bezier(.16,1,.3,1),
    transform .8s cubic-bezier(.16,1,.3,1),
    filter .8s ease,
    box-shadow .8s ease;
}

#realisations .gallery-grid .g.active {
  background-size: 112% !important;
}

/* Survol ordinateur */
@media (hover:hover) and (pointer:fine) {
  #realisations .gallery-grid .g:hover {
    background-size: 116% !important;
  }
}

/* Mobile : mouvement plus discret */
@media (max-width:768px) {
  #realisations .gallery-grid .g {
    background-size: 103% !important;
  }

  #realisations .gallery-grid .g.active {
    background-size: 108% !important;
  }
}

/* Pas d'animation si réductions de mouvement activées */
@media (prefers-reduced-motion:reduce) {
  #realisations .gallery-grid .g {
    background-size: cover !important;
  }
}


/* ===== FIX NSG — SUPPRESSION SHAKE IMAGES ===== */

#realisations .gallery-grid .g,
#realisations .gallery-grid .g.active {
  background-size: cover !important;
}

@media (hover:hover) and (pointer:fine) {
  #realisations .gallery-grid .g:hover {
    background-size: cover !important;
  }
}

@media (max-width:768px) {
  #realisations .gallery-grid .g,
  #realisations .gallery-grid .g.active {
    background-size: cover !important;
  }
}


/* ===== NSG — LIGNE DOREE ANIMEE INSPIRATIONS ===== */

#realisations .gallery-grid .g {
  position: relative;
  overflow: hidden;
}

/* Ligne dorée */
#realisations .gallery-grid .g::after {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  height: 2px;

  background: linear-gradient(
    90deg,
    rgba(201,166,92,.35),
    #d8b86a,
    rgba(201,166,92,.35)
  );

  transform: scaleX(0);
  transform-origin: left center;

  opacity: 0;

  transition:
    transform 1.15s cubic-bezier(.16,1,.3,1),
    opacity .45s ease;

  pointer-events: none;
  will-change: transform;
}

/* Dessine la ligne */
#realisations .gallery-grid .g.active::after {
  transform: scaleX(1);
  opacity: 1;
}

/* Petit décalage entre les 3 images */
#realisations .gallery-grid .g2::after {
  transition-delay: .12s;
}

#realisations .gallery-grid .g3::after {
  transition-delay: .24s;
}

/* Mobile */
@media (max-width:768px) {
  #realisations .gallery-grid .g::after {
    left: 16px;
    right: 16px;
    bottom: 16px;
    height: 1px;
  }
}

/* Accessibilité */
@media (prefers-reduced-motion:reduce) {
  #realisations .gallery-grid .g::after {
    transition: none !important;
  }
}


/* ===== NSG — NUMEROS + TITRES INSPIRATIONS ===== */

/* Espace texte au-dessus de la ligne dorée */
#realisations .gallery-grid .g::before {
  position: absolute;
  left: 22px;
  bottom: 38px;

  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  line-height: 1.4;

  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.75);

  opacity: 0;
  transform: translateY(8px);

  transition:
    opacity .7s ease,
    transform .7s cubic-bezier(.16,1,.3,1);

  pointer-events: none;
  z-index: 3;
  will-change: opacity, transform;
}

/* Texte des 3 images */
#realisations .gallery-grid .g1::before {
  content: "01  —  CUISINE MODERNE";
  transition-delay: .20s;
}

#realisations .gallery-grid .g2::before {
  content: "02  —  SALLE DE BAIN";
  transition-delay: .32s;
}

#realisations .gallery-grid .g3::before {
  content: "03  —  ESPACES DE VIE";
  transition-delay: .44s;
}

/* Apparition synchronisée avec la ligne dorée */
#realisations .gallery-grid .g.active::before {
  opacity: 1;
  transform: translateY(0);
}

/* Numéro légèrement doré grâce à un accent global */
#realisations .gallery-grid .g::before {
  border-left: 2px solid #d8b86a;
  padding-left: 12px;
}

/* Mobile */
@media (max-width:768px) {
  #realisations .gallery-grid .g::before {
    left: 16px;
    bottom: 30px;
    font-size: 12px;
    letter-spacing: 1.5px;
    padding-left: 9px;
  }
}

/* Aucun mouvement si animations réduites */
@media (prefers-reduced-motion:reduce) {
  #realisations .gallery-grid .g::before {
    transition: none !important;
    transform: none !important;
  }
}


/* ===== NSG — SERVICES BORDURE DOREE PREMIUM ===== */

#services .service {
  position: relative;
  box-sizing: border-box;

  /* Bordure invisible permanente = aucune variation de taille */
  outline: 1px solid rgba(216,184,106,0);

  transition:
    outline-color .65s ease,
    box-shadow .65s ease,
    background-color .65s ease;
}

/* Ordinateur uniquement */
@media (hover:hover) and (pointer:fine) {

  #services .service:hover {
    /* On neutralise l'ancien déplacement éventuel */
    transform: none !important;

    outline-color: rgba(216,184,106,.75);

    box-shadow:
      inset 0 0 18px rgba(216,184,106,.045),
      0 0 12px rgba(216,184,106,.08),
      0 12px 35px rgba(0,0,0,.18);

    background-color: rgba(216,184,106,.018);
  }
}

/* Mobile : aucune réaction tactile gênante */
@media (max-width:768px) {
  #services .service {
    transform: none;
  }
}

/* Accessibilité */
@media (prefers-reduced-motion:reduce) {
  #services .service {
    transition: none !important;
  }
}


/* ===== NSG — SOUMISSION PREMIUM ===== */

#soumission {
  position: relative;
  overflow: hidden;
}

/* Halo doré discret */
#soumission::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  left: 50%;
  top: 50%;

  transform: translate(-50%, -50%);
  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(216,184,106,.10) 0%,
    rgba(216,184,106,.035) 35%,
    transparent 70%
  );

  opacity: 0;
  transition: opacity 1.2s ease;

  pointer-events: none;
  z-index: 0;
}

#soumission.active::before {
  opacity: 1;
}

/* Garde le contenu au-dessus du halo */
#soumission > * {
  position: relative;
  z-index: 1;
}

/* Mobile */
@media (max-width:768px) {
  #soumission::before {
    width: 340px;
    height: 340px;
  }
}

/* Accessibilité */
@media (prefers-reduced-motion:reduce) {
  #soumission::before {
    transition: none !important;
  }
}


/* ===== NSG — CONFIRMATION FORMULAIRE ===== */
#formMsg {
  display: block;
  min-height: 24px;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: #d8b86a !important;
  letter-spacing: .3px;
}

