/*
Theme Name: Novanta9 Landing
Theme URI: https://lp.novanta9.site
Author: Novanta9
Description: Tema landing-page distraction-free per campagne adv (LinkedIn). Dark editorial-tech, costruito con elementi nativi WPBakery. Sistema visivo basato su classi .n9-*.
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: n9-landing
*/

/* =========================================================================
   00 · DESIGN TOKENS
   ========================================================================= */
:root {
  --n9-ink:        #0C0F12;
  --n9-ink-2:      #12171C;
  --n9-ink-3:      #1A2128;
  --n9-paper:      #F3F0E9;
  --n9-paper-dim:  #B7BDC4;
  --n9-muted:      #7C868F;
  --n9-line:       rgba(243,240,233,.10);
  --n9-line-2:     rgba(243,240,233,.18);
  --n9-accent:     #C8F94E;
  --n9-accent-ink: #0C0F12;
  --n9-signal:     #FF5C38;
  --n9-glow:       rgba(200,249,78,.16);

  --n9-display: "Clash Display", "Hanken Grotesk", system-ui, sans-serif;
  --n9-body:    "Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --n9-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --n9-wrap: 1180px;
  --n9-gut: clamp(20px, 5vw, 64px);
  --n9-sec-y: clamp(64px, 9vw, 128px);

  --n9-radius: 14px;
  --n9-radius-lg: 22px;
  --n9-ease: cubic-bezier(.22,.61,.36,1);
}

/* =========================================================================
   01 · RESET / BASE
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.n9-body {
  margin: 0;
  background: var(--n9-ink);
  color: var(--n9-paper);
  font-family: var(--n9-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--n9-accent); color: var(--n9-accent-ink); }

body.n9-body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(900px 540px at 78% -8%, var(--n9-glow), transparent 60%),
    radial-gradient(700px 500px at 0% 18%, rgba(255,92,56,.05), transparent 60%);
}
body.n9-body::after {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(var(--n9-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--n9-line) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 75%);
          mask-image: radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 75%);
}
#page, .n9-site { position: relative; z-index: 1; }

/* Constrain WPBakery content to a centered column */
.n9-shell { max-width: var(--n9-wrap); margin-inline: auto; padding-inline: var(--n9-gut); }
.n9-wrap  { width: 100%; max-width: var(--n9-wrap); margin-inline: auto; padding-inline: var(--n9-gut); }

/* =========================================================================
   02 · TYPOGRAPHY (su elementi nativi vc_custom_heading / vc_column_text)
   ========================================================================= */
.n9-eyebrow {
  font-family: var(--n9-mono)!important;
  font-size: .76rem!important; font-weight: 500!important;
  letter-spacing: .22em!important; text-transform: uppercase;
  color: var(--n9-accent)!important;
  display: inline-flex!important; align-items: center; gap: .6em;
  margin: 0 0 1.1rem!important;
}
.n9-eyebrow::before { content: ""; width: 26px; height: 1px; background: var(--n9-accent); opacity: .7; }

h1.n9-h1, .n9-h1 { font-family: var(--n9-display)!important; font-weight: 600!important; line-height: .98!important; letter-spacing: -.025em!important; font-size: clamp(2.5rem, 6.4vw, 5rem)!important; margin: 0 0 1.4rem!important; color: var(--n9-paper)!important; }
h2.n9-h2, .n9-h2 { font-family: var(--n9-display)!important; font-weight: 600!important; line-height: 1.02!important; letter-spacing: -.02em!important; font-size: clamp(1.9rem, 4.2vw, 3.2rem)!important; margin: 0 0 1rem!important; color: var(--n9-paper)!important; }
h3.n9-h3, .n9-h3 { font-family: var(--n9-display)!important; font-weight: 600!important; line-height: 1.08!important; letter-spacing: -.01em!important; font-size: 1.3rem!important; margin: 0 0 .5rem!important; color: var(--n9-paper)!important; }

/* vc_column_text wrappers */
.wpb_text_column { margin-bottom: 0; }
.n9-lead, .n9-lead p { font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.55; color: var(--n9-paper-dim); }
.n9-lead p:last-child { margin-bottom: 0; }
.n9-text, .n9-text p { color: var(--n9-paper-dim); }
.n9-text p:last-child { margin-bottom: 0; }

