
:root{
  --vc-bg:#f5f1e8;
  --vc-paper:#fffdf8;
  --vc-line:#e4dccd;
  --vc-green:#2f633f;
  --vc-green-dark:#14351f;
  --vc-green-soft:#e7efe4;
  --vc-text:#172018;
  --vc-muted:#6f6a5f;
  --vc-shadow:0 16px 42px rgba(18,30,20,.10);
  --vc-radius:28px;
  --vc-container:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--vc-bg);
  color:var(--vc-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.6;
}

a{color:inherit}
img{max-width:100%;height:auto}

.vc-container{
  max-width:var(--vc-container);
  margin:0 auto;
  padding:0 20px;
}

/* HEADER */
.vc-topbar{
  background:var(--vc-green-dark);
  color:white;
  font-size:.92rem;
}
.vc-topbar .vc-container{
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.vc-topbar a{text-decoration:none;color:rgba(255,255,255,.88)}

.vc-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,253,248,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(20,53,31,.08);
}
.vc-header-inner{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.vc-brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.vc-logo{
  width:58px;
  height:58px;
  border-radius:18px;
  background:linear-gradient(145deg,var(--vc-green),var(--vc-green-dark));
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
  box-shadow:0 10px 25px rgba(20,53,31,.18);
}
.vc-brand strong{
  display:block;
  color:var(--vc-green-dark);
  font-size:1.45rem;
  line-height:1.05;
  letter-spacing:-.03em;
}
.vc-brand span{
  display:block;
  color:var(--vc-muted);
  font-size:.92rem;
}

.vc-nav{
  display:flex;
  align-items:center;
  gap:20px;
}
.vc-nav a{
  text-decoration:none;
  color:var(--vc-green-dark);
  font-weight:800;
}
.vc-nav a:hover{color:var(--vc-green)}

.vc-header-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.vc-btn,
.btn,
.btn-primary,
.btn-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 20px;
  border-radius:999px;
  border:0;
  text-decoration:none;
  font-weight:900;
  cursor:pointer;
  transition:.22s ease;
}
.vc-btn.primary,
.btn,
.btn-primary{
  background:var(--vc-green);
  color:white;
  box-shadow:0 10px 20px rgba(47,99,63,.18);
}
.vc-btn.secondary,
.btn.alt,
.btn-secondary{
  background:#e7dece;
  color:var(--vc-green-dark);
}
.vc-btn:hover,
.btn:hover{
  transform:translateY(-2px);
}

.vc-menu-toggle{
  display:none;
  background:var(--vc-green-dark);
  color:white;
  border:0;
  border-radius:999px;
  padding:12px 16px;
  font-weight:900;
}

/* MAIN */
.vc-main{
  max-width:var(--vc-container);
  margin:0 auto;
  padding:28px 20px 0;
}

/* HERO */
.vc-hero{
  position:relative;
  min-height:520px;
  border-radius:0 0 36px 36px;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(20,53,31,.88),rgba(20,53,31,.40)),
    url('/visit/img/hero.jpg') center/cover;
  color:white;
  display:flex;
  align-items:center;
}
.vc-hero .vc-container{
  position:relative;
  z-index:2;
}
.vc-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.86);
  font-weight:900;
  letter-spacing:.16em;
  font-size:.78rem;
  text-transform:uppercase;
  margin-bottom:16px;
}
.vc-hero h1{
  max-width:760px;
  font-size:clamp(2.4rem,5vw,4.5rem);
  line-height:1.04;
  margin:0 0 18px;
  letter-spacing:-.055em;
}
.vc-hero p{
  max-width:620px;
  font-size:1.18rem;
  color:rgba(255,255,255,.88);
  margin:0 0 30px;
}
.vc-hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

/* SEARCH */
.vc-search-panel{
  margin-top:-38px;
  position:relative;
  z-index:5;
}
.vc-search-card{
  background:var(--vc-paper);
  border:1px solid var(--vc-line);
  box-shadow:var(--vc-shadow);
  border-radius:28px;
  padding:18px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
}
.vc-search-card input{
  border:1px solid var(--vc-line);
  border-radius:999px;
  padding:15px 18px;
  font-size:1rem;
  background:white;
}

/* CARDS */
.grid,
.vc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:22px;
}
.card,
.vc-card{
  background:var(--vc-paper);
  border:1px solid var(--vc-line);
  border-radius:var(--vc-radius);
  padding:24px;
  text-decoration:none;
  color:var(--vc-text);
  box-shadow:0 10px 28px rgba(18,30,20,.06);
  transition:.24s ease;
}
.card:hover,
.vc-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--vc-shadow);
}
.card h2,
.vc-card h2{
  margin:0 0 8px;
  letter-spacing:-.03em;
}
.card p,
.vc-card p{
  color:var(--vc-muted);
}
.card img,
.vc-card img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:20px;
  margin-bottom:14px;
}

.label,
.vc-label{
  color:var(--vc-green);
  font-weight:900;
  letter-spacing:.16em;
  font-size:.8rem;
  text-transform:uppercase;
}
.title,
.vc-title{
  font-size:clamp(2rem,4vw,3.2rem);
  line-height:1.1;
  letter-spacing:-.05em;
  margin:8px 0 22px;
}

.badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}
.badge{
  background:var(--vc-green-soft);
  color:var(--vc-green-dark);
  border-radius:999px;
  padding:9px 13px;
  font-weight:900;
}

