/* Ctrl Studio, navbar di tutte le pagine (componente NAVBAR POTENTE di Webflow).
   Stessa struttura di prima (logo, pillola al centro, Contattaci), con il tocco del resto del sito:
   logo un po' piu' grande in SVG con il puntino blu (in hover il tasto Ctrl si preme e il puntino salta),
   pillola scura a righe con l'evidenziatore che segue il mouse, puntino blu sulla pagina in cui sei,
   barra blu che segna quanto hai letto della pagina, menu mobile a righe numerate.
   Il logo SVG e' un embed dentro il componente; il resto lo fa navbar/navbar.js. */

.navbar_component.navbar-2 {
  --nv-ink: #121212;
  --nv-paper: #f4f4f4;
  --nv-blue: #2e50ff;
  --nv-blue-2: #6f86ff;
  --nv-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --nv-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --nv-ease: cubic-bezier(.165, .84, .44, 1);
}

/* ---------- logo ---------- */
.navbar-2 .navbar_logo-link { width: auto; height: auto; align-self: center; color: var(--nv-ink); }
.navbar-2 .navbar_logo-image-wrapper { display: flex; align-items: center; width: auto; height: auto; margin: 0; }
.navbar-2 .navbar_logo-image-wrapper > .w-embed { display: flex; align-items: center; }
.navbar-2 .nv-logo { display: block; width: clamp(122px, 9.4vw, 142px); height: auto; overflow: visible; color: var(--nv-ink); }
.navbar-2 .nv-logo path { fill: currentColor; }
.navbar-2 .nv-logo .nv-dot path { fill: var(--nv-blue); }
.navbar-2 .nv-logo .nv-key, .navbar-2 .nv-logo .nv-dot { transform-box: fill-box; transform-origin: 50% 100%; }
/* all'arrivo il puntino lampeggia due volte, come un cursore */
.navbar-2 .nv-logo.is-intro .nv-dot { animation: nv-blink .9s steps(1) 2 .3s; }
/* hover (o ctrl sulla tastiera): il tasto Ctrl si preme e il puntino salta */
.navbar-2 .nv-logo.is-hop .nv-key { animation: nv-press .55s var(--nv-ease); }
.navbar-2 .nv-logo.is-hop .nv-dot { animation: nv-hop .95s cubic-bezier(.3, .7, .4, 1) .06s; }
.navbar-2 .navbar_logo-link:focus-visible { outline: 2px solid var(--nv-blue); outline-offset: 4px; border-radius: 6px; }

@keyframes nv-blink { 50% { opacity: 0; } }
@keyframes nv-press { 0% { transform: none; } 22%, 55% { transform: translateY(16px); } 100% { transform: none; } }
@keyframes nv-hop {
  0% { transform: none; }
  14% { transform: translateY(0) scale(1.35, .7); }
  42% { transform: translateY(-150px) scale(.88, 1.15); }
  66% { transform: translateY(0) scale(1.4, .65); }
  80% { transform: translateY(-46px) scale(.95, 1.05); }
  92% { transform: translateY(0) scale(1.12, .9); }
  100% { transform: none; }
}

