/* ================== PARTE 1: RESET, VARIABILI, TIPOGRAFIA, HEADER, HERO ================== */

/* ========== FONTS & VARS ========== */
/* Precondizione: assicurati di avere nel <head> il link Google Fonts unico suggerito:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Gabarito:wght@400;500;600;700&family=Orbitron:wght@500;700;900&family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
*/

/* Root variables centralizzate */
:root{
  /* Breakpoints */
  --bp-mobile: 600px;
  --bp-tablet: 900px;
  --bp-desktop: 1200px;

  /* Header */
  --header-h: 5.5rem;
  --header-h-sm: 4.5rem;

  /* Palette */
  --green-1: #074921;
  --green-2: #1fda2e;
  --accent: #288829;
  --accent-dark: #074921;

  /* Spaziatura */
  --gutter: 1rem;

  /* Font stacks */
  --font-ui: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
  --font-display: 'Gabarito', 'Poppins', Georgia, serif;
  --font-accent: 'Orbitron', 'Poppins', system-ui, sans-serif;

  /* Font weights */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* Type scale (rem) */
  --fs-base: 1rem;      /* 16px */
  --fs-sm: 0.875rem;    /* 14px */
  --fs-lg: 1.125rem;    /* 18px */
  --fs-xl: 1.375rem;    /* 22px */
}

/* Reset e box-sizing */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

/* ===== Base body (unico dichiarato) ===== */
body {
  font-family: var(--font-ui);
  font-weight: var(--fw-regular);
  font-size: var(--fs-base);
  line-height: 1.6;
  color: #222;
  background: #f8fff8;
  -webkit-text-size-adjust: 100%;
}

/* Titoli: Gabarito per display */
.section-title,
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  line-height: 1.15;
  margin: 0 0 0.5rem 0;
  color: var(--accent-dark);
}

/* Specifica .section-title (manteniamo il tuo gradient) */
.section-title {
  font-size: 2.4rem; /* se vuoi ridurlo, modifica qui */
  font-weight: 700;
  margin-bottom: 50px;
  background: linear-gradient(90deg, var(--green-1), var(--green-2));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
}

/* Form title placeholder (se serve) */
.form-title {
  background: white;
}

/* ================== HEADER ================== */
/* HEADER A PILLOLA */
.header-pill {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: min(99%, 1600px);
  z-index: 3000;

  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(14px);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.25);
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);

  padding: 1rem 2rem;
}

.logo {
  width: clamp(300px, 29vw, 350px);
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Desktop menu */
.desktop-menu ul {
  display: flex;
  gap: 1.6rem;
  list-style: none;
}

.desktop-menu a {
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.15);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

/* Hamburger */
.hamburger {
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  align-items: flex-start; /* allinea le linee a sinistra */
}

.hamburger {
  align-items: flex-start !important;
}

.hamburger span {
  height: 4px;
  background: #000;
  border-radius: 10px;
  transition: 0.3s ease;
  display: block;
}

.hamburger span:nth-child(1) { width: 28px; }
.hamburger span:nth-child(2) { width: 20px; }
.hamburger span:nth-child(3) { width: 14px; }

/* X */
.hamburger.active span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
  width: 28px;
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
  width: 28px;
}


/* ============================
   PILLOLA MENU MOBILE (CHIUSA)
   ============================ */

   .mobile-pill-menu {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    width: min(95%, 1350px);
  
    /* QUI LA POSIZIONE SOTTO L'HEADER */
    top: 120px; /* ← puoi regolarlo: 110 / 120 / 130 */
  
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(14px);
    border-radius: 25px;
    border: 1px solid rgba(255,255,255,0.25);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  
    padding: 0;              /* CHIUSA: niente padding */
    max-height: 0;           /* CHIUSA: invisibile */
    overflow: hidden;        /* CHIUSA: non mostra nulla */
    opacity: 0;              /* CHIUSA: invisibile */
    pointer-events: none;    /* CHIUSA: non cliccabile */
  
    transition: 
      max-height 0.35s ease,
      padding 0.35s ease,
      opacity 0.25s ease;
    
    z-index: 2500;
  }
  
  /* ============================
     PILLOLA MENU MOBILE (APERTA)
     ============================ */
  
  .mobile-pill-menu.open {
    padding: 1.5rem 2rem;  /* APERTA: si allunga */
    max-height: 900px;       /* APERTA: spazio per la griglia */
    opacity: 1;              /* APERTA: visibile */
    pointer-events: auto;    /* APERTA: cliccabile */
  }
  
  /* ============================
     GRIGLIA 2×2
     ============================ */
  
  .mobile-pill-menu ul {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem 1.2rem;
    padding: 0;
    margin: 0;
  }
  
  .mobile-pill-menu a {
    display: block;
    text-align: center;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: rgba(0,255,120,0.08);
    border: 1px solid rgba(3, 39, 20, 0.35);
    color: rgba(13, 73, 41, 0.75);
    box-shadow:
      0 0 6px rgba(15, 87, 48, 0.25),
      inset 0 0 4px rgba(15, 121, 64, 0.15);
    font-size: 1.1rem;
    font-weight: 600;
    transition: 0.25s ease;
  }
  
  .mobile-pill-menu a:hover {
    background: rgba(0,255,120,0.18);
    border-color: rgba(0,255,120,0.8);
    color: #00ff88;
    box-shadow:
      0 0 10px rgba(4, 26, 14, 0.6),
      inset 0 0 8px rgba(0,255,120,0.3);
  } 
  
/* BOTTONE PREVENTIVO SPECIALE */
.desktop-menu .cta-preventivo {
  background: rgb(0, 0, 0) !important;
  backdrop-filter: blur(12px);
  color: #fff !important;

  padding: 0.89rem 1.8rem;   /* ← più grande */
  font-size: 1.05rem;        /* ← leggermente più grande */
  border-radius: 999px;

  border: 1px solid rgba(255,255,255,0.25) !important;
  box-shadow:
    0 0 10px rgba(0,0,0,0.4),
    inset 0 0 6px rgba(255,255,255,0.08);

  font-weight: 600;
  transition: 0.25s ease;
}

/* HOVER */
.desktop-menu .cta-preventivo:hover {
  background: rgba(0,0,0,0.75) !important;
  border-color: rgba(255,255,255,0.45) !important;
  color: #fff !important;

  box-shadow:
    0 0 12px rgba(0,0,0,0.6),
    inset 0 0 8px rgba(255,255,255,0.15);

  transform: translateY(-1px);
}

/* GLOW VERDE PER BOTTONI */
.desktop-menu a,
.mobile-pill-menu a {
  border: 1px solid rgba(0,255,120,0.35);
  color: rgba(15, 129, 68, 0.75);
  box-shadow: 
    0 0 6px rgba(0,255,120,0.25),
    inset 0 0 4px rgba(0,255,120,0.15);
  background: rgba(0,255,120,0.08);
  transition: 0.25s ease;
}

/* PREVENTIVO LARGO (FULL WIDTH) */
.mobile-pill-menu .cta-preventivo {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
  background: rgb(0, 0, 0) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
  padding: 1rem 1.2rem !important;
  border-radius: 16px !important;
  font-size: 1.2rem !important;
  text-align: center;
  box-shadow:
    0 0 10px rgba(0,0,0,0.4),
    inset 0 0 6px rgba(255,255,255,0.08) !important;
    background: black !important;
color: white !important;
border: 1px solid rgba(255,255,255,0.25) !important;

}

/* RESPONSIVE */
@media (max-width: 1024px) {
  .hamburger {
    display: flex;
  }

  .desktop-menu {
    display: none;
  }
}

@media (min-width: 1025px) {
  .hamburger {
    display: none;
  }

  .desktop-menu {
    display: flex;
  }
}
@media (max-width: 768px) {
  .logo {
    width: clamp(230px, 45vw, 240px) !important;
  }
}

/* ================== HERO ================== */
/* Use svh for stable viewport height on mobile browsers */
#hero {
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}

.hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Logo sopra il titolo */
.hero-logo {
  display: block;
  margin: 0 auto 0.75rem auto; /* centrato orizzontalmente */
  width: 150px; /* puoi aumentare o diminuire */
  height: auto;
  filter: drop-shadow(0 3px 6px rgba(0,0,0,0.45));
  animation: fadeLogo 1.4s ease-out forwards;
  opacity: 0;
}

@keyframes fadeLogo {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}


/* Slogan sotto il titolo */
/* Titolo principale con barra luminosa */
.hero-main-title {
  font-size: clamp(1.8rem, 5vw, 3.2rem);
  font-weight: 800;
  letter-spacing: 1px;
  margin: 0.4rem 0 1.2rem 0;
  text-shadow: 0 3px 12px rgba(0,0,0,0.55);
  position: relative;
  padding-bottom: 0.6rem;
  opacity: 0;
  animation: fadeMainTitle 1.2s ease-out forwards 0.2s;
}

/* Fade-in del titolo */
@keyframes fadeMainTitle {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Barra luminosa sotto il titolo */
.hero-main-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 0%;
  height: 4px;
  background: linear-gradient(90deg, #1fda2e, #0a6b2a);
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(31,218,46,0.7);
  animation: glowLine 3s ease-out forwards 1s;
  opacity: 0;
}

/* Animazione della barra che si apre */
@keyframes glowLine {
  0%   { width: 0%; opacity: 0; }
  40%  { opacity: 1; }
  100% { width: 65%; opacity: 1; }
}

/* Hero background */
.hero-bg {
  opacity: 0;
  animation: fadeVideo 2s ease-out forwards;
}

@keyframes fadeVideo {
  from { opacity: 0; }
  to { opacity: 1; }
}

.highlight-oggi-bg {
  background: linear-gradient(90deg, #1fda2e, #0a6b2a);
  color: #fff;
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  font-weight: 900;
  box-shadow: 0 0 12px rgba(31,218,46,0.55);
  display: inline-block;
  animation: badgeOggi 1.2s ease-out forwards 0.8s;
  opacity: 0;
}

@keyframes badgeOggi {
  0%   { opacity: 0; transform: scale(0.85); }
  60%  { opacity: 1; transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}


/* overlay to ensure contrast */
#hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    rgba(0,0,0,0.55),
    rgba(0,0,0,0.25)
  );
  z-index: 1;
  opacity: 0;
  animation: fadeOverlay 1.4s ease-out forwards;
}

@keyframes fadeOverlay {
  from { opacity: 0; }
  to { opacity: 1; }
}
.hero-video-wrapper {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
  animation: zoomHero 12s ease-out forwards;
}

@keyframes zoomHero {
  from { transform: scale(1.12); }
  to { transform: scale(1); }
}

/* Hero content */
.hero-content {
  position: relative;
  z-index: 2;
  max-width: min(960px, 92%);
  padding: 1.25rem;
  color: #fff;
}
.hero-content h1 {
  font-size: clamp(1.6rem, 5.5vw, 3rem);
  margin-bottom: 0.5rem;
  font-weight: 800;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.hero-content p {
  font-size: clamp(0.95rem, 2.2vw, 1.1rem);
  margin-bottom: 1.125rem;
  opacity: 0.95;
}

/* Buttons */
.btn {
  display: inline-block;
  background: linear-gradient(90deg, #043004, #078d28);
  padding: clamp(0.6rem, 1.6vw, 0.75rem) clamp(1rem, 2.6vw, 1.625rem);
  border-radius: 1.75rem;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-size: clamp(0.9rem, 1.8vw, 1rem);
}
.btn:hover { transform: translateY(-3px); background: #44a24a; }

/* Small screens adjustments */
@media (max-width: 640px) {
  .hero-content h1 { font-size: clamp(1.4rem, 6.5vw, 1.9rem); }
  .hero-content p { font-size: 0.98rem; }
  header { padding-left: 0.6rem; padding-right: 0.6rem; }
}

/* ================== ACCESSIBILITY & UTILITY ================== */
/* Ensure header doesn't cover anchored content */
:target::before {
  content: "";
  display: block;
  height: var(--header-h);
  margin-top: calc(-1 * var(--header-h));
}

/* Focus outlines for keyboard users */
a:focus, button:focus, input:focus { outline: 3px solid rgba(34,51,34,0.12); outline-offset: 2px; }

/* End Parte 1 */

/* ================== PARTE 2: SEZIONI CENTRALI ================== */

/* ===== CHI SIAMO ===== */
#chi-siamo {
  padding: clamp(1.45rem, 5vw, 2.8rem) var(--gutter);
}
#chi-siamo .about {
  display: flex;
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items:center;
  justify-content: center;
  flex-wrap: wrap;
}
#chi-siamo .about img {
  width: clamp(14rem, 39%, 26.25rem); /* fluid width */
  max-width: 100%;
  border-radius: 0.75rem;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  height: auto;
  object-fit: cover;
}
#chi-siamo .about .text {
  max-width: clamp(18rem, 50%, 37.5rem);
  text-align: left;
  padding: 0.5rem;
}