/* =========================================================================
   03 · BUTTONS
   ========================================================================= */
/* base — pulsanti <a> semplici (header/footer) */
.n9-btn {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: var(--n9-mono); font-weight: 600; font-size: .9rem; letter-spacing: .02em;
  padding: 1.05em 1.6em; border-radius: 999px; line-height: 1; cursor: pointer;
  background: var(--n9-accent); color: var(--n9-accent-ink); border: 1px solid var(--n9-accent);
  transition: transform .3s var(--n9-ease), box-shadow .3s var(--n9-ease);
}
.n9-btn:hover { transform: translateY(-3px); box-shadow: 0 16px 40px -12px var(--n9-glow); }
.n9-btn--sm { padding: .72em 1.15em; font-size: .82rem; }

/* WPBakery vc_btn override */
.vc_btn3.vc_general.n9-btn {
  font-family: var(--n9-mono)!important;
  font-weight: 600!important; font-size: .9rem!important; letter-spacing: .02em!important;
  border-radius: 999px!important; padding: 1.05em 1.6em!important;
  border: 1px solid transparent!important; line-height: 1!important;
  display: inline-flex!important; align-items: center;
  transition: transform .3s var(--n9-ease), box-shadow .3s var(--n9-ease), background-color .25s, color .25s!important;
}
.vc_btn3.n9-btn::after { content: "→"; margin-left: .6em; transition: transform .3s var(--n9-ease); }
.vc_btn3.n9-btn:hover { transform: translateY(-3px); box-shadow: 0 16px 40px -12px var(--n9-glow); }
.vc_btn3.n9-btn:hover::after { transform: translateX(4px); }
.vc_btn3.n9-btn--ghost { background: transparent!important; color: var(--n9-paper)!important; border-color: var(--n9-line-2)!important; }
.vc_btn3.n9-btn--ghost:hover { border-color: var(--n9-accent)!important; color: var(--n9-accent)!important; box-shadow: none; }
/* WPBakery rende il container del bottone a blocco: in linea nell'hero, niente margine sotto altrove */
.n9-hero-main .vc_btn3-container { display: inline-block; margin: 0 14px 14px 0; vertical-align: top; }
.n9-process-cta .vc_btn3-container, .n9-b2b-cta .vc_btn3-container, .vc_btn3-container { margin-bottom: 0; }
.n9-header__inner .vc_btn3-container { margin: 0; }

/* =========================================================================
   04 · HEADER / FOOTER
   ========================================================================= */
.n9-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(12px);
  background: color-mix(in srgb, var(--n9-ink) 70%, transparent);
  border-bottom: 1px solid transparent;
  transition: border-color .3s, background .3s;
}
.n9-header.is-stuck { border-bottom-color: var(--n9-line); background: color-mix(in srgb, var(--n9-ink) 88%, transparent); }
.n9-header__inner { display: flex; align-items: center; justify-content: space-between; height: 74px; }
.n9-logo { font-family: var(--n9-display); font-weight: 700; font-size: 1.32rem; letter-spacing: -.01em; display: inline-flex; align-items: baseline; gap: .06em; }
.n9-logo b { color: var(--n9-accent); }
.n9-logo small { font-family: var(--n9-mono); font-size: .58rem; letter-spacing: .2em; color: var(--n9-muted); text-transform: uppercase; margin-left: .5em; align-self: center; }
.n9-logo img { height: 34px; width: auto; display: block; transition: opacity .25s; }
.n9-logo:hover img { opacity: .82; }
.n9-footer .n9-logo img { height: 28px; }

.n9-footer { border-top: 1px solid var(--n9-line); padding-block: 48px; margin-top: var(--n9-sec-y); }
.n9-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; }
.n9-footer .n9-logo { font-size: 1.1rem; }
.n9-footer__meta, .n9-footer small { font-family: var(--n9-mono); font-size: .76rem; letter-spacing: .04em; color: var(--n9-muted); }

/* =========================================================================
   05 · SECTION RHYTHM (outer vc_row per sezione)
   ========================================================================= */
.n9-shell .vc_row.n9-section { padding-block: var(--n9-sec-y); }
.n9-shell .vc_row.n9-sec { border-top: 1px solid var(--n9-line); }
.n9-shell .vc_row.n9-hero { padding-top: clamp(48px, 7vw, 96px); }

