/* ═══════════════════════════════════════════════════════════════
   SELKERMO FINAL v21.4 — Linee pulite + bottoni uniformi (tutte le pagine)
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   FIX CANVAS — position fixed + anti-pixel
   ═══════════════════════════════════════════════════════════════ */
canvas#sk-bg-canvas,
canvas#bg-canvas,
#sk-bg-canvas,
#bg-canvas,
body > canvas,
body > canvas[aria-hidden="true"] {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  pointer-events: none !important;
  z-index: -8 !important;
  display: block !important;
  visibility: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  image-rendering: auto !important;
}

/* Div sfondo residui */
.sk-bg-nebula,
.sk-bg-aurora,
.sk-bg-beam,
.sk-bg-vignette,
#sk-bg-nebula,
#sk-bg-aurora,
#sk-bg-beam,
#sk-bg-vignette {
  position: fixed !important;
  pointer-events: none !important;
  display: block !important;
  margin: 0 !important;
}

#sk-bg-aurora, .sk-bg-aurora { z-index: -9 !important; }
#sk-bg-nebula, .sk-bg-nebula { z-index: -10 !important; }
#sk-bg-vignette, .sk-bg-vignette { z-index: -7 !important; }
#sk-bg-beam, .sk-bg-beam { z-index: -8 !important; }

