/* Scoped Wedding gallery; the rest of the portfolio keeps its existing layout. */
body.wedding-open #site-header { background: #faf9f6; }
body.wedding-open #bottom-bar { display: none !important; }
.direct-category > .sub-list { display: none !important; }
button.nav-label { border: 0; background: none; font: inherit; font-size: .8125rem; }
#split-view.wedding-gallery { background: #faf9f6; padding: 118px 30px 0; flex-direction: column; color: #252520; }
.wedding-gallery button, .wedding-gallery a { -webkit-tap-highlight-color: transparent; }
.wedding-gallery button { font: inherit; color: inherit; cursor: pointer; }
.wedding-gallery button:focus-visible, .wedding-gallery a:focus-visible { outline: 2px solid #665a42; outline-offset: 4px; }
.wg-content { display: flex; flex: 1; gap: 28px; min-height: 0; }
.wg-feed { flex: 1; min-width: 0; overflow-y: auto; overscroll-behavior: contain; padding: 3px 3px 30px; scrollbar-width: thin; scrollbar-color: #d1cec5 transparent; }
.wg-grid { columns: 5; column-gap: 12px; }
.wg-card { display: block; position: relative; width: 100%; padding: 0; border: 0; border-radius: 3px; overflow: hidden; background: #eae8e2; margin-bottom: 12px; break-inside: avoid; text-align: left; }
.wg-card img { display: block; width: 100%; height: auto; min-height: 80px; transition: filter .2s; }
.wg-card:hover img { filter: brightness(.92); }
.wg-card[aria-pressed=true] { outline: 2px solid #80745f; outline-offset: -2px; }
.wg-card[aria-pressed=true]::after { content: '↗'; position: absolute; bottom: 10px; right: 10px; background: #faf9f6; color: #252520; border-radius: 50%; width: 28px; height: 28px; text-align: center; line-height: 28px; }
.wg-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 28px 12px 12px; color: white; background: linear-gradient(transparent, #0009); font-size: 10px; opacity: 0; transition: opacity .2s; }
.wg-card:hover .wg-caption, .wg-card:focus-visible .wg-caption { opacity: 1; }
.wg-focus { display: none; flex: 0 0 46%; min-width: 0; padding-bottom: 28px; flex-direction: column; }
.wg-content.has-selection .wg-focus { display: flex; }
.wg-content.has-selection .wg-grid { columns: 3; }
.wg-focus-bar { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.wg-focus-bar button, .wg-focus-footer button { background: none; border: 0; font-size: 11px; padding: 10px 4px; min-height: 40px; }
.wg-focus-actions { display: flex; gap: 12px; }
.wedding-gallery .wg-focus-stage { border: 0; padding: 0; width: 100%; cursor: zoom-in; flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; background: #efeee9; border-radius: 3px; position: relative; }
.wg-focus-stage img { width: 100%; height: 100%; object-fit: contain; }
.wg-focus-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 12px; font-size: 11px; }
.wg-focus-footer p { color: #777267; font-size: 10px; margin-top: 5px; }
.wg-empty { padding: 12vh 20px; text-align: center; color: #777267; font-size: 13px; line-height: 2; }
.wg-empty strong { display: block; color: #252520; font-weight: 400; font-size: 22px; margin-bottom: 12px; }
.wg-empty a { color: inherit; }
.wg-error { display: block; padding: 30px 10px; font-size: 11px; text-align: center; }
.wg-dialog { border: none; background: #191918; color: #fff; width: 100vw; max-width: none; height: 100dvh; max-height: none; padding: 64px 50px; }
.wg-dialog::backdrop { background: #191918; }
.wg-dialog img { width: 100%; height: 100%; object-fit: contain; }
.wg-dialog button { position: absolute; top: 14px; right: 22px; min-height: 44px; min-width: 44px; background: none; border: none; color: #fff; cursor: pointer; font-size: 22px; }
@media(min-width:1800px) { .wg-grid { columns: 6; } }
@media(max-width:1100px) { .wg-grid { columns: 4; } .wg-content.has-selection .wg-grid { columns: 2; } }
@media(max-width:768px) {
  #split-view.wedding-gallery { padding: 105px 14px 0; }
  #split-view.wedding-gallery.open { display: flex; }
  .wg-grid, .wg-content.has-selection .wg-grid { columns: 2; column-gap: 8px; }
  .wg-card { margin-bottom: 8px; }
  .wg-content { display: block; overflow-y: auto; overscroll-behavior: contain; }
  .wg-feed { overflow: visible; padding: 3px 3px 30px; }
  .wg-focus { padding: 0 3px 24px; }
  .wedding-gallery .wg-focus-stage { flex: none; height: 48dvh; }
  .wg-focus-footer { padding-top: 6px; }
  .wg-dialog { padding: 64px 12px; }
}
@media(prefers-reduced-motion:reduce) { .wedding-gallery * { transition: none !important; scroll-behavior: auto !important; } }
.wedding-gallery button:disabled { opacity: .25; cursor: default; }