/* Tablet/mobile: stack and center */
@media (max-width: 900px) {
  #chi-siamo .about { flex-direction: column; text-align: center; }
  #chi-siamo .about .text { text-align: center; }
}

/* ============================
   FINESTRA MACOS GLASS
   ============================ */

   /* Effetto hover sulla finestra Mac della sezione Chi siamo */
#chi-siamo .mac-window {
  transition: transform .50s ease, box-shadow .35s ease;
}

#chi-siamo .mac-window:hover {
  transform: translateY(-6px);
  box-shadow:
    0 25px 55px rgba(0, 0, 0, 0.45),
    0 0 18px rgba(0,255,120,0.35);
}

   .mac-window {
    width: min(95%, 900px);
    margin: 0 auto;
    padding: 35px 40px;
    border-radius: 22px;
  
    background: rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.3);
  
    /* OMBRA PREMIUM */
    box-shadow:
      0 20px 45px rgba(0, 0, 0, 0.35),
      inset 0 0 25px rgba(255, 255, 255, 0.15);
  
    position: relative;
  }  
  
  .mac-dots {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
  }
  
  .mac-dots .dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    display: inline-block;
  }
  
  .mac-dots .red { background: #ff5f57; }
  .mac-dots .yellow { background: #ffbd2e; }
  .mac-dots .green { background: #28c840; }
  
  /* Titolo in stile Artemis */
  .mac-window .section-title {
    color: #00ff88;
    text-shadow: 0 0 12px rgba(0,255,120,0.35);
    margin-bottom: 25px;
  }

  .mac-stamp {
    position: absolute;
    bottom: 20px;
    right: 40px; /* <-- QUI LO SPOSTIAMO A DESTRA */
    width: 90px;
    opacity: 0.85;
    pointer-events: none;
    user-select: none;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.25));
  }
  
  /* Responsive */
  @media (max-width: 768px) {
    .mac-window {
      padding: 22px;
      border-radius: 18px;
      backdrop-filter: blur(18px) saturate(180%);
    }
  }
    .mac-dots .dot {
      width: 12px;
      height: 12px;
    }
  
  @media (max-width: 768px) {
    .mac-stamp {
      width: 70px;
      bottom: 15px;
      right: 15px;
      opacity: 0.75;
    }
  }  
 
.about-mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 22px;
  max-width: 1200px;
  margin: 80px auto;
  padding: 0 20px;
}

/* BLOCCO BASE */
.about-block {
  padding: 28px 32px;
  border-radius: 22px;
  background: rgba(255,255,255,0.16);
  backdrop-filter: blur(18px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
  transition: 0.25s ease;
}

.about-block:hover {
  transform: translateY(-4px);
  background: rgba(255,255,255,0.22);
}

/* BLOCCO 1 — GRANDE */
.block-large {
  grid-column: span 12;
}

/* BLOCCO 2 — LATERALE A DESTRA */
.block-side {
  grid-column: 7 / span 6;
}

/* BLOCCO 3 — LARGO IN BASSO */
.block-wide {
  grid-column: span 12;
}

/* TIPOGRAFIA */
.about-block h2 {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  color: #0a3d2e;
  margin-bottom: 12px;
}

.about-block h3 {
  font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  color: #0a3d2e;
  margin-bottom: 10px;
}

.about-block p,
.about-block li {
  font-size: 1rem;
  color: #444;
  line-height: 1.55;
  opacity: 0.9;
}

/* MOBILE */
@media (max-width: 900px) {
  .block-side {
    grid-column: span 12;
  }
}

/* ===== SERVIZI (cards) ===== 
#servizi {
  text-align: center;
  padding: clamp(1.5rem, 3.5vw, 3rem) var(--gutter);
}
#servizi h2 { margin-bottom: clamp(1rem, 2.5vw, 2rem); color: #0f6b36; }

.servizi-container {
  display: flex;
  gap: clamp(0.75rem, 2vw, 1.5rem);
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

/* Card fluid sizing: use flex-basis with clamp 
.servizio-card {
  background: #fff;
  border-radius: 0.875rem;
  padding: clamp(0.6rem, 1.8vw, 1rem);
  flex: 1 1 clamp(18rem, 28%, 20rem); /* flexible basis 
  max-width: clamp(18rem, 28%, 22rem);
  box-shadow: 0 9px 19px rgba(0,0,0,0.08);
  transition: transform .22s ease, box-shadow .22s ease;
  text-align: center;
}
.servizio-card img { width: 100%; border-radius: 0.625rem; margin-bottom: 0.9rem; height: auto; object-fit: cover; }
.servizio-card h3 { color: #0f6b36; margin-bottom: 0.75rem; font-size: clamp(1rem, 1.8vw, 1.1rem); }
.servizio-card p { color: #000; font-size: clamp(0.9rem, 1.6vw, 0.95rem); }
.servizio-card:hover { transform: translateY(-6px); box-shadow: 0 12px 30px rgba(0,0,0,0.12); }

/* Small screens: full width cards 
@media (max-width: 768px) {
  .servizio-card {
    padding: 1rem !important;
    border-radius: 14px !important;
    margin-bottom: 1rem !important;
    transform: scale(0.95);
  }

  .servizio-card h3 {
    font-size: 1.2rem !important;
  }

  .servizio-card p {
    font-size: 0.95rem !important;
    line-height: 1.4 !important;
  }

  .servizi-grid {
    gap: 0.5rem !important;
  }
} 
*/

:root{
  --surface: #ffffff;
  --accent-green: #1fda2e;
  --accent-dark: #074921;
  --muted-text: #444;
  --gutter: clamp(0.75rem, 2vw, 1.5rem);
  --radius: 16px;
}

/* Sezione */
.servizi-base {
  padding: clamp(1rem, 3vw, 2.4rem) var(--gutter);
}

/* Strip */
.servizi-strip { text-align:center; margin-bottom:1.4rem; }
.strip-label { font-weight:700; color:var(--accent-dark); display:block; }
.strip-sub { margin:0; color:var(--accent-dark); font-weight:600; }

/* Grid responsive */
.servizi-grid {
  display:grid;
  gap:1.6rem;
  grid-template-columns: 1fr;
  max-width:1200px;
  margin:0 auto;
}

/* Titolo strip (Servizi) */
.strip-title {
  margin: 0;
  font-size: clamp(2rem, 4.4vw, 1.25rem);
  font-weight: 800;
  color: var(--accent-dark);
  letter-spacing: -0.2px;
  line-height: 1.1;
}

/* Sottotitolo strip usando solo rem */
.strip-sub {
  margin: 0.25rem 0 0;
  color: var(--accent-dark);
  font-weight: 600;
  font-size: 1.8rem; /* desktop / default */
  line-height: 1.25;
  letter-spacing: -0.1px;
}

/* Tablet: leggero ridimensionamento */
@media (max-width: 768px) {
  .strip-sub {
    font-size: 0.9rem;
    line-height: 1.22;
  }
}

/* Mobile telefono: testo più compatto */
@media (max-width: 480px) {
  .strip-sub {
    font-size: 0.85rem;
    line-height: 1.18;
  }
}

/* BOX */
.servizio-box {
  background: var(--surface);
  border-radius: var(--radius);
  border: 1px solid rgba(10,30,18,0.06);
  box-shadow: 0 8px 22px rgba(0,0,0,0.06);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* Immagine superiore */
.box-image {
  width:100%;
  height:180px;
  overflow:hidden;
}
.box-image img {
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Contenuto */
.box-inner {
  padding:1.2rem;
  display:flex;
  flex-direction:column;
  gap:0.8rem;
}

/* Icona caricata dall’utente */
.box-icon img {
  width:40px;
  height:40px;
  object-fit:contain;
}

/* Testi */
.box-title {
  margin:0;
  font-size:1.15rem;
  font-weight:700;
  color:#0a3d2e;
}
.box-desc {
  margin:0;
  color:var(--muted-text);
  line-height:1.45;
  font-size:0.95rem;
}

/* Header icona + titolo */
.box-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}

/* Icona piccola e controllata */
.box-header .box-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Titolo che NON allarga il box */
.box-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #0a3d2e;
  line-height: 1.2;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

/* CTA finale */
.servizi-cta-row {
  margin-top:2rem;
  text-align:center;
}
.btn-large {
  padding:0.9rem 1.6rem;
  border-radius:999px;
  font-weight:800;
  background:linear-gradient(90deg,#043004,#078d28);
  color:#fff;
  text-decoration:none;
  box-shadow:0 10px 30px rgba(0,0,0,0.12);
  display:inline-block;
}

/* Responsive */
@media (min-width:640px){
  .servizi-grid { grid-template-columns: repeat(2, 1fr); }
  .box-image { height:200px; }
}

@media (min-width:1024px){
  .servizi-grid { grid-template-columns: repeat(4, 1fr); }
  .box-image { height:220px; }
}

.box-title {
  font-weight: 800;
}
.box-desc {
  font-weight: 400;
  opacity: 0.85;
}

.servizio-box {
  transition: transform .25s ease, box-shadow .25s ease;
}
.servizio-box:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
}

.box-header .box-icon {
  width: 32px;
  height: 32px;
  padding: 6px;
  border-radius: 10px;
  background: rgba(31,218,46,0.08);
}

.box-image {
  position: relative;
}
.box-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.05), rgba(0,0,0,0.15));
  pointer-events: none;
}

.box-inner {
  padding: 1.4rem 1.2rem;
}
.box-desc {
  margin-top: 0.2rem;
}