/* SVG contenitore simboli */
body > svg[width="0"][height="0"],
body > svg[width="0"],
body > svg[height="0"] {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  top: 0 !important;
  left: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   BASE
   ═══════════════════════════════════════════════════════════════ */
* {
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}
html { scroll-behavior: smooth; }
body {
  text-rendering: optimizeLegibility !important;
  overflow-x: hidden;
  padding-top: 0 !important;
  margin: 0 !important;
}

:root {
  --sk-ease-silk: cubic-bezier(0.22, 1, 0.36, 1);
  --sk-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Nascondi residui vecchi */
#particle-canvas,
.logo-ring,
.logo-bg {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* FIX H1 invisibile */
.hero h1,
.cta-final h2,
h1:has(.liquid-text),
h2:has(.liquid-text),
.hero h2 {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: #ffffff !important;
  color: #ffffff !important;
}
.hero h1 .grad,
.hero h1 .liquid-text,
.cta-final h2 .liquid-text {
  background: linear-gradient(125deg,
    #7FEEFF 0%, #4FE3FF 15%, #2680E9 40%,
    #4FE3FF 65%, #7FEEFF 100%) !important;
  background-size: 300% 300% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  animation: skHeroGrad 8s var(--sk-ease-silk) infinite !important;
}
@keyframes skHeroGrad {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* FIX blank space */
.hero,
section.hero {
  min-height: auto !important;
  max-height: none !important;
  height: auto !important;
  padding: 90px 24px 60px !important;
  margin-top: 0 !important;
  display: block !important;
}
.hero > * {
  max-width: 1000px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.page-wrap, .page {
  padding: 100px 24px 60px !important;
  margin-top: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   DISABILITA VECCHI PSEUDO-ELEMENTI
   ═══════════════════════════════════════════════════════════════ */
header::before, header::after,
footer::before, footer::after,
.section::before, .section::after,
.ai-section::before, .ai-section::after,
.about-wrap::before, .about-wrap::after,
.cta-final::before, .cta-final::after,
.sk-pulse-layer, .sk-stars, .traveler,
.legal-links::before, .legal-links::after,
.footer-bottom::before, .footer-bottom::after,
.faq-item::before, .faq-item::after {
  display: none !important;
  content: none !important;
  animation: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════ */
header {
  position: fixed !important;
  top: 0; left: 0; right: 0;
  z-index: 1000 !important;
  padding: 14px 32px !important;
  background: linear-gradient(180deg,
    rgba(3, 3, 3, 0.9) 0%,
    rgba(3, 3, 3, 0.6) 60%,
    rgba(3, 3, 3, 0) 100%) !important;
  backdrop-filter: blur(14px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(160%) !important;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 75%, transparent 100%) !important;
  mask-image: linear-gradient(180deg, #000 0%, #000 75%, transparent 100%) !important;
  border-bottom: none !important;
  transform: translateZ(0);
}

/* ═══════════════════════════════════════════════════════════════
   LOGO
   ═══════════════════════════════════════════════════════════════ */
.logo-wrap {
  position: relative !important;
  width: 48px !important;
  height: 48px !important;
  display: grid !important;
  place-items: center !important;
  flex-shrink: 0 !important;
  border-radius: 50% !important;
}
.logo-wrap::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -3px !important;
  border-radius: 50% !important;
  background: conic-gradient(from 0deg,
    transparent 0%,
    rgba(79, 227, 255, 0.9) 25%,
    transparent 50%,
    rgba(38, 128, 233, 0.9) 75%,
    transparent 100%) !important;
  animation: skLogoSpin 6s linear infinite !important;
  opacity: 0.9 !important;
  z-index: 0 !important;
  transform: translateZ(0);
  will-change: transform;
}
.logo-wrap::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: 50% !important;
  background: #030303 !important;
  z-index: 1 !important;
}
@keyframes skLogoSpin {
  to { transform: translateZ(0) rotate(360deg); }
}
.logo-svg {
  width: 38px !important;
  height: 38px !important;
  position: relative !important;
  z-index: 2 !important;
  filter:
    drop-shadow(0 0 10px rgba(79, 227, 255, 0.6))
    drop-shadow(0 0 20px rgba(38, 128, 233, 0.35)) !important;
  transition: transform 0.5s var(--sk-ease-silk), filter 0.5s var(--sk-ease-silk) !important;
}
.logo-container:hover .logo-svg {
  transform: rotate(8deg) scale(1.1);
  filter:
    drop-shadow(0 0 18px rgba(79, 227, 255, 0.9))
    drop-shadow(0 0 36px rgba(38, 128, 233, 0.5)) !important;
}

/* ═══════════════════════════════════════════════════════════════
   LIQUID TEXT
   ═══════════════════════════════════════════════════════════════ */
.liquid-text,
.logo-text.liquid-text,
.brand-name.liquid-text {
  display: inline-block !important;
  background: linear-gradient(125deg,
    #7FEEFF 0%, #4FE3FF 12%, #3EC8F7 25%,
    #2680E9 38%, #1035B0 50%, #2680E9 62%,
    #3EC8F7 75%, #7FEEFF 88%, #4FE3FF 100%) !important;
  background-size: 400% 400% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  animation: skLiquidFlow 10s var(--sk-ease-silk) infinite !important;
  filter: none !important;
}
.liquid-text::after,
.liquid-text::before,
.liquid-text[data-text]::after,
.liquid-text[data-text]::before {
  display: none !important;
  content: none !important;
}
@keyframes skLiquidFlow {
  0%   { background-position: 0% 50%; }
  20%  { background-position: 40% 20%; }
  40%  { background-position: 100% 40%; }
  60%  { background-position: 60% 80%; }
  80%  { background-position: 10% 70%; }
  100% { background-position: 0% 50%; }
}

/* ═══════════════════════════════════════════════════════════════
   BOTTONI — disabilita vecchie animazioni + reset mask
   ═══════════════════════════════════════════════════════════════ */
.btn::before, .btn-outline::before,
.btn-auth-login::before, .btn-auth-register::before,
.btn-configuratore::before, .btn-cart-primary::before,
.btn-pack::before, .btn-generate::before,
.btn-primary::before, .btn-secondary::before,
.btn-auth::before, .btn-auth-teal::before {
  animation: none !important;
  -webkit-mask: none !important;
  mask: none !important;
  -webkit-mask-composite: initial !important;
  mask-composite: initial !important;
  padding: 0 !important;
  border: none !important;
  opacity: 0 !important;
}

/* ─── PRIMARI (gradient blu) — Magnetic ─── */
.btn:not(.btn-outline):not(.btn-auth-login):not(.btn-auth-dashboard):not(.btn-auth-logout),
.btn-auth-register,
.btn-configuratore,
.btn-cart-primary,
.btn-pack,
.btn-primary,
.btn-auth-teal,
.btn-card-gold {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background: linear-gradient(135deg, #2680E9 0%, #4FE3FF 100%) !important;
  color: #02121d !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(0, 0, 0, 0.15),
    0 8px 32px rgba(38, 128, 233, 0.4) !important;
  transition: box-shadow 0.5s var(--sk-ease-silk) !important;
  will-change: transform;
  z-index: 1 !important;
}

/* Spotlight — z-index 0 (dietro il testo) */
.btn:not(.btn-outline):not(.btn-auth-login):not(.btn-auth-dashboard):not(.btn-auth-logout)::before,
.btn-auth-register::before,
.btn-configuratore::before,
.btn-cart-primary::before,
.btn-pack::before,
.btn-primary::before,
.btn-auth-teal::before,
.btn-card-gold::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: radial-gradient(
    180px circle at var(--mx, 50%) var(--my, 50%),
    rgba(255, 255, 255, 0.55) 0%,
    rgba(255, 255, 255, 0.15) 40%,
    transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s var(--sk-ease-silk) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.btn:not(.btn-outline):not(.btn-auth-login):not(.btn-auth-dashboard):not(.btn-auth-logout):hover::before,
.btn-auth-register:hover::before,
.btn-configuratore:hover::before,
.btn-cart-primary:hover::before,
.btn-pack:hover::before,
.btn-primary:hover::before,
.btn-auth-teal:hover::before,
.btn-card-gold:hover::before {
  opacity: 1 !important;
}

.btn:not(.btn-outline):not(.btn-auth-login):not(.btn-auth-dashboard):not(.btn-auth-logout) > *,
.btn-auth-register > *, .btn-configuratore > *,
.btn-cart-primary > *, .btn-pack > *,
.btn-primary > *, .btn-auth-teal > *,
.btn-card-gold > * {
  position: relative !important;
  z-index: 5 !important;
  color: inherit !important;
}

/* ─── SECONDARI (dark) — Tilt iridescente ─── */
.btn-outline,
.btn-auth-login,
.btn-cart-secondary,
.btn-card,
.btn-small,
.back-btn,
.btn-secondary,
.btn-logout,
.btn-back-home {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  color: #fff !important;
  background: linear-gradient(180deg, #0f1a2e 0%, #060d1a 100%) !important;
  border: 1px solid rgba(79, 227, 255, 0.15) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 4px 24px rgba(0, 0, 0, 0.4) !important;
  backdrop-filter: none !important;
  transition:
    box-shadow 0.5s var(--sk-ease-silk),
    border-color 0.5s var(--sk-ease-silk),
    color 0.4s var(--sk-ease-silk) !important;
  will-change: transform;
}

.btn-outline::before,
.btn-auth-login::before,
.btn-cart-secondary::before,
.btn-card::before,
.btn-small::before,
.back-btn::before,
.btn-secondary::before,
.btn-logout::before,
.btn-back-home::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: linear-gradient(
    var(--angle, 135deg),
    rgba(127, 238, 255, 0.35) 0%,
    rgba(79, 227, 255, 0.25) 20%,
    rgba(38, 128, 233, 0.35) 40%,
    rgba(16, 53, 176, 0.5) 60%,
    rgba(38, 128, 233, 0.35) 80%,
    rgba(127, 238, 255, 0.35) 100%) !important;
  opacity: 0 !important;
  transition: opacity 0.5s var(--sk-ease-silk) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.btn-outline:hover::before,
.btn-auth-login:hover::before,
.btn-cart-secondary:hover::before,
.btn-card:hover::before,
.btn-small:hover::before,
.back-btn:hover::before,
.btn-secondary:hover::before,
.btn-logout:hover::before,
.btn-back-home:hover::before {
  opacity: 1 !important;
}

.btn-outline > *, .btn-auth-login > *,
.btn-cart-secondary > *, .btn-card > *,
.btn-small > *, .back-btn > *,
.btn-secondary > *, .btn-logout > *,
.btn-back-home > * {
  position: relative !important;
  z-index: 5 !important;
  color: inherit !important;
}

.btn-outline:hover, .btn-auth-login:hover,
.btn-cart-secondary:hover, .btn-card:hover,
.btn-small:hover, .back-btn:hover,
.btn-secondary:hover, .btn-logout:hover,
.btn-back-home:hover {
  color: #7FEEFF !important;
  border-color: rgba(79, 227, 255, 0.5) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    0 12px 40px rgba(0, 0, 0, 0.5),
    0 0 60px rgba(79, 227, 255, 0.35) !important;
}

/* ─── Testo bottoni primari — colore scuro ─── */
.btn:not(.btn-outline) > span,
.btn-primary > span,
.btn-auth-register > span,
.btn-configuratore > span,
.btn-cart-primary > span,
.btn-pack > span,
.btn-auth-teal > span,
.btn-card-gold > span {
  color: #02121d !important;
}

/* ─── Testo bottoni secondari — bianco → cyan al hover ─── */
.btn-outline > span,
.btn-secondary > span,
.btn-auth-login > span,
.btn-cart-secondary > span,
.btn-card > span,
.btn-small > span,
.btn-back-home > span {
  color: #ffffff !important;
}
.btn-outline:hover > span,
.btn-secondary:hover > span,
.btn-auth-login:hover > span,
.btn-cart-secondary:hover > span,
.btn-card:hover > span,
.btn-back-home:hover > span {
  color: #7FEEFF !important;
}

/* ─── NAV LINK (testi navbar) ─── */
.nav-link {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 8px 14px !important;
  color: #8aa4c8 !important;
  transition: color 0.3s !important;
}
.nav-link:hover {
  color: #4FE3FF !important;
  background: transparent !important;
  transform: none !important;
}
.nav-link::before { display: none !important; }

/* ─── Dashboard + nav-home → link semplici (NON bottoni) ─── */
.btn-auth-dashboard,
.nav-home {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 8px 14px !important;
  color: #8aa4c8 !important;
  overflow: visible !important;
  will-change: color !important;
}
.btn-auth-dashboard::before,
.nav-home::before {
  display: none !important;
  content: none !important;
}
.btn-auth-dashboard:hover,
.nav-home:hover {
  color: #4FE3FF !important;
  background: rgba(79, 227, 255, 0.05) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   LINEE UNIFORMATE — UNA SOLA LINEA FADE (no accento centrale)
   ═══════════════════════════════════════════════════════════════ */
body > section,
.section, .ai-section, .about-wrap, .cta-final {
  position: relative !important;
  background: transparent !important;
  border-top: none !important;
  border-bottom: none !important;
}

body > section:not(:last-of-type)::after,
.section:not(:last-of-type)::after,
.ai-section::after,
.about-wrap::after,
.cta-final::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) translateZ(0) !important;
  width: 60% !important;
  height: 1px !important;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(79, 227, 255, 0.06) 12%,
    rgba(79, 227, 255, 0.35) 50%,
    rgba(79, 227, 255, 0.06) 88%,
    transparent 100%) !important;
  pointer-events: none !important;
  z-index: 2 !important;
  animation: none !important;
  box-shadow: none !important;
  border: none !important;
}

/* Footer — linea fade */
footer {
  position: relative !important;
  border-top: none !important;
  background: transparent !important;
}
footer::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) translateZ(0) !important;
  width: 60% !important;
  height: 1px !important;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(79, 227, 255, 0.06) 12%,
    rgba(79, 227, 255, 0.35) 50%,
    rgba(79, 227, 255, 0.06) 88%,
    transparent 100%) !important;
  animation: none !important;
  z-index: 2 !important;
  box-shadow: none !important;
}
footer::after {
  display: none !important;
}

.footer-bottom {
  border-top: 1px solid rgba(62, 200, 247, 0.12) !important;
}
.legal-links {
  border-top: none !important;
}

/* Rimuovi glow residui su pseudo-elementi delle linee */
.section::before, .ai-section::before, .about-wrap::before,
.cta-final::before, footer::after {
  box-shadow: none !important;
  filter: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   FAQ
   ═══════════════════════════════════════════════════════════════ */
.faq-item {
  transition:
    border-color 0.35s var(--sk-ease-silk),
    background 0.35s var(--sk-ease-silk),
    box-shadow 0.35s var(--sk-ease-silk) !important;
}
.faq-item.open {
  border-color: rgba(79, 227, 255, 0.5) !important;
  box-shadow: 0 0 40px rgba(79, 227, 255, 0.08), 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.faq-question::after {
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.faq-answer {
  transition:
    max-height 0.3s cubic-bezier(0.4, 0, 0.6, 1),
    opacity 0.2s cubic-bezier(0.4, 0, 0.6, 1),
    padding 0.3s cubic-bezier(0.4, 0, 0.6, 1) !important;
}
.faq-item.open .faq-answer {
  transition:
    max-height 0.55s var(--sk-ease-silk),
    opacity 0.4s var(--sk-ease-silk),
    padding 0.55s var(--sk-ease-silk) !important;
}

/* ═══════════════════════════════════════════════════════════════
   CARD
   ═══════════════════════════════════════════════════════════════ */
.card, .service-card, .pack-card {
  position: relative !important;
  transition:
    transform 0.5s var(--sk-ease-silk),
    border-color 0.35s var(--sk-ease-silk),
    box-shadow 0.5s var(--sk-ease-silk) !important;
}
.card::after, .service-card::after, .pack-card::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important; left: 20% !important;
  width: 60% !important; height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(127, 238, 255, 0.5), transparent) !important;
  opacity: 0.4 !important;
  transition: opacity 0.5s var(--sk-ease-silk), left 0.5s var(--sk-ease-silk), width 0.5s var(--sk-ease-silk) !important;
  box-shadow: none !important;
}
.card:hover::after, .service-card:hover::after, .pack-card:hover::after {
  opacity: 1 !important; left: 10% !important; width: 80% !important;
}
.card:hover, .service-card:hover, .pack-card:hover {
  transform: translateY(-5px) !important;
}

@media (prefers-reduced-motion: reduce) {
  .liquid-text, .logo-wrap::before { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   BOTTONI SOCIAL OAUTH (Google, Microsoft)
   ═══════════════════════════════════════════════════════════════ */
.social-login {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
}

.btn-social {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 14px 20px;
  border-radius: 12px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  color: #ffffff;
  background: linear-gradient(180deg, #0f1a2e 0%, #060d1a 100%);
  border: 1px solid rgba(79, 227, 255, 0.15);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 4px 16px rgba(0, 0, 0, 0.4);
  transition:
    box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

/* Gradiente Selkermo rotante al hover */
.btn-social::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    var(--angle, 135deg),
    rgba(127, 238, 255, 0.25) 0%,
    rgba(79, 227, 255, 0.18) 20%,
    rgba(38, 128, 233, 0.25) 40%,
    rgba(16, 53, 176, 0.35) 60%,
    rgba(38, 128, 233, 0.25) 80%,
    rgba(127, 238, 255, 0.25) 100%
  );
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  z-index: 0;
}

.btn-social:hover::before { opacity: 1; }

.btn-social:hover {
  color: #7FEEFF;
  border-color: rgba(79, 227, 255, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    0 12px 32px rgba(0, 0, 0, 0.5),
    0 0 50px rgba(79, 227, 255, 0.25);
}

.btn-social > * {
  position: relative;
  z-index: 2;
}

/* Icona provider */
.btn-social .social-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-social .social-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Divisore "oppure" */
.auth-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 8px 0 24px;
  color: #4a6c96;
  font-size: 11.5px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 600;
}
.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79, 227, 255, 0.25), transparent);
}

/* ═══════════════════════════════════════════════════════════════
   OAUTH — loading state + tilt magnetico
   ═══════════════════════════════════════════════════════════════ */
.btn-social:disabled,
.btn-social[aria-busy="true"] {
  opacity: 0.65;
  cursor: wait;
  pointer-events: none;
}

.btn-social[aria-busy="true"] .social-icon {
  animation: skSpin 0.8s linear infinite;
}

@keyframes skSpin {
  to { transform: rotate(360deg); }
}

/* Magnetic tilt (JS aggiorna --tilt-x / --tilt-y) */
.btn-social.magnetic-tilt {
  transform: perspective(600px)
             rotateX(var(--tilt-y, 0deg))
             rotateY(var(--tilt-x, 0deg))
             translateY(var(--lift, 0px));
  transition:
    transform 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.btn-social.magnetic-tilt:hover { --lift: -2px; }

@media (prefers-reduced-motion: reduce) {
  .btn-social.magnetic-tilt { transform: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   HEADER — struttura interna (nav, logo, bottoni auth)
   Necessario su prezzi.html, configuratore.html, dashboard.html
   ═══════════════════════════════════════════════════════════════ */
.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.logo-container {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  flex-shrink: 0;
}

.logo-text {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 1.8px;
}

nav {
  display: flex;
  gap: 6px;
  align-items: center;
}

nav a.nav-link {
  color: #8aa4c8;
  text-decoration: none;
  font-weight: 500;
  font-size: 14.5px;
  padding: 9px 14px;
  border-radius: 10px;
  transition: color 0.25s, background 0.25s;
}
nav a.nav-link:hover {
  color: #4FE3FF;
  background: rgba(79, 227, 255, 0.07);
}

.nav-auth-group {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 8px;
}

/* Bottoni auth header */
.btn-auth-login,
.btn-auth-register {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.25s;
}

.btn-auth-login {
  background: rgba(10, 17, 30, 0.75);
  color: #4FE3FF;
  border: 1px solid rgba(79, 227, 255, 0.45);
  backdrop-filter: blur(10px);
}
.btn-auth-login:hover {
  color: #fff;
  border-color: #4FE3FF;
  background: rgba(79, 227, 255, 0.12);
}

.btn-auth-register {
  background: linear-gradient(135deg, #2680E9 0%, #4FE3FF 100%);
  color: #02121d;
  border: none;
  box-shadow: 0 6px 18px rgba(38, 128, 233, 0.35);
}
.btn-auth-register:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(79, 227, 255, 0.5);
}

.btn-auth-dashboard {
  color: #8aa4c8;
  padding: 9px 14px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.25s, background 0.25s;
  display: inline-flex;
  align-items: center;
}
.btn-auth-dashboard:hover {
  color: #4FE3FF;
  background: rgba(79, 227, 255, 0.07);
}

.btn-auth-logout {
  display: none;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #ff5252;
  border: 1px solid rgba(255, 82, 82, 0.4);
  background: rgba(255, 82, 82, 0.08);
  cursor: pointer;
  transition: all 0.25s;
  text-decoration: none;
}
.btn-auth-logout:hover {
  background: rgba(255, 82, 82, 0.2);
  color: #fff;
}

/* Stato autenticazione — mostra/nascondi bottoni */
body.logged-in .btn-auth-login,
body.logged-in .btn-auth-register { display: none !important; }
body.logged-in .btn-auth-logout { display: inline-flex !important; }
body.logged-in .btn-auth-dashboard { display: inline-flex !important; }

body.not-logged-in .btn-auth-logout,
body.not-logged-in .btn-auth-dashboard { display: none !important; }
body.not-logged-in .btn-auth-login,
body.not-logged-in .btn-auth-register { display: inline-flex !important; }

body:not(.logged-in):not(.not-logged-in) .btn-auth-logout,
body:not(.logged-in):not(.not-logged-in) .btn-auth-dashboard { display: none; }

/* Responsive header */
@media (max-width: 860px) {
  nav a.nav-link { display: none; }
}
@media (max-width: 560px) {
  .btn-auth-login, .btn-auth-dashboard { display: none !important; }
  .logo-text { font-size: 20px; letter-spacing: 1.2px; }
  .logo-wrap { width: 44px !important; height: 44px !important; }
  .logo-svg { width: 34px !important; height: 34px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Bottoni "Torna alla home" / "Torna ai prezzi"
   ═══════════════════════════════════════════════════════════════ */
.btn-back-home {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(79, 227, 255, 0.06);
  border: 1px solid rgba(79, 227, 255, 0.3);
  color: #8aa4c8;
  padding: 8px 16px;
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.25s;
  white-space: nowrap;
}
.btn-back-home:hover {
  background: rgba(79, 227, 255, 0.12);
  color: #4FE3FF;
  border-color: #4FE3FF;
  transform: translateX(-2px);
}

/* Fix bottoni nav testuali (Accedi, Inizia gratis, Esci, Dashboard) */
.nav-auth-group a,
.nav-auth-group button,
nav a.btn-auth-dashboard,
nav .btn-auth-login,
nav .btn-auth-register,
nav .btn-auth-logout {
  text-decoration: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE MENU — Hamburger + pannello slide-in (v21.5-fix)
   ═══════════════════════════════════════════════════════════════ */
.sk-burger { display: none; }
.sk-menu-backdrop { display: none; }

/* ─── DESKTOP: nav è inline come prima ─── */
@media (min-width: 861px) {
  body > nav {
    display: flex !important;
    gap: 6px;
    align-items: center;
    position: static !important;
    transform: none !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .sk-burger { display: none !important; }
  .sk-menu-backdrop { display: none !important; }
  body.sk-menu-open { overflow: visible !important; }
}

/* ─── MOBILE ─── */
@media (max-width: 860px) {
  /* Hamburger */
  .sk-burger {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    background: rgba(79, 227, 255, 0.08);
    border: 1px solid rgba(79, 227, 255, 0.3);
    border-radius: 12px;
    cursor: pointer;
    position: relative;
    z-index: 1002;
    transition: background 0.2s, border-color 0.2s;
    line-height: 0;
  }
  .sk-burger:hover { background: rgba(79, 227, 255, 0.15); border-color: #4FE3FF; }
  .sk-burger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #4FE3FF;
    border-radius: 2px;
    transition: transform 0.3s cubic-bezier(.22,1,.36,1), opacity 0.2s;
    transform-origin: center;
    margin: 0;
  }

  /* Nav come pannello slide-in da destra — a livello body */
  body > nav {
    position: fixed !important;
    top: 0;
    right: 0;
    width: 85%;
    max-width: 400px;
    height: 100vh;
    height: 100dvh;
    background: linear-gradient(180deg, rgba(10, 17, 30, 0.99) 0%, rgba(3, 3, 3, 0.995) 100%);
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    border-left: 1px solid rgba(79, 227, 255, 0.2);
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    padding: 90px 26px 30px !important;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(.22,1,.36,1);
    z-index: 1001;
    gap: 4px !important;
    box-shadow: -20px 0 60px rgba(0, 0, 0, 0.6);
    margin: 0 !important;
  }
  body.sk-menu-open > nav { transform: translateX(0); }

  /* Link nel menu */
  body > nav a.nav-link {
    display: block !important;
    padding: 16px 4px !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    color: #8aa4c8 !important;
    border-bottom: 1px solid rgba(79, 227, 255, 0.08);
    border-radius: 0 !important;
    background: transparent !important;
    transition: color 0.2s, padding-left 0.2s !important;
    text-decoration: none;
  }
  body > nav a.nav-link:hover {
    background: transparent !important;
    color: #4FE3FF !important;
    padding-left: 12px !important;
  }

  /* Dashboard dentro menu */
  body > nav .btn-auth-dashboard {
    display: block !important;
    padding: 16px 4px !important;
    font-size: 17px !important;
    color: #8aa4c8 !important;
    border-bottom: 1px solid rgba(79, 227, 255, 0.08);
    background: transparent !important;
    border-radius: 0 !important;
  }
  body > nav .btn-auth-dashboard:hover {
    background: transparent !important;
    color: #4FE3FF !important;
  }

  /* Gruppo auth nel menu */
  body > nav .nav-auth-group {
    display: flex !important;
    flex-direction: column;
    gap: 12px !important;
    margin: 20px 0 0 0 !important;
    padding-top: 20px;
    border-top: 1px solid rgba(79, 227, 255, 0.15);
  }
  /* ─── Bottoni auth nel menu mobile: solo dimensione ─── */
  body > nav .btn-auth-dashboard,
  body > nav .nav-auth-group .btn-auth-login,
  body > nav .nav-auth-group .btn-auth-register,
  body > nav .nav-auth-group .btn-auth-logout {
    width: 100% !important;
    justify-content: center !important;
    padding: 15px !important;
    font-size: 15px !important;
    margin: 0 !important;
  }

  /* ─── Visibilità in base allo stato ─── */
  body.logged-in > nav .nav-auth-group .btn-auth-logout,
  body.logged-in > nav .btn-auth-dashboard {
    display: inline-flex !important;
  }
  body.not-logged-in > nav .nav-auth-group .btn-auth-login,
  body.not-logged-in > nav .nav-auth-group .btn-auth-register {
    display: inline-flex !important;
  }
  body.logged-in > nav .nav-auth-group .btn-auth-login,
  body.logged-in > nav .nav-auth-group .btn-auth-register,
  body.not-logged-in > nav .nav-auth-group .btn-auth-logout,
  body.not-logged-in > nav .btn-auth-dashboard {
    display: none !important;
  }

  /* Body scroll lock */
  body.sk-menu-open { overflow: hidden !important; }

  /* Backdrop */
  .sk-menu-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
    z-index: 1000;
  }
  body.sk-menu-open .sk-menu-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  /* Burger → X */
  body.sk-menu-open .sk-burger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  body.sk-menu-open .sk-burger span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
  }
  body.sk-menu-open .sk-burger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE MENU — Fix desktop + bottone X di chiusura
   ═══════════════════════════════════════════════════════════════ */

/* Bottone X dentro il pannello (solo mobile) */
.sk-menu-close {
  display: none;
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: rgba(79, 227, 255, 0.08);
  border: 1px solid rgba(79, 227, 255, 0.3);
  border-radius: 50%;
  color: #4FE3FF;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  z-index: 1010;
  padding: 0;
  font-family: 'Inter', sans-serif;
  line-height: 1;
}
.sk-menu-close:hover {
  background: rgba(79, 227, 255, 0.2);
  border-color: #4FE3FF;
  transform: rotate(90deg);
}

/* Desktop: nav dentro header-inner (posizionamento normale) */
@media (min-width: 861px) {
  .header-inner > nav,
  header nav {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: none !important;
    box-shadow: none !important;
    overflow: visible !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  header nav a.nav-link {
    display: inline-block !important;
    padding: 9px 14px !important;
    font-size: 14.5px !important;
    border-bottom: none !important;
    border-radius: 10px !important;
  }
  header nav .nav-auth-group {
    display: flex !important;
    flex-direction: row !important;
    margin: 0 0 0 8px !important;
    padding: 0 !important;
    border-top: none !important;
    gap: 10px !important;
  }
  /* ─── Bottoni auth: SOLO dimensione, niente display forzato ─── */
  header nav .btn-auth-dashboard,
  header nav .nav-auth-group .btn-auth-login,
  header nav .nav-auth-group .btn-auth-register,
  header nav .nav-auth-group .btn-auth-logout {
    width: auto !important;
    padding: 10px 22px !important;
    font-size: 14px !important;
    margin: 0 !important;
  }
  header nav .btn-auth-dashboard {
    padding: 9px 14px !important;
    font-size: 14.5px !important;
  }

  /* ─── Visibilità in base allo stato ─── */
  body.logged-in header nav .btn-auth-logout,
  body.logged-in header nav .btn-auth-dashboard {
    display: inline-flex !important;
  }
  body.not-logged-in header nav .btn-auth-login,
  body.not-logged-in header nav .btn-auth-register {
    display: inline-flex !important;
  }
  body.logged-in header nav .btn-auth-login,
  body.logged-in header nav .btn-auth-register,
  body.not-logged-in header nav .btn-auth-logout,
  body.not-logged-in header nav .btn-auth-dashboard {
    display: none !important;
  }
  .sk-menu-close { display: none !important; }
  .sk-burger { display: none !important; }
  .sk-menu-backdrop { display: none !important; }
  body.sk-menu-open { overflow: visible !important; }
}

/* Mobile: mostra la X dentro il pannello */
@media (max-width: 860px) {
  .sk-menu-close { display: flex; }
  body > nav { padding-top: 80px !important; }
}

/* Fix per far sparire la X su desktop anche se il browser non supporta min-width */
@media (max-width: 860px) and (min-width: 861px) {
  .sk-menu-close { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION — Riduzione padding + spazi (v21.6)
   Solo mobile, desktop intatto
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {

  /* ─── HERO ─── */
  .hero {
    min-height: auto !important;
    padding: 100px 20px 50px !important;
  }
  .hero h1 {
    font-size: clamp(30px, 8.5vw, 42px) !important;
    margin-bottom: 20px !important;
    line-height: 1.15 !important;
  }
  .hero p {
    font-size: 15.5px !important;
    margin-bottom: 32px !important;
    line-height: 1.6 !important;
    padding: 0 4px;
  }
  .hero-cta {
    flex-direction: column;
    gap: 12px !important;
    margin-bottom: 40px !important;
    padding: 0 !important;
    width: 100%;
  }
  .hero-cta .btn,
  .hero-cta .btn-outline {
    width: 100% !important;
    padding: 16px 24px !important;
    font-size: 15px !important;
    justify-content: center;
  }

  /* ─── STATS ─── */
  .hero-trust {
    gap: 20px 24px !important;
    padding-top: 24px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
  }
  .hero-stat-val { font-size: 26px !important; }
  .hero-stat-lbl { font-size: 10.5px !important; }

  /* ─── SEZIONI ─── */
  .section { padding: 60px 0 !important; }
  .ai-section { padding: 60px 0 !important; }
  .about-wrap { padding: 60px 0 !important; }
  .cta-final { padding: 80px 0 90px !important; }

  .container { padding: 0 20px !important; }

  /* ─── TITOLI SEZIONE ─── */
  .section-head { margin-bottom: 32px !important; }
  .section-head h2 {
    font-size: clamp(24px, 7vw, 32px) !important;
    line-height: 1.2 !important;
  }
  .section-head p {
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
  .eyebrow {
    font-size: 11.5px !important;
    margin-bottom: 12px !important;
  }

  /* ─── CARD SERVIZI ─── */
  .services { gap: 14px !important; }
  .card {
    padding: 22px 20px !important;
    gap: 12px !important;
  }
  .card h3 { font-size: 17px !important; }
  .card p { font-size: 14px !important; }
  .card-ico {
    width: 46px !important;
    height: 46px !important;
    font-size: 22px !important;
  }
  .card-detail { font-size: 12.5px !important; padding-top: 12px !important; }
  .price-tag { font-size: 12px !important; padding: 6px 14px !important; }

  /* ─── AI SECTION ─── */
  .ai-grid { gap: 30px !important; }
  .ai-text > p { font-size: 15px !important; }
  .ai-features { gap: 10px !important; margin-bottom: 24px !important; }
  .ai-feature { font-size: 14px !important; }
  .ai-demo { padding: 20px !important; }
  .ai-demo-msg { font-size: 13px !important; padding: 11px 14px !important; }

  /* ─── PROCESS ─── */
  .process { gap: 12px !important; }
  .process-step { padding: 22px 20px !important; }
  .process-num {
    width: 42px !important;
    height: 42px !important;
    font-size: 17px !important;
    margin-bottom: 14px !important;
  }
  .process-step h3 { font-size: 16px !important; }
  .process-step p { font-size: 13.5px !important; }

  /* ─── FAQ ─── */
  .faq-list { gap: 10px !important; }
  .faq-question { padding: 16px 18px !important; font-size: 14.5px !important; }
  .faq-answer { font-size: 13.5px !important; padding: 0 18px !important; }
  .faq-item.open .faq-answer { padding: 0 18px 18px !important; }

  /* ─── ABOUT ─── */
  .about-text { font-size: 15.5px !important; line-height: 1.7 !important; }
  .about-text p { margin-bottom: 16px !important; }

  /* ─── CTA FINAL ─── */
  .cta-final h2 { font-size: clamp(26px, 8vw, 34px) !important; margin-bottom: 18px !important; }
  .cta-final > p {
    font-size: 15px !important;
    margin-bottom: 34px !important;
    padding: 0 8px;
  }
  .cta-final .btn {
    width: 100% !important;
    padding: 18px 24px !important;
    font-size: 15px !important;
    max-width: 400px;
    margin: 0 auto;
    display: flex !important;
  }
  .cta-note { margin-top: 26px !important; font-size: 13px !important; }

  /* ─── LOGIN PROMPT BANNER (sotto servizi) ─── */
  .login-prompt-banner {
    margin-top: 24px !important;
    padding: 18px 20px !important;
    font-size: 13.5px !important;
  }

  /* ─── FOOTER ─── */
  footer { padding: 46px 0 24px !important; }
  .footer-grid { margin-bottom: 32px !important; }
  .footer-brand p { font-size: 14px !important; }
  .footer-col h4 { margin-bottom: 14px !important; font-size: 13px !important; }
  .footer-col a { font-size: 14px !important; margin-bottom: 9px !important; }
  .footer-bottom {
    flex-direction: column !important;
    text-align: center !important;
    gap: 8px !important;
    padding-top: 20px !important;
    font-size: 12.5px !important;
  }
  .legal-links {
    margin-top: 16px !important;
    padding-top: 16px !important;
    font-size: 12px !important;
    gap: 4px 2px !important;
  }
  .legal-links a { padding: 3px 8px !important; }

  /* ─── BOTTONI GLOBALI MOBILE ─── */
  .btn, .btn-outline {
    padding: 15px 28px !important;
    font-size: 15px !important;
  }

  /* ─── WHATSAPP / CHAT FLOAT ─── */
  .whatsapp-float {
    width: 54px !important;
    height: 54px !important;
    font-size: 24px !important;
    bottom: 18px !important;
    right: 18px !important;
  }

  /* ─── H1 generali ─── */
  h1 { font-size: clamp(28px, 8.5vw, 42px) !important; }
  h2 { font-size: clamp(22px, 6.5vw, 32px) !important; }
  h3 { font-size: 18px !important; }
}

/* ─── Scorciatoia per telefoni molto piccoli (< 400px) ─── */
@media (max-width: 400px) {
  .hero h1 { font-size: 28px !important; }
  .section-head h2 { font-size: 24px !important; }
  .cta-final h2 { font-size: 26px !important; }
  .hero-stat-val { font-size: 24px !important; }
  .container { padding: 0 16px !important; }
  .card { padding: 20px 18px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   SERVIZI SWIPE DECK — mobile only (v2 ottimizzata)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {

  .services {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x proximity;
    padding: 4px 20px 16px !important;
    margin: 0 -20px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    contain: layout style;
  }
  .services::-webkit-scrollbar { display: none; }

  .services .card {
    scroll-snap-align: center;
    flex: 0 0 82% !important;
    min-width: 0 !important;
    max-width: 82% !important;
    margin: 0 !important;
    opacity: 0.75;
    /* Niente transform — solo opacity + border per performance */
    transition: opacity 0.25s ease-out, border-color 0.25s ease-out, box-shadow 0.25s ease-out !important;
    /* Remove scale reveal */
    transform: none !important;
    will-change: auto;
  }
  .services .card.reveal { opacity: 0.75 !important; }
  .services .card.sk-active {
    opacity: 1 !important;
    border-color: rgba(79, 227, 255, 0.45) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 30px rgba(79, 227, 255, 0.1) !important;
  }
  .services .card:hover { transform: none !important; }

  /* Dots */
  .sk-swipe-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    padding: 2px 0 18px;
    margin-top: -2px;
  }
  .sk-swipe-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(79, 227, 255, 0.25);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.3s, width 0.3s, box-shadow 0.3s;
    -webkit-tap-highlight-color: transparent;
    outline: none;
  }
  .sk-swipe-dot.active {
    background: #4FE3FF;
    width: 22px;
    border-radius: 4px;
    box-shadow: 0 0 12px rgba(79, 227, 255, 0.6);
  }
}

@media (min-width: 861px) {
  .sk-swipe-dots { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   PERFORMANCE — riduzione reflow su mobile
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {
  /* Sezioni sotto la piega non vengono renderizzate finché non servono */
  .ai-section,
  .section:not(#servizi),
  .about-wrap,
  .cta-final,
  footer {
    content-visibility: auto;
    contain-intrinsic-size: 0 800px;
  }

  /* Riduci complessità ombre mentre scrolli il carosello */
  .services .card {
    box-shadow: 0 4px 16px rgba(0,0,0,0.35) !important;
  }
  .services .card.sk-active {
    box-shadow: 0 8px 28px rgba(0,0,0,0.45), 0 0 24px rgba(79, 227, 255, 0.08) !important;
  }

  /* Disabilita reveal animato sul carosello */
  .services .card.reveal,
  html.js .services .card.reveal {
    opacity: 0.75 !important;
    transform: none !important;
    transition: opacity 0.25s ease-out, border-color 0.25s ease-out !important;
  }
}