/* ---------- desktop: pillola al centro e Contattaci ---------- */
@media (min-width: 992px) {
  .navbar_component.navbar-2 .navbar_menu.is-page-height-tablet {
    width: max-content;
    isolation: isolate;
    align-items: center;
    padding: 4px;
    border: 1px solid rgba(244, 244, 244, .09);
    border-radius: 100vw;
    background-color: rgba(11, 11, 12, .8);
    background-image: repeating-linear-gradient(180deg, rgba(244, 244, 244, .035) 0 1px, transparent 1px 4px);
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .55);
    overflow: hidden;
  }
  .navbar-2 .navbar_menu > a { position: relative; z-index: 1; }
  .navbar-2 .navbar_link { padding: .95rem 1.3rem .9rem; border-radius: 100vw; color: #d6d8e2; font: 500 .84rem/1 var(--nv-sans); letter-spacing: .01em; text-transform: uppercase; transition: color .2s var(--nv-ease); }
  .navbar-2 .navbar_link:hover, .navbar-2 .navbar_link.w--current { color: #fff; }
  /* la pagina in cui sei: il puntino blu, come nel logo */
  .navbar-2 .navbar_link.w--current::after { content: ""; position: absolute; left: 50%; bottom: .34rem; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--nv-blue-2); box-shadow: 0 0 8px rgba(111, 134, 255, .8); }
  .navbar-2 .navbar_menu > a:not(.navbar_link) { display: grid; place-items: center; align-self: stretch; padding: 0 .55rem 0 .65rem; border-radius: 100vw; }
  .navbar-2 .navbar_menu > a:not(.navbar_link) img { display: block; width: 30px; height: 30px; max-width: none; margin: 0; padding: 0; object-fit: contain; transition: transform .35s var(--nv-ease); }
  .navbar-2 .navbar_menu > a:not(.navbar_link):hover img { transform: rotate(-8deg) scale(1.06); }
  .navbar-2 .nv-home-label, .navbar-2 .nv-contact-m, .navbar-2 .nv-eyebrow { display: none; }
  /* evidenziatore che segue il mouse (lo crea navbar.js) */
  .navbar-2 .nv-ind { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 0; width: 0; border-radius: 100vw; background: rgba(244, 244, 244, .11); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); opacity: 0; pointer-events: none; transition: transform .38s var(--nv-ease), width .38s var(--nv-ease), opacity .2s var(--nv-ease); }
  .navbar-2 .nv-ind.is-on { opacity: 1; }
  .navbar-2 .nv-ind.no-anim { transition: none; }
  /* quanto hai letto della pagina */
  .navbar-2 .navbar_menu::after { content: ""; position: absolute; z-index: 2; left: 18px; right: 18px; bottom: 0; height: 2px; border-radius: 2px; background: var(--nv-blue); transform-origin: 0 50%; transform: scaleX(var(--nv-p, 0)); pointer-events: none; }

  /* Contattaci: pillola come i bottoni delle sezioni, puntino blu che pulsa */
  .navbar-2 .is-navbar-button { gap: .65rem; align-items: center; padding: 1rem 1.45rem !important; border-radius: 100vw !important; background-color: var(--nv-ink) !important; color: #fff !important; font: 500 .84rem/1 var(--nv-sans); letter-spacing: -.0238em; text-transform: uppercase; transition: background-color .2s var(--nv-ease), letter-spacing .2s var(--nv-ease); }
  .navbar-2 .is-navbar-button:hover { background-color: var(--nv-blue) !important; letter-spacing: .03em; }
  .navbar-2 .is-navbar-button .button_text-small { font: inherit; letter-spacing: inherit; color: inherit; }
  .navbar-2 .is-navbar-button .button-inner-shadow { display: none !important; }
}
.navbar-2 .button_circle { position: relative; flex: none; width: 8px; height: 8px; margin: 0; border-radius: 50%; background-color: var(--nv-blue); transition: background-color .2s var(--nv-ease); }
.navbar-2 .button_circle::after { content: ""; position: absolute; inset: -4px; border: 1px solid var(--nv-blue); border-radius: 50%; animation: nv-ping 2.4s var(--nv-ease) infinite; }
.navbar-2 .is-navbar-button:hover .button_circle { background-color: #fff; }
.navbar-2 .is-navbar-button:hover .button_circle::after { border-color: #fff; }
@keyframes nv-ping { 0% { transform: scale(.4); opacity: 1; } 70%, 100% { transform: scale(1.7); opacity: 0; } }

/* ---------- tablet e mobile: barra carta a filetto, tasto menu scuro, menu a righe numerate ---------- */
@media (max-width: 991px) {
  /* la barra resta in alto: sparisce quando scorri in giu', torna appena risali (navbar.js) */
  .navbar_component.navbar-2 { position: fixed; top: 0; left: 0; right: 0; transition: transform .38s var(--nv-ease); }
  .navbar_component.navbar-2.nv-hide { transform: translateY(-110%); }
  .navbar-2 .navbar_container {
    height: 64px; min-height: 0; margin: 0;
    padding: 0 max(12px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px));
    border: 0; border-bottom: 1px solid rgba(18, 18, 18, .09); border-radius: 0; box-shadow: none;
    background-color: rgba(244, 244, 244, .8);
    -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  }
  .navbar-2 .navbar_logo-image-wrapper { padding: 0; }
  .navbar-2 .nv-logo { width: 104px; }
  .navbar-2 .nv-ind { display: none; }
  /* tasto menu: quadrato scuro, due righe che diventano una X */
  .navbar-2 .navbar_button-wrapper { width: auto; height: auto; margin: 0; }
  .navbar-2 .navbar_menu-button { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; border-radius: 12px; background-color: var(--nv-ink); transition: background-color .25s var(--nv-ease); -webkit-tap-highlight-color: transparent; }
  .navbar-2 .navbar_menu-button.w--open { background-color: var(--nv-blue); }
  .navbar-2 .navbar_menu-button:focus-visible { outline: 2px solid var(--nv-blue); outline-offset: 3px; }
  .navbar-2 .menu-icon-2 { position: relative; display: block; width: 18px; height: 12px; margin: 0; padding: 0; }
  .navbar-2 .menu-icon-2 .menu-icon_line-middle { display: none !important; }
  .navbar-2 .menu-icon-2 .menu-icon_line-top, .navbar-2 .menu-icon-2 .menu-icon_line-bottom {
    position: absolute; left: 0; width: 100% !important; height: 1.6px !important; margin: 0 !important; padding: 0;
    border-radius: 2px; background-color: #fff !important; transform: none !important;
    transition: transform .32s var(--nv-ease), top .32s var(--nv-ease), width .32s var(--nv-ease);
  }
  .navbar-2 .menu-icon-2 .menu-icon_line-top { top: 2px; }
  .navbar-2 .menu-icon-2 .menu-icon_line-bottom { top: 8.4px; width: 62% !important; }
  .navbar-2 .w--open .menu-icon-2 .menu-icon_line-top { top: 5.2px; transform: rotate(45deg) !important; }
  .navbar-2 .w--open .menu-icon-2 .menu-icon_line-bottom { top: 5.2px; width: 100% !important; transform: rotate(-45deg) !important; }
  /* l'icona della casetta nel menu: su mobile c'e' l'etichetta Home */
  .navbar-2 .navbar_menu > a:not(.navbar_link) img { display: none; }
  .navbar_component.navbar-2 .navbar_menu.is-page-height-tablet[data-nav-menu-open] {
    display: flex !important;
    position: relative;
    float: none;
    inset: auto;
    width: auto;
    height: auto;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    margin: 0 8px;
    padding: 1rem 18px 1.3rem;
    border: 1px solid rgba(244, 244, 244, .08);
    border-radius: 18px;
    background-color: rgba(11, 11, 12, .94);
    background-image: repeating-linear-gradient(180deg, rgba(244, 244, 244, .03) 0 1px, transparent 1px 4px);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .6);
    text-align: left;
    counter-reset: nv;
  }
  .navbar-2 .navbar_menu[data-nav-menu-open] .nv-eyebrow { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .6rem; padding: 0 0 .9rem; border-bottom: 1px solid rgba(244, 244, 244, .55); font: 500 .7rem/1 var(--nv-mono) !important; text-transform: uppercase; letter-spacing: .09em; color: #8d90a0; }
  .navbar-2 .navbar_menu[data-nav-menu-open] .nv-eyebrow b { font-weight: 500; color: var(--nv-paper); font-family: var(--nv-mono) !important; }
  .navbar-2 .navbar_menu[data-nav-menu-open] .nv-eyebrow span { font-family: var(--nv-mono) !important; }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a { display: flex; align-items: center; gap: .9rem; width: auto; margin: 0; padding: .95rem 0; border-bottom: 1px solid rgba(244, 244, 244, .12); border-radius: 0; color: var(--nv-paper); font: 600 1.7rem/1 var(--nv-sans); letter-spacing: -.035em; text-transform: uppercase; text-align: left; counter-increment: nv; }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a::before { content: counter(nv, decimal-leading-zero); flex: none; width: 1.6rem; font: 500 .7rem/1 var(--nv-mono) !important; letter-spacing: .04em; color: var(--nv-blue-2); }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a::after { content: "\2192"; margin-left: auto; font: 400 1.1rem/1 var(--nv-sans); color: #6b6e7c; }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a.w--current { color: var(--nv-blue-2); }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a.w--current::after { content: "\25CF"; font-size: .6rem; color: var(--nv-blue-2); }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a:not(.navbar_link) img { display: none; }
  .navbar-2 .navbar_menu[data-nav-menu-open] .nv-home-label { display: inline; }
  .navbar-2 .navbar_menu[data-nav-menu-open] > a:last-of-type { border-bottom: 0; }
  .navbar-2 .nv-home-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .navbar-2 .nv-logo .nv-key, .navbar-2 .nv-logo .nv-dot, .navbar-2 .button_circle::after { animation: none !important; }
  .navbar-2 .nv-ind, .navbar_component.navbar-2 { transition: none; }
}

/* ---------- accessibilita', tutto il sito: contrasti minimi (questo file si carica su ogni pagina) ---------- */
/* banner cookie: testo e link grigi su grigio */
.container-46 .text-block-87, .container-46 .text-block-88 { color: #3f3f48 !important; }
.container-46 .text-block-88 { text-decoration: underline; text-underline-offset: 2px; }
/* numero accanto a Testimonianze, su fondo scuro */
.hm sup[data-hm-voci-n] { color: #8fa0ff; }
/* parole che si accendono scorrendo: anche spente restano leggibili */
.hm-w.hm-w { opacity: .5; }
.hm-w.hm-w.is-on { opacity: 1; }
