:root{
  --vd-primary:#7a1f2b;
  --vd-primary-dark:#5c1620;
  --vd-deep:#241012;
  --vd-accent:#c9a227;
  --vd-accent-dark:#a9871e;
  --vd-light:#f7efe7;
  --vd-text:#2b1a1a;
  --vd-radius:14px;
  font-family:'Poppins',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
body{
  font-family:'Poppins',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--vd-text);
  background:#fff;
}
h1,h2,h3,h4,.vd-font-display{
  font-weight:700;
  letter-spacing:-.01em;
}
a{color:var(--vd-primary);}
a:hover{color:var(--vd-primary-dark);}

/* ---------- Top utility bar ---------- */
.vd-topbar{
  background:var(--vd-deep);
  color:#ead9d4;
  font-size:.82rem;
  padding:6px 0;
}
.vd-topbar a{color:#ead9d4;text-decoration:none;}
.vd-topbar a:hover{color:#fff;}

/* ---------- Navbar ---------- */
.vd-navbar{
  background:#fff;
  padding:14px 0;
  box-shadow:0 2px 10px rgba(36,16,18,.08);
}
.vd-logo{
  display:flex;align-items:center;gap:10px;
  font-weight:800;font-size:1.5rem;color:var(--vd-deep);text-decoration:none;
}
.vd-logo:hover{color:var(--vd-primary);}
.vd-logo svg{flex-shrink:0;}
.vd-navbar .nav-link{
  font-weight:600;color:var(--vd-text);padding:.5rem .85rem;
}
.vd-navbar .nav-link:hover,
.vd-navbar .nav-link.active{color:var(--vd-primary);}
.btn-vd{
  background:var(--vd-primary);border:none;color:#fff;font-weight:700;
  border-radius:999px;padding:.6rem 1.4rem;transition:background .2s ease;
}
.btn-vd:hover{background:var(--vd-primary-dark);color:#fff;}
.btn-vd-outline{
  background:transparent;border:2px solid var(--vd-primary);color:var(--vd-primary);
  font-weight:700;border-radius:999px;padding:.55rem 1.3rem;transition:all .2s ease;
}
.btn-vd-outline:hover{background:var(--vd-primary);color:#fff;}

/* ---------- Hero ---------- */
.vd-hero{
  position:relative;min-height:560px;display:flex;align-items:center;
  background-size:cover;background-position:center;color:#fff;
  border-radius:0 0 28px 28px;overflow:hidden;
}
.vd-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(36,16,18,.90) 0%,rgba(36,16,18,.56) 48%,rgba(36,16,18,.18) 100%);
}
.vd-hero .container{position:relative;z-index:2;}
.vd-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.08;margin-bottom:1rem;}
.vd-hero p.lead{font-size:1.15rem;max-width:600px;color:#f2e4dc;}
.vd-eyebrow{
  display:inline-block;background:rgba(255,255,255,.18);backdrop-filter:blur(2px);
  padding:.35rem .9rem;border-radius:999px;font-weight:700;font-size:.8rem;
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem;
}

/* ---------- Section heads ---------- */
.vd-section{padding:72px 0;}
.vd-section.soft{background:var(--vd-light);}
.vd-section-head{max-width:760px;margin:0 auto 40px;text-align:center;}
.vd-section-head h2{font-size:clamp(1.7rem,3vw,2.4rem);}
.vd-section-head p{color:#6b5450;font-size:1.05rem;}

/* ---------- Category tiles ---------- */
.vd-tile{
  position:relative;border-radius:var(--vd-radius);overflow:hidden;display:block;
  aspect-ratio:4/5;text-decoration:none;isolation:isolate;
}
.vd-tile img{
  width:100%;height:100%;object-fit:cover;transition:transform .5s ease;
}
.vd-tile:hover img{transform:scale(1.06);}
.vd-tile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(36,16,18,.90) 0%,rgba(36,16,18,.14) 55%,transparent 75%);
}
.vd-tile-label{
  position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:2;color:#fff;
}
.vd-tile-label h3{font-size:1.15rem;margin-bottom:.15rem;font-weight:700;}
.vd-tile-label span{font-size:.85rem;color:#ead9d4;}

/* ---------- Info / feature cards ---------- */
.vd-card{
  background:#fff;border-radius:var(--vd-radius);padding:28px;height:100%;
  box-shadow:0 2px 14px rgba(36,16,18,.08);border:1px solid rgba(36,16,18,.06);
}
.vd-card .vd-ico{
  width:52px;height:52px;border-radius:50%;background:var(--vd-light);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--vd-primary);
}
.vd-card h3{font-size:1.1rem;margin-bottom:.5rem;}
.vd-card p{color:#6b5450;font-size:.95rem;margin-bottom:0;}

/* ---------- Stat cards ---------- */
.vd-stat{
  background:#fff;border-radius:var(--vd-radius);padding:26px;height:100%;
  box-shadow:0 2px 14px rgba(36,16,18,.08);border:1px solid rgba(36,16,18,.06);
  text-align:center;
}
.vd-stat .vd-stat-num{font-size:2.1rem;font-weight:800;color:var(--vd-primary);line-height:1;margin-bottom:8px;}
.vd-stat p{color:#6b5450;font-size:.92rem;margin-bottom:0;}

/* ---------- Promo band ---------- */
.vd-promo{
  background:linear-gradient(120deg,var(--vd-deep),var(--vd-primary-dark));
  border-radius:var(--vd-radius);color:#fff;padding:48px;
}
.vd-promo h2{font-size:1.8rem;}
.vd-promo p{color:#f2e4dc;}

/* ---------- Steps ---------- */
.vd-step-num{
  width:40px;height:40px;border-radius:50%;background:var(--vd-primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:14px;
}

/* ---------- Footer ---------- */
.vd-footer{
  background:var(--vd-deep);color:#cbb9b5;padding:56px 0 24px;
}
.vd-footer h5{color:#fff;font-weight:700;font-size:1rem;margin-bottom:1rem;}
.vd-footer a{color:#cbb9b5;text-decoration:none;}
.vd-footer a:hover{color:#fff;}
.vd-footer ul{list-style:none;padding:0;margin:0;}
.vd-footer li{margin-bottom:.55rem;font-size:.92rem;}
.vd-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:20px;
  font-size:.82rem;color:#9b8884;
}
.vd-footer-bottom a{color:#9b8884;text-decoration:underline;}

/* ---------- Cookie banner ---------- */
.vd-cookie{
  position:fixed;left:16px;right:16px;bottom:16px;max-width:520px;margin:0 auto;
  background:#fff;border-radius:var(--vd-radius);box-shadow:0 8px 30px rgba(36,16,18,.3);
  padding:20px 22px;z-index:1080;display:none;
}
.vd-cookie.show{display:block;}
.vd-cookie p{font-size:.88rem;margin-bottom:12px;color:#2b1a1a;}

/* ---------- Credits table ---------- */
.vd-credits-table img{width:90px;height:60px;object-fit:cover;border-radius:6px;}

/* ---------- Social icons (scheda azienda) ---------- */
.vd-social-row{display:flex;gap:8px;flex-wrap:wrap;}
.vd-social-ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:var(--vd-light);
  color:var(--vd-primary);font-weight:700;font-size:.78rem;text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.vd-social-ico:hover{background:var(--vd-primary);color:#fff;}

/* ---------- Vetrina aziende consigliate (directory listing) ---------- */
.vetrina{padding:48px 0;}
.vt-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start;}
.vt-main{min-width:0;}
.vt-intro{margin-bottom:28px;}
.vt-intro h2{font-size:clamp(1.8rem,3.5vw,2.6rem);color:var(--vd-deep);font-weight:800;}
.vt-list{display:grid;gap:22px;}
.vt-item{
  display:grid;grid-template-columns:200px 1fr;background:#fff;
  border:1px solid rgba(36,16,18,.1);
  overflow:hidden;transition:box-shadow .2s,transform .2s;
}
.vt-item:hover{box-shadow:0 10px 24px rgba(36,16,18,.14);transform:translateY(-2px);}
.vt-thumb{display:block;background:var(--vd-light);min-width:0;overflow:hidden;}
.vt-thumb img{width:100%;height:100%;min-height:170px;object-fit:cover;}
.vt-body{padding:22px 24px;}
.vt-body h3{font-size:1.3rem;margin-bottom:10px;}
.vt-body h3 a{color:var(--vd-deep);text-decoration:none;}
.vt-body h3 a:hover{color:var(--vd-primary-dark);}
.vt-body p{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:#6b5450;margin-bottom:6px;}
.vt-body p svg{flex:0 0 18px;width:18px;height:18px;stroke:var(--vd-primary);fill:none;stroke-width:2;margin-top:3px;}
.vt-body a[href^="tel:"]{color:var(--vd-deep);text-decoration:none;}
.vt-extra:empty{display:none;}
.vt-btn{margin-top:10px;padding:10px 20px;font-size:.88rem;}
.vt-aside{display:grid;gap:22px;}
.widget-box{background:#fff;border:1px solid rgba(36,16,18,.1);border-radius:var(--vd-radius);padding:24px;}
.widget-box h3{color:var(--vd-deep);margin-bottom:10px;}
.widget-box p{font-size:.93rem;color:#6b5450;margin-bottom:10px;}
.widget-box ul{list-style:none;display:grid;gap:8px;padding:0;margin:0;}
.widget-box li a{text-decoration:none;font-weight:600;color:var(--vd-deep);font-size:.95rem;}
.widget-box li a:hover{color:var(--vd-primary-dark);}
.widget-alert{border-left:6px solid var(--vd-primary);}

/* ---------- Scheda azienda (detail page) ---------- */
.vd-crumbs{font-size:.85rem;color:#f2e4dc;opacity:.85;margin-bottom:10px;}
.vd-crumbs a{color:#fff;text-decoration:underline;}
.vt-dati{
  display:grid;grid-template-columns:200px 1fr;gap:26px;background:#fff;
  border-radius:var(--vd-radius);box-shadow:0 2px 14px rgba(36,16,18,.08);
  padding:24px;margin-bottom:24px;
}
.vt-dati-foto{min-width:0;overflow:hidden;}
.vt-dati-foto img{width:100%;object-fit:cover;aspect-ratio:1/1;}
.vt-dati-info{min-width:0;}
.vt-dati-info h2{font-size:1.6rem;color:var(--vd-deep);margin-bottom:8px;}
.vt-dati-info h2 a{color:inherit;text-decoration:none;}
.vt-dati-info h2 a:hover{color:var(--vd-primary-dark);}
.vt-dati-info p{color:#6b5450;font-size:.97rem;line-height:1.7;display:flex;flex-direction:column;gap:10px;}
.vt-info-row{display:flex;gap:10px;align-items:flex-start;}
.vt-info-row svg{flex:0 0 18px;width:18px;height:18px;stroke:var(--vd-primary);fill:none;stroke-width:2;margin-top:3px;}
.vt-dati-info a{color:var(--vd-deep);}
.scheda-block{background:#fff;border:1px solid rgba(36,16,18,.1);border-radius:var(--vd-radius);padding:26px 28px;margin-bottom:22px;}
.vt-descr{font-size:1.05rem;line-height:1.7;color:var(--vd-text);}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.gallery-item{display:block;overflow:hidden;background:var(--vd-light);min-width:0;}
.gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .2s ease;}
.gallery-item:hover img{transform:scale(1.06);}
@media (max-width:600px){.vt-dati{grid-template-columns:1fr;}}
@media (max-width:1000px){.vt-grid{grid-template-columns:1fr;}}
@media (max-width:600px){.vt-item{grid-template-columns:1fr;}.vt-thumb img{min-height:180px;max-height:220px;}}

@media (max-width:767px){
  .vd-hero{min-height:460px;border-radius:0 0 20px 20px;}
  .vd-section{padding:48px 0;}
  .vd-promo{padding:32px;text-align:center;}
}
