/* ---------- Galleria ---------- */
.gal-main{padding-top:5rem}

.gal-hero{
  padding:clamp(2.5rem,7vw,5rem) clamp(1.2rem,4vw,3.5rem) clamp(1.5rem,4vw,2.5rem);
  max-width:1180px;margin:0 auto;
}
.gal-hero h1{
  font-family:var(--display);font-weight:900;text-transform:uppercase;
  font-size:clamp(2.6rem,8vw,5rem);line-height:.95;color:var(--crema);
}
.gal-hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:2px var(--ambra);margin-right:.15em}
.gal-hero p{color:var(--crema-dim);font-size:1.05rem;max-width:46rem;margin-top:.9rem}

/* ---------- sezione progettazione (tavole CAD) ---------- */
.progetto{
  padding:clamp(1.5rem,4vw,2.5rem) clamp(1.2rem,4vw,3.5rem) clamp(2rem,5vw,3.5rem);
  max-width:1180px;margin:0 auto;
}
.progetto__label{
  font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ambra);margin-bottom:.4rem;
}
.progetto h2{
  font-family:var(--display);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.8rem,5vw,3rem);line-height:1;color:var(--crema);margin-bottom:.6rem;
}
.progetto p{color:var(--crema-dim);max-width:44rem;margin-bottom:1.6rem}
.tavole{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.tavola{
  background:#f4f1ea;border:1px solid rgba(240,165,0,.35);
  display:block;cursor:zoom-in;overflow:hidden;
}
.tavola img{width:100%;height:auto;display:block;background:#fff}
.tavola figcaption{
  font-family:var(--body);font-weight:500;font-size:.82rem;letter-spacing:.04em;
  color:var(--carbone);background:var(--ambra);padding:.55rem .9rem;
}

/* ---------- griglia foto (masonry via columns) ---------- */
.galleria{
  padding:clamp(1rem,3vw,2rem) clamp(1.2rem,4vw,3.5rem) 4rem;
  max-width:1320px;margin:0 auto;
  column-count:4;column-gap:.9rem;
}
@media (max-width:1100px){.galleria{column-count:3}}
@media (max-width:720px){.galleria{column-count:2}}
@media (max-width:420px){.galleria{column-count:1}}

.tile{
  display:block;margin:0 0 .9rem;break-inside:avoid;position:relative;
  background:var(--fumo,#2a2723);cursor:zoom-in;overflow:hidden;
}
.tile img{
  width:100%;height:auto;display:block;
  transition:transform .5s ease,filter .5s ease;filter:brightness(.94);
}
.tile:hover img,.tile:focus-visible img{transform:scale(1.05);filter:brightness(1.05)}
.tile::after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 0 0 0 var(--ambra);transition:box-shadow .2s;
}
.tile:hover::after,.tile:focus-visible::after{box-shadow:inset 0 0 0 3px var(--ambra)}

/* ---------- lightbox ---------- */
.lb{
  position:fixed;inset:0;z-index:1000;display:none;
  background:rgba(12,11,10,.94);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;
}
.lb.is-open{display:flex}
.lb__img{
  max-width:92vw;max-height:86vh;width:auto;height:auto;
  object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.lb__img.is-sheet{background:#fff}
.lb__btn{
  position:absolute;background:none;border:0;color:var(--crema);cursor:pointer;
  font-family:var(--display);font-weight:900;line-height:1;
  width:3.4rem;height:3.4rem;display:grid;place-items:center;font-size:2rem;
  transition:color .18s,transform .18s;
}
.lb__btn:hover{color:var(--ambra-chiara);transform:scale(1.12)}
.lb__close{top:.6rem;right:.8rem;font-size:2.4rem}
.lb__prev{left:.4rem;top:50%;translate:0 -50%}
.lb__next{right:.4rem;top:50%;translate:0 -50%}
.lb__count{
  position:absolute;bottom:1rem;left:50%;translate:-50% 0;
  font-family:var(--body);font-size:.85rem;letter-spacing:.14em;color:var(--crema-dim);
}
@media (max-width:600px){
  .lb__prev{left:0}.lb__next{right:0}
  .lb__img{max-width:96vw;max-height:80vh}
}
@media (prefers-reduced-motion:reduce){
  .tile img,.lb__btn{transition:none}
  .tile:hover img,.tile:focus-visible img{transform:none}
}

/* ---------- footer contatti mini ---------- */
.gal-foot{
  text-align:center;padding:3rem 1.5rem;border-top:1px solid rgba(240,165,0,.25);
}
.gal-foot a.tel{
  font-family:var(--display);font-weight:900;font-size:clamp(1.4rem,4vw,2rem);
  color:var(--crema);text-decoration:none;display:inline-block;margin:0 1rem .4rem;
}
.gal-foot a.tel:hover{color:var(--ambra-chiara)}
.gal-foot .mail{display:block;color:var(--crema);font-weight:700;margin-top:.4rem}
.gal-foot address{font-style:normal;color:var(--crema-dim);font-size:.9rem;margin-top:.5rem}
.gal-foot .small{color:var(--crema-dim);font-size:.78rem;margin-top:1.4rem;letter-spacing:.05em}