.servizio-box {
  backdrop-filter: blur(4px);
  background: rgba(255,255,255,0.85);
}

.servizio-box {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.box-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.btn-large {
  font-size: 1.05rem;
  padding: 1rem 2rem;
  letter-spacing: 0.3px;
}

/* ===== CAROSELLO ===== */
/* ========== CAROSELLO ========== */
.carousel-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background:white;
  padding: 100px 0;
}

.carousel-section {
  padding: 70px 0;
}

.carousel {
  display: flex;
  align-items: center;
  gap: 5px;
}

.carousel {
  height: 400px;
}

@media (max-width: 720px) {
  .carousel {
    height: 260px;
  }
}

.carousel img {
  transition: all 0.4s ease;
  border-radius: 15px;
  cursor: pointer;
}

/* immagine centrale grande */
.carousel img.center {
  width: 410px;
  height: 560px;
  transform: scale(1);
}

/* immagini laterali piccole */
.carousel img.side {
  width: 200px;
  height: 210px;
  opacity: 0.7;
  transform: scale(0.9);
}

.arrow {
  background: none;
  border: none;
  font-size: 40px;
  cursor: pointer;
  color: #333;
  transition: 0.2s;
}

.arrow:hover {
  color: #000;
  transform: scale(1.2);
}

.animate-center {
  animation: zoomIn 0.6s ease forwards;
}
@keyframes zoomIn {
  from {
    transform: scale(0.8);
    opacity: 0.5;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.carousel-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 18px;
}

.carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(0,0,0,0.25);
  transition: 0.25s ease;
}

.carousel-dot.active {
  background: #0a3d2e;
  transform: scale(1.25);
  box-shadow: 0 0 6px rgba(10,61,46,0.5);
}

@media (max-width: 700px) {
  .carousel-dots {
    margin-top: 60px; /* aumenta finché non è perfetto */
  }
}

.carousel-choice-section {
  margin: 60px auto 40px;
  text-align: center;
  max-width: 900px;
  padding: 0 20px;
}

.choice-title {
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  color: #0a3d2e;
  margin-bottom: 10px;
}

.choice-subtitle {
  font-size: 1rem;
  color: #444;
  opacity: 0.9;
  margin-bottom: 30px;
}

.choice-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.choice-box {
  padding: 26px 22px;
  border-radius: 22px;

  /* Glass premium */
  background: rgba(255,255,255,0.16);
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow:
    0 18px 40px rgba(0,0,0,0.12),
    inset 0 0 18px rgba(255,255,255,0.12);

  text-align: center;
  transition: 0.25s ease;
}

.choice-box:hover {
  transform: translateY(-4px);
  background: rgba(255,255,255,0.22);
}

.choice-box {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}

.choice-btn {
  margin-top: auto; /* spinge il bottone in fondo */
}

.choice-icon {
  width: 60px;
  height: 60px;
  object-fit: contain;
  margin-bottom: 14px;
  opacity: 0.95;
}

.choice-box h4 {
  font-size: 1.6rem;
  color: #0a3d2e;
  margin-bottom: 8px;
}

.choice-box p {
  font-size: 0.95rem;
  color: #555;
  margin-bottom: 18px;
}

.choice-btn {
  display: inline-block;
  padding: 0.75rem 1.6rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #043004, #078d28);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: 0.25s ease;
}

.choice-btn:hover {
  background: #0a6b2a;
}

.choice-btn.secondary {
  background: rgba(255,255,255,0.9);
  color: #0a3d2e;
  border: 1px solid rgba(10,61,46,0.35);
}

.choice-btn.secondary:hover {
  background: #0a3d2e;
  color: #fff;
}

/* Mobile */
@media (max-width: 700px) {
  .choice-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== CAROSELLO RESPONSIVE ===== */
/* animate center */
.animate-center { animation: zoomIn 0.6s ease forwards; }
@keyframes zoomIn { from { transform: scale(0.8); opacity: 0.5; } to { transform: scale(1); opacity: 1; } }

/* Carosello responsive: hide sides on small screens, scale center */
@media (max-width: 720px) {
  .carousel img.side { display: none; }
  .carousel img.center {
    flex-basis: clamp(8rem, 50%, 12rem);
    aspect-ratio: 4 / 3;
  }
  .arrow { display: none; }
}

.livoltek-section {
  padding: 80px 20px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
  background: radial-gradient(circle at top, rgba(31,218,46,0.08), transparent 55%);
}

/* HERO */
.livoltek-hero {
  max-width: 1200px;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}

.livoltek-hero-text {
  padding-left: 55px; /* micro‑correzione */
}

@media (max-width: 900px) {
  .livoltek-hero-text {
    padding-left: 0; /* centrato su mobile */
  }
}

.livoltek-badge {
  display: inline-block;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(31,218,46,0.12);
  color: #0a3d2e;
  border: 1px solid rgba(31,218,46,0.45);
  box-shadow: 0 0 12px rgba(31,218,46,0.35);
}

.livoltek-title {
  font-size: clamp(4rem, 6vw, 5.2rem);
  margin: 0;
  color: #0a3d2e;
}

.livoltek-subtitle {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #444;
  max-width: 540px;
}

/* PRODOTTO */
.livoltek-hero-product {
  display: flex;
  justify-content: center;
}

.livoltek-product-frame {
  position: relative;
  padding: 26px 26px 32px;
  border-radius: 26px;
  margin-left: -50px;

  /* AIR-GLASS: quasi invisibile */
  background: rgba(255,255,255,0.06); /* leggerissimo */
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);

  border: 1px solid rgba(255,255,255,0.18); /* sottilissimo */
  box-shadow:
    0 18px 40px rgba(0,0,0,0.10), /* ombra molto soft */
    inset 0 0 18px rgba(255,255,255,0.10); /* glow interno leggero */
  
  transition: 0.35s ease;
}

.livoltek-product-img {
  width: 320px;
  max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 14px 28px rgba(0,0,0,0.35));
  transition: transform 0.4s ease, filter 0.4s ease;
}

.livoltek-garanzia-img {
  position: absolute;
  bottom: 16px;
  right: 18px;
  width: 180px;
  border-radius: 8px;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,0.25));
  opacity: 0.92;
}

