:root{
  --bg: #ffffff;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --text: #0f172a;
  --muted: #475569;
  --border: #e2e8f0;
  --primary: #0ea5e9;
  --primary-2: #2563eb;
  --accent: #22c55e;
  --warning: #f59e0b;
  --shadow: 0 18px 60px rgba(2, 6, 23, .10);
  --shadow-sm: 0 10px 30px rgba(2, 6, 23, .08);
  --radius: 18px;
  --radius-sm: 14px;
  --max: 1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.35;
}
img{max-width:100%;display:block}
a{color:inherit}

.container{max-width:var(--max); margin:0 auto; padding:0 20px}

/* Header */
.header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.78);
  backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(226,232,240,.9);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand img{width:44px; height:44px; object-fit:contain}
.brand strong{font-size:15px; letter-spacing:.2px}
.brand span{display:block; font-size:12px; color:var(--muted); margin-top:1px}

/* Header Nav Row (seconda riga) */
.header-nav-row{
  background:rgba(248,250,252,.95);
  border-top:1px solid rgba(226,232,240,.6);
  padding:8px 0;
}
.header-nav-row .container{display:flex; justify-content:center}

.nav{display:flex; align-items:center; gap:6px}
.nav.nav-desktop{gap:4px}
.nav.nav-mobile{display:none}
.nav a{font-size:13px; color:var(--muted); text-decoration:none; padding:8px 12px; border-radius:10px; font-weight:600}
.nav a:hover{background:rgba(2,6,23,.05); color:var(--text)}

/* Nav submenu (Area clienti) */
.nav-sub{position:relative}
.nav-sub > summary{
  list-style:none;
  cursor:pointer;
  font-size:13px;
  color:var(--muted);
  padding:8px 10px;
  border-radius:10px;
  font-weight:600;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  user-select:none;
}
.nav-sub > summary::after{
  content:"";
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  opacity:.75;
  transform:rotate(45deg) translateY(-1px);
  transition:transform .15s ease, opacity .15s ease;
}
.nav-sub > summary:hover{background:rgba(2,6,23,.04); color:var(--text)}
.nav-sub > summary::-webkit-details-marker{display:none}
.nav-sub[open] > summary{background:rgba(2,6,23,.04); color:var(--text)}
.nav-sub[open] > summary::after{transform:rotate(-135deg) translateY(1px); opacity:.9}

.nav-submenu{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:180px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  padding:8px;
  grid-template-columns:1fr;
  gap:6px;
  z-index:60;
}
.nav-sub[open] .nav-submenu{display:grid; animation:navDrop .14s ease-out}
.nav-submenu a{
  padding:10px 10px;
  border-radius:12px;
  font-weight:600;
  text-decoration:none;
}
.nav-submenu a:hover{background:rgba(2,6,23,.04)}

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

.header-cta{display:flex; align-items:center; gap:10px}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--surface);
  text-decoration:none;
  font-weight:600;
  font-size:13px;
}
.btn:hover{box-shadow:var(--shadow-sm)}
.btn-primary{
  border-color:transparent;
  background:linear-gradient(135deg, var(--primary), var(--primary-2));
  color:#fff;
}
.btn-primary:hover{filter:brightness(1.03)}
.btn-ghost{background:transparent}
.btn-whatsapp{border-color:rgba(34,197,94,.30); background:rgba(34,197,94,.08)}
.btn-whatsapp:hover{box-shadow:0 10px 30px rgba(34,197,94,.18)}

.burger{display:none; border:1px solid var(--border); background:#fff; border-radius:12px; padding:10px 12px}
.burger svg{width:18px;height:18px}

/* Hero */
.hero{
  position:relative;
  padding:44px 0 26px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:-240px -180px auto -180px;
  height:520px;
  background:radial-gradient(circle at 20% 20%, rgba(14,165,233,.20), transparent 55%),
             radial-gradient(circle at 65% 30%, rgba(37,99,235,.16), transparent 58%),
             radial-gradient(circle at 45% 60%, rgba(34,197,94,.10), transparent 60%);
  pointer-events:none;
}

.hero-grid{position:relative; display:grid; grid-template-columns: 1.1fr .9fr; gap:26px; align-items:stretch}

.kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700;
  color:#0b4a6f;
  background:rgba(14,165,233,.10);
  border:1px solid rgba(14,165,233,.20);
  padding:8px 14px;
  border-radius:999px;
}
.kicker-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 3px rgba(34,197,94,.25);
  animation:pulse-dot 1.5s ease-in-out infinite;
}
.kicker-text-short{display:none}
@keyframes pulse-dot{
  0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.25)}
  50%{box-shadow:0 0 0 8px rgba(34,197,94,0)}
}

