:root{
  --arancio: #E15316;
  --arancio-scuro: #B23F0F;
  --arancio-vivo: #FF6A25;
  --carbone: #23201C;
  --carbone-2: #33302A;
  --panna: #F7F1E8;
  --panna-2: #EFE6D6;
  --verde-toto: #3C7A3E;
  --blu-slot: #2E6FA7;
  --teal-iqos: #0E7C7B;
  --ombra: 0 18px 40px -18px rgba(35,32,28,.45);
  font-size: 17px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  color:var(--carbone);
  background:var(--panna);
  line-height:1.55;
}
img{max-width:100%; display:block;}
h1,h2,h3{
  font-family:'Archivo', sans-serif;
  font-weight:900;
  letter-spacing:-0.02em;
  margin:0;
}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,56px);}

/* ---------- topbar ---------- */
.topbar{
  position:sticky; top:0; z-index:40;
  background:var(--carbone);
  color:var(--panna);
}
.topbar .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; padding-bottom:14px;
  gap:16px;
}
.marchio{
  font-family:'Archivo', sans-serif;
  font-weight:900;
  font-size:1.05rem;
  letter-spacing:-0.01em;
  text-decoration:none;
  color:var(--panna);
  line-height:1.1;
}
.marchio span{display:block; font-weight:600; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--arancio-vivo); margin-top:3px;}
.topbar-azioni{display:flex; align-items:center; gap:14px;}
.stato-aperto{
  display:flex; align-items:center; gap:8px;
  font-size:.82rem; font-weight:600;
}
.pallino{width:9px; height:9px; border-radius:50%; background:#5FBF63; box-shadow:0 0 0 4px rgba(95,191,99,.25); flex:none;}
.pallino.chiuso{background:#D9503A; box-shadow:0 0 0 4px rgba(217,80,58,.25);}
.btn-chiama{
  background:var(--arancio); color:#fff; text-decoration:none;
  font-weight:700; font-size:.82rem;
  padding:9px 16px; border-radius:999px;
  white-space:nowrap;
  transition:background .18s ease, transform .18s ease;
}
.btn-chiama:hover{background:var(--arancio-vivo); transform:translateY(-1px);}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex; align-items:flex-end;
  color:#fff;
  overflow:hidden;
}
.hero-img{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center 62%;
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(0deg, rgba(20,16,12,.92) 0%, rgba(20,16,12,.62) 38%, rgba(20,16,12,.18) 65%, rgba(20,16,12,.05) 100%);
}
.hero-contenuto{
  position:relative; z-index:2;
  padding:clamp(28px,7vw,64px) 0 clamp(40px,8vw,76px);
  width:100%;
}
.hero-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(247,241,232,.14);
  border:1px solid rgba(247,241,232,.35);
  backdrop-filter:blur(6px);
  padding:7px 14px 7px 12px;
  border-radius:999px;
  font-size:.78rem; font-weight:600;
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(2.4rem, 6.4vw, 4.6rem);
  line-height:.98;
  max-width:14ch;
}
.hero-claim{
  margin-top:20px;
  font-size:clamp(1.02rem, 2vw, 1.22rem);
  max-width:46ch;
  color:rgba(247,241,232,.92);
  font-weight:400;
}
.hero-cta{
  margin-top:32px;
  display:flex; flex-wrap:wrap; gap:14px;
}
.cta-primaria, .cta-secondaria{
  text-decoration:none;
  font-weight:700;
  font-size:.95rem;
  padding:14px 26px;
  border-radius:999px;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
  display:inline-flex; align-items:center; gap:10px;
}
.cta-primaria{background:var(--arancio); color:#fff;}
.cta-primaria:hover{background:var(--arancio-vivo); transform:translateY(-2px);}
.cta-secondaria{background:transparent; color:#fff; border:1.5px solid rgba(247,241,232,.55);}
.cta-secondaria:hover{border-color:#fff; transform:translateY(-2px);}
.hero-meta{
  margin-top:34px;
  display:flex; flex-wrap:wrap; gap:28px;
  font-size:.85rem;
  color:rgba(247,241,232,.78);
}
.hero-meta strong{display:block; color:#fff; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.5rem; letter-spacing:-.01em;}

/* ---------- sezione servizi: bande insegna ---------- */
.servizi{
  background:var(--carbone);
  padding:clamp(64px,10vw,120px) 0 clamp(50px,8vw,90px);
}
.servizi-intro{max-width:56ch; margin-bottom:44px;}
.servizi-intro h2{color:var(--panna); font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.05;}
.servizi-intro p{color:rgba(247,241,232,.68); margin-top:16px; font-size:1.02rem;}

.bande{display:flex; flex-direction:column; border-top:1px solid rgba(247,241,232,.14);}
.banda{
  border-bottom:1px solid rgba(247,241,232,.14);
  padding:22px 0;
  cursor:pointer;
  position:relative;
}
.banda-riga{
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  flex-wrap:wrap;
}
.banda-nome{
  font-family:'Archivo',sans-serif; font-weight:900;
  font-size:clamp(1.5rem,4vw,2.5rem);
  letter-spacing:-0.02em;
  color:var(--panna);
  transition:color .2s ease;
}
.banda-tag{
  font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; color:#1b1b1b; flex:none;
}
.banda-apri{
  flex:none; width:26px; height:26px; border-radius:50%;
  border:1.5px solid rgba(247,241,232,.4);
  position:relative;
  transition:transform .3s ease, border-color .2s ease;
}
.banda-apri::before, .banda-apri::after{
  content:""; position:absolute; left:50%; top:50%;
  background:rgba(247,241,232,.85);
  transform:translate(-50%,-50%);
}
.banda-apri::before{width:10px; height:2px;}
.banda-apri::after{width:2px; height:10px; transition:opacity .25s ease;}
.banda.aperta .banda-apri{transform:rotate(45deg); border-color:var(--arancio-vivo);}
.banda-desc{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1), opacity .3s ease;
  opacity:0;
}
.banda-desc-int{overflow:hidden;}
.banda-desc p{
  color:rgba(247,241,232,.78);
  max-width:60ch;
  font-size:.98rem;
  margin:0;
  padding-top:14px;
}
.banda:hover .banda-desc, .banda:focus-within .banda-desc, .banda.aperta .banda-desc{
  grid-template-rows:1fr; opacity:1;
}
.banda:hover .banda-nome, .banda:focus-within .banda-nome, .banda.aperta .banda-nome{color:var(--arancio-vivo);}
.banda[data-colore="tabaccheria"] .banda-tag{background:#EFE6D6;}
.banda[data-colore="toto"] .banda-tag{background:#BFE3C2;}
.banda[data-colore="slot"] .banda-tag{background:#BFE0F5;}
.banda[data-colore="iqos"] .banda-tag{background:#9FE0DD;}
.banda[data-colore="servizi"] .banda-tag{background:#F5D7C3;}

/* ---------- IQOS in evidenza ---------- */
.iqos-sezione{
  background:linear-gradient(180deg, #0B4B4A 0%, #0E7C7B 100%);
  color:#fff;
  padding:clamp(64px,10vw,120px) 0;
}
.iqos-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.iqos-badge{
  display:inline-block;
  font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.35);
  padding:7px 14px; border-radius:999px;
  margin-bottom:20px;
}
.iqos-testo h2{font-size:clamp(2rem,4.6vw,3rem); line-height:1.04;}
.iqos-testo p{margin-top:18px; color:rgba(255,255,255,.86); max-width:48ch; font-size:1.02rem;}
.iqos-lista{list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:10px;}
.iqos-lista li{
  font-size:.96rem; font-weight:500;
  padding-left:22px; position:relative;
  color:rgba(255,255,255,.92);
}
.iqos-lista li::before{
  content:""; position:absolute; left:0; top:.5em;
  width:9px; height:9px; border-radius:2px;
  background:#7FE6E1;
  transform:rotate(45deg);
}
.iqos-foto{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--ombra);
}
.iqos-foto img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/5;}
.iqos-foto figcaption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(0deg, rgba(6,26,26,.82), transparent);
  color:#fff; font-size:.78rem; padding:16px 18px 12px;
}

/* ---------- galleria ---------- */
.galleria{
  padding:clamp(64px,10vw,120px) 0;
}
.galleria-intro{max-width:56ch; margin-bottom:40px;}
.galleria-intro h2{font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.05;}
.galleria-intro p{margin-top:16px; color:var(--carbone-2); font-size:1.02rem;}
.griglia-foto{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:120px;
  gap:10px;
}
.griglia-foto figure{
  margin:0; overflow:hidden; border-radius:12px; position:relative;
  grid-column:span 2; grid-row:span 2;
}
.griglia-foto figure.g-largo{grid-column:span 4;}
.griglia-foto figure.g-alto{grid-row:span 3;}
.griglia-foto img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.griglia-foto figure:hover img{transform:scale(1.06);}
.griglia-foto figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:10px 12px;
  font-size:.72rem; font-weight:600;
  color:#fff;
  background:linear-gradient(0deg, rgba(20,16,12,.75), transparent);
  opacity:0; transition:opacity .25s ease;
}
.griglia-foto figure:hover figcaption{opacity:1;}

/* ---------- dove siamo ---------- */
.dove{
  background:var(--panna-2);
  padding:clamp(64px,10vw,120px) 0;
}
.dove-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,64px);
  align-items:start;
}
.dove h2{font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.05;}
.orari{margin-top:28px; width:100%; border-collapse:collapse;}
.orari tr{border-bottom:1px solid rgba(35,32,28,.12);}
.orari td{padding:10px 0; font-size:.96rem;}
.orari td:first-child{font-weight:700; width:40%;}
.orari tr.oggi td{color:var(--arancio-scuro); font-weight:700;}
.indirizzo-box{
  margin-top:26px;
  padding:20px 22px;
  background:#fff;
  border-radius:14px;
  box-shadow:var(--ombra);
}
.indirizzo-box p{margin:0 0 6px; font-size:.98rem;}
.indirizzo-box a{color:var(--arancio-scuro); font-weight:700; text-decoration:none;}
.mappa-frame{
  border-radius:16px; overflow:hidden; box-shadow:var(--ombra);
  border:0; width:100%; height:420px;
}

/* ---------- contatti / footer ---------- */
footer.contatti{
  background:var(--carbone);
  color:var(--panna);
  padding:clamp(56px,8vw,90px) 0 34px;
}
.contatti-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr;
  gap:40px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(247,241,232,.14);
}
.contatti-grid h3{font-size:1.5rem; margin-bottom:14px;}
.contatti-grid p{color:rgba(247,241,232,.72); font-size:.95rem; max-width:36ch;}
.contatti-col h4{
  font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(247,241,232,.55); margin-bottom:14px;
}
.contatti-col a{
  display:block; text-decoration:none; color:var(--panna);
  font-size:1.02rem; font-weight:600; margin-bottom:10px;
}
.contatti-col a:hover{color:var(--arancio-vivo);}
.recensioni{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(247,241,232,.1); padding:8px 14px; border-radius:999px;
  font-size:.85rem; font-weight:600; margin-top:6px;
  text-decoration:none; color:var(--panna);
}
.stelle{color:#FFC24B; letter-spacing:1px;}
.fine{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding-top:26px; font-size:.78rem; color:rgba(247,241,232,.45);
}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);}
.reveal.in{opacity:1; transform:none;}

@media (max-width: 880px){
  .iqos-grid, .dove-grid{grid-template-columns:1fr;}
  .contatti-grid{grid-template-columns:1fr; gap:30px;}
  .griglia-foto{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;}
  .griglia-foto figure{grid-column:span 1; grid-row:span 2;}
  .griglia-foto figure.g-largo{grid-column:span 2;}
  .griglia-foto figure.g-alto{grid-row:span 2;}
  .hero{min-height:92vh;}
}
@media (max-width: 640px){
  .topbar .wrap{flex-wrap:wrap; row-gap:12px;}
  .marchio span{display:none;}
  .topbar-azioni{width:100%; justify-content:space-between;}
  .stato-aperto{white-space:nowrap;}
  .banda-riga{gap:12px;}
}
