.sw-gallery-hero {
    background: linear-gradient(135deg, #111827 0%, #1f2937 70%, #8f171b 140%);
    color: #fff;
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.sw-gallery-hero .container { max-width: 850px; }
.sw-gallery-hero h1 { color: #fff; font-size: clamp(2.5rem, 6vw, 5rem); margin-bottom: 1rem; }
.sw-gallery-hero p:not(.sw-eyebrow) { color: #e5e7eb; font-size: 1.1rem; max-width: 68ch; }
.sw-gallery-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.sw-gallery-hero .sw-btn-outline { background: transparent; border-color: #fff; color: #fff; }
.sw-gallery-hero .sw-btn-outline:hover,
.sw-gallery-hero .sw-btn-outline:focus-visible { background: #fff; color: #111827; }

.sw-gallery-heading { align-items: end; display: flex; justify-content: space-between; gap: 1rem; }
.sw-gallery-heading > a { font-weight: 700; }
.sw-gallery-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sw-gallery-card { background: #fff; border: 1px solid #e5e7eb; margin: 0; overflow: hidden; }
.sw-gallery-card > a { display: block; overflow: hidden; position: relative; }
.sw-gallery-card img { aspect-ratio: 16 / 11; display: block; object-fit: cover; transition: transform .25s ease; width: 100%; }
.sw-gallery-card > a > span { align-items: center; background: rgba(17, 24, 39, .82); bottom: .75rem; color: #fff; display: flex; height: 44px; justify-content: center; position: absolute; right: .75rem; width: 44px; }
.sw-gallery-card > a:hover img, .sw-gallery-card > a:focus-visible img { transform: scale(1.025); }
.sw-gallery-card > a:focus-visible { outline: 3px solid #b91c1c; outline-offset: -3px; }
.sw-gallery-card figcaption { display: grid; gap: .2rem; padding: 1rem; }
.sw-gallery-card figcaption span { color: #4b5563; }
.sw-gallery-empty { align-items: center; border: 1px dashed #9ca3af; display: flex; flex-direction: column; padding: clamp(2.5rem, 6vw, 5rem) 1.5rem; text-align: center; }
.sw-gallery-empty > i { color: #8f171b; font-size: 2.5rem; }
.sw-gallery-empty p { color: #4b5563; max-width: 60ch; }
.sw-gallery-other .container { align-items: center; display: flex; justify-content: space-between; gap: 1rem; }
.sw-gallery-other .container > div { display: flex; flex-wrap: wrap; gap: 1rem; }

@media (max-width: 991px) { .sw-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) {
    .sw-gallery-grid { grid-template-columns: 1fr; }
    .sw-gallery-heading, .sw-gallery-other .container { align-items: flex-start; flex-direction: column; }
    .sw-gallery-hero__actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .sw-gallery-card img { transition: none; } }