.text-gradient{
  background:linear-gradient(135deg, var(--primary), var(--primary-2), var(--accent));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.h1{
  font-size:46px;
  letter-spacing:-.9px;
  line-height:1.02;
  margin:14px 0 12px;
}
.lead{font-size:16px; color:var(--muted); max-width:56ch; margin:0 0 18px}

.hero-actions{display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 18px}

/* Hero stats */
.hero-stats{
  display:flex;
  gap:24px;
  margin:20px 0 14px;
  padding:16px 0;
  border-top:1px solid rgba(226,232,240,.6);
  border-bottom:1px solid rgba(226,232,240,.6);
}
.stat{display:flex; flex-direction:column; gap:2px}
.stat-num{
  font-size:28px;
  font-weight:900;
  letter-spacing:-.5px;
  background:linear-gradient(135deg, var(--primary), var(--primary-2));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.stat-label{font-size:12px; color:var(--muted); font-weight:600}

/* Hero bullets (pills) */
.hero-bullets{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px}
.hero-bullets .pill{
  display:flex; gap:12px; align-items:flex-start;
  background:rgba(255,255,255,.85);
  border:1px solid rgba(226,232,240,.9);
  border-radius:14px;
  padding:14px 14px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.hero-bullets .pill:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(2,6,23,.08);
}
.pill-icon{
  width:38px;
  height:38px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.pill-icon svg{width:18px;height:18px}
.pill-green .pill-icon{background:rgba(34,197,94,.12); color:#16a34a; border:1px solid rgba(34,197,94,.22)}
.pill-blue .pill-icon{background:rgba(14,165,233,.12); color:#0284c7; border:1px solid rgba(14,165,233,.22)}
.pill-purple .pill-icon{background:rgba(139,92,246,.12); color:#7c3aed; border:1px solid rgba(139,92,246,.22)}
.pill-orange .pill-icon{background:rgba(249,115,22,.12); color:#ea580c; border:1px solid rgba(249,115,22,.22)}
.pill-cyan .pill-icon{background:rgba(6,182,212,.12); color:#0891b2; border:1px solid rgba(6,182,212,.22)}
.pill-pink .pill-icon{background:rgba(236,72,153,.12); color:#db2777; border:1px solid rgba(236,72,153,.22)}
.pill-teal .pill-icon{background:rgba(20,184,166,.12); color:#0d9488; border:1px solid rgba(20,184,166,.22)}
.pill-red .pill-icon{background:rgba(239,68,68,.12); color:#dc2626; border:1px solid rgba(239,68,68,.22)}
.pill b{font-size:13px}
.pill p{margin:2px 0 0; font-size:12px; color:var(--muted)}

/* Btn lg */
.btn-lg{padding:12px 18px; font-size:14px}

.hero-card{
  background:linear-gradient(180deg, rgba(255,255,255,.90), rgba(248,250,252,.95));
  border:1px solid rgba(226,232,240,.95);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.hero-card-booking .hero-card-body{padding:16px 16px 12px}
.hero-booking-frame-wrap{
  padding:0 12px 14px;
}
.booking-filter-frame{
  width:100%;
  border:0;
  height:520px;
  display:block;
  background:#fff;
  border-radius:14px;
  box-shadow:0 10px 26px rgba(2,6,23,.06);
}
.hero-media{position:relative}
.hero-media img{width:100%; height:320px; object-fit:cover}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(2,6,23,.00), rgba(2,6,23,.10));
}
.hero-card-body{padding:16px 16px 18px}
.hero-card-body h3{margin:0 0 6px; font-size:16px}
.hero-card-body p{margin:0; color:var(--muted); font-size:13px}
.hero-card-body .mini{margin-top:12px; display:flex; flex-wrap:wrap; gap:8px}
.chip{font-size:12px; font-weight:700; color:#0f172a; background:rgba(2,6,23,.04); border:1px solid rgba(2,6,23,.06); padding:7px 10px; border-radius:999px}

/* Section generic */
.section{padding:34px 0}
.section.alt{background:var(--surface-2); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
.section h2{font-size:28px; letter-spacing:-.4px; margin:0 0 10px}
.section .sub{color:var(--muted); margin:0 0 18px; max-width:70ch}

.grid-3{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:16px;
  box-shadow:0 10px 26px rgba(2,6,23,.05);
}
.card h3{margin:0 0 6px; font-size:15px}
.card p{margin:0; color:var(--muted); font-size:13px}

/* Card Feature (enhanced) */
.card-feature{
  position:relative;
  padding:20px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.card-feature:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 50px rgba(2,6,23,.12);
}
.card-badge{
  position:absolute;
  top:14px;
  right:14px;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(14,165,233,.10);
  color:#0284c7;
  border:1px solid rgba(14,165,233,.18);
}
.card-feature h3{font-size:17px; margin:0 0 10px}
.card-feature p{font-size:13px; line-height:1.55}
.card-chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px}
.chip-sm{
  font-size:11px;
  font-weight:700;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(2,6,23,.04);
  border:1px solid rgba(2,6,23,.08);
  color:var(--text);
}

.card-link{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:14px;
  font-size:13px;
  font-weight:700;
  color:var(--primary);
  text-decoration:none;
  transition:gap .15s ease;
}
.card-link:hover{gap:8px; text-decoration:underline}

.icon{
  width:36px;height:36px;border-radius:12px;
  display:grid; place-items:center;
  margin-bottom:10px;
  border:1px solid rgba(14,165,233,.25);
  background:rgba(14,165,233,.08);
}
.icon svg{width:18px;height:18px}

/* Icon gradients */
.icon-gradient-blue{
  background:linear-gradient(135deg, rgba(14,165,233,.15), rgba(37,99,235,.12));
  border-color:rgba(14,165,233,.28);
  color:#0284c7;
}
.icon-gradient-green{
  background:linear-gradient(135deg, rgba(34,197,94,.15), rgba(16,185,129,.12));
  border-color:rgba(34,197,94,.28);
  color:#16a34a;
}
.icon-gradient-purple{
  background:linear-gradient(135deg, rgba(139,92,246,.15), rgba(168,85,247,.12));
  border-color:rgba(139,92,246,.28);
  color:#7c3aed;
}

/* Fleet */
.fleet{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px}
.fleet .tile{padding:0; overflow:hidden}
.tile .media{
  height:clamp(220px, 22vw, 320px);
  background:#ffffff;
  border-bottom:1px solid var(--border);
}
.tile .media img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center;
  padding:8px;
}
.tile .body{padding:14px}
.tile .body b{display:block; font-size:14px}
.tile .body span{display:block; margin-top:4px; color:var(--muted); font-size:12px}

/* Booking */
.booking-wrap{
  background:linear-gradient(180deg, rgba(255,255,255,1), rgba(248,250,252,1));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.booking-head{padding:16px 16px 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap}
.booking-head h3{margin:0; font-size:16px}
.booking-head p{margin:4px 0 0; color:var(--muted); font-size:13px}
.booking-frame{width:100%; border:0; height:980px; display:block; background:#fff}
.booking-results-frame.is-hidden{display:none}
.booking-placeholder{
  margin:0 16px 16px;
  padding:14px 14px;
  border-radius:14px;
  border:1px dashed rgba(148,163,184,.9);
  background:rgba(248,250,252,1);
  color:var(--muted);
}
.booking-placeholder b{color:var(--text)}
.booking-placeholder p{margin:6px 0 0; font-size:13px}
.booking-actions{padding:12px 16px 16px; border-top:1px solid var(--border); display:flex; gap:10px; flex-wrap:wrap}

/* FAQ */
.faq-head{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:14px}
.faq-chip{
  font-size:12px;
  font-weight:800;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:#0b4a6f;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(14,165,233,.22);
  background:linear-gradient(135deg, rgba(14,165,233,.10), rgba(34,197,94,.08));
}

.faq-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}

.faq-item{
  border:1px solid rgba(226,232,240,.95);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,1), rgba(248,250,252,.9));
  box-shadow:0 10px 26px rgba(2,6,23,.05);
  overflow:hidden;
  position:relative;
}

.faq-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 15% 10%, rgba(14,165,233,.12), transparent 55%),
             radial-gradient(circle at 85% 0%, rgba(34,197,94,.10), transparent 45%);
  opacity:0;
  transition:opacity .18s ease;
  pointer-events:none;
}

.faq-item:hover::before{opacity:1}
.faq-item:hover{transform:translateY(-2px); box-shadow:0 18px 45px rgba(2,6,23,.09)}

.faq-item summary{
  cursor:pointer;
  padding:14px 14px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-q{font-weight:900; font-size:14px; line-height:1.25}

.faq-icon{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:12px;
  border:1px solid rgba(14,165,233,.18);
  background:rgba(14,165,233,.08);
  display:grid;
  place-items:center;
  position:relative;
}
.faq-icon::before,
.faq-icon::after{
  content:"";
  position:absolute;
  width:14px;
  height:2px;
  background:rgba(15,23,42,.75);
  border-radius:2px;
}
.faq-icon::after{transform:rotate(90deg); transition:transform .15s ease, opacity .15s ease}

.faq-item[open]{
  border-color:rgba(14,165,233,.28);
  box-shadow:0 22px 60px rgba(2,6,23,.12);
}
.faq-item[open] .faq-icon{background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.22)}
.faq-item[open] .faq-icon::after{transform:rotate(0deg); opacity:0}

.faq-a{padding:0 14px 14px}
.faq-a p{margin:0; color:var(--muted); font-size:13px; line-height:1.45}
.faq-a a{color:var(--text); text-decoration:underline; text-underline-offset:3px}

.faq-item[open] .faq-a{animation:faqIn .18s ease-out}
@keyframes faqIn{from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:translateY(0)}}

@media (prefers-reduced-motion: reduce){
  .faq-item, .faq-item::before, .faq-icon::after{transition:none !important}
  .faq-item:hover{transform:none}
  .faq-item[open] .faq-a{animation:none}
}

/* Cookie banner */
.cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:14px;
  z-index:9999;
  display:flex;
  justify-content:center;
  padding:0 14px;
}
.cookie-banner[hidden]{display:none!important}
.cookie-banner.is-hidden{display:none!important}
.cookie-card{
  width:min(980px, 100%);
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(14px);
  border:1px solid rgba(226,232,240,.92);
  border-radius:18px;
  box-shadow:0 22px 70px rgba(2,6,23,.18);
  padding:14px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cookie-text b{display:block; font-size:14px}
.cookie-text p{margin:4px 0 0; font-size:12.5px; color:var(--muted); line-height:1.35}
.cookie-text a{color:var(--text); text-decoration:underline; text-underline-offset:3px}
.cookie-actions{display:flex; gap:10px; flex:0 0 auto}


/* Contact strip */
.contact-strip{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap}
.contact-strip .left b{font-size:15px}
.contact-strip .left div{color:var(--muted); font-size:13px; margin-top:3px}

/* Footer */
.footer{padding:32px 0 22px; background:#0b1220; color:#e5e7eb}
.footer a{color:#e5e7eb; text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer-grid{display:grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; gap:16px}
.footer h4{margin:0 0 10px; font-size:13px; letter-spacing:.2px; text-transform:uppercase; color:#cbd5e1}
.footer p{margin:0; color:#cbd5e1; font-size:13px}
.footer ul{list-style:none; padding:0; margin:0}
.footer li{margin:8px 0; font-size:13px; color:#e5e7eb}
.footer-bottom{margin-top:16px; padding-top:16px; border-top:1px solid rgba(148,163,184,.25); display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; color:#cbd5e1; font-size:12px}

/* Mobile */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-media img{height:280px}
  .h1{font-size:38px}
  .grid-3{grid-template-columns:1fr}
  .fleet{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr}
}

@media (max-width: 720px){
  .header-nav-row{display:none}
  .nav.nav-desktop{display:none}
  .nav.nav-mobile{display:none; position:absolute; left:0; right:0; top:64px; padding:12px 20px; background:rgba(255,255,255,.98); border-bottom:1px solid var(--border); z-index:100; flex-direction:column; align-items:flex-start; gap:6px}
  .nav.nav-mobile.open{display:flex}
  .burger{display:inline-flex}
  .header-inner{flex-wrap:wrap}
  .header-cta .btn-ghost{display:none}
  .header-cta .btn-whatsapp{display:none}
  .header-cta .btn-primary{display:none}
  .header-inner{justify-content:flex-start}
  .burger{order:0; margin-right:10px}
  .brand{order:1; min-width:0}
  .brand > div{min-width:0}
  .header-cta{order:2}

  .nav a, .nav-sub > summary{width:100%}
  .kicker-text-full{display:none}
  .kicker-text-short{display:inline}
  .h1{font-size:34px}
  .hero-stats{gap:16px; flex-wrap:wrap}
  .stat-num{font-size:24px}
  .hero-bullets{grid-template-columns:1fr}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%; justify-content:center}
  .fleet{grid-template-columns:1fr}
  .faq-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}

  .cookie-card{flex-direction:column; align-items:stretch}
  .cookie-actions{width:100%}
  .cookie-actions .btn{width:100%}

  .nav-sub{width:100%}
  .nav-sub > summary{width:100%}
  .nav-submenu{
    position:static;
    width:100%;
    min-width:0;
    margin:6px 0 6px;
    box-shadow:none;
    background:rgba(2,6,23,.03);
    border:1px solid var(--border);
    border-radius:12px;
    padding:8px;
  }
  .nav-submenu a{width:100%}
}

@media (max-width: 520px){
  .container{padding:0 16px}
  .brand img{width:40px; height:40px}
  .brand strong{font-size:14px}
  .brand span{
    display:block;
    font-size:11px;
    line-height:1.15;
    white-space:normal;
  }
  .hero{padding:32px 0 18px}
  .h1{font-size:30px}
  .lead{font-size:15px}
  .hero-actions{flex-direction:column; align-items:stretch}
  .hero-actions .btn{width:100%}

  .booking-filter-frame{height:640px}
  .booking-frame{height:1200px}
}