/* BENEFIT */
.livoltek-benefits {
  max-width: 1100px;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.livoltek-benefit {
  padding: 18px 18px 20px;
  border-radius: 16px;
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(10,30,18,0.06);
  box-shadow: 0 10px 26px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.benefit-icon-img {
  width: 45px;
  height: 45px;
  object-fit: contain;
  opacity: 0.9;
  margin-bottom: 6px;
}

.livoltek-benefit h3 {
  font-size: 1.5rem;
  margin: 0;
  color: #0a3d2e;
}

.livoltek-benefit p {
  margin: 0;
  font-size: 0.95rem;
  color: #555;
}

/* CTA */
.livoltek-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

.livoltek-btn {
  border-radius: 999px;
}

.livoltek-btn-secondary {
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  border: 1px solid rgba(10,61,46,0.35);
  background: rgba(255,255,255,0.9);
  color: #0a3d2e;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(0,0,0,0.06);
  transition: 0.2s ease;
}

/* Testo corto solo su mobile */
@media (max-width: 600px) {
  .livoltek-btn-secondary {
    font-size: 0; /* nasconde il testo originale */
    position: relative;
  }

  .livoltek-btn-secondary::after {
    content: "Configurazione personalizzata";
    font-size: 0.9rem;
    font-weight: 600;
    color: #0a3d2e;
  }
}

.livoltek-btn-secondary:hover {
  background: #0a3d2e;
  color: #fff;
  border-color: #0a3d2e;
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .livoltek-hero {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .livoltek-subtitle {
    margin: 0 auto;
  }

  .livoltek-hero-product {
    order: -1;
  }
}

@media (max-width: 768px) {
  .livoltek-section {
    padding: 60px 16px;
  }

  .livoltek-benefits {
    grid-template-columns: 1fr;
  }

  .livoltek-product-frame {
    padding: 20px 20px 26px;
  }

  .livoltek-garanzia-pill {
    bottom: 12px;
    right: 14px;
    font-size: 0.75rem;
  }
}

/* =========================================
   BASE LAYOUT + TIPOGRAFIA
   ========================================= */

   /* Reset neutro, NON tocca il resto del sito */
   body {
    margin: 0;
    padding: 0;
  }
  
  /* Font e colori SOLO dentro la sezione Conto Termico */
  .ct-modal,
  .ct-layout,
  .ct-pro-section,
  .ct-content,
  .ct-inline-grid,
  .ct-modal-content {
    color: #111;
  }
  
  .ct-pro-section {
    max-width: 1280px;
    margin: auto;
    padding: 4rem 1rem;
  }
  
    
    /* TITOLI GLOBALI — Stile A2 */
    h1, .title-xl {
      font-size: clamp(4rem, 46vw, 5rem);
      font-weight: 800;
      line-height: 1.12;
      color: #0a3d2e;
      margin-bottom: 1.2rem;
    }
    
    h2, .title-lg {
      font-size: clamp(2.1rem, 3.2vw, 2.6rem);
      font-weight: 800;
      line-height: 1.18;
      color: #0a3d2e;
      margin-bottom: 1rem;
    }
    
    h3, .title-md {
      font-size: clamp(1.4rem, 2.2vw, 1.9rem);
      font-weight: 700;
      color: #0a3d2e;
      margin-bottom: 0.8rem;
    }
    
    p {
      font-size: 1.05rem;
      line-height: 1.55;
      color: #444;
      margin-bottom: 1rem;
    }
    
    /* =========================================
       HERO PRINCIPALE
       ========================================= */
    
    .ct-pro-hero {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3rem;
      align-items: center;
      margin-bottom: 4rem;
    }
    
    .ct-pro-hero-text h2 {
      font-size: clamp(2.2rem, 4vw, 3rem);
      font-weight: 800;
      font-size: 4rem;
    }
    
    .ct-pro-hero-text p {
      font-size: 1.2rem;
      color: #444;
      margin: 1rem 0 1.8rem;
    }
    
    .ct-pro-hero-img img {
      width: 100%;
      border-radius: 22px;
      box-shadow: 0 12px 40px rgba(0,0,0,0.15);
      object-fit: cover;
    }
    
    @media (max-width: 600px) {
      .ct-pro-hero-img {
        display: none;
      }
    }
    
    /* =========================================
       INFO BOXES (3 BOX INTRODUTTIVI)
       ========================================= */
    
    .ct-info-boxes {
      display: flex;
      justify-content: center;
      gap: 30px;
      max-width: 1280px;
      margin: 40px auto 60px;
      padding: 0 20px;
    }
    
    .ct-info-box {
      flex: 1;
      display: flex;
      align-items: center;
      gap: 20px;
      background: #ffffff;
      padding: 22px 28px;
      border-radius: 18px;
      box-shadow: 0 8px 25px rgba(0,0,0,0.08);
      transition: 0.3s ease;
    }
    
    .ct-info-box:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 30px rgba(0,0,0,0.12);
    }
    
    .ct-info-box img {
      width: 55px;
      height: 55px;
    }
    
    .ct-info-box h3 {
      color: #0a3d2e;
      margin-bottom: 6px;
      font-size: 1.5rem;
    }
    
    .ct-info-box p {
      color: #666;
      line-height: 1.45;
    }
    
    /* RESPONSIVE INFO BOXES */
    @media (max-width: 900px) {
      .ct-info-boxes {
        flex-direction: column;
        gap: 20px;
      }
    }
    
    @media (max-width: 600px) {
      .ct-info-box {
        padding: 16px;
        gap: 14px;
      }
    
      .ct-info-box img {
        width: 42px;
        height: 42px;
      }
    
      .ct-info-box h3 {
        font-size: 1.5rem;
      }
    
      .ct-info-box p {
        font-size: 0.9rem;
      }
    }
    
    /* =========================================
       LAYOUT BASE CONTO TERMICO
       ========================================= */
    
    .ct-layout {
      display: flex;
      gap: 60px;
      max-width: 1280px;
      margin: 60px auto;
      padding: 0 20px;
    }
    
    @media (max-width: 1024px) {
      .ct-layout {
        gap: 40px;
      }
    }
    
    @media (max-width: 900px) {
      .ct-layout {
        flex-direction: column;
        gap: 30px;
      }
    }
  
    /* =========================================
     TIMELINE — DESKTOP
     ========================================= */
  
  .ct-timeline {
    flex: 0 0 300px;
    position: relative;
    padding-left: 45px;
  }
  
  .ct-timeline::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 0;
    bottom: 0;
    width: 8px;
    background: linear-gradient(#0fcf4a, #045f1d);
    border-radius: 4px;
    box-shadow: 0 0 12px rgba(31,218,46,0.4);
  }
  
  .ct-step {
    margin-bottom: 35px;
    padding-left: 15px;
    position: relative;
    padding-top: 60px;
  }
  
  .ct-circle {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: white;
    border: 4px solid #078d28;
    box-shadow: 0 0 12px rgba(31,218,46,0.5);
    position: absolute;
    left: -45px;
    top: 60px;
  }
  
  .ct-step h4 {
    font-size: 1.35rem;
    margin-bottom: 8px;
    color: #0a3d2e;
  }
  
  .ct-step p {
    color: #444;
    line-height: 1.5;
  }
  
  /* Step attivo */
  .ct-step.active .ct-circle {
    transform: scale(1.2);
    box-shadow: 0 0 18px rgba(31,218,46,0.8);
    border-color: #0fcf4a;
  }
  
  .ct-step.active h4 {
    color: #08461a;
  }
  
/* =========================================
   TIMELINE — TABLET (TESTI MIGLIORATI)
   ========================================= */

   @media (max-width: 900px) {

    .ct-timeline {
      flex: 1;
      padding-left: 30px; 
    }
  
    .ct-timeline::before {
      left: 15px;
    }
  
    .ct-circle {
      left: -31px; 
      width: 40px;
      height: 40px;
      border-width: 3px;
    }
  
    .ct-step {
      margin-bottom: 22px; 
      padding-top: 45px;   
      padding-left: 20px;  
    }
  
    .ct-step h4 {
      font-size: 1.2rem;
      margin-bottom: 2px; /* 🔥 più stretto */
    }
  
    .ct-step p {
      line-height: 1.35; /* 🔥 più compatto */
      font-size: 0.95rem;
    }
  }
  
  
  /* =========================================
     TIMELINE — MOBILE
     ========================================= */
  
  @media (max-width: 600px) {
    .ct-timeline {
      padding-left: 9px;
    }
  
    .ct-timeline::before {
      left: 6px;
      width: 6px;
    }
  
    .ct-circle {
      width: 24px;
      height: 24px;
      left: -12px;
      top: 20px;
    }
  
    .ct-step {
      padding-left: 20px;
      margin-bottom: 5px;
      padding-top: 24px;
    }
  
    .ct-step h4 {
      font-size: 1.4rem;
      margin-top: -4px;
    }
  
    .ct-step p {
      font-size: 0.85rem;
    }
  }
  
  /* =========================================
     BLOCCHI ALTERNATI — DESKTOP
     ========================================= */
  
  .ct-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 50px;
  }
  
  .ct-block {
    display: flex;
    gap: 25px;
    background: #fff;
    padding: 22px;
    border-radius: 18px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    align-items: center;
  
    opacity: 0;
    transform: translateX(60px);
    transition: all 0.7s ease-out;
  }
  
  .ct-block.reverse {
    flex-direction: row-reverse;
    transform: translateX(-60px);
  }
  
  .ct-block.visible {
    opacity: 1;
    transform: translateX(0);
  }
  
  .ct-block img {
    width: 260px;
    height: 180px;
    object-fit: cover;
    border-radius: 14px;
  }
  
  .ct-block:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.12);
  }
  
  .ct-block img:hover {
    transform: scale(1.03);
    transition: 0.3s ease;
  }
  
  /* Testo */
  .ct-text h3 {
    color: #0a3d2e;
    font-size: 1.55rem;
  }
  
  .ct-text p {
    color: #666;
    line-height: 1.5;
  }
  
  /* Numeri desktop */
  .ct-num-desk {
    position: absolute;
    top: -15px;
    left: -2px;
    font-size: 3rem;
    font-weight: 700;
    color: rgba(0,0,0,0.06);
    pointer-events: none;
    line-height: 1;
  }
  
  .ct-text {
    position: relative;
    padding-top: 40px;
  }
  
  .ct-block.reverse .ct-num-desk {
    left: auto;
    right: -2px;
  }
  
  /* Icona */
  .ct-icon {
    position: absolute;
    top: -10px;
    right: -2px;
    width: 32px;
    height: 32px;
    opacity: 0.9;
  }
  
  .ct-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  .ct-block.reverse .ct-icon {
    left: -2px;
    right: auto;
  }
  
