
.torino-photo-gallery{padding:72px 0 0;background:#f8fafb;color:#32233c}
.tpg-wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.tpg-kicker{font-size:12px;font-weight:800;letter-spacing:.16em;color:#0875c7;text-transform:uppercase}
.tpg-title{font-size:clamp(30px,4vw,52px);line-height:1.12;margin:12px 0 14px;color:#32233c;font-weight:800}
.tpg-intro{font-size:17px;color:#55516b;margin:0 0 28px}
/* Full-bleed, seamless mosaic; all tiles remain controlled by gallery JSON. */
.tpg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(125px,15vw,260px);grid-auto-flow:row dense;gap:0;width:100%;overflow:hidden}
.tpg-tile{display:block;position:relative;min-width:0;min-height:0;border:0;padding:0;border-radius:0;overflow:hidden;background:#e8edf1;cursor:zoom-in}
.tpg-tile:nth-child(1){grid-column:span 2;grid-row:span 2}
.tpg-tile:nth-child(6){grid-column:span 2}
.tpg-tile.tpg-portrait{grid-column:span 1;grid-row:span 2;background:#e7ece9}
.tpg-tile.tpg-portrait img{object-fit:contain}
.tpg-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.tpg-tile:hover img{transform:scale(1.045)}
.tpg-tile:focus-visible{outline:3px solid #0875c7;outline-offset:-3px;z-index:1}
.tpg-dialog{border:0;border-radius:20px;padding:18px;background:white;max-width:min(92vw,980px);max-height:92vh;box-shadow:0 24px 80px #0005}
.tpg-dialog::backdrop{background:#101b22cc}
.tpg-dialog img{display:block;max-width:100%;max-height:calc(92vh - 80px);object-fit:contain;margin:auto}
.tpg-close{display:block;margin:0 0 12px auto;width:38px;height:38px;border:0;border-radius:50%;background:#f1eff4;color:#32233c;font-size:25px;cursor:pointer}
@media(max-width:700px){.tpg-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(130px,27vw,220px)}.tpg-tile:nth-child(6):not(.tpg-portrait){grid-column:span 2}}
@media(max-width:540px){.torino-photo-gallery{padding-top:48px}.tpg-grid{grid-auto-rows:clamp(115px,32vw,180px)}}
@media(prefers-reduced-motion:reduce){.tpg-tile img{transition:none}}