/* inner rows reset bottom margins of stacked elements */
.wpb_content_element, .vc_empty_space { margin-bottom: 0; }

/* =========================================================================
   06 · HERO
   ========================================================================= */
.n9-hero-grid.vc_row { align-items: end; }
.n9-hero-aside > .vc_column-inner { border-left: 1px solid var(--n9-line); }
@media (min-width: 961px){ .n9-hero-aside > .vc_column-inner { padding-left: clamp(20px,2.4vw,36px)!important; } }
.n9-hero-badge { font-family: var(--n9-mono)!important; font-size: .74rem!important; letter-spacing: .14em!important; text-transform: uppercase; color: var(--n9-paper-dim)!important; }
.n9-hero-badge p { display: inline-flex; align-items: center; gap: .55em; border: 1px solid var(--n9-line-2); border-radius: 999px; padding: .5em .9em; margin: 0 0 1.2rem; }
.n9-hero-asidetext, .n9-hero-asidetext p { color: var(--n9-paper-dim); font-size: 1.02rem; }

/* Stat strip */
.n9-statstrip.vc_row { border: 1px solid var(--n9-line); border-radius: var(--n9-radius); overflow: hidden; margin: 0!important; }
.n9-stat > .vc_column-inner { padding: 26px clamp(18px,2vw,28px)!important; border-right: 1px solid var(--n9-line); height: 100%; }
.n9-statstrip .vc_col-sm-3:last-child .n9-stat > .vc_column-inner,
.n9-stat:last-child > .vc_column-inner { border-right: 0; }
.n9-stat-num, .n9-stat-num.vc_custom_heading { font-family: var(--n9-display)!important; font-weight: 600!important; font-size: clamp(1.7rem, 3vw, 2.5rem)!important; line-height: 1!important; color: var(--n9-paper)!important; margin: 0 0 .6rem!important; }
.n9-stat-label, .n9-stat-label p { font-family: var(--n9-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--n9-muted); margin: 0; }

/* =========================================================================
   07 · GRID CARDS (vc_column_inner come card)
   ========================================================================= */
.n9-cards.vc_row, .n9-values-grid.vc_row { margin-bottom: 0; }

/* generic card surface lives on the inner wrapper so column padding stays as gutter */
.n9-card > .vc_column-inner { height: 100%; }
.n9-card .n9-card-surface { height: 100%; }

.n9-service-card > .vc_column-inner {
  height: 100%;
  background: linear-gradient(180deg, var(--n9-ink-2), color-mix(in srgb, var(--n9-ink-2) 60%, var(--n9-ink)));
  border: 1px solid var(--n9-line); border-radius: var(--n9-radius);
  padding: clamp(24px,2.6vw,32px)!important;
  transition: transform .35s var(--n9-ease), border-color .35s;
}
.n9-service-card > .vc_column-inner:hover { transform: translateY(-6px); border-color: var(--n9-line-2); }

/* vc_icon inside service card */
.n9-ico .vc_icon_element-inner { width: 46px!important; height: 46px!important; border-radius: 12px!important; background: var(--n9-ink)!important; border: 1px solid var(--n9-line-2); display: grid; place-items: center; }
.n9-ico .vc_icon_element-icon { color: var(--n9-accent)!important; font-size: 20px!important; }
.n9-ico { margin-bottom: 20px; }

/* Value cards */
.n9-value > .vc_column-inner { position: relative; padding: clamp(26px,3vw,38px) clamp(18px,2vw,26px) 8px!important; border-top: 3px solid var(--n9-line); height: 100%; }
.n9-value > .vc_column-inner::before { content: ""; position: absolute; top: -3px; left: 0; width: 56px; height: 3px; background: var(--n9-accent); }
.n9-value-idx, .n9-value-idx.vc_custom_heading { font-family: var(--n9-mono)!important; font-size: .78rem!important; font-weight: 500!important; letter-spacing: .12em!important; color: var(--n9-muted)!important; margin: 0 0 .9rem!important; }
.n9-value-title { font-size: 1.45rem!important; }

