/* ---- Instagram carousel ------------------------------------------------ */
.gz-instagram { background: var(--gz-paper); padding: clamp(3.5rem, 7vw, 6rem) 0; overflow: hidden; }
.gz-instagram__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.gz-instagram__heading h2 { margin: 0; }
.gz-instagram__follow { color: var(--gz-brand); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gz-wood); text-underline-offset: .2em; white-space: nowrap; }
.gz-instagram__follow:hover { color: var(--gz-brand-deep); text-decoration-color: var(--gz-brand-deep); }
.gz-instagram__viewport { position: relative; }
.gz-instagram__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 30%); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding: .25rem .15rem 1rem; scroll-behavior: smooth; }
.gz-instagram__track:focus-visible { outline: 2px solid var(--gz-brand); outline-offset: 4px; }
.gz-instagram__card { background: var(--gz-paper); border: 1px solid var(--gz-line); border-radius: var(--gz-radius-m); overflow: hidden; scroll-snap-align: start; box-shadow: 0 10px 24px rgba(61,14,22,.08); min-width: 0; }
.gz-instagram__media { display: block; position: relative; aspect-ratio: 1 / 1; background: var(--gz-wood-tint); overflow: hidden; }
.gz-instagram__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gz-instagram__media:hover img, .gz-instagram__media:focus-visible img { transform: scale(1.03); }
.gz-instagram__media:focus-visible { outline: 3px solid var(--gz-brand); outline-offset: -3px; }
.gz-instagram__media-icon, .gz-instagram__album { position: absolute; top: .75rem; right: .75rem; background: rgba(26,18,16,.78); color: var(--gz-paper); border-radius: 999px; padding: .25rem .55rem; font-size: .78rem; font-weight: 700; }
.gz-instagram__media-icon { left: .75rem; right: auto; width: 1.8rem; height: 1.8rem; padding: .25rem; text-align: center; }
.gz-instagram__body { padding: 1rem; }
.gz-instagram__stats { display: flex; gap: 1rem; color: var(--gz-brand); font-size: .92rem; font-weight: 700; }
.gz-instagram__comments { list-style: none; padding: 0; margin: .7rem 0 0; color: var(--gz-ink); font-size: .88rem; line-height: 1.35; }
.gz-instagram__comments li + li { border-top: 1px solid var(--gz-line); margin-top: .55rem; padding-top: .55rem; }
.gz-instagram__comments strong { color: var(--gz-brand); }
.gz-instagram__control { position: absolute; z-index: 2; top: 38%; width: 2.8rem; height: 2.8rem; border: 1px solid var(--gz-brand); border-radius: 50%; background: var(--gz-paper); color: var(--gz-brand); font-size: 1.25rem; box-shadow: 0 4px 12px rgba(26,18,16,.16); cursor: pointer; }
.gz-instagram__control:hover, .gz-instagram__control:focus-visible { background: var(--gz-brand); color: var(--gz-paper); }
.gz-instagram__control:focus-visible { outline: 2px solid var(--gz-brand-deep); outline-offset: 3px; }
.gz-instagram__control--prev { left: -.9rem; }
.gz-instagram__control--next { right: -.9rem; }
@media (max-width: 880px) { .gz-instagram__track { grid-auto-columns: minmax(250px, 72vw); } .gz-instagram__control { display: none; } }
@media (max-width: 560px) { .gz-instagram__heading { display: block; } .gz-instagram__follow { display: inline-block; margin-top: .8rem; } }
@media (prefers-reduced-motion: reduce) { .gz-instagram__track { scroll-behavior: auto; } .gz-instagram__media img { transition: none; } }
