.gallery-grid.is-carousel { display:block; position:relative; background:#f3f5f6; border:1px solid #dce1e4; border-radius:8px; overflow:hidden; }
.gallery-grid.is-carousel figure { display:none; border:0; border-radius:0; background:transparent; }
.gallery-grid.is-carousel figure.is-active { display:block; animation:gallery-reveal .45s ease; }
.gallery-grid.is-carousel figure img { display:block; width:100%; height:480px; object-fit:contain; padding:20px; background:#f3f5f6; cursor:zoom-in; }
.gallery-grid.is-carousel figcaption { min-height:72px; padding:20px 170px 20px 24px; color:#20282c; background:#fff; font-size:18px; overflow-wrap:anywhere; }
.gallery-controls { display:flex; align-items:center; gap:8px; position:absolute; bottom:14px; right:16px; }
.gallery-controls button,.gallery-close { display:grid; place-items:center; width:40px; height:40px; padding:0; border:1px solid #cbd3d8; border-radius:4px; background:#fff; color:#20282c; font-size:23px; cursor:pointer; }
.gallery-controls button:hover { background:#e7eef0; }
.gallery-controls button:focus-visible,.gallery-thumbs button:focus-visible,.gallery-close:focus-visible { outline:3px solid #08716e; outline-offset:2px; }
.gallery-thumbs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-top:16px; }
.gallery-thumbs button { min-width:0; padding:4px; border:2px solid transparent; border-radius:6px; background:#f3f5f6; cursor:pointer; }
.gallery-thumbs button[aria-pressed="true"] { border-color:#08716e; background:#e4f0ed; }
.gallery-thumbs img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; height:auto; }
.gallery-lightbox { border:0; border-radius:8px; padding:48px 16px 16px; width:min(1100px,94vw); max-width:94vw; background:#fff; }
.gallery-lightbox::backdrop { background:rgba(0,0,0,.8); }
.gallery-lightbox img { display:block; width:100%; height:75vh; object-fit:contain; }
.gallery-close { position:absolute; top:6px; right:8px; }
@keyframes gallery-reveal { from { opacity:.35; } to { opacity:1; } }
@media(max-width:700px) {
  .gallery-grid.is-carousel figure img { height:330px; padding:10px; }
  .gallery-grid.is-carousel figcaption { font-size:16px; min-height:112px; padding:14px 16px 60px; }
  .gallery-controls { bottom:10px; right:12px; }
  .gallery-thumbs { gap:6px; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gallery-lightbox img { height:65vh; }
}
@media(prefers-reduced-motion:reduce) { .gallery-grid.is-carousel figure.is-active { animation:none; } }