/* =========================================
   BLOCCHI ALTERNATI — TABLET (2×2 GRID)
   ========================================= */

   @media (max-width: 900px) {

    /* Il contenitore diventa una griglia 2x2 */
    .ct-content {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px; /* più compatto e moderno */
    }
  
    /* Ogni blocco diventa verticale */
    .ct-block {
      flex-direction: column;
      align-items: flex-start;
      padding: 18px;
      gap: 18px;
      transform: translateY(40px); /* animazione più naturale in verticale */
    }
  
    .ct-block.reverse {
      flex-direction: column; /* niente reverse su tablet */
      transform: translateY(40px);
    }
  
    .ct-block.visible {
      transform: translateY(0);
    }
  
    /* Immagini più piccole e proporzionate */
    .ct-block img {
      width: 100%;
      height: 160px;
      border-radius: 14px;
    }
  
    /* Testo più compatto */
    .ct-text {
      padding-top: 20px;
    }
  
    .ct-text h3 {
      font-size: 1.25rem;
      margin-bottom: 6px;
    }
  
    .ct-text p {
      font-size: 0.95rem;
      line-height: 1.4;
    }
  
    /* Numeri e icone riposizionati */
    .ct-num-desk {
      top: -10px;
      left: 0;
      font-size: 2.4rem;
    }
  
    .ct-block.reverse .ct-num-desk {
      right: 0;
    }
  
    .ct-icon {
      top: -73px;
      right: 0;
      width: 26px;
      height: 26px;
    }
  
    .ct-block.reverse .ct-icon {
      left: 0;
    }
  }
  
  /* =========================================
     BLOCCHI — MOBILE
     ========================================= */
  
  @media (max-width: 600px) {
    .ct-content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 15px;
    }
  
    .ct-block,
    .ct-block.reverse {
      padding: 12px;
      opacity: 1 !important;
      transform: none !important;
    }
  
    .ct-block img {
      width: 100%;
      height: auto;
      border-radius: 10px;
    }
  
    .ct-text h3 {
      font-size: 0.95rem;
      margin-top: 8px;
    }
  
    .ct-text p {
      font-size: 0.8rem;
    }
  
    .ct-block {
      transform: translateY(20px);
      transition: all 0.4s ease-out;
    }
  
    .ct-block.visible {
      transform: translateY(0);
    }
  }
  
  /* =========================================
     FIX: NASCONDERE BLOCCHI ALTERNATI SU MOBILE
     ========================================= */
  
     @media (max-width: 600px) {
      .ct-content {
        display: none !important;
      }
    }
    
  /* =========================================
     PUZZLE MOBILE (SOLO MOBILE)
     ========================================= */
  
  .ct-puzzle {
    display: none;
  }
  
  @media (max-width: 600px) {
    .ct-puzzle {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      padding: 0 10px;
      max-width: 900px;
      margin: 50px auto;
    }
  
    .ct-piece {
      background: #ffffff;
      padding: 20px 15px;
      border-radius: 14px;
      position: relative;
      box-shadow: 0 6px 18px rgba(0,0,0,0.06);
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }
  
    .ct-num {
      position: absolute;
      top: 6px;
      right: 10px;
      font-size: 2.2rem;
      font-weight: 700;
      color: rgba(0,0,0,0.06);
    }
  
    .ct-piece img {
      width: 32px;
      margin-bottom: 12px;
    }
  
    .ct-piece h3 {
      font-size: 1rem;
    }
  
    .ct-piece p {
      font-size: 0.8rem;
    }
  }
  
  /* =========================================
     CTA FINALE
     ========================================= */
  
  .ct-pro-cta {
    text-align: center;
    margin-top: 60px;
  }
  
  .ct-pro-cta h3 {
    font-size: 1.8rem;
    margin-bottom: 20px;
  }
  
  /* =========================================
     BOTTONE PRINCIPALE
     ========================================= */
  
     .btn-ct-main {
      margin-top: 1.5rem;
      background: linear-gradient(90deg, #043004, #078d28);
      color: white;
      border: none;
      padding: clamp(0.8rem, 2vw, 1rem) clamp(1.2rem, 3vw, 1.8rem);
      border-radius: 0.75rem;
      font-size: clamp(1rem, 1.8vw, 1.1rem);
      cursor: pointer;
      font-family: 'Gabarito', sans-serif;
      font-weight: 700;
      letter-spacing: 0.5px;
      text-decoration: none;
      transition: 0.25s ease;
    }
    
    .btn-ct-main:hover {
      transform: translateY(-2px);
      opacity: 0.9;
    }
    
    /* =========================================
       MODAL OVERLAY
       ========================================= */
    
    .ct-modal {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.45);
      backdrop-filter: blur(4px);
    
      display: flex;
      justify-content: center;
      align-items: center;
    
      padding: 1rem;
      z-index: 5000;
    
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    
      transition: opacity 0.35s ease, visibility 0.35s ease;
    
      overflow-x: hidden;
      overflow-y: auto;
    }
    
    .ct-modal.open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
    
    /* Scroll-lock Android/iOS */
    body.modal-open {
      position: fixed;
      width: 100%;
      overflow: hidden;
    }
    
    /* =========================================
     BLOCCO "EROGAZIONE RAPIDA"
     IMMAGINE SINISTRA + TESTO DESTRA (DESKTOP)
     ========================================= */
  
  @media (min-width: 900px) {
  
    /* Wrapper a due colonne */
    .ct-inline-grid {
      display: flex;
      align-items: center;
      gap: 2.2rem;
    }
  
    /* Se è presente .ct-inline-reverse, inverti l'ordine solo su mobile.
       Su desktop la ignoriamo e mettiamo immagine a sinistra. */
    .ct-inline-grid.ct-inline-reverse {
      flex-direction: row;
    }
  
    /* Colonna immagine */
    .ct-inline-img-col {
      flex: 0 0 45%;
    }
  
    .ct-inline-img {
      width: 100%;
      height: 260px !important;
      object-fit: cover;
      border-radius: 18px;
      box-shadow: 0 8px 25px rgba(0,0,0,0.12);
    }
  
    /* Colonna testo */
    .ct-inline-text-col {
      flex: 1;
    }
  
    .ct-inline-title {
      font-size: 1.6rem;
      margin-bottom: 0.6rem;
      color: #0a3d2e;
    }
  
    .ct-inline-desc {
      font-size: 1.05rem;
      line-height: 1.55;
      color: #444;
    }
  }
  
    /* =========================================
       MODAL CONTENT
       ========================================= */
    
    .ct-modal-content {
      background: #ffffff;
      border-radius: 22px;
      padding: clamp(1.4rem, 3vw, 2.4rem);
      width: 100%;
      max-width: 850px;
    
      max-height: calc(100vh - 2rem);
      overflow-y: auto;
      overflow-x: hidden;
    
      border: 1px solid rgba(0,0,0,0.06);
      box-shadow: 0 12px 40px rgba(0,0,0,0.18);
    
      position: relative;
      color: #111;
    
      opacity: 0;
      transform: translateY(25px);
      transition: opacity 0.35s ease, transform 0.35s ease;
    }
    
    .ct-modal.open .ct-modal-content {
      opacity: 1;
      transform: translateY(0);
    }
    
    /* Nasconde scrollbar interna */
    .ct-modal-content {
      scrollbar-width: none;
    }
    
    .ct-modal-content::-webkit-scrollbar {
      display: none;
    }
    
    /* =========================================
       MODAL RESPONSIVE
       ========================================= */
    
    @media (max-width: 600px) {
      .ct-modal {
        align-items: flex-start;
        padding-top: 1.2rem;
      }
    
      .ct-modal-content {
        margin-top: 0.5rem;
        max-height: calc(100dvh - 2rem);
        padding: 1rem;
        border-radius: 16px;
      }
    }
    
    /* =========================================
       BOTTONE CHIUSURA (X)
       ========================================= */
    
    .ct-close {
      position: sticky;
      top: 0.9rem;
      right: 1.1rem;
      z-index: 999;
      backdrop-filter: blur(6px);
      background: transparent;
      border: none;
      font-size: 2rem;
      line-height: 1;
      cursor: pointer;
      color: #222;
    }
    
    /* =========================================
       INTRO MODALE (TITOLO + HERO)
       ========================================= */
    
    .ct-intro-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.5rem;
      align-items: center;
      margin-bottom: 1.5rem;
    }
    
    .ct-title {
      font-size: clamp(1.9rem, 3vw, 2.5rem);
      font-weight: 800;
      margin: 0;
      color: #0a3d2e;
    }
    
    .ct-hero-wrapper {
      width: 100%;
      height: 180px;
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(0,0,0,0.08);
      box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    }
    
    .ct-hero-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    
    /* Responsive intro */
    @media (max-width: 750px) {
      .ct-intro-grid {
        grid-template-columns: 1fr;
      }
    
      .ct-hero-wrapper {
        height: 150px;
      }
    }
    
    /* =========================================
       GRID INFORMATIVA
       ========================================= */
    
    .ct-modal-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 1rem;
      margin: 1.5rem 0 2rem;
      width: 100%;
    }
    
    .ct-card {
      background: #ffffff;
      border-radius: 14px;
      padding: 1rem;
      border: 1px solid rgba(0,0,0,0.08);
      font-size: 0.95rem;
      position: relative;
      padding-top: 3rem;
      opacity: 0;
      transform: translateX(-20px);
      transition: opacity 0.45s ease, transform 0.45s ease;
    }
    
    .ct-card h4 {
      font-size: 1.25rem;   /* prima era circa 1rem implicito */
      margin-bottom: 8px;
      color: #0a3d2e;
      font-weight: 600;
      margin-top: 7px;
    }
    
    .ct-modal.open .ct-card {
      opacity: 1;
      transform: translateX(0);
    }
    
    .ct-card-icon {
      position: absolute;
      top: 0.8rem;
      left: 0.8rem;
      width: 35px;
      height: 35px;
      border-radius: 6px;
      overflow: hidden;
      background: #fff;
    }
    
    .ct-card-icon img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    
    /* Responsive cards */
    @media (max-width: 900px) {
      .ct-modal-grid {
        grid-template-columns: 1fr;
      }
    }
    
    @media (max-width: 600px) {
      .ct-card {
        padding: 0.8rem;
        padding-top: 2.4rem;
      }
    
      .ct-card-icon {
        width: 28px;
        height: 28px;
      }
    }
    
    /* =========================================
       FORM
       ========================================= */
    
    .ct-form {
      display: flex;
      flex-direction: column;
      gap: 0.9rem;
      margin-top: 0.5rem;
    }
    
    .ct-form h4 {
      font-size: 1.55rem;   /* più grande e leggibile */
      font-weight: 600;
      color: #0a3d2e;
      margin-bottom: 1rem;
      line-height: 1.2;
    }
    
    .ct-form-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.8rem;
    }
    
    .ct-form input,
    .ct-form select,
    .ct-form textarea {
      padding: 0.75rem;
      border-radius: 10px;
      border: 1px solid rgba(0,0,0,0.18);
      font-size: 0.98rem;
      font-family: inherit;
      width: 100%;
    }
    
    .ct-form textarea {
      min-height: 110px;
      resize: vertical;
    }
    
    /* Responsive form */
    @media (max-width: 600px) {
      .ct-form-row {
        grid-template-columns: 1fr;
      }
    }
    
    .ct-floating-btn {
      position: fixed;
      bottom: 22px;
      right: 22px;
      background:linear-gradient(90deg,#043004,#078d28);
      color: #fff;
      padding: 14px 22px;
      border-radius: 50px;
      font-size: 1rem;
      font-weight: 600;
      box-shadow: 0 8px 20px rgba(0,0,0,0.18);
      border: none;
      cursor: pointer;
      z-index: 9999;
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    
    .ct-floating-btn.hide {
      opacity: 0;
      pointer-events: none;
      transform: translateY(20px);
    }
    
    .ct-floating-btn {
      animation: pulseBtn 1.8s ease-in-out infinite;
    }
    
    @keyframes pulseBtn {
      0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(15, 207, 74, 0.0);
      }
      50% {
        transform: scale(1.06);
        box-shadow: 0 0 18px rgba(15, 207, 74, 0.35);
      }
      100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(15, 207, 74, 0.0);
      }
    }
    
    /* =========================================
       CHECKBOX PREMIUM
       ========================================= */
    
    .checkbox-wrapper {
      margin-top: 1rem;
    }
    
    .checkbox-label {
      display: flex;
      align-items: center;
      gap: 0.7rem;
      font-size: 0.95rem;
      color: #222 !important;
      cursor: pointer;
      user-select: none;
    }

    .checkbox-wrapper .checkbox-label {
      color: #000 !important;
    }
    
    .checkbox-wrapper .checkbox-label a {
      font-weight: 600;
    }  
    
    .checkbox-wrapper .checkbox-label,
    .checkbox-wrapper .checkbox-label a {
      color: #000 !important;
    }

    .checkbox-label input[type="checkbox"] {
      opacity: 0;
      position: absolute;
      pointer-events: none;
    }
    
    .checkmark {
      width: 22px;
      height: 22px;
      border-radius: 6px;
      border: 2px solid #0a7d2f;
      background: #f2f2f2;
      display: inline-block;
      position: relative;
      transition: 0.25s ease;
      box-shadow:
        0 4px 12px rgba(0,0,0,0.22),
        0 2px 4px rgba(0,0,0,0.14);
    }
    
    .checkbox-label:hover .checkmark {
      border-color: #0fa63c;
    }
    
    .checkbox-label input:checked + .checkmark {
      background: #0fa63c;
      border-color: #0fa63c;
      transform: scale(1.05);
    }
    
    .checkbox-label input:checked + .checkmark::after {
      content: "✓";
      color: white;
      font-size: 15px;
      font-weight: 700;
      position: relative;
      top: 0;
      left: 4px;
    }
    
    .privacy-error {
      display: none;
      color: #d10000 !important;
      font-size: 0.85rem;
      margin-top: 6px;
    }
    
    @media (max-width: 600px) {
      .checkbox-label {
        font-size: 0.9rem;
      }
    
      .checkmark {
        width: 20px;
        height: 20px;
      }
    }
    
