.gallery-hero{margin:0 auto;max-width:800px;padding:40px 24px 16px;text-align:center}.gallery-hero h1{color:var(--color-btn-main);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;letter-spacing:-.02em;margin:0 0 16px}.gallery-intro{color:var(--color-text-secondary,#555);font-size:1.05rem;line-height:1.6;margin:0}.gallery-video{margin:8px auto 0;max-width:880px;padding:16px 24px 0}.gallery-video-heading{color:var(--color-btn-main);font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:700;margin:0 0 16px;text-align:center}.gallery-video-frame{aspect-ratio:16/9;background:#000;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;position:relative}.gallery-video-frame iframe{border:0;height:100%;inset:0;position:absolute;width:100%}.gallery-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:0 auto;max-width:1200px;padding:24px 40px 48px}.gallery-card{background:var(--color-bg-white);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.gallery-card .gallery-link{color:inherit;display:block;text-decoration:none}.gallery-figure{display:flex;flex-direction:column;margin:0}.gallery-img{background:var(--color-surface-subtle,#f2f2f2);display:block;height:220px;object-fit:cover;transition:transform .25s ease;width:100%}.gallery-card .gallery-link:focus-visible .gallery-img,.gallery-card .gallery-link:hover .gallery-img{transform:scale(1.04)}.gallery-caption{color:var(--color-text,#333);font-size:.95rem;line-height:1.4;padding:12px 16px}.gallery-cta{align-self:flex-start;color:var(--color-btn-main);font-size:.875rem;font-weight:700;margin:0 16px 16px;text-decoration:none;transition:opacity .2s ease}.gallery-cta:after{content:" →"}.gallery-cta:focus-visible,.gallery-cta:hover{opacity:.75;text-decoration:underline}@media(max-width:500px){.gallery-hero{padding:28px 16px 8px}.gallery-video{padding:8px 16px 0}.gallery-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));padding:16px 16px 40px}.gallery-img{height:160px}}