  html{ overflow-x:hidden; max-width:100%; }
  body.nva-active{
    max-width:100%;
    --green:#6FAF3C;
    --green-dark:#4F8A28;
    --blue:#2E9BD6;
    --blue-dark:#1F6E9C;
    --ink:#2C3539;
    --ink-2:#20272a;
    --white:#ffffff;
    --grey-050:#F7F9F8;
    --grey-100:#EEF2EF;
    --grey-300:#D8E0DB;
    --grey-500:#8A968E;
    --grey-700:#4B5750;
    --font-head:'Montserrat', sans-serif;
    --font-body:'Poppins', sans-serif;
    --ease:cubic-bezier(.22,1,.36,1);
    --container:1280px;
    --gap-xl:clamp(48px,6vw,96px);
    font-family:var(--font-body);
    font-weight:300;
    color:var(--ink);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    line-height:1.6;
  }
  body.nva-active *{ box-sizing:border-box; }
  body.nva-active, body.nva-active *{ font-family:var(--font-body) !important; }
  body.nva-active h1, body.nva-active h2, body.nva-active h3, body.nva-active h4,
  body.nva-active .nva-nav a,
  body.nva-active .nva-btn-dark, body.nva-active .nva-btn-light, body.nva-active .nva-btn-outline-light, body.nva-active .nva-btn-outline-dark, body.nva-active .nva-btn-call, body.nva-active .nva-btn-solid,
  body.nva-active .nva-link-arrow, body.nva-active .nva-process__item .badge,
  body.nva-active .nva-hero__bottombar a, body.nva-active .nva-faq__q, body.nva-active .nva-footer__col h5, body.nva-active .nva-footer__phone,
  body.nva-active .nva-contact__block a, body.nva-active .nva-contact__block strong, body.nva-active .nva-contact__zones span,
  body.nva-active .nva-cookies-tabs__nav button, body.nva-active .nva-split__lead,
  body.nva-active .nva-zone__item span, body.nva-active .nva-cookies__link
  { font-family:var(--font-head) !important; }

  body.nva-active img{ max-width:100%; display:block; }
  body.nva-active a{ text-decoration:none; }
  body.nva-active button{ cursor:pointer; background:none; border:none; }
  body.nva-active h1,body.nva-active h2,body.nva-active h3,body.nva-active h4{
    font-weight:700; line-height:1.15; margin:0; letter-spacing:-0.01em;
  }
  body.nva-active p{ margin:0; font-weight:300; }
  :where(body.nva-active) :where(p){ color:var(--grey-700); }

  /* ---------- Anti double-header ----------
     Certains thèmes WordPress affichent leur propre en-tête même quand la
     page utilise le modèle "Elementor Canvas" (pas de header/footer). Ces
     règles masquent les enrobages d'en-tête de thème les plus courants dès
     que notre en-tête personnalisé (nva-header) est actif, pour éviter tout
     logo ou bloc en double. Sans effet si le thème ne les utilise pas. */
  body.nva-active > header:not(.nva-header),
  body.nva-active .site-header,
  body.nva-active #masthead,
  body.nva-active .elementor-location-header,
  body.nva-active .main-header,
  body.nva-active .theme-header{
    display:none !important;
  }

  /* ---------- Logo ---------- */
  .nva-logo-badge{ display:inline-flex !important; align-items:center; background:#ffffff; border-radius:10px; padding:6px 12px; line-height:0; }
  .nva-logo-badge--plain{ background:transparent !important; padding:0 !important; border-radius:0; }
  img.nva-logo-img{ display:block !important; height:34px !important; max-height:34px !important; width:auto !important; max-width:170px !important; }
  img.nva-logo-img--header{ height:46px !important; max-height:46px !important; max-width:220px !important; }
  .nva-logo-badge--loader{ padding:14px 22px; border-radius:14px; }
  img.nva-logo-img--loader{ height:clamp(42px,7vw,62px) !important; max-height:62px !important; }

  /* ---------- Loader ---------- */
  .nva-loader{
    position:fixed; inset:0; background:var(--ink); z-index:999999;
    display:flex; align-items:center; justify-content:center;
    transition:transform .9s var(--ease), opacity .5s var(--ease) .1s, visibility 0s linear 1s;
  }
  .nva-loader.is-hidden{ transform:translateY(-100%); opacity:0; visibility:hidden; pointer-events:none; }
  .nva-loader__logo{
    position:relative; display:inline-flex; align-items:center; gap:16px; color:var(--white);
    will-change:transform; transition:transform .95s var(--ease), opacity .3s var(--ease) .6s;
  }
  .nva-loader.is-hidden .nva-loader__logo{ opacity:0; }
  .nva-loader__mask{ position:absolute; inset:0; background:var(--ink); animation:nvaMaskSweep 1.1s var(--ease) forwards .3s; }
  @keyframes nvaMaskSweep{ from{ transform:translateX(0);} to{ transform:translateX(101%);} }

  /* ---------- Header ---------- */
  .nva-header{
    position:fixed; top:18px; left:50%; transform:translateX(-50%);
    width:min(1240px,92%); z-index:999900; border-radius:24px;
    background:#ffffff; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(44,53,57,.08);
    box-shadow:0 10px 30px rgba(44,53,57,.08);
    opacity:0; transition:opacity .6s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease), top .4s var(--ease);
  }
  .nva-header.is-ready{ opacity:1; }
  .nva-header.is-scrolled{ background:#ffffff; box-shadow:0 20px 50px rgba(44,53,57,.14); top:12px; }
  .nva-header__inner{ padding:11px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }

  .nva-nav{ display:flex; align-items:center; justify-content:center; flex:1; gap:26px; flex-wrap:nowrap; white-space:nowrap; }
  .nva-nav a{
    font-family:var(--font-head); font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
    position:relative; padding:6px 0; color:rgba(44,53,57,.62); transition:color .3s var(--ease);
  }
  .nva-nav a:hover, .nva-nav a.is-active{ color:var(--green); }

  .nva-header__actions{ display:flex; align-items:center; gap:16px; }
  .nva-icon-btn{
    width:40px; height:40px; border-radius:50%; border:1px solid rgba(44,53,57,.14);
    display:flex; align-items:center; justify-content:center; color:var(--ink); flex:none;
    transition:background .3s var(--ease), border-color .3s var(--ease);
  }
  .nva-icon-btn svg{ width:18px; height:18px; }
  .nva-icon-btn:hover{ background:rgba(44,53,57,.06); border-color:rgba(44,53,57,.3); }

  .nva-burger{ display:none; flex-direction:column; gap:6px; width:24px; padding:6px 0; }
  .nva-burger span{ display:block; height:1.5px; background:var(--ink); transition:all .3s var(--ease); }
  .nva-burger.is-active span:first-child{ transform:translateY(3.75px) rotate(45deg); }
  .nva-burger.is-active span:last-child{ transform:translateY(-3.75px) rotate(-45deg); }

  /* ---------- Buttons ---------- */
  .nva-btn-dark, .nva-btn-light, .nva-btn-outline-light, .nva-btn-outline-dark{
    display:inline-flex; align-items:center; justify-content:center; gap:9px;
    font-family:var(--font-head); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
    padding:17px 34px; border-radius:10px; white-space:nowrap;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  }
  .nva-btn--sm{ padding:12px 24px; font-size:11.5px; }
  .nva-btn-dark{ background:var(--ink); color:#ffffff !important; border:1px solid var(--ink); }
  .nva-btn-dark:hover{ background:var(--ink-2); }
  .nva-btn-light{ background:var(--green); color:#ffffff !important; border:1px solid var(--green); }
  .nva-btn-light:hover{ background:var(--green-dark); }
  .nva-btn-outline-light{ background:transparent; color:#ffffff !important; border:1px solid rgba(255,255,255,.55); }
  .nva-btn-outline-light:hover{ background:rgba(255,255,255,.12); border-color:#ffffff; }
  .nva-btn-outline-dark{ background:transparent; color:var(--ink) !important; border:1px solid var(--ink); }
  .nva-btn-outline-dark:hover{ background:var(--ink); color:#ffffff !important; }

  .nva-btn-call{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    font-family:var(--font-head); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
    padding:17px 30px; border-radius:10px; white-space:nowrap; background:var(--green); color:#ffffff !important; border:1px solid var(--green);
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
  }
  .nva-btn-call svg{ width:16px; height:16px; flex:none; }
  .nva-btn-call:hover{ background:var(--green-dark); }
  .nva-btn-call.nva-btn--sm{ padding:12px 22px; font-size:11.5px; }
  .nva-btn-call.nva-btn--sm svg{ width:14px; height:14px; }

  /* ---------- Mobile menu ---------- */
  .nva-mobile{
    position:fixed; inset:0; background:var(--ink); color:var(--white); z-index:999800;
    display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch;
    padding:110px 32px 40px; overflow-y:auto;
    transform:translateY(-100%); transition:transform .55s var(--ease);
  }
  .nva-mobile.is-open{ transform:translateY(0); }
  .nva-mobile nav{ display:flex; flex-direction:column; gap:14px; }
  .nva-mobile nav a{ font-family:var(--font-head); font-size:clamp(1.6rem,7.5vw,2.2rem); font-weight:700; color:var(--white); }
  .nva-mobile__call{ width:100%; margin-top:32px; white-space:normal !important; }
  .nva-mobile__contact{ margin-top:32px; display:flex; flex-direction:column; gap:10px; padding-bottom:16px; }
  .nva-mobile__contact a, .nva-mobile__contact span{ color:var(--grey-500); font-size:14px; }
  .nva-mobile__contact-phone{ color:var(--white) !important; font-family:var(--font-head); font-weight:700; font-size:1.15rem !important; }

  /* ---------- Hero ---------- */
  .nva-hero{
    position:relative; min-height:100vh; width:100%;
    background-size:cover; background-position:center;
    display:flex; flex-direction:column; justify-content:center;
    padding:150px 40px 0;
  }
  .nva-hero__scrim{ position:absolute; inset:0; background:linear-gradient(100deg, rgba(28,35,38,.88) 0%, rgba(28,35,38,.72) 45%, rgba(28,35,38,.42) 100%); }
  .nva-hero--no-image{ background:linear-gradient(135deg, var(--ink) 0%, var(--ink-2) 55%, #1a3a2e 100%); }
  .nva-hero--no-image .nva-hero__scrim{ background:none; }
  .nva-hero__inner{ position:relative; z-index:2; max-width:var(--container); margin:0 auto; width:100%; color:var(--white); }
  .nva-hero__h1{ font-size:clamp(2.4rem,6.6vw,4.8rem); max-width:900px; text-shadow:0 2px 20px rgba(0,0,0,.35); }
  .nva-hero__h1 .word{ display:inline-block; opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .nva-hero__h1 .word:nth-of-type(1){ transition-delay:.1s; }
  .nva-hero__h1 .word:nth-of-type(2){ transition-delay:.16s; }
  .nva-hero__h1 .word:nth-of-type(3){ transition-delay:.22s; }
  .nva-hero__h1 .word:nth-of-type(4){ transition-delay:.28s; }
  .nva-hero__h1 .word:nth-of-type(5){ transition-delay:.34s; }
  .is-loaded .nva-hero__h1 .word{ opacity:1; transform:translateY(0); }

  .nva-hero__sub{ margin-top:26px; font-size:17px; max-width:520px; color:#ffffff; text-shadow:0 2px 16px rgba(0,0,0,.5); opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease) .5s, transform .8s var(--ease) .5s; }
  .nva-hero__cta{ margin-top:38px; display:flex; gap:16px; opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease) .6s, transform .8s var(--ease) .6s; }
  .is-loaded .nva-hero__sub, .is-loaded .nva-hero__cta{ opacity:1; transform:translateY(0); }

  .nva-hero__bottombar{
    position:relative; z-index:2; margin-top:110px; margin-bottom:0;
    background:rgba(255,255,255,.06); border-top:1px solid rgba(255,255,255,.18);
    display:flex; max-width:var(--container); margin-left:auto; margin-right:auto; width:100%;
  }
  .nva-hero__bottombar a{
    flex:1; padding:22px 26px; font-family:var(--font-head); font-size:13px; font-weight:700; letter-spacing:.03em;
    display:flex; align-items:center; gap:12px; border-right:1px solid rgba(255,255,255,.14); color:#ffffff !important;
  }
  .nva-hero__bottombar a:last-child{ border-right:none; }
  .nva-hero__bottombar a span{ font-family:var(--font-head); font-size:14px; color:var(--green); }

  /* ---------- Reveal ---------- */
  .reveal{ opacity:0; transform:translateY(32px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }

  /* ---------- Section heads ---------- */
  .nva-services, .nva-features, .nva-gallery, .nva-reviews, .nva-zone{ padding:var(--gap-xl) 40px; max-width:var(--container); margin:0 auto; }
  .nva-services__head{ text-align:center; max-width:620px; margin:0 auto 60px; display:flex; flex-direction:column; gap:16px; align-items:center; }
  .nva-services__head h2{ font-size:clamp(2rem,3.4vw,2.8rem); }
  .nva-services__head p{ font-size:16px; }
  .nva-services__head--dark{ margin-bottom:72px; }
  .nva-services__head--dark h2{ color:var(--white); }

  /* ---------- Cards ---------- */
  .nva-service-list{ display:flex; flex-direction:column; border-top:1px solid var(--grey-300); }
  .nva-service-row{
    position:relative; display:grid; grid-template-columns:64px 60px 1fr auto; align-items:center; gap:28px;
    padding:32px 8px; border-bottom:1px solid var(--grey-300);
    transition:padding-left .35s var(--ease), background .35s var(--ease);
  }
  .nva-service-row::before{
    content:''; position:absolute; left:0; top:0; bottom:0; width:0; background:var(--green); transition:width .35s var(--ease);
  }
  .nva-service-row:hover{ padding-left:26px; background:var(--grey-050); }
  .nva-service-row:hover::before{ width:4px; }
  .nva-service-row__num{
    font-family:var(--font-head); font-weight:800; font-size:2rem; color:var(--grey-300);
    transition:color .35s var(--ease); line-height:1;
  }
  .nva-service-row:hover .nva-service-row__num{ color:var(--green); }
  .nva-service-row__icon{ width:44px; height:44px; flex:none; }
  .nva-service-row__icon--green{ color:var(--green); }
  .nva-service-row__icon--blue{ color:var(--blue); }
  .nva-service-row__body h3{ font-size:1.2rem; margin-bottom:8px; }
  .nva-service-row__body p{ font-size:14.5px; max-width:560px; }
  .nva-service-row__link{
    display:inline-flex; align-items:center; gap:8px; font-family:var(--font-head); font-size:12.5px; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; color:var(--ink) !important; white-space:nowrap;
  }
  .nva-service-row__link svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
  .nva-service-row:hover .nva-service-row__link svg{ transform:translateX(4px); }

  .nva-link-arrow{ font-family:var(--font-head); font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; width:fit-content; display:inline-flex; align-items:center; gap:8px; color:var(--ink) !important; }
  .nva-link-arrow::after{ content:'\2192'; color:var(--green); }

  /* ---------- Features ---------- */
  .nva-features__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--grey-300); border:1px solid var(--grey-300); }
  .nva-feature{ background:var(--white); padding:40px 32px; display:flex; flex-direction:column; gap:16px; }
  .nva-feature svg{ width:34px; height:34px; color:var(--blue); }
  .nva-feature h4{ font-size:1.02rem; }
  .nva-feature p{ font-size:14px; }

  /* ---------- Split ---------- */
  .nva-split{ display:grid; grid-template-columns:1fr 1fr; align-items:center; max-width:var(--container); margin:0 auto; padding:var(--gap-xl) 40px calc(var(--gap-xl) * 0.35) 40px; gap:90px; }
  .nva-split__text{ display:flex; flex-direction:column; gap:22px; max-width:500px; }
  .nva-split__text h2{ font-size:clamp(1.8rem,3.2vw,2.5rem); }
  .nva-split__lead{ font-family:var(--font-head); font-weight:600; font-size:1.1rem; color:var(--ink); line-height:1.5; }
  .nva-split__media{ position:relative; display:flex; align-items:center; justify-content:center; border-radius:6px; background:transparent; min-height:260px; }
  .nva-split__media img{ width:100%; height:auto; max-height:520px; object-fit:contain; margin:0 auto; background:transparent; }

  /* ---------- Process ---------- */
  .nva-process{ background:linear-gradient(165deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--white); padding:var(--gap-xl) 40px; }
  .nva-process__grid{ max-width:var(--container); margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit, minmax(190px,1fr)); gap:40px; }
  .nva-process__item{ text-align:center; padding:0 12px; }
  .nva-process__item .badge{
    display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin:0 auto 24px;
    border-radius:50%; border:1px solid rgba(255,255,255,.4); background:#ffffff;
    font-family:var(--font-head); font-size:13px; font-weight:700; color:var(--ink);
  }
  .nva-process__item h4{ color:var(--white); font-size:1.12rem; margin-bottom:10px; }
  .nva-process__item p{ color:rgba(255,255,255,.8); font-size:14px; }

  /* ---------- Gallery avant/après ---------- */
  .nva-gallery__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .nva-gallery__item{ margin:0; border-radius:6px; overflow:hidden; border:1px solid var(--grey-300); }
  .nva-gallery__item img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }

  /* ---------- Reviews ---------- */
  .nva-reviews__slot{ min-height:80px; }

  /* ---------- FAQ ---------- */
  .nva-faq{ padding:var(--gap-xl) 40px; max-width:840px; margin:0 auto; }
  .nva-faq__head{ text-align:center; margin-bottom:56px; }
  .nva-faq__head h2{ font-size:clamp(2rem,3.4vw,2.8rem); }
  .nva-faq__list{ display:flex; flex-direction:column; }
  .nva-faq__item{ border-bottom:1px solid var(--grey-300); }
  .nva-faq__item:first-child{ border-top:1px solid var(--grey-300); }
  .nva-faq__q{
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px;
    padding:26px 4px; text-align:left; font-family:var(--font-head); font-size:16px; font-weight:600; color:var(--ink);
  }
  .nva-faq__q i{ position:relative; width:16px; height:16px; flex:none; }
  .nva-faq__q i::before, .nva-faq__q i::after{ content:''; position:absolute; background:var(--green); transition:transform .35s var(--ease); }
  .nva-faq__q i::before{ left:0; top:50%; width:100%; height:1px; transform:translateY(-50%); }
  .nva-faq__q i::after{ top:0; left:50%; width:1px; height:100%; transform:translateX(-50%); }
  .nva-faq__item.is-open .nva-faq__q i::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
  .nva-faq__a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
  .nva-faq__a p{ padding:0 4px 26px; font-size:14.5px; max-width:640px; }

  /* ---------- Zone d'intervention ---------- */
  .nva-zone__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .nva-zone__item{
    background:var(--grey-050); border:1px solid var(--grey-300); border-radius:10px;
    padding:28px 20px; text-align:center; font-family:var(--font-head); font-weight:600; font-size:14px; color:var(--ink);
    display:flex; flex-direction:column; gap:10px; align-items:center;
  }
  .nva-zone__item span{ font-size:1.7rem; font-weight:800; color:var(--blue); }

  /* ---------- Floating CTA ---------- */
  .nva-floating-cta{ max-width:var(--container); margin:0 auto; padding:0 40px var(--gap-xl); }
  .nva-floating-cta__card{
    background:var(--grey-050); color:var(--ink); border-radius:24px; text-align:center;
    padding:64px 48px;
    border:1px solid var(--grey-300);
    box-shadow:0 30px 70px rgba(44,53,57,.08);
    display:flex; flex-direction:column; align-items:center; gap:20px;
  }
  .nva-floating-cta__card h2{ color:var(--ink); font-size:clamp(1.8rem,3.4vw,2.5rem); }
  .nva-floating-cta__card p{ color:var(--grey-700); font-size:16px; }
  .nva-floating-cta__actions{ display:flex; gap:16px; margin-top:8px; flex-wrap:wrap; justify-content:center; }

  /* ---------- Contact ---------- */
  .nva-contact{ max-width:var(--container); margin:0 auto; padding:var(--gap-xl) 40px; overflow-x:hidden; }
  .nva-contact__grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:70px; align-items:start; min-width:0; }
  .nva-contact__info{ min-width:0; }
  .nva-contact__info h2{ font-size:clamp(1.9rem,3.4vw,2.7rem); margin-bottom:18px; }
  .nva-contact__info p{ font-size:15.5px; margin-bottom:30px; }
  .nva-contact__block{ margin-bottom:22px; display:flex; flex-direction:column; gap:4px; }
  .nva-contact__block strong{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--grey-500); font-weight:700; }
  .nva-contact__block a{ font-size:16px; color:var(--ink) !important; font-weight:700; word-break:break-word; overflow-wrap:break-word; }
  .nva-contact__zones{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
  .nva-contact__zones span{ font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:999px; background:var(--grey-100); color:var(--ink); }
  .nva-contact__social{ display:flex; gap:12px; margin-top:20px; }

  .nva-contact__form-slot{
    background:var(--grey-050); border:1px solid var(--grey-300); border-radius:18px; padding:36px;
    min-width:0; max-width:100%; overflow:hidden;
  }
  .nva-contact__form-slot *{ max-width:100%; box-sizing:border-box; }
  .nva-contact__form-slot form{ width:100%; }
  .nva-contact__form-slot .wpcf7-form-control-wrap{ display:block; width:100%; }
  .nva-contact__form-slot label{ font-family:var(--font-head) !important; font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink); display:block; margin-bottom:8px; }
  .nva-contact__form-slot input[type="text"],
  .nva-contact__form-slot input[type="email"],
  .nva-contact__form-slot input[type="tel"],
  .nva-contact__form-slot textarea,
  .nva-contact__form-slot select{
    width:100%; padding:14px 16px; border:1px solid var(--grey-300); border-radius:8px; background:#ffffff;
    font-size:14.5px; color:var(--ink); font-family:var(--font-body) !important; margin-bottom:18px; transition:border-color .3s var(--ease);
  }
  .nva-contact__form-slot input:focus, .nva-contact__form-slot textarea:focus, .nva-contact__form-slot select:focus{
    outline:none; border-color:var(--green);
  }
  .nva-contact__form-slot textarea{ min-height:130px; resize:vertical; }
  .nva-contact__form-slot .wpcf7-submit,
  .nva-contact__form-slot input[type="submit"]{
    display:inline-flex; align-items:center; justify-content:center; gap:9px; width:100%;
    font-family:var(--font-head) !important; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
    padding:17px 30px; border-radius:10px; background:var(--green); color:#ffffff !important; border:1px solid var(--green);
    transition:background .3s var(--ease);
  }
  .nva-contact__form-slot .wpcf7-submit:hover,
  .nva-contact__form-slot input[type="submit"]:hover{ background:var(--green-dark); }
  .nva-contact__form-slot .wpcf7-spinner{ margin-left:10px; }
  .nva-contact__form-slot .wpcf7-not-valid-tip{ font-size:12.5px; color:#c0392b; margin:-12px 0 12px; }
  .nva-contact__form-slot .wpcf7-response-output{ margin-top:16px; border-radius:8px; padding:12px 16px; font-size:13.5px; }

  /* ---------- Footer ---------- */
  .nva-footer{ position:relative; }
  .nva-footer__panel{ background:linear-gradient(165deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--white); padding:52px 40px; }
  .nva-footer__links{ max-width:var(--container); margin:0 auto; display:flex; justify-content:space-around; gap:32px; flex-wrap:wrap; text-align:center; }
  .nva-footer__col{ display:flex; flex-direction:column; align-items:center; gap:10px; min-width:180px; }
  .nva-footer__col h5{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:4px; font-weight:700; }
  .nva-footer__col a{ font-size:13.5px; color:rgba(255,255,255,.9) !important; }
  .nva-footer__col span{ font-size:13.5px; color:rgba(255,255,255,.75); }
  .nva-footer__phone{ font-size:15px !important; font-weight:700; }
  .nva-footer__social{ display:inline-flex !important; align-items:center; gap:8px; }
  .nva-footer__social svg{ flex:none; }

  .nva-footer__bottombar{
    background:var(--white); padding:36px 40px; display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center;
  }
  .nva-footer__bottombar .nva-logo-img{ height:140px !important; max-height:140px !important; width:auto !important; max-width:min(420px, 70vw) !important; }
  .nva-footer__bottombar span{ font-size:12px; color:var(--grey-500); }

  /* ---------- Scroll to top ---------- */
  .nva-totop{
    position:fixed; right:28px; bottom:28px; width:50px; height:50px; border-radius:50%;
    background:var(--green); color:var(--white); font-size:18px; z-index:999700;
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transform:translateY(10px); transition:all .35s var(--ease);
  }
  .nva-totop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
  .nva-totop:hover{ background:var(--green-dark); }

  /* ---------- Cookie consent ---------- */
  .nva-cookies{
    position:fixed; left:24px; bottom:24px; z-index:999600; width:min(360px, calc(100vw - 48px));
    transform:translateY(140%); opacity:0; pointer-events:none;
    transition:transform .6s var(--ease), opacity .6s var(--ease);
  }
  .nva-cookies.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nva-cookies__bar{
    width:100%; background:var(--white); border:1px solid var(--grey-300); border-radius:16px;
    box-shadow:0 30px 60px rgba(44,53,57,.2); padding:26px 26px 22px;
    display:flex; flex-direction:column; gap:18px;
  }
  .nva-cookies__text h4{ font-size:1rem; margin-bottom:8px; }
  .nva-cookies__text p{ font-size:13px; line-height:1.6; }
  .nva-cookies__text a{ color:var(--green) !important; text-decoration:underline; }
  .nva-cookies__actions{ display:flex; flex-direction:column; gap:10px; }
  .nva-cookies__actions button{ width:100%; }
  .nva-btn-solid{ background:#ffffff; color:var(--ink) !important; border:1.5px solid var(--ink); }
  .nva-btn-solid:hover{ background:var(--grey-100); }
  .nva-cookies__link{
    font-family:var(--font-head); font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
    color:var(--ink) !important; text-decoration:underline; text-align:center; padding:4px 0;
  }

  /* ---------- Cookie preferences modal ---------- */
  .nva-cookies-modal{ position:fixed; inset:0; z-index:999950; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s var(--ease); }
  .nva-cookies-modal.is-open{ opacity:1; visibility:visible; }
  .nva-cookies-modal__overlay{ position:absolute; inset:0; background:rgba(44,53,57,.6); backdrop-filter:blur(4px); }
  .nva-cookies-modal__panel{
    position:relative; z-index:1; width:100%; max-width:640px; max-height:86vh; overflow-y:auto;
    background:var(--white); border-radius:20px; padding:40px; box-shadow:0 40px 90px rgba(44,53,57,.3);
    transform:translateY(24px); transition:transform .4s var(--ease);
  }
  .nva-cookies-modal.is-open .nva-cookies-modal__panel{ transform:translateY(0); }
  .nva-cookies-modal__head{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
  .nva-cookies-modal__head h3{ font-size:1.4rem; }
  .nva-cookies-modal__close{ width:34px; height:34px; border-radius:50%; border:1px solid var(--grey-300); font-size:18px; line-height:1; color:var(--ink); flex:none; }
  .nva-cookies-modal__close:hover{ background:var(--grey-100); }

  .nva-cookies-tabs__nav{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px; border-bottom:1px solid var(--grey-300); padding-bottom:14px; }
  .nva-cookies-tabs__nav button{
    padding:9px 16px; border-radius:999px; font-family:var(--font-head); font-size:12px; font-weight:600;
    letter-spacing:.02em; color:var(--grey-700); border:1px solid var(--grey-300); transition:all .3s var(--ease);
  }
  .nva-cookies-tabs__nav button.is-active, .nva-cookies-tabs__nav button:hover{ background:var(--green); border-color:var(--green); color:var(--white) !important; }
  .nva-cookies-tabs__panel{ display:none; }
  .nva-cookies-tabs__panel.is-active{ display:block; animation:nvaFadeUp .4s var(--ease); }
  @keyframes nvaFadeUp{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }
  .nva-cookies-tabs__panel p{ font-size:14px; line-height:1.7; }
  .nva-cookies-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
  .nva-cookies-row h5{ font-size:1rem; margin-bottom:8px; }
  .nva-cookies-row p{ font-size:13.5px; }

  .nva-switch{ position:relative; flex:none; width:46px; height:26px; display:inline-block; }
  .nva-switch input{ opacity:0; width:0; height:0; position:absolute; }
  .nva-switch span{ position:absolute; inset:0; background:var(--grey-300); border-radius:999px; transition:background .3s var(--ease); }
  .nva-switch span::before{ content:''; position:absolute; left:3px; top:3px; width:20px; height:20px; background:var(--white); border-radius:50%; transition:transform .3s var(--ease); box-shadow:0 2px 6px rgba(0,0,0,.2); }
  .nva-switch input:checked + span{ background:var(--green); }
  .nva-switch input:checked + span::before{ transform:translateX(20px); }
  .nva-switch--locked span{ background:var(--ink); opacity:.4; }
  .nva-switch--locked span::before{ transform:translateX(20px); }

  .nva-cookies-modal__foot{ display:flex; justify-content:flex-end; gap:12px; margin-top:30px; flex-wrap:wrap; }

  /* ---------- Legal content modals ---------- */
  .nva-legal-modal{ position:fixed; inset:0; z-index:999950; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s var(--ease); }
  .nva-legal-modal.is-open{ opacity:1; visibility:visible; }
  .nva-legal-modal__overlay{ position:absolute; inset:0; background:rgba(44,53,57,.6); backdrop-filter:blur(4px); }
  .nva-legal-modal__panel{
    position:relative; z-index:1; width:100%; max-width:680px; max-height:82vh; overflow-y:auto;
    background:var(--white); border-radius:20px; padding:44px; box-shadow:0 40px 90px rgba(44,53,57,.3);
    transform:translateY(24px); transition:transform .4s var(--ease);
  }
  .nva-legal-modal.is-open .nva-legal-modal__panel{ transform:translateY(0); }
  .nva-legal-modal__head{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:26px; }
  .nva-legal-modal__head h3{ font-size:1.4rem; }
  .nva-legal-modal__body h4{ font-size:1rem; margin:26px 0 10px; }
  .nva-legal-modal__body h4:first-child{ margin-top:0; }
  .nva-legal-modal__body p{ font-size:14px; line-height:1.75; }
  .nva-legal-modal__body a{ color:var(--green) !important; text-decoration:underline; }

  /* ---------- Responsive ---------- */
  @media (max-width:980px){
    .nva-nav, .nva-header .nva-btn--sm{ display:none; }
    .nva-burger{ display:flex; }
    .nva-split{ grid-template-columns:1fr; gap:44px; }
    .nva-service-row{ grid-template-columns:48px 44px 1fr auto; }
    .nva-features__grid{ grid-template-columns:1fr 1fr; }
    .nva-process__grid{ grid-template-columns:1fr 1fr; row-gap:44px; }
    .nva-gallery__grid{ grid-template-columns:1fr 1fr; }
    .nva-zone__grid{ grid-template-columns:1fr 1fr; }
    .nva-contact__grid{ grid-template-columns:1fr; gap:48px; }
    .nva-footer__links{ justify-content:flex-start; gap:36px 60px; }
    .nva-footer__col{ align-items:flex-start; text-align:left; }
    .nva-hero__bottombar{ flex-direction:column; }
    .nva-hero__bottombar a{ border-right:none; border-bottom:1px solid rgba(255,255,255,.14); }
  }
  @media (max-width:640px){
    .nva-split, .nva-services, .nva-process, .nva-features, .nva-faq, .nva-gallery, .nva-reviews, .nva-zone, .nva-contact{ padding-left:22px; padding-right:22px; }
    .nva-hero{ padding:130px 22px 0; }
    .nva-hero__h1{ font-size:clamp(1.8rem,7.6vw,2.4rem); }
    .nva-btn-call{ white-space:normal; }
    .nva-features__grid{ grid-template-columns:1fr; }
    .nva-process__grid{ grid-template-columns:1fr; }
    .nva-gallery__grid{ grid-template-columns:1fr; }
    .nva-service-row{ grid-template-columns:40px 40px 1fr; column-gap:16px; row-gap:8px; padding:24px 4px; }
    .nva-service-row__body p{ font-size:13.5px; }
    .nva-service-row__link{ grid-column:1 / -1; }
    .nva-zone__grid{ grid-template-columns:1fr 1fr; }
    .nva-footer__links{ flex-direction:column; align-items:flex-start; gap:26px; }
    .nva-footer__panel{ padding:40px 22px; }
    .nva-hero__cta{ flex-direction:column; align-items:flex-start; }
    .nva-header{ width:94%; }
    .nva-mobile{ padding:100px 24px 32px; }
    .nva-floating-cta{ padding:0 22px var(--gap-xl); }
    .nva-floating-cta__card{ padding:48px 24px; border-radius:18px; }
    .nva-contact__form-slot{ padding:26px; }
    .nva-hide-mobile{ display:none !important; }
    .nva-cookies{ left:14px; bottom:14px; width:min(340px, calc(100vw - 28px)); }
    .nva-cookies__bar{ padding:22px 20px; border-radius:14px; }
    .nva-cookies-modal__panel{ padding:28px 22px; border-radius:16px; }
    .nva-legal-modal__panel{ padding:28px 22px; border-radius:16px; }
    .nva-cookies-row{ flex-direction:column; gap:14px; }
    .nva-cookies-modal__foot{ flex-direction:column-reverse; }
    .nva-cookies-modal__foot button{ width:100%; }
    .nva-footer__bottombar .nva-logo-img{ height:100px !important; max-height:100px !important; }
  }

  @media (prefers-reduced-motion:reduce){
    body.nva-active *{ animation-duration:.001s !important; transition-duration:.001s !important; }
  }
