:root{
  --vh-blue:#16649B;
  --vh-dark:#283F59;
  --vh-white:#fff;
  --vh-text:#253544;
  --vh-page:1280px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;color:var(--vh-text);background:#fff}
a{color:inherit}

/* ===== HEADER ===== */
.vh-header{position:relative;z-index:1000;color:#fff}
.vh-topbar{height:34px;background:var(--vh-dark)}
.vh-topbar__inner{max-width:1292px;height:34px;margin:0 auto;padding:0 8px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.vh-toplinks,.vh-userlinks{display:flex;align-items:center;height:100%}
.vh-toplinks{gap:27px}
.vh-userlinks{gap:19px;border-left:1px solid rgba(255,255,255,.22);padding-left:20px}
.vh-toplinks a,.vh-userlinks a{color:rgba(255,255,255,.62);font-size:12px;line-height:1;text-decoration:none;white-space:nowrap}
.vh-toplinks a.is-strong,.vh-userlinks a{color:#fff;font-weight:700}
.vh-userlinks a{display:flex;align-items:center;gap:8px}
.vh-icon{position:relative;display:inline-block;width:15px;height:15px;flex:0 0 15px}
.vh-icon-user{border:1.7px solid #fff;border-radius:50%}.vh-icon-user:before{content:"";position:absolute;width:4px;height:4px;border:1.4px solid #fff;border-radius:50%;left:3.7px;top:2px}.vh-icon-user:after{content:"";position:absolute;width:7px;height:3.5px;border:1.4px solid #fff;border-bottom:0;border-radius:7px 7px 0 0;left:2.4px;bottom:2px}
.vh-icon-phone:before{content:"☎";font-size:16px;line-height:15px;color:#fff}
.vh-icon-cart:before{content:"";position:absolute;left:1px;top:3px;width:10px;height:7px;border:1.6px solid #fff;border-top:0;transform:skew(-8deg)}.vh-icon-cart:after{content:"••";position:absolute;left:2px;top:7px;letter-spacing:3px;font-size:10px;color:#fff}

.vh-navbar{height:101px;background:var(--vh-blue);border-bottom:1px solid rgba(255,255,255,.22)}
.vh-navbar__inner{max-width:1292px;height:100%;margin:0 auto;padding:0 8px;display:flex;align-items:center}
.vh-logo{display:flex;align-items:center;flex:0 0 252px;text-decoration:none}
.vh-logo img{display:block;width:208px;height:auto}
.main-nav{flex:1;height:100%;display:flex;align-items:center;justify-content:flex-end;background:transparent}
.main-menu{display:flex;align-items:stretch;justify-content:flex-end;height:100%;list-style:none;margin:0;padding:0;gap:0}
.menu-item{position:relative;height:100%}
.menu-link{height:100%;display:flex;align-items:center;padding:0 18px;color:#fff;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap;letter-spacing:-.15px}
.menu-button{border:0;background:transparent;font:inherit;cursor:pointer}
.menu-link:hover,.menu-item.is-open>.menu-link{background:rgba(255,255,255,.055)}
.chev{width:7px;height:7px;margin-left:10px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg) translateY(-2px)}
.mega-menu{position:absolute;top:100%;left:0;display:none;background:#fff;color:#22303c;box-shadow:0 16px 35px rgba(0,0,0,.18);padding:18px;min-width:270px}
.menu-item:hover>.mega-menu,.menu-item.is-open>.mega-menu{display:grid}
.mega-menu--wide{grid-template-columns:repeat(2,minmax(210px,1fr));gap:24px;min-width:520px}
.mega-menu--small{grid-template-columns:1fr}
.mega-menu strong{display:block;color:var(--vh-blue);margin:0 0 9px;font-size:14px}
.mega-menu a{display:block;padding:8px 5px;color:#33485c;text-decoration:none;font-size:14px}
.mega-menu a:hover{background:#f1f6fa;color:var(--vh-blue)}
.nav-toggle{display:none;margin-left:auto;width:46px;height:42px;border:0;background:transparent;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:27px;height:2px;background:#fff;margin:6px auto}

/* ===== HERO HOME ===== */
.main-content{display:block;width:100%;min-height:45vh}
.home-hero{position:relative;overflow:hidden;height:579px;background:var(--vh-blue);color:#fff}
.home-hero__pattern{position:absolute;inset:0;opacity:.17;pointer-events:none;background-image:radial-gradient(circle at 26px 30px,transparent 0 4px,#67a5c9 4px 5px,transparent 5px),linear-gradient(135deg,transparent 47%,#6fa8c8 48% 50%,transparent 51%);background-size:120px 120px,60px 60px;background-position:0 0,20px 0}
.home-hero__inner{position:relative;z-index:1;max-width:1292px;height:100%;margin:0 auto;padding:47px 8px 0;display:grid;grid-template-columns:640px 1fr;gap:40px}
.home-hero__copy{padding-left:10px}
.home-hero h1{margin:0 0 18px;color:#fff;font-size:50px;line-height:1.0;font-weight:800;letter-spacing:-1.9px}
.home-hero p{margin:0 0 23px;color:#fff;font-size:21px;line-height:1.45;font-weight:400;letter-spacing:-.2px}
.home-hero__cta{display:inline-flex;align-items:center;justify-content:center;height:56px;padding:0 25px;background:#fff;color:#145485;border-radius:5px;text-decoration:none;font-size:16px;font-weight:700;letter-spacing:1px}
.home-hero__badges{display:flex;align-items:center;gap:17px;margin-top:20px}
.hero-badge{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px;color:#fff}
.hero-badge img{display:block;width:38px;height:38px;object-fit:cover;border-radius:0}
.home-hero__visual{display:flex;align-items:flex-start;justify-content:center;padding-top:0}
.home-hero__visual img{display:block;width:545px;max-width:none;height:500px;object-fit:cover;object-position:center}

/* ===== CONTENT BELOW HERO ===== */
.container{max-width:1280px;margin:0 auto;padding:0 20px}.section{padding:70px 0}.section-heading{text-align:center;max-width:800px;margin:0 auto 35px}.section-heading h2{font-size:34px;color:#153f5f;margin:5px 0 12px}.section-heading p{font-size:17px;line-height:1.6}.eyebrow{font-size:13px;font-weight:700;text-transform:uppercase;color:var(--vh-blue);letter-spacing:1px}.plans-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.plan-card{position:relative;border:1px solid #dbe3ea;border-radius:8px;padding:28px 22px;background:#fff;box-shadow:0 7px 24px rgba(31,72,103,.08)}.plan-card--featured{border-color:var(--vh-blue)}.plan-ribbon{position:absolute;top:0;right:0;background:var(--vh-blue);color:#fff;padding:5px 10px;border-radius:0 8px 0 8px;font-size:12px}.plan-kicker{color:var(--vh-blue);font-size:12px;font-weight:700;text-transform:uppercase}.plan-card h3{font-size:22px;margin:8px 0 14px}.plan-price{font-size:26px;font-weight:700;color:#153f5f}.plan-price span{display:block;font-size:11px;font-weight:400}.plan-card p{min-height:42px}.btn{display:inline-flex;background:var(--vh-blue);color:#fff;padding:11px 15px;border-radius:4px;text-decoration:none;font-weight:700}

/* ===== FOOTER ===== */
.site-footer{background:var(--vh-dark);color:#fff;padding:54px 0 22px}.site-footer__inner{max-width:var(--vh-page);margin:0 auto;padding:0 22px}.footer-grid{display:grid;grid-template-columns:1.15fr 1.25fr .9fr 1fr .9fr;gap:30px}.footer-grid section{min-width:0}.footer-grid h3{margin:0 0 15px;color:#fff;font-size:16px;font-weight:700}.footer-grid .footer-subtitle{margin-top:24px}.footer-grid a{display:block;color:rgba(255,255,255,.82);text-decoration:none;font-size:13px;line-height:1.45;padding:4px 0}.footer-grid a:hover{color:#fff;text-decoration:underline}.footer-bottom{margin-top:38px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.78);font-size:12px;line-height:1.55}.footer-bottom p{margin:4px 0}.footer-legal{display:flex;gap:18px;margin-top:12px}.footer-legal a{color:#fff;text-decoration:none}.footer-brand-row{display:flex;align-items:center;gap:28px;padding-bottom:30px;margin-bottom:34px;border-bottom:1px solid rgba(255,255,255,.16)}.footer-brand-row p{margin:0;color:rgba(255,255,255,.75);font-size:14px}.footer-logo img{display:block;width:210px;height:auto}

@media(max-width:1150px){
 .vh-topbar{display:none}.vh-navbar{height:76px}.vh-navbar__inner{padding:0 18px}.vh-logo{flex-basis:auto}.vh-logo img{width:190px}.nav-toggle{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:76px;height:auto;background:var(--vh-blue);padding:12px 22px 20px;box-shadow:0 12px 24px rgba(0,0,0,.18)}.main-nav.is-open{display:block}.main-menu{display:block;height:auto}.menu-item{height:auto}.menu-link{min-height:46px;height:auto;width:100%;justify-content:space-between;padding:0}.mega-menu,.mega-menu--wide{position:static;min-width:0;grid-template-columns:1fr;box-shadow:none;margin:0 0 8px;padding:12px}.menu-item:hover>.mega-menu{display:none}.menu-item.is-open>.mega-menu{display:grid}
 .home-hero{height:auto;min-height:610px}.home-hero__inner{grid-template-columns:1fr 440px;padding:55px 28px 35px}.home-hero h1{font-size:44px}.home-hero p{font-size:18px}.home-hero__visual img{width:440px;height:auto}.plans-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
 .home-hero__inner{display:block;padding:48px 22px}.home-hero h1{font-size:38px;line-height:1.08}.home-hero p{font-size:17px}.desktop-only{display:none}.home-hero__badges{flex-wrap:wrap}.home-hero__visual{margin-top:24px}.home-hero__visual img{width:100%;height:auto;max-width:500px}.plans-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.site-footer{padding-top:38px}.footer-brand-row{display:block}.footer-brand-row p{margin-top:16px}
}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}.home-hero h1{font-size:34px}.hero-badge{font-size:12px}}

/* Mega menu v6: compatibile con schema DB originale, nessuna migrazione */
.main-nav>ul.main-menu{display:flex;align-items:stretch;justify-content:flex-end;height:100%;list-style:none;margin:0;padding:0}
.main-menu>.menu-item{position:relative;height:100%}
.main-menu .menu-link{height:100%;display:flex;align-items:center;padding:0 18px;color:#fff;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap}
.main-menu .menu-button{border:0;background:transparent;font:inherit;cursor:pointer}
.main-menu .chev{width:7px;height:7px;margin-left:10px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg) translateY(-2px)}
.main-menu .mega-menu{position:absolute;z-index:1200;top:100%;left:0;display:none;background:#fff;color:#22303c;box-shadow:0 16px 35px rgba(0,0,0,.18);padding:18px;min-width:270px}
.main-menu .menu-item:hover>.mega-menu,.main-menu .menu-item.is-open>.mega-menu{display:grid}
.main-menu .mega-menu--wide{grid-template-columns:repeat(2,minmax(210px,1fr));gap:24px;min-width:520px}
.main-menu .mega-menu--small{grid-template-columns:1fr}
.main-menu .mega-menu a{display:block;padding:9px 7px;color:#33485c;text-decoration:none;font-size:14px}
.main-menu .mega-menu a:hover{background:#f1f6fa;color:#16649B}
.main-menu>.menu-item:nth-last-child(-n+2)>.mega-menu{left:auto;right:0}
@media(max-width:1150px){.main-nav>ul.main-menu{display:block;height:auto}.main-menu>.menu-item{height:auto}.main-menu .menu-link{min-height:46px;height:auto;width:100%;justify-content:space-between;padding:0}.main-menu .mega-menu,.main-menu .mega-menu--wide{position:static;min-width:0;grid-template-columns:1fr;box-shadow:none;margin:0 0 8px;padding:12px}.main-menu .menu-item:hover>.mega-menu{display:none}.main-menu .menu-item.is-open>.mega-menu{display:grid}}

/* Icone/immagini configurabili dal CMS nei menu */
.nav-menu-icon{width:22px;height:22px;object-fit:contain;display:block;flex:0 0 22px;margin-right:8px}
.main-menu .menu-link{gap:0}
.footer-menu-grid a{display:flex;align-items:center;gap:8px}
.footer-menu-icon{width:20px;height:20px;object-fit:contain;display:block;flex:0 0 20px}
@media(max-width:1150px){.nav-menu-icon{width:24px;height:24px;flex-basis:24px}}

/* Menu v8: gerarchia CMS + immagini caricate da /uploads/menu/ */
.mega-menu__column a{display:flex!important;align-items:center;gap:9px}.mega-menu-icon{width:26px;height:26px;object-fit:contain;flex:0 0 26px}.footer-grid a{display:flex;align-items:center;gap:7px}.footer-menu-icon{width:20px;height:20px;object-fit:contain;flex:0 0 20px}.footer-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1200px){.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.footer-grid{grid-template-columns:1fr}}
.menu-parent-link{height:100%;display:flex;align-items:stretch}.menu-parent-link>.menu-link{padding-right:5px}.mega-toggle{border:0;background:transparent;color:#fff;padding:0 12px 0 4px;cursor:pointer}.mega-menu__html{padding:8px 7px;color:#33485c;line-height:1.55}.mega-menu__html a{display:inline-flex!important}.mega-menu__heading{font-weight:700;color:#16649B;padding:8px 7px}.mega-item-category{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6d8192;padding:7px 7px 0}@media(max-width:1150px){.menu-parent-link{height:auto}.menu-parent-link>.menu-link{flex:1}.mega-toggle{min-width:44px}}

/* v22 - layout configurabile dei sottomenu */
.main-menu .mega-menu--vertical{grid-template-columns:1fr;min-width:300px}
.main-menu .mega-menu--horizontal{grid-template-columns:repeat(var(--mega-columns,2),minmax(190px,1fr));min-width:min(92vw,calc(var(--mega-columns,2) * 240px));gap:14px 22px}
.main-menu .mega-menu--horizontal .mega-menu__column{display:contents}
.main-menu .mega-menu--horizontal .mega-menu__column>strong{grid-column:1/-1;margin-top:4px}
.main-menu .mega-menu--horizontal .mega-menu__column>a,.main-menu .mega-menu--horizontal .mega-menu__column>.mega-menu__html,.main-menu .mega-menu--horizontal .mega-menu__column>.mega-menu__heading,.main-menu .mega-menu--horizontal .mega-menu__column>.mega-item-category{min-width:0}
@media(max-width:1150px){.main-menu .mega-menu--horizontal,.main-menu .mega-menu--vertical{grid-template-columns:1fr!important;min-width:0!important}.main-menu .mega-menu--horizontal .mega-menu__column{display:block}}

/* v23: layout sottomenu deterministico */
.main-menu .mega-menu--vertical{
  display:none;
  grid-template-columns:1fr;
  min-width:320px;
  gap:4px;
}
.main-menu .menu-item:hover>.mega-menu--vertical,
.main-menu .menu-item.is-open>.mega-menu--vertical{display:grid}
.main-menu .mega-menu--horizontal{
  display:none;
  grid-template-columns:repeat(var(--mega-items-per-row,2),minmax(190px,1fr));
  min-width:min(94vw,calc(var(--mega-items-per-row,2) * 250px));
  gap:12px 20px;
}
.main-menu .menu-item:hover>.mega-menu--horizontal,
.main-menu .menu-item.is-open>.mega-menu--horizontal{display:grid}
.main-menu .mega-menu__item{min-width:0}
.main-menu .mega-menu__item>a{height:100%;box-sizing:border-box}
.main-menu .mega-menu__group-title{
  grid-column:1/-1;
  font-weight:700;
  color:#16649B;
  padding:4px 7px 0;
}
.main-menu .mega-menu--vertical .mega-menu__group-title{grid-column:1}
@media(max-width:1150px){
  .main-menu .mega-menu--horizontal,
  .main-menu .mega-menu--vertical{
    grid-template-columns:1fr!important;
    min-width:0!important;
  }
  .main-menu .mega-menu__group-title{grid-column:1!important}
}


/* v24: colonne mega-menu senza variabili inline */
.main-menu .mega-menu--horizontal.mega-cols-1{grid-template-columns:repeat(1,minmax(190px,1fr));min-width:min(94vw,250px)}
.main-menu .mega-menu--horizontal.mega-cols-2{grid-template-columns:repeat(2,minmax(190px,1fr));min-width:min(94vw,500px)}
.main-menu .mega-menu--horizontal.mega-cols-3{grid-template-columns:repeat(3,minmax(190px,1fr));min-width:min(94vw,750px)}
.main-menu .mega-menu--horizontal.mega-cols-4{grid-template-columns:repeat(4,minmax(190px,1fr));min-width:min(94vw,1000px)}
.main-menu .mega-menu--horizontal.mega-cols-5{grid-template-columns:repeat(5,minmax(170px,1fr));min-width:min(94vw,1150px)}
.main-menu .mega-menu--horizontal.mega-cols-6{grid-template-columns:repeat(6,minmax(160px,1fr));min-width:min(94vw,1280px)}
@media(max-width:1150px){
 .main-menu .mega-menu--horizontal.mega-cols-1,
 .main-menu .mega-menu--horizontal.mega-cols-2,
 .main-menu .mega-menu--horizontal.mega-cols-3,
 .main-menu .mega-menu--horizontal.mega-cols-4,
 .main-menu .mega-menu--horizontal.mega-cols-5,
 .main-menu .mega-menu--horizontal.mega-cols-6{grid-template-columns:1fr!important;min-width:0!important}
}


/* v25: griglia mega-menu deterministica; i figli sono celle dirette */
.main-menu .mega-menu--horizontal{
  grid-auto-flow:row;
  align-items:stretch;
}
.main-menu .mega-menu--horizontal>.mega-menu__item{
  min-width:0;
  width:auto;
  max-width:none;
  margin:0;
}
.main-menu .mega-menu--horizontal>.mega-menu__group-title{grid-column:1/-1}
@media(max-width:1150px){
  .main-menu .mega-menu--horizontal{width:auto!important;min-width:0!important;grid-template-columns:1fr!important}
}