/* Case cards */
.n9-case-card > .vc_column-inner {
  height: 100%; background: var(--n9-ink-2);
  border: 1px solid var(--n9-line); border-radius: var(--n9-radius);
  padding: clamp(24px,2.6vw,30px)!important;
  transition: transform .35s var(--n9-ease), border-color .35s;
}
.n9-case-card > .vc_column-inner:hover { transform: translateY(-6px); border-color: var(--n9-accent); }
.n9-case-client, .n9-case-client.vc_custom_heading { font-family: var(--n9-display)!important; font-weight: 600!important; font-size: 1.18rem!important; color: var(--n9-paper)!important; margin: 0 0 22px!important; }
.n9-case-delta, .n9-case-delta.vc_custom_heading { font-family: var(--n9-display)!important; font-weight: 600!important; line-height: .9!important; font-size: clamp(2.4rem,4.2vw,3.3rem)!important; color: var(--n9-accent)!important; margin: 0!important; }
.n9-case-label, .n9-case-label p { font-family: var(--n9-mono); font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: var(--n9-muted); margin: .4rem 0 0; }
.n9-sep { margin: 16px 0!important; border-color: var(--n9-line)!important; }
.n9-sep .vc_sep_line, .n9-sep.vc_separator .vc_sep_holder .vc_sep_line { border-color: var(--n9-line)!important; }
.n9-case-kw, .n9-case-kw p { font-family: var(--n9-mono); font-size: .8rem; color: var(--n9-paper-dim); margin: 0; }
.n9-case-kw b { color: var(--n9-paper); }

/* =========================================================================
   08 · B2B PANEL
   ========================================================================= */
.n9-b2b-panel.vc_row {
  background: linear-gradient(110deg, var(--n9-ink-2), var(--n9-ink));
  border: 1px solid var(--n9-line-2); border-radius: var(--n9-radius-lg);
  padding: clamp(30px,4vw,56px) clamp(24px,3vw,44px)!important;
  align-items: center; position: relative; overflow: hidden; margin: 0!important;
}
.n9-b2b-panel.vc_row::before { content: "B2B"; position: absolute; right: -1%; bottom: -40%; font-family: var(--n9-display); font-weight: 700; font-size: 20rem; line-height: 1; color: var(--n9-paper); opacity: .03; pointer-events: none; }
.n9-b2b-cta { display: flex; align-items: center; }
@media (min-width:961px){ .n9-b2b-cta > .vc_column-inner { display:flex; justify-content:flex-end; width:100%; } }

/* =========================================================================
   09 · PROCESS STEPS (inner rows)
   ========================================================================= */
.n9-step.vc_row { border-top: 1px solid var(--n9-line); padding-block: clamp(24px,3vw,36px)!important; margin: 0!important; align-items: baseline; }
.n9-step:last-of-type { border-bottom: 1px solid var(--n9-line); }
.n9-step-num, .n9-step-num.vc_custom_heading { font-family: var(--n9-display)!important; font-weight: 600!important; font-size: clamp(2.2rem,4.5vw,3.6rem)!important; line-height: 1!important; color: var(--n9-ink-3)!important; -webkit-text-stroke: 1px var(--n9-line-2); margin: 0!important; }
.n9-step-tag, .n9-step-tag.vc_custom_heading { font-family: var(--n9-mono)!important; font-size: .72rem!important; font-weight: 500!important; letter-spacing: .14em!important; text-transform: uppercase; color: var(--n9-muted)!important; margin: 0 0 .4rem!important; }
.n9-step-title { font-size: 1.35rem!important; }

/* =========================================================================
   10 · CTA + FORM
   ========================================================================= */
.n9-cta.vc_row { background: var(--n9-ink-2); border: 1px solid var(--n9-line-2); border-radius: var(--n9-radius-lg); }
.n9-cta-grid.vc_row { align-items: start; }
.n9-cta-points ul { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; gap: 12px; }
.n9-cta-points li { display: flex; gap: .8em; align-items: flex-start; color: var(--n9-paper-dim); }
.n9-cta-points li::before { content: "✓"; color: var(--n9-accent); font-weight: 700; }

.n9-form-col > .vc_column-inner { background: var(--n9-ink); border: 1px solid var(--n9-line-2); border-radius: var(--n9-radius-lg); padding: clamp(24px,3vw,36px)!important; }
.n9-form-title { font-size: 1.3rem!important; margin: 0 0 1.3rem!important; }

