/* Global */
:root{ --red:#ef4444; --red-dark:#b91c1c; --black:#111; --gray:#f3f4f6; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;color:var(--black);background:#fff}
.container{max-width:1200px;margin:auto;padding:0 16px}
/* Hide mobile menu by default on all viewports; JS toggles only on small screens */
#mobileMenu{display:none}
/* Global link normalization */
a{color:#111;text-decoration:none}
a:visited{color:#111}
a:hover{color:var(--red)}

/* Header / Navbar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;color:#0f172a;font-weight:500;background:#fff;border-bottom:1px solid #e5e7eb;gap:32px}
.topbar .topbar-left{display:flex;gap:32px;align-items:center}
.topbar .item{display:inline-flex;align-items:center;gap:12px;color:#0f172a;font-size:15px}
.topbar .item.location{display:none}
.topbar .item::before{content:"";display:inline-block;width:24px;height:24px;background-repeat:no-repeat;background-size:24px 24px}
.topbar .item.schedule::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>")}
.topbar .item .title{font-weight:700;font-size:16px}
.topbar .item .sub{font-size:13px;color:#64748b;font-weight:400}
.topbar .cta-phone{display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:transform .2s ease}
.topbar .cta-phone:hover{transform:scale(1.02)}
.topbar .cta-phone::before{content:"";display:inline-block;width:24px;height:24px;background-repeat:no-repeat;background-size:24px 24px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v2a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.15 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.15-8.67A2 2 0 0 1 4.11 1h2a2 2 0 0 1 2 1.72 12.63 12.63 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7 8a16 16 0 0 0 6 6l.36-.36a2 2 0 0 1 2.11-.45 12.63 12.63 0 0 0 2.81.7A2 2 0 0 1 22 16.92Z'/></svg>")}
.topbar .cta-phone .number{font-weight:700;color:#0f172a;font-size:16px}
.topbar .cta-phone .sub{font-size:13px;color:#64748b;display:block;margin-top:-2px;font-weight:400}
.topbar .btn-contatti{background:var(--red);color:#fff;padding:12px 28px;border-radius:10px;font-weight:600;letter-spacing:.02em;transition:all .3s ease;box-shadow:0 2px 8px rgba(239,68,68,.2)}
.topbar .btn-contatti:hover{background:var(--red-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,.3)}
  .nav{height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}
  .nav .logo{display:inline-flex;align-items:center}
  .nav .menu{display:flex;align-items:center;gap:32px;flex-wrap:nowrap;white-space:nowrap;justify-content:center}
  .nav .menu a{white-space:nowrap}
  .nav .menu .dropdown{margin-right:4px}
  .nav .menu .link{font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:8px 12px;border-radius:8px;white-space:nowrap;font-size:14px;transition:all .2s ease}
  .nav .menu .link:hover{color:var(--red,#ef4444);background:#fef2f2}
  .nav .nav-cta{display:inline-flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap;background:var(--red);color:#fff;padding:14px 28px;border-radius:10px;font-weight:700;transition:all .3s ease;box-shadow:0 2px 8px rgba(239,68,68,.2)}
.nav .nav-cta:hover{background:var(--red-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,.3)}
.topbar .item::before{content:"";display:inline-block;width:18px;height:18px;background-repeat:no-repeat;background-size:18px 18px;margin-right:2px}
.topbar .item:first-child::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ef4444'><path d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>")}
.topbar .item:nth-child(2)::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ef4444'><path d='M12 8a1 1 0 0 1 1 1v3.382l2.276 1.365a1 1 0 1 1-1.052 1.706l-2.5-1.5A1 1 0 0 1 11.5 13V9a1 1 0 0 1 1-1z'/><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0z'/></svg>")}
.logo{display:flex;align-items:center;gap:10px}
.logo svg{height:96px;width:auto;display:none}
.logo::before{content:none}
.logo img{height:200px;width:200px;object-fit:contain;display:inline-block}
.logo .brand{font-weight:900;letter-spacing:-.02em;color:var(--red);line-height:1}
.logo .sub{font-size:12px;color:#6b7280}
.menu{display:flex;align-items:center;gap:18px;font-weight:700;background:transparent;color:#111;border-radius:0;padding:0;overflow:visible}
.menu a{font-weight:700;color:#111}
.menu a:hover{color:var(--red)}
.dropdown > a{color:#111}
.dropdown{position:relative}
.dropdown > a{display:inline-flex;align-items:center;gap:6px}
.dropdown-content{display:block;opacity:0;transform:translateY(6px);pointer-events:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:0 12px 24px rgba(0,0,0,.12);transition:opacity .18s ease, transform .18s ease;z-index:1000;min-width:240px}
.dropdown-content a{display:block;padding:10px 14px;white-space:nowrap;color:#111}
.dropdown-content a:hover{background:#f8fafc;color:var(--red)}
.dropdown:hover .dropdown-content{opacity:1;transform:none;pointer-events:auto}
/* Mobile menu (simple) */
.hamburger{display:none;position:absolute;right:20px}
@media (max-width: 860px) {

  /* Hide topbar */
  .topbar {
    display: none !important;
  }

  /* NAVBAR MOBILE MODE */
  .nav {
    height: 70px !important;
    padding: 0 16px !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  /* BIG LOGO becomes compact on mobile */
  .logo img {
    height: 60px !important;
    width: auto !important;
    margin: 0 !important;
  }

  /* HIDE ALL MENU LINKS ON MOBILE */
  .menu,
  .nav-cta {
    display: none !important;
    visibility: hidden !important;
  }

  /* SHOW ONLY THE HAMBURGER BUTTON */
  .hamburger {
    display: inline-flex !important;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 8px 12px;
    background: #fff;
    cursor: pointer;
    z-index: 9999;
  }

  /* MOBILE MENU DROPDOWN (hidden by default) */
  #mobileMenu {
    display: none;
    width: 100%;
    padding: 0 16px;
    background: #fff;
  }

  #mobileMenu.open {
    display: block;
  }

  #mobileMenu nav {
    display: grid;
    gap: 10px;
    padding: 16px 0;
  }

  #mobileMenu > nav > a {
    border: 1px solid #e5e7eb;
    padding: 12px;
    border-radius: 10px;
    background: #fff;
    font-weight: 600;
  }
}


  #mobileMenu nav{display:grid;gap:8px;padding:10px 0}
  #mobileMenu details{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}
  #mobileMenu summary{padding:10px 12px;cursor:pointer;font-weight:700;color:#111}
  #mobileMenu summary::-webkit-details-marker{display:none}
  #mobileMenu details{list-style:none}
  #mobileMenu summary::after{content:'▾';float:right;transition:transform .2s}
  #mobileMenu details[open] summary::after{transform:rotate(180deg)}
  #mobileMenu a{padding:12px 12px;display:block;color:#111;text-decoration:none;border-radius:10px}
  #mobileMenu a:hover{color:#111;background:#f8fafc}
  #mobileMenu > nav > a{border:1px solid #e5e7eb;background:#fff}
  