/* ===== PACKAGES (pacchetti) ===== */
.packages-section {
  padding: clamp(2rem, 5vw, 6rem) var(--gutter);
  color: #f7f7f7;
  text-align: center;
}
.section-title {
  font-size: clamp(1.5rem, 4vw, 2.4rem);
  margin-bottom: clamp(1.5rem, 3.5vw, 3rem);
  text-align: center;
  color: linear-gradient(135deg, #0a4d1a, #4cd964);
}

.packages-container {
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  flex-wrap: wrap;
  align-items: stretch; /* AGGIUNTO */
}


/* package card fluid */
.package-card {
  background: white;
  padding: clamp(1rem, 2.5vw, 1.875rem);
  flex: 1 1 clamp(18rem, 28%, 20rem);
  max-width: clamp(18rem, 28%, 22rem);
  border-radius: 1rem;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;

  display: flex;            /* AGGIUNTO */
  flex-direction: column;   /* AGGIUNTO */
}

.package-card:hover { transform: translateY(-6px); box-shadow: 0 12px 30px rgba(0,0,0,0.12); }

.package-title { font-size: clamp(1.1rem, 2.6vw, 1.6rem); margin-bottom: 0.6rem; }
.package-subtitle { font-size: clamp(0.9rem, 1.8vw, 1rem); color: #555; margin-bottom: 1rem; }

.package-benefits { list-style: none; padding: 0; margin: 0 0 1.25rem 0; text-align: left; }
.package-benefits li { margin-bottom: 0.6rem; padding-left: 1.25rem; position: relative; font-size: clamp(0.9rem, 1.6vw, 1rem); color:black;}
.package-benefits li::before { content: "✔"; color: #00c853; position: absolute; left: 0; top: 0; }

.package-btn {
  background: linear-gradient(90deg, #043004, #078d28);
  color: white;
  border: none;
  padding: clamp(0.6rem, 1.6vw, 0.75rem) clamp(0.8rem, 2vw, 1.25rem);
  border-radius: 0.5rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  cursor: pointer;
  font-family: 'Gabarito', sans-serif;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin-top: auto;
}

/* package image box */
.package-image { width: 100%; height: clamp(9rem, 20vw, 11.25rem); border-radius: 0.75rem; overflow: hidden; margin-bottom: 1rem; }
.package-image img { width: 100%; height: 100%; object-fit: cover; }

/* ========== KIT PENSILINA/WALLBOX ========== */
.mobilita-section {
  max-width: 1100px;
  margin: 60px auto;
  text-align: center;
  padding: 0 20px;
}

.mobilita-title {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.mobilita-subtitle {
  font-size: 1.2rem;
  color: #555;
  margin-bottom: 40px;
}

.mobilita-grid {
  display: flex;
  gap: 30px;
  justify-content: center;
  flex-wrap: wrap;
}

.mobilita-card {
  width: 45%;
  min-width: 300px;
  background: #ffffff;
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  border: 2px solid rgba(255,255,255,0.4);
  backdrop-filter: blur(12px);
}

.mobilita-card h3 {
  font-size: 1.6rem;
  margin-top: 15px;
}

.mobilita-card p {
  font-size: 1rem;
  color: #444;
  margin-top: 10px;
  line-height: 1.5;
}

/* IMMAGINI */
.mobilita-img {
  width: 100%;
  height: 200px;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0,0,0,0.15);
}

.mobilita-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 768px) {
  .mobilita-card {
    padding: 0.6rem !important;
    border-radius: 14px !important;
    transform: scale(0.90);
  }

  .mobilita-card img {
    max-height: 1420px !important;
    object-fit: cover;
    border-radius: 12px;
  }

  .mobilita-card h3 {
    font-size: 1.15rem !important;
  }

  .mobilita-card p {
    font-size: 0.9rem !important;
  }
}

/* ============================
   FINESTRA MACOS GLASS
   ============================ */

   /* Effetto hover sulla finestra Mac */
.mobilita-section .mac-window {
  transition: transform .35s ease, box-shadow .35s ease;
}

.mobilita-section .mac-window:hover {
  transform: translateY(-5px);
  box-shadow:
    0 25px 55px rgba(0, 0, 0, 0.45),
    0 0 18px rgba(0,255,120,0.35);
}

.mac-window {
  width: min(95%, 900px);
  margin: 0 auto;
  padding: 35px 40px;
  border-radius: 22px;

  background: rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border: 1px solid rgba(255, 255, 255, 0.3);

  /* OMBRA PREMIUM */
  box-shadow:
    0 20px 45px rgba(0, 0, 0, 0.35),
    inset 0 0 25px rgba(255, 255, 255, 0.15);

  position: relative;
}  
  
  .mac-dots {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
  }
  
  .mac-dots .dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    display: inline-block;
  }
  
  .mac-dots .red { background: #ff5f57; }
  .mac-dots .yellow { background: #ffbd2e; }
  .mac-dots .green { background: #28c840; }
  
  /* Titolo in stile Artemis */
  /* FIX SOTTOTITOLO SEZIONE MOBILITÀ */
.mac-window .mobilita-subtitle {
  color: #141111 !important;   /* più visibile sul glass */
  opacity: 1 !important;
  margin-bottom: 18px !important;
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
}
  
  /* Sottotitolo */
  .mac-window .mobilita-subtitle {
    color: #fff;
    opacity: 0.9;
    margin-bottom: 30px;
    font-size: 1.1rem;
  }
  
/* ======= FIX MEDIA PER SEZIONE MOBILITÀ ======= */
@media (max-width: 900px) {

  /* Riduciamo padding della finestra */
  .mobilita-section .mac-window {
    padding: 20px 18px !important;
  }

  /* Titolo più vicino */
  .mobilita-section .section-title {
    margin-bottom: 6px !important;
    font-size: 1.5rem !important;
  }

  /* Sottotitolo più compatto */
  .mobilita-section .mobilita-subtitle {
    margin-bottom: 18px !important;
    font-size: 1rem !important;
    line-height: 1.3;
  }

  /* Griglia più stretta */
  .mobilita-grid {
    gap: 14px !important;
  }

  /* Card più piccole e senza scale strane */
  .mobilita-card {
    width: 100% !important;
    padding: 14px !important;
    border-radius: 14px !important;
    transform: none !important;
  }

  /* Immagini con altezza corretta */
  .mobilita-img {
    height: 160px !important;
  }

  .mobilita-img img {
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Testi più compatti */
  .mobilita-card h3 {
    font-size: 1.2rem !important;
    margin-top: 10px !important;
  }

  .mobilita-card p {
    font-size: 0.9rem !important;
    margin-top: 8px !important;
  }
}
@media (max-width: 900px) {
  .mac-window .mobilita-subtitle {
    font-size: 0.95rem !important;
    margin-bottom: 14px !important;
    line-height: 1.3 !important;
  }
}

/* ===== CALCOLATORE (slider & box glass) ===== */
.calcolatore-container {
  max-width: min(60rem, 90%);
  margin: clamp(1.5rem, 3.5vw, 2.5rem) auto;
  text-align: center;
  font-family: inherit;
}
.descrizione { color: #444; margin-bottom: 1rem; }

.slider-box { margin: clamp(1rem, 3vw, 2rem) 0; }
input[type="range"] { width: 100%; }

.valore-slider { font-size: clamp(1.1rem, 2.6vw, 1.4rem); font-weight: 700; margin-top: 0.5rem; }

/* ===== BOX GLASS MIGLIORATI ===== */
.box-glass-white {
  background: rgba(255, 255, 255, 0.18);
  border-radius: 1.25rem;
  padding: 1rem 1.25rem;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
  transition: transform .25s ease, box-shadow .25s ease;
}

/* Rosso (spesa attuale) */
.box-red {
  background: rgba(255, 80, 80, 0.18);
  border: 1px solid rgba(255, 120, 120, 0.45);
  box-shadow: 0 8px 25px rgba(255, 80, 80, 0.25);
  margin-bottom: 13px;
}

/* PREVENTIVO */
.btn-green-preventivo {
  background: linear-gradient(90deg, #043004, #078d28);
  color: white;
  border: none;
  border-radius: 1.25rem;

  padding: clamp(0.8rem, 2vw, 1rem) clamp(1rem, 3vw, 1.6rem);

  font-size: clamp(1.1rem, 2vw, 1.25rem);
  font-family: 'Gabarito', sans-serif;
  font-weight: 700;
  letter-spacing: 0.5px;

  display: block;
  margin: 2rem auto 0; /* più distacco */
  text-decoration: none;
  cursor: pointer;
  margin-top: 0.9rem;

  min-width: 260px; /* larghezza minima */
  text-align: center;

  transition: 0.25s ease;
}

.btn-green-preventivo:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}


/* Hover leggero (opzionale) */
.box-glass-white:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.18);
}

/* slider styling: keep but fluid */
input[type="range"] {
  -webkit-appearance: none;
  height: 0.625rem;
  background: #e0e0e0;
  border-radius: 10px;
  outline: none;
}
input[type="range"]::-webkit-slider-runnable-track {
  height: 0.625rem;
  background: linear-gradient(90deg, #2ea86a, #7cdca4);
  border-radius: 10px;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 1.75rem;
  height: 1.75rem;
  background: #fff;
  border-radius: 50%;
  border: 0.125rem solid rgba(255,255,255,0.5);
  box-shadow: 0 4px 10px rgba(0,0,0,0.18);
  margin-top: -0.55rem;
}

.impianto-testo {
  font-size: 1.25rem;     /* più grande */
  font-weight: 700;       /* più marcata */
  color: #0057d9;         /* blu elegante */
  margin-top: 0.75rem;
  text-align: center;
}

/* slider wrapper */
.slider-wrapper { display:flex; align-items:center; gap: clamp(0.5rem, 1.5vw, 1rem); }
.slider-min, .slider-max { font-size: clamp(0.75rem, 1.6vw, 0.9rem); width: 3.125rem; text-align:center; }
.slider-wrapper input[type="range"] { flex: 1; }

/* rientro testo */
.rientro-testo { font-size: clamp(0.95rem, 1.9vw, 1.1rem); font-weight:600; color:#a80d0d; margin-top: 0.75rem; text-align:center; }

/* ===== MOBILE FIX CALCOLATORE RISPARMIO ===== */
@media (max-width: 600px) {

  /* Titolo più piccolo e compatto */
  .calcolatore-container h2 {
    font-size: 1.35rem !important;
    line-height: 1.3;
    margin-bottom: 0.75rem;
  }

  /* Descrizione più stretta e leggibile */
  .calcolatore-container .descrizione {
    font-size: 0.95rem;
    max-width: 90%;
    margin: 0 auto 1rem;
    line-height: 1.45;
  }

  /* Slider più stretto e centrato */
  .slider-wrapper {
    gap: 0.5rem;
    max-width: 90%;
    margin: 0.5rem auto 1rem;
  }

  .slider-min,
  .slider-max {
    font-size: 0.8rem;
    width: 2.5rem;
  }

  /* Box spesa più stretti */
  .box-glass-white {
    max-width: 85%;
    margin-left: auto;
    margin-right: auto;
    padding: 0.75rem 1rem;
    font-size: 1rem;
  }

  /* Valore slider più piccolo */
  .valore-slider {
    font-size: 1.1rem;
    margin-bottom: 0.75rem;
  }

  /* Testi finali più compatti */
  .impianto-testo,
  .rientro-testo {
    font-size: 1rem;
    margin-top: 0.5rem;
  }
}

/* PREVENTIVO AVANZATO */
/* WRAPPER CON GRADIENTE */
.form-wrapper {
  width: 100%;
  max-width: 900px;
  margin: 40px auto;
  padding: 45px;
  border-radius: 24px;

  /* NUOVO GRADIENTE EMERALD TECH */
  background: linear-gradient(135deg, #053b17, #116324, #1db954);

  /* GLASS + PROFONDITÀ */
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);

  /* BORDO PREMIUM */
  border: 1px solid rgba(255,255,255,0.25);

  /* OMBRA PROFESSIONALE */
  box-shadow:
    0 20px 45px rgba(0,0,0,0.35),
    inset 0 0 25px rgba(255,255,255,0.12);

  color: white;
}

/* BARRA DI AVANZAMENTO */
.progress-bar {
  width: 100%;
  height: 10px;
  background: rgba(255,255,255,0.25);
  border-radius: 10px;
  margin-bottom: 30px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  width: 0%;
  background: rgb(223, 219, 10);
  border-radius: 10px;
  transition: width 0.4s ease;
}

/* TITOLO */
.form-title {
  font-size: 2rem;
  margin-bottom: 30px;
  text-align: center;
  color:white;
}

/* GRIGLIA 2x2 */
.options-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 1fr));
  gap: 20px;
  justify-content: center;
}

.option-box:hover {
  transform: translateY(-5px);
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.28);
  backdrop-filter: blur(12px);
}

/* BOX IMMAGINE (parte chiara) */
.option-image {
  width: 100%;
  height: 140px;
  background: rgba(255,255,255,0.25);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.option-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* TESTO */
.option-box p {
  font-size: 1.1rem;
  font-weight: 600;
  margin-top: 10px;
}

/* STEP VISIBILE / NASCOSTO */
.form-step {
  display: none;
}

.form-step.active {
  display: block;
}

.option-img-box {
  width: 100%;
  height: 120px;
  background: rgba(255,255,255,0.25);
  border-radius: 14px;
  overflow: hidden; /* impedisce all’immagine di uscire */
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.option-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* mantiene proporzioni */
}

/* STEP 3 */
.select-wrapper {
  width: 100%;
  margin: 20px 0 30px;
}

.select-wrapper select {
  width: 100%;
  padding: 14px 18px;
  border-radius: 12px;
  border: none;
  font-size: 1.1rem;
  background: rgba(255,255,255,0.25);
  color: white;
  outline: none;
  cursor: pointer;
}

.select-wrapper select option {
  color: black;
}

.next-btn {
  display: block;
  width: 100%;
  padding: 16px;
  border-radius: 14px;
  border: none;

  background: linear-gradient(135deg, #05703e, #00cc66);
  color: #f5f8f6;
  font-size: 1.25rem;
  font-weight: 700;

  cursor: pointer;
  transition: .3s ease;
  box-shadow: 0 8px 25px rgba(0,255,120,0.25);
}

.next-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 35px rgba(0,255,120,0.45);
  background: #0ba525;
}

/* STEP 4 */
.input-wrapper {
  width: 100%;
  max-width: 350px;
  margin: 10px auto;
}

.input-wrapper input {
  width: 100%;
  padding: 14px 18px;
  border-radius: 12px;
  border: none;
  font-size: 1.1rem;
  background: rgba(255,255,255,0.25);
  color: white;
  outline: none;
}

.input-wrapper input::placeholder {
  color: #eaeaea;
}

/* Checkbox elegante */
.checkbox-wrapper {
  width: 100%;
  max-width: 350px;
  margin: 20px auto;
  display: flex;
  align-items: center;
}

.checkbox-label {
  display: flex;
  align-items: center;
  font-size: 1rem;
  color: white;
  cursor: pointer;
  position: relative;
}

.checkbox-label {
  position: relative;
  display: flex;
  align-items: center;
  cursor: pointer;
  color:#fff !important;
}

.checkbox-label input {
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 3; /* importantissimo */
}

.checkmark {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(255,255,255,0.25);
  border: 2px solid rgba(255,255,255,0.45);
  display: inline-block;
  margin-right: 10px;
  position: relative;
  transition: 0.25s ease;
  pointer-events: none; /* importantissimo */
}

.checkbox-label input:checked + .checkmark {
  background: #00c853;
}

.checkbox-label a {
  color: #fff !important;
  text-decoration: underline;
}
/* CHECKBOX PREMIUM CON SPUNTA */
.checkmark {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(255,255,255,0.25);
  border: 2px solid rgba(255,255,255,0.45);
  display: inline-block;
  margin-right: 10px;
  position: relative;
  transition: 0.25s ease;
}

/* SPUNTA */
.checkmark::after {
  content: "✔";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -55%) scale(0.6);
  font-size: 1.1rem;
  color: white;
  opacity: 0;
  transition: 0.25s ease;
}

/* QUANDO È CHECKED */
.checkbox-label input:checked + .checkmark {
  background: #00c853;
  border-color: #00e676;
  box-shadow: 0 0 10px rgba(0,200,83,0.45);
}

.checkbox-label input:checked + .checkmark::after {
  opacity: 1;
  transform: translate(-50%, -55%) scale(1);
}

/* STEP 5 */
#step5 {
  text-align: center;
  padding: 40px 20px;
}

.success-icon {
  font-size: 4rem;
  color: #00c853;
  margin: 20px 0;
}

/* ============================
   ANIMAZIONI STEP PREVENTIVO
   ============================ */

   .form-step {
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
  }
  
  .form-step.active {
    opacity: 1;
    pointer-events: auto;
  }  
  
  /* Blocco scroll quando il preventivo è aperto */
  body.preventivo-open {
    overflow: hidden;
  }
  
/* ===== CARD GLASS PREMIUM ===== */
.option-box {
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 18px;
  padding: 22px;
  text-align: center;
  cursor: pointer;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
  transition: transform .25s ease, box-shadow .25s ease;
}

.option-box:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.18);
}

