.gallery-section{padding-block:var(--space-24) var(--space-20)}.gallery-section--featured{background:var(--color-surface-invert)}.gallery-section--all{background:var(--color-bg)}.gallery-section__inner{max-width:var(--container-lg);padding-inline:var(--space-6);margin-inline:auto}.gallery-section__heading{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-align:center;margin-block-end:var(--space-12)}.gallery-section--featured .gallery-section__heading{color:var(--color-text-inverse)}.gallery-section--all .gallery-section__heading{color:var(--color-primary)}.gallery-section__heading:after{content:"";background:var(--color-accent);width:3rem;height:3px;margin:var(--space-3) auto 0;display:block}.gallery-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.gallery-item{border-radius:var(--radius-lg);background:var(--color-surface-muted);margin:0;position:relative;overflow:hidden}.gallery-item__img-wrap{aspect-ratio:3/2;overflow:hidden}.gallery-item__img{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out);display:block}.gallery-item:hover .gallery-item__img{transform:scale(1.05)}.gallery-item__caption{padding:var(--space-8) var(--space-4) var(--space-3);color:var(--color-text-inverse);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);background:linear-gradient(#0000,#0f1620d1);position:absolute;bottom:0;left:0;right:0}.gallery-section__footer{text-align:center;margin-block-start:var(--space-10)}@media (width<=900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.gallery-section{padding-block:var(--space-16)}.gallery-section__heading{font-size:var(--text-3xl)}.gallery-grid{grid-template-columns:1fr}}.gallery-section--editorial .gallery-grid{gap:2px}.gallery-section--editorial .gallery-item{border-radius:0}.gallery-section--editorial .gallery-item__caption{opacity:0;transition:opacity var(--duration-base) var(--ease-standard)}.gallery-section--editorial .gallery-item:hover .gallery-item__caption{opacity:1}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-base);cursor:pointer;white-space:nowrap;transition:background var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard);border:2px solid #0000;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn-secondary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-outline{border-color:var(--color-primary);color:var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary-muted)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-surface-muted);color:var(--color-text)}.btn-outline-inv{color:var(--color-text-inverse);background:0 0;border-color:#f2f4f859}.btn-outline-inv:hover{background:#f2f4f814;border-color:#f2f4f8a6}.btn-ghost-inv{color:#f2f4f8a6;background:0 0;border-color:#0000}.btn-ghost-inv:hover{color:var(--color-text-inverse);background:#f2f4f814}