/* Fotogallery iDelivery: griglia e visualizzatore con zoom */
.gal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1023px) { .gal-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .gal-grid { grid-template-columns: 1fr; } }
.gal-card { display: flex; flex-direction: column; gap: 12px; text-align: left; background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: zoom-in; }
.gal-card__img { position: relative; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: var(--p-surface); }
.gal-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.gal-card:hover .gal-card__img img, .gal-card:focus-visible .gal-card__img img { transform: scale(1.03); }
.gal-card:focus-visible { outline: 2px solid var(--p-accent); outline-offset: 6px; border-radius: 16px; }
.gal-card__title { font-size: 18px; line-height: 1.3; color: var(--p-ink); }
.gal-card__meta { font-size: 14px; color: var(--p-muted); }

.lb { position: fixed; inset: 0; z-index: 1000; background: rgba(12, 20, 44, .94); color: #fff; display: grid; grid-template-rows: 1fr auto; }
.lb[hidden] { display: none; }
.lb__stage { position: relative; overflow: hidden; touch-action: none; cursor: zoom-in; display: grid; place-items: center; }
.lb__stage.is-zoomed { cursor: grab; }
.lb__stage.is-dragging { cursor: grabbing; }
.lb__img { max-width: 92vw; max-height: calc(100vh - 150px); object-fit: contain; transform-origin: 0 0; user-select: none; -webkit-user-drag: none; transition: transform .2s ease; will-change: transform; }
.lb__stage.is-dragging .lb__img { transition: none; }
.lb__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px max(16px, 3vw); }
.lb__title { font-size: 18px; margin: 0; }
.lb__meta { font-size: 14px; opacity: .75; margin: 2px 0 0; }
.lb__tools { display: flex; gap: 8px; flex-wrap: wrap; }
.lb button { min-width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); background: rgba(12,20,44,.6); color: #fff; font: 500 18px/1 var(--font-text); cursor: pointer; padding: 0 14px; }
.lb button:hover { background: rgba(12,20,44,.85); }
.lb button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.lb__close { position: absolute; top: 16px; right: 16px; z-index: 2; }
.lb__prev, .lb__next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.lb__prev { left: 16px; } .lb__next { right: 16px; }
.lb__count { font-size: 14px; opacity: .75; align-self: center; min-width: 48px; text-align: center; }
@media (max-width: 639px) { .lb__bar { flex-direction: column; align-items: flex-start; } .lb__prev, .lb__next { top: auto; bottom: 120px; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lb__img, .gal-card__img img { transition: none; } }

/* videogallery: anteprima locale, il video YouTube si carica solo al clic */
.vid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1023px) { .vid-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .vid-grid { grid-template-columns: 1fr; } }
.vid { display: flex; flex-direction: column; gap: 12px; }
.vid__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: var(--p-inv-bg); }
.vid__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vid__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; cursor: pointer; background: var(--p-inv-bg); display: block; }
.vid__play img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1), opacity .3s; }
.vid__play:hover img, .vid__play:focus-visible img { transform: scale(1.03); opacity: .9; }
.vid__play:focus-visible { outline: 3px solid var(--p-accent); outline-offset: -3px; }
.vid__btn { position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; background: rgba(255,255,255,.95); display: grid; place-items: center; box-shadow: 0 8px 30px rgba(0,0,0,.25); transition: transform .2s; }
.vid__btn svg { width: 26px; height: 26px; margin-left: 4px; fill: var(--p-ink); }
.vid__play:hover .vid__btn { transform: scale(1.06); }
.vid__ph { position: absolute; inset: 0; display: grid; place-items: end start; padding: 20px; color: #fff; font-size: 18px; }
.vid__note { font-size: 13px; color: var(--p-muted); margin-top: 16px; }