/* Effetto tap su mobile */
@media (max-width: 768px) {
  .option-box:active {
    transform: scale(0.97);
  }
}

/* ===== IMMAGINI MIGLIORATE ===== */
.option-img-box {
  width: 100%;
  height: 130px;
  background: rgba(255,255,255,0.25);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.option-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ===== TESTO MIGLIORATO ===== */
.option-box p {
  font-size: 1.15rem;
  font-weight: 600;
  margin-top: 10px;
  color: #fff;
}

/* ===== MOBILE TUNING ===== */
@media (max-width: 600px) {
  .option-box {
    padding: 18px;
  }

  .option-img-box {
    height: 115px;
  }

  .option-box p {
    font-size: 1.05rem;
  }
}

/* ===== TESTIMONIALS ===== 
.testimonials {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.testimonial-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
  padding: 20px;
  max-width: 300px;
  text-align: center;
}


.testimonial-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 12px;
}

.testimonial-header img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}


.stars {
  font-size: 1.2rem;
  color: #f6b400;
  letter-spacing: 2px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
@media (max-width: 768px) {
  .testimonial-card {
    padding: 1rem !important;
    border-radius: 14px !important;
    transform: scale(0.95);
  }

  .testimonial-card p {
    font-size: 0.95rem !important;
    line-height: 1.4 !important;
  }

  .testimonial-card .author {
    font-size: 0.9rem !important;
  }
} 
*/
/* End Parte 2 */
/* ================== PARTE 3: FOOTER, MAPPA, CONTATORI, PARTNERS, FAQ, UTILITY ================== */

/* ===== CONTATORI ===== 
#stats {
  padding: clamp(1.5rem, 3.5vw, 3rem) var(--gutter);
  text-align: center;
}
#stats .counter-container { display:flex; gap: clamp(0.75rem, 2vw, 1.5rem); justify-content:center; flex-wrap:wrap; }
.counter-box {
  background: #e8f5ea;
  border-radius: 0.625rem;
  padding: clamp(0.75rem, 1.8vw, 1.125rem);
  flex: 0 1 clamp(12rem, 18%, 13.75rem);
  max-width: clamp(12rem, 18%, 14rem);
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
  text-align:center;
}

.counter-box .icon { font-size: clamp(1.25rem, 3vw, 1.75rem); margin-bottom: 0.5rem; }
.counter-box .counter { font-size: clamp(1.5rem, 3.5vw, 2.2rem); font-weight:800; color:#0f6b36; transition: color 0.6s ease; }
.counter-box:hover .counter { color: #44a24a; }
.bar { height: 0.625rem; background: #dff3e5; border-radius: 0.5rem; overflow:hidden; margin-top: 0.75rem; }
.bar-fill { width: 0; height:100%; background: linear-gradient(90deg,#074921,#1fda2e); transition: width 2s ease; }  */

/* ===== PARTNERS ===== */
.partners-section {
  background: white;
  padding: clamp(2rem, 5vw, 6rem) 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.partners-section.active { opacity:1; transform: translateY(0); }

.section-title {
  font-family: 'Gabarito', sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 50px;
  background: linear-gradient(90deg,#074921,#1fda2e);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
}

.partners-slider { width:100%; overflow:hidden; }
.partners-track { display:flex; gap: clamp(1.25rem, 4vw, 3.75rem); align-items:center; animation: scroll 20s linear infinite; }
.partners-track img { height: clamp(2rem, 3.5vw, 3.75rem); opacity:0.85; transition: transform 0.3s ease, opacity 0.3s ease; }
.partners-track img:hover { opacity:1; transform: scale(1.08); }

/* continuous scroll keyframes keep as percentage-based */
@keyframes scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
/* MOBILE FIX PARTNERS — versione migliorata */
@media (max-width: 720px) {

  .partners-track img {
    height: 1.7rem;        /* ancora più piccoli */
    opacity: 0.9;
  }

  .partners-track {
    gap: 3rem;             /* più spazio tra i loghi */
    animation: scrollMobile 38s linear infinite; /* molto più lento */
  }

  @keyframes scrollMobile {
    from { transform: translateX(0); }
    to   { transform: translateX(-89%); } /* scorre molto più lontano */
  }
}

/* FAQ - versione pulita e ottimizzata */
.faq-item {
  max-width: 700px;
  margin: 15px auto;
  padding: 15px;
  border-bottom: 1px solid #ddd;
  transition: background 0.25s ease;
}

/* Titolo con freccia */
.faq-item h3 {
  color: #0f6b36;
  cursor: pointer;
  position: relative;
  padding-right: 25px;
}

.faq-item h3::after {
  content: "▾";
  position: absolute;
  right: 0;
  top: 0;
  transition: transform 0.25s ease;
}

.faq-item.active h3::after {
  transform: rotate(180deg);
}

/* Animazione risposta */
.faq-item p {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
  margin-top: 0;
}

.faq-item.active p {
  max-height: 500px;
  opacity: 1;
  transform: translateY(0);
  margin-top: 8px;
}

/* Highlight emerald */
.faq-item.active {
  background: rgba(0, 200, 83, 0.06);
}

/* Titolo sezione */
.title {
  font-family: 'Gabarito', sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 50px;
  background: linear-gradient(90deg,#074921,#1fda2e);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
}

/* ===== MAPPA & FOOTER ===== */
/* Make iframe responsive using aspect-ratio */
.map-link { position: relative; display:block; max-width: min(1000px, 96%); margin: 0 auto; text-decoration:none; }
.map-static { width:100%; height:auto; border-radius:1.25rem; display:block; object-fit:cover; }

/* Responsive iframe: use aspect-ratio for fluid height */
iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 1.25rem;
  border: 0;
  display: block;
  margin: 0 auto;
}

/* map button styling (keeps same class name) */
.map-button {
  position: absolute;
  bottom: clamp(0.6rem, 1.6vw, 1rem);
  left: 50%;
  transform: translateX(-50%);
  padding: 0.6rem 1.25rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #00c853, #0091ea);
  color: #fff;
  font-weight:600;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  border: none;
  backdrop-filter: blur(4px);
}

/* ===== FOOTER (due colonne, mobile-first) ===== */
.footer {
  position: relative;
  padding: 2.4rem 1.25rem;
  color: #fff;
  overflow: hidden;
  margin-top: 3rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-family: inherit;
}

/* BACKGROUND IMAGE (HTML) */
.footer-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: brightness(0.45) contrast(1.05);
  pointer-events: none;
}

/* OVERLAY */
.footer-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,107,54,0.28), rgba(0,0,0,0.78));
  z-index: 2;
}

/* CONTENT WRAPPER */
.footer-content {
  position: relative;
  z-index: 3;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: center;
  text-align: center;
  padding: 0 0.5rem;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

/* TOP: logo + social */
.footer-top {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  align-items: center;
}

/* LOGO */
.footer-logo img {
  width: 140px;
  height: auto;
  display: block;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,0.45));
}

/* SOCIAL */
.footer-social {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  justify-content: center;
}

.footer-social img {
  width: 60px;
  height: 60px;
  display: block;
  transition: transform .22s ease, opacity .22s ease;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.35));
}

.footer-social a:focus img,
.footer-social a:hover img {
  transform: translateY(-4px) scale(1.08);
  opacity: 1;
  outline: none;
}

/* COLONNE (mobile: stacked) */
.footer-columns {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.6rem;
}