/* FOOTER */
.vc-footer{
  margin-top:80px;
  background:linear-gradient(145deg,var(--vc-green-dark),#092011);
  color:white;
}
.vc-footer-main{
  padding:64px 0;
}
.vc-footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.3fr;
  gap:36px;
}
.vc-footer h3,
.vc-footer h4{
  margin-top:0;
}
.vc-footer p,
.vc-footer a{
  color:rgba(255,255,255,.78);
}
.vc-footer a{
  display:block;
  text-decoration:none;
  margin:9px 0;
}
.vc-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 0;
  color:rgba(255,255,255,.65);
  font-size:.92rem;
}
.vc-footer-bottom .vc-container{
  display:flex;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

/* RESPONSIVE */
@media(max-width:960px){
  .vc-topbar{display:none}
  .vc-header-inner{
    min-height:76px;
    flex-wrap:wrap;
  }
  .vc-menu-toggle{display:inline-flex}
  .vc-nav{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:flex-start;
    padding:16px 0 20px;
  }
  .vc-nav.open{display:flex}
  .vc-header-actions{display:none}
  .vc-brand strong{font-size:1.2rem}
  .vc-logo{width:50px;height:50px;border-radius:16px}
  .vc-hero{
    min-height:500px;
    border-radius:0 0 28px 28px;
  }
  .vc-search-card{
    grid-template-columns:1fr;
  }
  .vc-footer-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:560px){
  .vc-main{padding:20px 14px 0}
  .vc-container{padding:0 14px}
  .vc-hero h1{font-size:2.35rem}
  .vc-hero p{font-size:1rem}
  .vc-hero-actions .vc-btn{width:100%}
}
.vc-logo-img{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 10px 25px gba(20,53,31,.18);
}

/* MOSTRA TV IN HOME */
.vc-exhibition-feature{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:42px;
  align-items:center;
  margin:8px 0 38px;
  padding:42px;
  overflow:hidden;
  border-radius:var(--vc-radius);
  background:linear-gradient(135deg,#10120f 0%,#1c211b 58%,#283324 100%);
  color:#fff;
  box-shadow:var(--vc-shadow);
}

.vc-exhibition-feature::before{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-170px;
  top:-210px;
  border:1px solid rgba(214,181,116,.2);
  border-radius:50%;
}

.vc-exhibition-copy{position:relative;z-index:2}
.vc-exhibition-feature .vc-eyebrow{color:#d6b574}

.vc-exhibition-feature h2{
  max-width:660px;
  margin:8px 0 18px;
  color:#fffdf7;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.2rem,4.5vw,4.7rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:-.035em;
}

.vc-exhibition-feature p{
  max-width:650px;
  margin:0 0 26px;
  color:rgba(255,255,255,.76);
  font-size:1.05rem;
}

.vc-exhibition-actions{display:flex;flex-wrap:wrap;gap:12px}
.vc-exhibition-feature .vc-btn.primary{background:#d6b574;color:#162017}
.vc-exhibition-feature .vc-btn.secondary{border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff}

.vc-exhibition-preview{
  position:relative;
  z-index:2;
  display:block;
  min-height:340px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:22px;
  background:#050504;
  box-shadow:0 22px 55px rgba(0,0,0,.38);
}

.vc-exhibition-preview::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.78) 100%);
}

.vc-exhibition-preview img{
  width:100%;
  height:340px;
  object-fit:cover;
  transition:transform .5s ease;
}

.vc-exhibition-preview:hover img{transform:scale(1.025)}

.vc-exhibition-play{
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  padding-left:5px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(8,8,7,.68);
  color:#fff;
  font-size:1.55rem;
  transform:translate(-50%,-50%);
}

.vc-exhibition-count{
  position:absolute;
  left:22px;
  right:22px;
  bottom:18px;
  z-index:3;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media(max-width:960px){
  .vc-exhibition-feature{grid-template-columns:1fr;gap:30px;padding:30px}
  .vc-exhibition-preview,.vc-exhibition-preview img{min-height:300px;height:300px}
}

@media(max-width:560px){
  .vc-exhibition-feature{margin-top:0;padding:24px 20px 20px;border-radius:22px}
  .vc-exhibition-feature h2{font-size:2.45rem}
  .vc-exhibition-actions .vc-btn{width:100%}
  .vc-exhibition-preview,.vc-exhibition-preview img{min-height:230px;height:230px}
}

/* Intestazione desktop compatta - prova IIS locale */
.vc-topbar .vc-container,
.vc-header .vc-container{
  max-width:1500px;
}

.vc-back-to-site{font-weight:800}

.vc-brand{
  flex:0 0 auto;
}

.vc-brand strong{
  white-space:nowrap;
}

.vc-logo-img{
  width:50px;
  height:50px;
  border-radius:15px;
}

.vc-nav{
  flex:1 1 auto;
  justify-content:center;
  gap:18px;
}

.vc-nav-utility{display:none}

.vc-header-actions{
  flex:0 0 auto;
}

.vc-header-tool{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:44px;
  padding:0 12px;
  border-radius:999px;
  color:var(--vc-green-dark);
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}

.vc-header-tool:hover{
  background:rgba(47,99,63,.08);
  color:var(--vc-green);
}

.vc-header-tool span{
  font-size:1.12rem;
  line-height:1;
}

.vc-map-cta{
  min-height:46px;
  padding:0 22px;
  white-space:nowrap;
}

@media(max-width:1180px){
  .vc-topbar{display:none}
  .vc-header-inner{
    min-height:76px;
    flex-wrap:wrap;
  }
  .vc-menu-toggle{display:inline-flex}
  .vc-nav{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:flex-start;
    padding:16px 0 20px;
  }
  .vc-nav.open{display:flex}
  .vc-nav-utility{display:block}
  .vc-header-actions{display:none}
  .vc-brand strong{font-size:1.2rem}
  .vc-logo-img{width:50px;height:50px;border-radius:16px}
}
