.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.gallery-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.gallery-item{display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--transition)}
.gallery-item:hover img{transform:scale(1.035)}
.gallery-item:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.gallery-card-copy{padding:1rem}
.gallery-card-copy h3,.gallery-slide-caption h3{margin:0 0 .45rem;font-size:1rem;font-weight:700;color:var(--text)}
.gallery-card-copy p,.gallery-slide-caption p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.55}
.home-gallery-section{overflow:hidden}
.gallery-carousel{position:relative;max-width:1120px;margin-inline:auto;outline:none}
.gallery-carousel:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
.gallery-carousel-stage{position:relative;height:clamp(280px,38vw,500px);perspective:1500px;transform-style:preserve-3d;isolation:isolate}
.gallery-slide{position:absolute;top:50%;left:50%;width:min(78%,820px);aspect-ratio:16/9;transform:translate(-50%,-50%) translateX(var(--coverflow-x,0%)) translateZ(var(--coverflow-depth,0)) rotateY(var(--coverflow-turn,0deg)) scale(var(--coverflow-scale,1));transform-style:preserve-3d;transform-origin:center;transition:transform .7s cubic-bezier(.2,.75,.25,1),opacity .55s ease,filter .55s ease;}
.gallery-slide[data-position="active"],.gallery-slide[data-position="previous"],.gallery-slide[data-position="next"]{will-change:transform,opacity}
.gallery-slide img{display:block;width:100%;height:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg);object-fit:cover;}
.gallery-slide:not([data-position="active"]){cursor:pointer}
.gallery-slide[data-position="active"]{filter:saturate(1);}
.gallery-carousel-control{position:absolute;z-index:30;top:50%;display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(18,34,48,.76);color:#fff;cursor:pointer;transform:translateY(-50%);transition:background-color .2s ease,transform .2s ease}
.gallery-carousel-control:hover{background:rgba(18,34,48,.95);transform:translateY(-50%) scale(1.05)}
.gallery-carousel-control:focus-visible,.gallery-carousel-dot:focus-visible,.gallery-carousel-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.gallery-carousel-prev{left:.75rem}
.gallery-carousel-next{right:.75rem}
.gallery-carousel-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:820px;min-height:112px;margin:0 auto;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);box-shadow:var(--shadow-sm)}
.gallery-carousel-caption h3{margin:0 0 .4rem;color:var(--text);font-size:1.15rem;font-weight:700}
.gallery-carousel-caption p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55}
.gallery-carousel-count{flex:0 0 auto;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}
.gallery-carousel-toolbar{position:relative;display:flex;align-items:center;justify-content:center;max-width:820px;margin:0 auto;padding:.8rem 3rem 0}
.gallery-carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:.2rem;padding:.2rem 0}
.gallery-carousel-dot{display:grid;flex:0 0 44px;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}
.gallery-carousel-dot::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--border);transition:background-color .2s ease,transform .2s ease}
.gallery-carousel-dot[aria-current="true"]::before{background:var(--primary);transform:scale(1.25)}
.gallery-carousel-toggle{position:absolute;right:0;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}
.gallery-carousel-toggle:disabled{cursor:not-allowed;opacity:.55}
@media(min-width:576px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}}
@media(min-width:992px){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:991px){.gallery-carousel-stage{height:clamp(250px,44vw,420px)}.gallery-slide{width:min(84%,760px)}}
@media(max-width:575px){.gallery-carousel-stage{height:clamp(205px,58vw,310px);perspective:900px}.gallery-slide{width:min(94%,620px)}.gallery-carousel-control{width:44px;height:44px}.gallery-carousel-prev{left:.25rem}.gallery-carousel-next{right:.25rem}.gallery-carousel-caption{min-height:120px;padding:.9rem 1rem}.gallery-carousel-caption h3{font-size:1.02rem}.gallery-carousel-caption p{font-size:.88rem}.gallery-carousel-toolbar{padding:.8rem 3rem 0 1.5rem}}
@media(prefers-reduced-motion:reduce){.gallery-item img{transition:none}.gallery-slide,.gallery-carousel-control,.gallery-carousel-dot{transition:none!important;will-change:auto}}