/* --- Prenotazione call: iframe Google Calendar --- */
.n9-cal { border-radius: var(--n9-radius-lg); overflow: hidden; border: 1px solid var(--n9-line-2); background: #fff; box-shadow: 0 30px 70px -34px rgba(0,0,0,.7); }
.n9-cal iframe { width: 100%; height: 640px; border: 0; display: block; }
@media (max-width: 600px) { .n9-cal iframe { height: 760px; } }

/* Contact Form 7 fields */
.n9-form-col .wpcf7-form .row { display: grid; gap: 14px; margin-bottom: 14px; }
.n9-form-col .wpcf7-form .row.two { grid-template-columns: 1fr 1fr; }
.n9-form-col .wpcf7-form label { display: block; font-family: var(--n9-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--n9-muted); margin-bottom: .5em; }
.n9-form-col .wpcf7-form input[type=text],
.n9-form-col .wpcf7-form input[type=email],
.n9-form-col .wpcf7-form input[type=tel],
.n9-form-col .wpcf7-form textarea {
  width: 100%; background: var(--n9-ink-3); border: 1px solid var(--n9-line-2); border-radius: 10px;
  color: var(--n9-paper); font-family: var(--n9-body); font-size: 1rem; padding: .85em 1em;
  transition: border-color .25s, box-shadow .25s;
}
.n9-form-col .wpcf7-form input:focus, .n9-form-col .wpcf7-form textarea:focus { outline: none; border-color: var(--n9-accent); box-shadow: 0 0 0 3px var(--n9-glow); }
.n9-form-col .wpcf7-form .wpcf7-submit { width: 100%; margin-top: 6px; font-family: var(--n9-mono); font-weight: 600; letter-spacing: .02em; background: var(--n9-accent); color: var(--n9-accent-ink); border: 0; border-radius: 999px; padding: 1.05em 1.6em; cursor: pointer; transition: transform .3s var(--n9-ease), box-shadow .3s var(--n9-ease); }
.n9-form-col .wpcf7-form .wpcf7-submit:hover { transform: translateY(-3px); box-shadow: 0 16px 40px -12px var(--n9-glow); }
.n9-form-col .wpcf7-spinner { display: none; }
.n9-form-col .wpcf7-response-output { border-radius: 10px!important; border-color: var(--n9-line-2)!important; font-size: .88rem; color: var(--n9-paper-dim); margin: 1rem 0 0!important; }

/* =========================================================================
   11 · WPBAKERY NORMALISERS
   ========================================================================= */
.wpb_text_column, .wpb_content_element { margin-bottom: 0; }
.n9-shell .vc_row.vc_row-flex > .vc_column_container > .vc_column-inner { padding-top: 0; padding-bottom: 0; }

/* =========================================================================
   12 · MOTION
   ========================================================================= */
@media (prefers-reduced-motion: no-preference) {
  .wpb_animate_when_almost_visible { opacity: 1; }
}

/* =========================================================================
   13 · RESPONSIVE
   ========================================================================= */
@media (max-width: 960px) {
  .n9-hero-aside > .vc_column-inner { border-left: 0; border-top: 1px solid var(--n9-line); padding-top: 28px!important; margin-top: 8px; }
  .n9-statstrip .vc_column_container { width: 50%; }
  .n9-stat:nth-child(2n) > .vc_column-inner { border-right: 0; }
  .n9-b2b-cta { justify-content: flex-start; margin-top: 20px; }
}
@media (max-width: 600px) {
  body.n9-body { font-size: 16px; }
  .n9-header__inner .n9-btn-wrap, .n9-header__inner a.n9-btn { display: none; }
  .n9-form-col .wpcf7-form .row.two { grid-template-columns: 1fr; }
}

/* =========================================================================
   14 · ENHANCEMENTS v1.2 — ANIMAZIONI & UI PRO
   ========================================================================= */

/* --- scroll progress bar --- */
#n9-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; z-index: 60; background: linear-gradient(90deg, var(--n9-accent), #8fe000); box-shadow: 0 0 14px var(--n9-glow); }

/* --- smart header --- */
.n9-header { transition: transform .45s var(--n9-ease), border-color .3s, background .3s; will-change: transform; }
.n9-header.is-hidden { transform: translateY(-100%); }

/* --- aurora animata dietro il contenuto --- */
.n9-site::before {
  content: ""; position: fixed; inset: -25vmax; z-index: -1; pointer-events: none;
  background:
    radial-gradient(38vmax 38vmax at 18% 16%, rgba(200,249,78,.07), transparent 60%),
    radial-gradient(34vmax 34vmax at 84% 26%, rgba(255,92,56,.05), transparent 60%);
  filter: blur(30px);
  animation: n9-drift 30s ease-in-out infinite alternate;
}
@keyframes n9-drift { from { transform: translate3d(-2%,-1%,0) scale(1); } to { transform: translate3d(3%,2%,0) scale(1.1); } }

/* --- titolo H1: sottile gradiente luce (solo dove supportato) --- */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .n9-h1 { background: linear-gradient(180deg, #FFFFFF 0%, #C9CDC5 130%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
}
/* --- headline hero su più righe: interlinea compatta + riga accento lime --- */
.n9-hl { margin: 0 0 .04em !important; line-height: .96 !important; }
.n9-h1.n9-hl--accent { background: none !important; -webkit-text-fill-color: var(--n9-accent) !important; color: var(--n9-accent) !important; }

/* --- pulsanti: shine sweep --- */
.n9-btn, .vc_btn3.n9-btn { position: relative; overflow: hidden; }
.n9-btn::before, .vc_btn3.n9-btn::before {
  content: ""; position: absolute; top: 0; left: -130%; width: 55%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.42), transparent);
  transform: skewX(-18deg); transition: left .65s var(--n9-ease); pointer-events: none;
}
.n9-btn:hover::before, .vc_btn3.n9-btn:hover::before { left: 150%; }

