.te-gallery-section-enhanced .section-header::after { content: "Clicca su una foto per aprirla a tutto schermo."; display: block; margin-top: .75rem; color: var(--te-muted, #666); }
.te-gallery-enhanced { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(190px, 24vw); gap: 1rem; }
.te-gallery-enhanced a { position: relative; display: block; aspect-ratio: auto; overflow: hidden; background: #eee; }
.te-gallery-enhanced a:first-child:nth-last-child(n+3) { grid-column: span 2; grid-row: span 2; }
.te-gallery-enhanced img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.te-gallery-enhanced a:hover img,
.te-gallery-enhanced a:focus img { transform: scale(1.04); }
.te-gallery-enhanced a:focus-visible { outline: 4px solid var(--te-red, #b11226); outline-offset: 3px; }
.te-gallery-zoom { position: absolute; top: 1rem; right: 1rem; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: rgba(0,0,0,.72); color: #fff; font: 300 2rem/1 Poppins, sans-serif; transition: background .2s ease, transform .2s ease; }
.te-gallery-enhanced a:hover .te-gallery-zoom { background: var(--te-red, #b11226); transform: scale(1.08); }
body.te-lightbox-open { overflow: hidden; }
.te-lightbox { position: fixed; z-index: 100000; inset: 0; display: none; grid-template-columns: minmax(56px, 1fr) minmax(0, 1200px) minmax(56px, 1fr); align-items: center; padding: 2rem; background: rgba(8,8,8,.96); }
.te-lightbox.is-open { display: grid; }
.te-lightbox-figure { grid-column: 2; display: grid; max-height: calc(100vh - 4rem); margin: 0; justify-items: center; }
.te-lightbox-image { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; }
.te-lightbox-footer { display: flex; width: 100%; justify-content: space-between; gap: 2rem; padding-top: .8rem; color: #fff; }
.te-lightbox-counter { margin-left: auto; white-space: nowrap; font-weight: 700; }
.te-lightbox-close,
.te-lightbox-nav { border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; cursor: pointer; }
.te-lightbox-close:hover,
.te-lightbox-nav:hover { border-color: #fff; background: var(--te-red, #b11226); }
.te-lightbox-close:focus-visible,
.te-lightbox-nav:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.te-lightbox-close { position: absolute; top: 1.25rem; right: 1.25rem; z-index: 2; width: 50px; height: 50px; font-size: 2rem; line-height: 1; }
.te-lightbox-nav { width: 54px; height: 54px; justify-self: center; font-size: 1.5rem; }
.te-lightbox-prev { grid-column: 1; }
.te-lightbox-next { grid-column: 3; }
@media (max-width: 900px) {
  .te-gallery-enhanced { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(190px, 34vw); }
}
@media (max-width: 680px) {
  .te-gallery-enhanced { grid-template-columns: 1fr; grid-auto-rows: minmax(260px, 78vw); }
  .te-gallery-enhanced a:first-child:nth-last-child(n+3) { grid-column: auto; grid-row: auto; }
  .te-lightbox { grid-template-columns: 1fr 1fr; align-content: center; gap: 1rem; padding: 4.5rem 1rem 1rem; }
  .te-lightbox-figure { grid-column: 1 / -1; grid-row: 1; }
  .te-lightbox-image { max-height: calc(100vh - 11rem); }
  .te-lightbox-prev { grid-column: 1; grid-row: 2; }
  .te-lightbox-next { grid-column: 2; grid-row: 2; }
}