/* Colonne interne */
.footer-col {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

/* LEFT: copyright + links */
.footer-copy {
  margin: 0;
  font-size: 1rem;
  opacity: 0.95;
  font-weight: 600;
  COLOR: #FFF;
}

/* LINKS */
.footer-links {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 0.25rem;
}

.footer-links a {
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  transition: opacity .18s ease, transform .18s ease;
}

.footer-links a:focus,
.footer-links a:hover {
  opacity: 0.8;
  transform: translateY(-2px);
  outline: none;
}

.footer-links .dot {
  opacity: 0.45;
  margin: 0 0.25rem;
}

/* RIGHT: contatti */
.footer-right .contact-line {
  margin: 0;
  font-size: 1.2rem;
  opacity: 0.95;
  color: #fff;
}

.footer-right a {
  color: #fff;
  font-weight: 900;
  text-decoration: none;
}

.footer-right a:focus,
.footer-right a:hover {
  opacity: 0.8;
  outline: none;
}

/* ACCESSIBILITY: focus ring for keyboard users */
.footer a:focus {
  box-shadow: 0 0 0 4px rgba(31,218,46,0.12);
  border-radius: 6px;
}

/* DESKTOP: affianca le colonne e allinea testo a sinistra/destra */
@media (min-width: 768px) {
  .footer {
    padding: 3.2rem 2rem;
  }

  .footer-content {
    align-items: stretch;
    text-align: left;
  }

  .footer-top {
    align-items: flex-start;
    flex-direction: row;
    justify-content: space-between;
    gap: 1.5rem;
  }

  .footer-columns {
    flex-direction: row;
    justify-content: space-between;
    gap: 2rem;
    margin-top: 1.25rem;
    align-items: flex-start;
  }

  .footer-col {
    width: 35%;
  }

  .footer-links {
    justify-content: flex-start;
  }

  .footer-right {
    text-align: right;
  }
}

/* LARGE DESKTOP: piccolo aumento logo */
@media (min-width: 1200px) {
  .footer-logo img { width: 170px; }
}

/* Mobile: riduzione testi e spazi per telefoni piccoli */
@media (max-width: 480px) {
  .footer {
    padding: 1.6rem 0.9rem;
  }

  /* Logo più piccolo ma visibile */
  .footer-logo img {
    width: 110px;
  }

  /* Social: icone più piccole ma con area clic ampia */
  .footer-social img {
    width: 28px;
    height: 28px;
  }
  .footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px; /* mantiene tap target minimo ~44px */
    border-radius: 8px;
  }

  /* Colonne: testo più compatto e leggibile */
  .footer-columns {
    gap: 0.6rem;
  }

  .footer-copy {
    font-size: 0.85rem;
  }

  .footer-links a {
    font-size: 0.85rem;
  }

  .footer-links .dot {
    margin: 0 0.2rem;
  }

  .footer-right .contact-line {
    font-size: 0.85rem;
  }

  /* Riduci l'ombra del testo per miglior contrasto su schermi piccoli */
  .footer-content {
    text-shadow: 0 1px 4px rgba(0,0,0,0.45);
  }
}

/* Ulteriore adattamento per schermi molto stretti */
@media (max-width: 360px) {
  .footer-logo img { width: 96px; }
  .footer-copy, .footer-links a, .footer-right .contact-line { font-size: 0.8rem; }
  .footer-social img { width: 24px; height: 24px; }
  .footer { padding: 1.2rem 0.75rem; }
}

/* ===== FADE-IN & VISIBILITY ===== */
.fade-in { opacity:0; transform: translateY(1.25rem); transition: opacity .9s ease, transform .9s ease; }
.fade-in.visible { opacity:1; transform: none; }

/* ===== SCROLL TOP BUTTON ===== */
#scrollTopBtn {
  position: fixed;
  right: clamp(0.75rem, 2vw, 1.125rem);
  bottom: clamp(0.75rem, 2vw, 1.125rem);
  width: clamp(2.25rem, 4.5vw, 2.75rem);
  height: clamp(2.25rem, 4.5vw, 2.75rem);
  border-radius: 50%;
  background: #2ea86a;
  color: #fff;
  border: 0;
  cursor: pointer;
  display: none; /* show via JS when needed */
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
  z-index: 1400;
}

/* small screens adjustments */
@media (max-width: 640px) {
  .partners-track { gap: clamp(0.5rem, 3vw, 1.25rem); }
  .counter-box { padding: 0.6rem; }
  .package-card, .servizio-card { padding: 0.75rem; }
}

/* ===== FINAL FIXES & OVERRIDES ===== */
/* Avoid horizontal overflow */
html, body { overflow-x: hidden; }

/* Ensure images never exceed their containers */
img, picture, video, svg { max-width: 100%; height: auto; display: block; }

/* Preserve existing .active toggles behavior */
#mobileMenu.active, .hamburger.active, .faq-item.active, .form-step.active, .partners-section.active, .fade-in.visible, #risparmio-risultato.visible { /* classes intentionally left to be toggled by JS */ }

/* End Parte 3 */
.form-title {
  background: none !important;
  -webkit-text-fill-color: #ffffff !important;
  color: #ffffff !important;
}
/* FIX DEFINITIVO PER BOTTONE PREVENTIVO MOBILE */
#mobilePillMenu li:last-child {
  grid-column: 1 / -1;
}
#mobilePillMenu .cta-preventivo {
  display: block;
  width: 100%;
  background: black !important;
  color: white !important;
  border: none !important;
  box-shadow: none !important;
  padding: 1rem 1.2rem !important;
  border-radius: 16px !important;
  font-size: 1.2rem !important;
  text-align: center;
}
/* ============================
   GLASS EMERALD PREMIUM
   ============================ */

   .header-pill,
   .desktop-menu a,
   .mobile-pill-menu a {
     background: rgba(255, 255, 255, 0.22) !important;
     backdrop-filter: blur(16px) !important;
     -webkit-backdrop-filter: blur(16px) !important;
   
     border: 1px solid rgba(0, 255, 120, 0.35) !important;
   
     box-shadow:
       0 4px 14px rgba(0, 0, 0, 0.18),
       inset 0 0 10px rgba(0, 255, 120, 0.18) !important;
   
     color: #064d2a !important; /* verde scuro leggibile */
     text-decoration: none !important;
   }
   
   /* Hover Emerald */
   .desktop-menu a:hover,
   .mobile-pill-menu a:hover {
     background: rgba(255, 255, 255, 0.35) !important;
     box-shadow:
       0 6px 18px rgba(0,0,0,0.22),
       inset 0 0 14px rgba(0,255,120,0.28) !important;
     transform: translateY(-2px);
   }

/* ============================
   ARTEMIS LAYERING
   ============================ */

   .section-layer {
    position: relative;
    overflow: hidden;
  }
  
  .section-layer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      135deg,
      rgba(0,255,120,0.06),
      rgba(255,255,255,0.0)
    );
    pointer-events: none;
    z-index: 0;
  }
  
  .section-layer > * {
    position: relative;
    z-index: 1;
  }

/* ============================
   ARTEMIS GLASS EMERALD
   ============================ */

   .glass-emerald {
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(0,255,120,0.35);
    box-shadow:
      0 8px 25px rgba(0,0,0,0.12),
      inset 0 0 10px rgba(0,255,120,0.15);
    border-radius: 18px;
    transition: transform .35s ease, box-shadow .35s ease;
  }
  
  .glass-emerald:hover {
    transform: translateY(-6px);
    box-shadow:
      0 12px 30px rgba(0,255,120,0.25),
      inset 0 0 14px rgba(0,255,120,0.25);
  }
  @media (max-width: 768px) {
    section {
      padding: 2.5rem 1.2rem !important;
    }
  }
  
  .mosaico-pro {
    margin: 80px auto;
    color: white;
  }
  
  .mosaico-title {
    text-align: center;
    font-size: 2.7rem;
    margin-bottom: 40px;
    color: rgb(7, 7, 124);
  }
  
  /* GRIGLIA MOSAICO */
  .mosaico-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 200px;
    gap: 30px;
    padding: 0 20px;
  }
  
  /* DIMENSIONI SPECIALI */
  .mosaico-card.wide   { grid-column: span 4; grid-row: span 3; }
  .mosaico-card.tall   { grid-column: span 2; grid-row: span 3; }
  .mosaico-card.square { grid-column: span 2; grid-row: span 2; }
  .mosaico-card.medium { grid-column: span 3; grid-row: span 2; }
  .mosaico-card.slim   { grid-column: span 1; grid-row: span 2; }
  
  /* CARD BASE */
  .mosaico-card {
    background: linear-gradient(135deg, #060225, #02105f);
    border-radius: 20px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 20px 45px rgba(0,0,0,0.45);
    transition: .35s ease;
  }
  
  .mosaico-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 45px rgba(0,0,0,0.55);
  }
  
  /* IMMAGINE INCASSATA */
  .img-container {
    width: 100%;
    height: 100%;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 14px;
  }
  
  .img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .4s ease;
  }
  
  .mosaico-card:hover img {
    transform: scale(1.08);
    filter: brightness(0.85);
  }
  
  /* TESTO SOTTO */
  .card-info h3 {
    font-size: 1.2rem;
    margin-bottom: 4px;
    color: #e8f4ff;
  }
  
  .card-info p {
    font-size: 0.95rem;
    color: #cfe8ff;
  }
  
  /* FADE-IN */
  .fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: .6s ease;
  }
  
  .fade-in.visible {
    opacity: 1;
    transform: translateY(0);
  }
  @media (max-width: 1199px) {

    .mosaico-grid {
      grid-template-columns: repeat(2, 1fr);
      grid-auto-rows: auto;
      gap: 22px;
    }
  
    .mosaico-card {
      padding: 14px;
      border-radius: 16px;
    }
  
    /* Altezza immagine più contenuta */
    .img-container {
      height: 180px !important;
    }
  }
  
  @media (max-width: 767px) {

    /* RESET COMPLETO DEL MOSAICO SU MOBILE */
    .mosaico-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-areas:
        "hero hero"
        "small1 big1"
        "big2 small2";
      gap: 14px;
      padding: 0 12px;
    }
  
    /* ASSEGNAZIONE AREE */
    .mosaico-card:nth-child(1) { grid-area: hero; }
    .mosaico-card:nth-child(2) { grid-area: small1; }
    .mosaico-card:nth-child(3) { grid-area: big1; }
    .mosaico-card:nth-child(4) { grid-area: big2; }
    .mosaico-card:nth-child(5) { grid-area: small2; }
  
    /* DIMENSIONI BOX */
    .mosaico-card {
      padding: 10px;
      border-radius: 14px;
      height: auto;
    }
  
    /* IMMAGINI PIÙ PICCOLE */
    .img-container {
      height: 140px !important;
      border-radius: 12px;
      margin-bottom: 8px;
    }
  
    /* HERO PIÙ GRANDE */
    .mosaico-card:nth-child(1) .img-container {
      height: 180px !important;
    }
  
    /* TESTI PIÙ COMPATTI */
    .card-info h3 {
      font-size: 1rem;
      margin-bottom: 3px;
    }
  
    .card-info p {
      font-size: 0.85rem;
    }
  }

  /* =========================================
   FIX COLORE HERO (FORZA IL BIANCO)
   ========================================= */

   #hero,
   #hero * {
     color: #fff !important;
     text-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
   }
   
   #footer,
   #footer * {
     color: #fff !important;
     text-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
   }