/* ═══════════════════════════════════════
   base.css — Global Reset & Base Styles
   Not Visual
═══════════════════════════════════════ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nv-navbar-h);
  font-size: 16px;
}

body {
  background-color: var(--nv-black);
  color: var(--nv-white);
  font-family: var(--nv-font);
  font-weight: 400;
  overflow-x: hidden;
  cursor: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Utility ── */
.nv-green { color: var(--nv-green); }

/* ── Typography ── */
.nv-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nv-green);
  margin-bottom: 24px;
  padding-top:40px;
}

.nv-section-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--nv-green);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.nv-section-label::after {
  content: '';
  display: block;
  width: 36px;
  height: 1px;
  background: var(--nv-green);
  flex-shrink: 0;
}

.nv-section-title {
  font-size: clamp(36px, 5.5vw, 72px);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.035em;
  margin-bottom: 40px;
}

.nv-body-text {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.85;
  color: var(--nv-text-muted);
  margin-bottom: 20px;
  max-width: 520px;
}

/* ── CTA Button ── */
.nv-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--nv-black);
  background: var(--nv-green);
  padding: 16px 32px;
  text-decoration: none;
  border: none;
  transition: background var(--nv-ease-std), gap var(--nv-ease-std);
  white-space: nowrap;
}
.nv-btn-primary:hover {
  background: var(--nv-white);
  color: var(--nv-black);
  gap: 20px;
}
.nv-arrow {
  transition: transform var(--nv-ease-std);
}
.nv-btn-primary:hover .nv-arrow {
  transform: translateX(4px);
}

/* ── Section padding ── */
.nv-section {
  padding: var(--nv-space-xl) 0;
}

/* ── Ticker ── */
.nv-ticker {
  background: var(--nv-green);
  overflow: hidden;
  padding: 14px 0;
  white-space: nowrap;
}
.nv-ticker-inner {
  display: inline-flex;
  gap: 0;
  animation: tickerScroll 22s linear infinite;
}
.nv-ticker-item {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--nv-black);
  padding: 0 24px;
}
.nv-ticker-sep {
  font-size: 11px;
  font-weight: 800;
  color: rgba(0,0,0,0.35);
  padding: 0 4px;
}

@keyframes tickerScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Footer ── */
.nv-footer {
  border-top: 1px solid var(--nv-border);
  padding: 36px 0;
}
.nv-footer-logo {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.nv-footer-copy {
  font-size: 11px;
  color: rgba(255,255,255,0.22);
  letter-spacing: 0.04em;
}
.nv-footer-payoff {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.28);
}

/* ── Footer Bottom ── */
.nv-footer-bottom {
  padding: 28px 0 0;
}

/* ── Social Links ── */
.bi{
  color: #00FF00 !important;
}


/* ── Cursor ── */
.nv-cursor {
  width: 12px;
  height: 12px;
  background: var(--nv-green);
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
  mix-blend-mode: difference;
  transition: width 0.2s var(--nv-ease), height 0.2s var(--nv-ease);
  transform: translate(-50%, -50%);
  will-change: left, top;
}
.nv-cursor.expanded {
  width: 44px;
  height: 44px;
}

/* ── Monitor grandi / ultra-wide ──
   Senza un tetto massimo, container-fluid si allarga
   all'infinito su schermi esterni grandi (1920px+),
   rendendo righe di testo e griglie eccessivamente
   stirate. Da qui in poi il contenuto resta leggibile
   e centrato, mantenendo comunque il padding laterale. */
@media (min-width: 1600px) {
  .container-fluid {
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 1920px) {
  .container-fluid {
    max-width: 1760px;
  }
  .nv-section { padding: 140px 0; }
}

/* ── Laptop piccoli / tablet in landscape (es. MacBook 13", iPad landscape) ──
   Tier intermedio tra desktop pieno e tablet, per evitare
   che spaziature pensate per schermi grandi risultino
   eccessive su risoluzioni compatte. */
@media (min-width: 992px) and (max-width: 1199px) {
  .nv-section { padding: calc(var(--nv-space-xl) * 0.75) 0; }
}

@media (max-width: 991px) {
  body { cursor: auto; }
  .nv-cursor { display: none; }
  .nv-section { padding: 80px 0; }
}

@media (max-width: 767px) {
  .nv-section { padding: 48px 0; }
}

/* ── Viewport bassi in landscape (telefoni/tablet ruotati) ──
   Le sezioni con altezza minima piena (100vh) o animazioni
   pensate per verticale risultano schiacciate quando
   l'altezza disponibile è ridotta. */
@media (max-height: 500px) and (orientation: landscape) {
  .nv-section { padding: 56px 0; }
}

@media (prefers-reduced-motion: reduce) {
  .nv-ticker-inner { animation-duration: 0.01ms; }
  html { scroll-behavior: auto; }
}