/* --- card: spotlight che segue il cursore --- */
.n9-service-card > .vc_column-inner, .n9-case-card > .vc_column-inner { position: relative; overflow: hidden; }
.n9-service-card > .vc_column-inner::before, .n9-case-card > .vc_column-inner::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(240px circle at var(--mx,50%) var(--my,0%), rgba(200,249,78,.13), transparent 55%);
}
.n9-service-card > .vc_column-inner:hover::before, .n9-case-card > .vc_column-inner:hover::before { opacity: 1; }

/* --- icone servizi: micro-interazione --- */
.n9-ico .vc_icon_element-inner { transition: transform .35s var(--n9-ease), border-color .35s, background .35s; }
.n9-service-card > .vc_column-inner:hover .n9-ico .vc_icon_element-inner { transform: translateY(-3px) rotate(-4deg); border-color: var(--n9-accent); }

/* --- value card hover --- */
.n9-value > .vc_column-inner { transition: transform .35s var(--n9-ease), border-color .35s; }
.n9-value:hover > .vc_column-inner { transform: translateY(-4px); }

/* --- stat strip hover + count color --- */
.n9-stat > .vc_column-inner { transition: background .3s; }
.n9-stat:hover > .vc_column-inner { background: rgba(200,249,78,.045); }
.n9-stat-num { transition: color .3s; }
.n9-stat:hover .n9-stat-num { color: var(--n9-accent)!important; }

/* --- process step hover --- */
.n9-step { transition: padding-left .35s var(--n9-ease); }
.n9-step:hover { padding-left: 14px; }
.n9-step-num { transition: color .35s, -webkit-text-stroke-color .35s; }
.n9-step:hover .n9-step-num { color: var(--n9-accent)!important; -webkit-text-stroke: 0!important; }

/* --- b2b panel hover --- */
.n9-b2b-panel.vc_row { transition: border-color .4s; }
.n9-b2b-panel.vc_row:hover { border-color: rgba(200,249,78,.3); }

/* --- case card metric glow on hover --- */
.n9-case-delta { transition: text-shadow .4s; }
.n9-case-card > .vc_column-inner:hover .n9-case-delta { text-shadow: 0 0 24px var(--n9-glow); }

/* --- scroll reveal engine --- */
@media (prefers-reduced-motion: no-preference) {
  .n9-anim { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--n9-ease), transform .7s var(--n9-ease); transition-delay: var(--n9-d, 0ms); will-change: opacity, transform; }
  .n9-anim.n9-in { opacity: 1; transform: none; }
  /* eyebrow line draw-in */
  .n9-eyebrow.n9-anim::before { width: 0; }
  .n9-eyebrow.n9-anim.n9-in::before { width: 26px; transition: width .6s var(--n9-ease) .15s; }
}