/* Hero */
.hero{position:relative;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.45);padding:84px 0;background-size:cover;background-position:center}
.hero::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:0}
.hero .hero-inner{position:relative;z-index:1;max-width:720px}
.hero h1{margin:0 0 10px;font-size:46px;font-weight:900;letter-spacing:-.02em;text-shadow:0 3px 10px rgba(0,0,0,.8)}
.hero p{margin:0 0 18px;font-size:19px;text-shadow:none;color:#000;font-weight:700;line-height:1.5;background:rgba(255,255,255,.85);padding:8px 16px;border-radius:8px;display:inline-block}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;padding:12px 18px;border-radius:10px;font-weight:800;text-decoration:none;transition:background-color .22s ease, transform .18s ease, box-shadow .18s ease;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.btn:hover{background:var(--red-dark);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.4)}
.btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(0,0,0,.2)}
.btn-outline{border:2px solid #fff;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.3)}

/* Homepage split hero layout */
.hero.home-hero{display:flex;align-items:center;min-height:440px;padding:0}
.hero.home-hero .hero-bg{flex:1;min-height:440px;display:flex;align-items:center;justify-content:center;padding:60px 0}
.hero.home-hero .hero-inner{max-width:640px;padding:0 40px}
.hero.home-hero .cta-panel{position:relative;z-index:2;background:#fff;color:#111;padding:36px 40px;flex:0 0 360px;display:flex;flex-direction:column;gap:16px;align-self:stretch;box-shadow:0 20px 40px -10px rgba(0,0,0,.25)}
.hero.home-hero .cta-panel h2{margin:0;font-size:24px;font-weight:800;color:var(--red)}
.hero.home-hero .cta-panel p{margin:0;font-size:14px;line-height:1.5;color:#444}
.hero.home-hero .cta-panel .btn{width:100%;justify-content:center}
@media(max-width:960px){
  .hero.home-hero{flex-direction:column}
  .hero.home-hero .cta-panel{width:100%;flex:unset;border-radius:0;box-shadow:none;padding:28px 24px}
  .hero.home-hero .hero-inner{padding:60px 24px}
  .hero h1{font-size:32px}
  .hero p{font-size:16px;padding:6px 12px}
  .hero{padding:60px 0}
}

/* Coverage grid layout */
.coverage-grid{display:grid;grid-template-columns:300px 1fr 400px;gap:40px;align-items:start}
.coverage-grid .zones-list{columns:2;column-gap:32px;font-size:14px;margin:0;padding:0;list-style:none}
.coverage-grid .zones-list li{break-inside:avoid;padding:4px 0 4px 22px;position:relative}
.coverage-grid .zones-list li::before{content:"";position:absolute;left:0;top:8px;width:14px;height:14px;display:inline-block;background-repeat:no-repeat;background-size:14px 14px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ef4444'><path d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>");}
@media(max-width:1100px){
  .coverage-grid{grid-template-columns:1fr;}
  .coverage-grid .zones-list{columns:2}
}
@media(max-width:640px){
  .coverage-grid .zones-list{columns:1}
}

/* Cards */
section{padding:56px 0}
.section-title{font-size:32px;font-weight:900;text-align:center;margin:0 0 24px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.card{display:block;border:1px solid #e5e7eb;border-radius:1px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.06);transition:.2s}
.card:hover{transform:translateY(-4px)}
.card img{width:100%;height:180px;object-fit:cover}
.card h3{margin:12px 12px 8px;font-size:18px;color:var(--red)}
.card p{margin:0 12px 16px;color:#444;font-size:14px}

/* Coverage */
.coverage{background:var(--gray)}
.zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:12px;font-size:14px}

/* Map */
#map{height:320px;border-radius:16px;margin-top:16px;border:1px solid #e5e7eb;box-shadow:0 6px 18px rgba(0,0,0,.06)}

/* Subservices links */
.subservices{margin-top:18px}
.subservices h3{margin:10px 0 8px;font-size:20px}
.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:0;list-style:none}
.links-grid a{display:block;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}
.links-grid a{display:block;padding:14px 16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;font-weight:700;color:#111;transition:box-shadow .18s ease, transform .18s ease}
.links-grid a:hover{box-shadow:0 10px 24px rgba(0,0,0,.08);transform:translateY(-2px);color:var(--red)}

/* Service sections styling */
section .container h3[id]{position:relative;padding-left:28px}
section .container h3[id]::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;background-repeat:no-repeat;background-size:20px 20px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ef4444'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 5a1 1 0 0 1 1 1v3.586l2.707 2.707a1 1 0 1 1-1.414 1.414l-3-3A1 1 0 0 1 12 12V8a1 1 0 0 1 1-1z'/></svg>")}
section .container p{line-height:1.7;color:#374151}

/* Modern service details section with grid layout */
.service-details{padding:48px 0}
.service-details .intro-text{font-size:15px;line-height:1.8;color:#475569;margin:0 0 36px;max-width:900px}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.service-item{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:28px 24px;transition:all .3s ease;position:relative}
.service-item:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.1);border-color:#ef4444}
.service-icon{width:64px;height:64px;background:linear-gradient(135deg,#ef4444 0%,#b91c1c 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:16px;box-shadow:0 4px 12px rgba(239,68,68,.3)}
.service-item h3{font-size:18px;font-weight:700;color:#0f172a;margin:0 0 12px;line-height:1.4}
.service-item p{font-size:14px;line-height:1.7;color:#64748b;margin:0}

/* Contact */
.contact .info{display:grid;gap:8px}
.contact-two-column {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.contact-left h1 { font-size: 40px; line-height: 1.2; margin: 8px 0 16px; }
.section-eyebrow { color: #ef4444; font-weight: 600; letter-spacing: .08em; font-size: 14px; }
.contact-form .row { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 16px; }
.contact-form input, .contact-form textarea {
  width: 100%;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 14px 16px;
  background: #f3f4f6;
  font-size: 16px;
}
.contact-form textarea { resize: vertical; }
.btn.primary { background: linear-gradient(135deg, var(--red, #ef4444), var(--red-dark, #b91c1c)); color: #fff; border: none; padding: 12px 20px; border-radius: 10px; font-weight: 600; letter-spacing: .04em; }
.contact-map { width: 100%; height: 520px; border: 0; border-radius: 14px; }

/* Advantages section */
.advantages { background: #f3f4f6; padding: 60px 0; }
.advantages .section-eyebrow { color: #ef4444; }
.advantages h2 { font-size: 34px; margin: 8px 0 24px; }
.advantages .grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.adv-card { background: #fff; border-radius: 14px; padding: 24px; box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.adv-icon { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--red, #ef4444), var(--red-dark, #b91c1c)); box-shadow: 0 6px 14px rgba(239,68,68,.25); margin-bottom: 12px; font-size: 28px; }
.adv-card h3 { margin: 8px 0; font-size: 18px; }
.adv-card p { color: #4b5563; }

@media (max-width: 900px) {
  .contact-two-column { grid-template-columns: 1fr; }
  .contact-form .row { grid-template-columns: 1fr; }
  .advantages .grid { grid-template-columns: 1fr; }
}
.contact a{color:var(--red)}

/* Back link */
.back{padding:10px 0}
.back .back-link{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--red)}
.back .back-link:hover{text-decoration:underline}

/* Footer */
footer{background:#111;color:#fff;text-align:center;padding:26px 16px;margin-top:20px}
footer a{color:var(--red)}

/* Reveal on scroll */
.reveal-up,[data-reveal]{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.65,.2,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
.reveal-up.in-view,[data-reveal].in-view{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal-up,[data-reveal]{
    transition:none;
    transform:none;
    opacity:1;
  }
}
/* Mobile responsiveness refinements */
@media(max-width:640px){
  .hero{padding:64px 0}
  .hero h1{font-size:34px}
  .hero p{font-size:16px}
  .hero.home-hero .hero-inner{padding:48px 20px}
  .cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
}
/* Fix overlay blocking entire page */
.hero {
    position: relative;
    overflow: hidden;
}

.hero::after {
    z-index: 0 !important;
}

/* Ensure hero content sits above overlay */
.hero .hero-inner {
    position: relative;
    z-index: 2;
}

/* Ensure header and navbar stay above hero */
header, .nav {
    position: relative;
    z-index: 20 !important;
}

/* Prevent hero from extending over page content */
.hero.home-hero {
    overflow: hidden;
}
