:root{
  --sl-primary:#8a5a2b;
  --sl-primary-dark:#5e3b1a;
  --sl-deep:#3b2615;
  --sl-accent:#d98a2b;
  --sl-accent-dark:#b56f1e;
  --sl-light:#faf3ea;
  --sl-text:#2e2013;
  --sl-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(--sl-text);
  background:#fff;
}
h1,h2,h3,h4,.sl-font-display{
  font-weight:700;
  letter-spacing:-.01em;
}
a{color:var(--sl-primary);}
a:hover{color:var(--sl-accent-dark);}

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

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

/* ---------- Hero ---------- */
.sl-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;
}
.sl-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(59,38,21,.82) 0%,rgba(59,38,21,.46) 48%,rgba(59,38,21,.1) 100%);
}
.sl-hero .container{position:relative;z-index:2;}
.sl-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.08;margin-bottom:1rem;}
.sl-hero p.lead{font-size:1.15rem;max-width:560px;color:#f3e9da;}
.sl-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 ---------- */
.sl-section{padding:72px 0;}
.sl-section.soft{background:var(--sl-light);}
.sl-section-head{max-width:760px;margin:0 auto 40px;text-align:center;}
.sl-section-head h2{font-size:clamp(1.7rem,3vw,2.4rem);}
.sl-section-head p{color:#6b573f;font-size:1.05rem;}

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

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

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

/* ---------- Product cards (bestseller) ---------- */
.sl-product{
  background:#fff;border-radius:var(--sl-radius);overflow:hidden;height:100%;
  box-shadow:0 2px 14px rgba(59,38,21,.08);border:1px solid rgba(59,38,21,.06);
  transition:transform .2s ease,box-shadow .2s ease;
}
.sl-product:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(59,38,21,.14);}
.sl-product img{width:100%;height:210px;object-fit:cover;}
.sl-product-body{padding:20px;}
.sl-badge-bestseller{
  background:var(--sl-accent);color:#fff;font-weight:700;font-size:.72rem;
  padding:.3rem .7rem;border-radius:999px;letter-spacing:.03em;text-transform:uppercase;
}

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

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

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

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

/* ---------- 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(--sl-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(59,38,21,.1);
  overflow:hidden;transition:box-shadow .2s,transform .2s;
}
.vt-item:hover{box-shadow:0 10px 24px rgba(59,38,21,.14);transform:translateY(-2px);}
.vt-thumb{display:block;background:var(--sl-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(--sl-deep);text-decoration:none;}
.vt-body h3 a:hover{color:var(--sl-accent-dark);}
.vt-body p{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:#6b573f;margin-bottom:6px;}
.vt-body p svg{flex:0 0 18px;width:18px;height:18px;stroke:var(--sl-primary);fill:none;stroke-width:2;margin-top:3px;}
.vt-body a[href^="tel:"]{color:var(--sl-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(59,38,21,.1);border-radius:var(--sl-radius);padding:24px;}
.widget-box h3{color:var(--sl-deep);margin-bottom:10px;}
.widget-box p{font-size:.93rem;color:#6b573f;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(--sl-deep);font-size:.95rem;}
.widget-box li a:hover{color:var(--sl-accent-dark);}
.widget-alert{border-left:6px solid var(--sl-accent);}

/* ---------- Scheda azienda (detail page) ---------- */
.sl-crumbs{font-size:.85rem;color:#f3e9da;opacity:.85;margin-bottom:10px;}
.sl-crumbs a{color:#fff;text-decoration:underline;}
.vt-dati{
  display:grid;grid-template-columns:200px 1fr;gap:26px;background:#fff;
  border-radius:var(--sl-radius);box-shadow:0 2px 14px rgba(59,38,21,.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(--sl-deep);margin-bottom:8px;}
.vt-dati-info h2 a{color:inherit;text-decoration:none;}
.vt-dati-info h2 a:hover{color:var(--sl-accent-dark);}
.vt-dati-info p{color:#6b573f;font-size:.97rem;line-height:1.7;}
.vt-dati-info a{color:var(--sl-deep);}
.scheda-block{background:#fff;border:1px solid rgba(59,38,21,.1);border-radius:var(--sl-radius);padding:26px 28px;margin-bottom:22px;}
.vt-descr{font-size:1.05rem;line-height:1.7;color:var(--sl-text);}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.gallery-item{display:block;overflow:hidden;background:var(--sl-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){
  .sl-hero{min-height:460px;border-radius:0 0 20px 20px;}
  .sl-section{padding:48px 0;}
  .sl-promo{padding:32px;text-align:center;}
}
