/* Catering photo gallery */
.gallery-section { overflow-x: clip; }
.gallery-trigger { display: block; width: 100%; height: 100%; outline-offset: -5px; }
.gallery-trigger:focus-visible { outline: 3px solid #ffd69f; }
.real-gallery figcaption { pointer-events: none; }
.gallery-actions { display: flex; justify-content: flex-end; margin-top: 1.5rem; }
.gallery-open { display: inline-flex; align-items: center; gap: 1.3rem; min-height: 48px; padding: .85rem 1.15rem; border: 1px solid rgba(255, 220, 180, .45); border-radius: 999px; color: #fff0dd; background: rgba(255, 241, 218, .08); box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 10px 30px rgba(0, 0, 0, .14); backdrop-filter: blur(16px); font-size: .8rem; font-weight: 800; text-decoration: none; transition: background .25s, transform .25s; }
.gallery-open span { font-size: 1.1rem; transition: transform .25s; }
.gallery-open:hover { background: rgba(255, 232, 200, .17); transform: translateY(-2px); }
.gallery-open:hover span { transform: translate(3px, -3px); }
.gallery-open--catering { margin-top: .8rem; }
.gallery-dialog { position: fixed; inset: 0; width: min(1180px, calc(100% - 2rem)); max-width: none; height: min(920px, calc(100% - 2rem)); max-height: none; margin: auto; padding: 0; overflow: hidden; border: 1px solid rgba(255, 229, 203, .3); border-radius: 26px; color: #fff4e8; background: #1c100c; box-shadow: 0 36px 100px rgba(0, 0, 0, .65), inset 0 1px rgba(255,255,255,.15); }
.gallery-dialog::backdrop { background: rgba(10, 5, 3, .78); backdrop-filter: blur(10px); }
.gallery-dialog-shell { position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden; background: radial-gradient(ellipse at 95% 0%, rgba(208, 100, 46, .26), transparent 44%), linear-gradient(140deg, rgba(64, 34, 24, .93), rgba(20, 12, 9, .98)); }
.gallery-dialog-header { z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; flex-shrink: 0; gap: 1rem; padding: clamp(1.2rem, 3vw, 2.4rem) clamp(1.2rem, 3vw, 2.5rem) 1.3rem; border-bottom: 1px solid rgba(255, 231, 203, .14); background: rgba(42, 24, 18, .62); box-shadow: inset 0 1px rgba(255, 255, 255, .12); backdrop-filter: blur(20px); }
.gallery-dialog-kicker { margin: 0 0 .5rem; color: #ffbe78; font: 700 .65rem/1.3 'DM Mono', monospace; letter-spacing: .13em; }
.gallery-dialog-header h2 { margin: 0; color: #fff5e8; font: 400 clamp(2.5rem, 5vw, 4.5rem)/.95 'Bebas Neue', sans-serif; letter-spacing: .02em; }
.gallery-dialog-header h2 em { color: #ffb26a; font-style: normal; }
.gallery-dialog-header #gallery-dialog-description { margin: .6rem 0 0; color: #e1cbb9; font-size: .85rem; line-height: 1.5; }
.gallery-dialog-close, .gallery-back, .gallery-detail-controls button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 44px; padding: .65rem 1rem; border: 1px solid rgba(255, 227, 193, .3); border-radius: 999px; color: #fff3e5; background: rgba(255, 240, 224, .09); cursor: pointer; font: 700 .78rem/1 'Manrope', sans-serif; }
.gallery-dialog-close span { font-size: 1.3rem; line-height: 1; }
.gallery-dialog button:focus-visible { outline: 3px solid #ffd19a; outline-offset: 3px; }
.gallery-dialog button:hover { background: rgba(255, 222, 190, .19); }
.gallery-dialog-scroll { flex: 1; min-height: 0; padding: 1.2rem clamp(1.2rem, 3vw, 2.5rem) 2.5rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #b46b45 transparent; }
.gallery-dialog-intro { display: flex; justify-content: space-between; gap: 1rem; padding: .1rem 0 1rem; color: #d1ad95; font: 500 .67rem/1.4 'DM Mono', monospace; letter-spacing: .1em; }
.gallery-dialog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.gallery-photo { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 1px solid rgba(255, 240, 217, .22); border-radius: 16px; aspect-ratio: 4 / 3; background: #41281a; cursor: zoom-in; box-shadow: 0 12px 25px rgba(0,0,0,.18); }
.gallery-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.gallery-photo:hover img { transform: scale(1.06); }
.gallery-photo::after { position: absolute; right: .7rem; bottom: .7rem; display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: white; background: rgba(20,12,8,.55); content: '↗'; backdrop-filter: blur(8px); }
.gallery-detail { position: absolute; z-index: 3; inset: 0; display: flex; flex-direction: column; min-height: 0; padding: clamp(1rem, 3vw, 2rem); background: rgba(21, 12, 9, .97); }
.gallery-detail[hidden] { display: none; }
.gallery-detail-toolbar, .gallery-detail-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-shrink: 0; }
.gallery-detail-count { color: #efd5c2; font: .76rem 'DM Mono', monospace; }
.gallery-detail-image { display: flex; flex: 1; align-items: center; justify-content: center; min-height: 0; padding: 1rem 0; }
.gallery-detail-image img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 10px; box-shadow: 0 15px 45px rgba(0,0,0,.4); }
.gallery-detail-controls p { margin: 0; color: #ead7c8; font-size: .85rem; line-height: 1.4; text-align: center; }
.gallery-detail-controls button { flex: 0 0 auto; width: 46px; padding: 0; font-size: 1.3rem; }
body.gallery-opened { overflow: hidden; }
@media (max-width: 600px) {
  .gallery-dialog { width: calc(100% - 1rem); height: calc(100% - 1rem); border-radius: 20px; }
  .gallery-dialog-header { padding: 1.1rem 1rem; }
  .gallery-dialog-header h2 { font-size: 2.45rem; }
  .gallery-dialog-header #gallery-dialog-description { max-width: 18rem; font-size: .76rem; }
  .gallery-dialog-close { flex: 0 0 auto; width: 44px; padding: 0; font-size: 0; }
  .gallery-dialog-close span { font-size: 1.5rem; }
  .gallery-dialog-scroll { padding: 1rem 1rem 2rem; }
  .gallery-dialog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .gallery-photo { border-radius: 11px; }
  .gallery-dialog-intro { font-size: .6rem; }
}
@media (prefers-reduced-motion: reduce) { .gallery-open, .gallery-open span, .gallery-photo img { transition: none; } }
/* Static gallery remains available when the interactive viewer is unavailable. */
.gallery-static { margin: 0; min-height: 100vh; color: #fff4e8; background: radial-gradient(ellipse at 90% 0, #603521 0, transparent 42%), #1c100c; font-family: 'Manrope', sans-serif; }
.gallery-static *, .gallery-static *::before, .gallery-static *::after { box-sizing: border-box; }
.gallery-static-wrap { width: min(1180px, calc(100% - 2rem)); margin: auto; padding: clamp(2rem, 5vw, 4rem) 0; }
.gallery-static-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.gallery-static-head h1 { margin: .4rem 0; font: 400 clamp(3rem, 8vw, 6rem)/.9 'Bebas Neue', sans-serif; }
.gallery-static-head h1 em { color: #ffb26a; font-style: normal; }
.gallery-static-head p:not(.gallery-dialog-kicker) { color: #e1cbb9; line-height: 1.6; }
.gallery-static-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.gallery-static-back { flex-shrink: 0; display: inline-flex; align-items: center; min-height: 46px; padding: .8rem 1.1rem; border: 1px solid rgba(255, 227, 193, .3); border-radius: 999px; color: #fff3e5; background: rgba(255, 240, 224, .09); font-size: .8rem; font-weight: 800; text-decoration: none; }
.gallery-static-back:hover { background: rgba(255, 222, 190, .19); }
.gallery-static-cta { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 46px; padding: .8rem 1.2rem; border: 1px solid #ffd19a; border-radius: 999px; color: #28150e; background: linear-gradient(135deg, #ffd7a5, #ffac66); box-shadow: 0 10px 28px rgba(0, 0, 0, .2); font-size: .8rem; font-weight: 800; text-decoration: none; transition: transform .25s, box-shadow .25s; }
.gallery-static-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 0, 0, .3); }
.gallery-static-cta span { font-size: 1.1rem; line-height: 1; }
.gallery-dialog-inquiry { margin-bottom: 1rem; }
.gallery-static-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.gallery-static-grid .gallery-photo:focus-visible, .gallery-static-back:focus-visible, .gallery-static-cta:focus-visible { outline: 3px solid #ffd19a; outline-offset: 3px; }
.gallery-static-footer { margin: 2.5rem 0 0; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid rgba(255, 227, 193, .2); border-radius: 20px; color: #e1cbb9; background: rgba(255, 240, 224, .06); text-align: center; }
.gallery-static-footer h2 { margin: .3rem 0; color: #fff4e8; font: 400 clamp(2.2rem, 5vw, 3.2rem)/1 'Bebas Neue', sans-serif; }
.gallery-static-footer p:not(.gallery-dialog-kicker) { margin: .6rem 0 1.2rem; line-height: 1.6; }
@media (max-width: 600px) {
  .gallery-static-head { flex-direction: column; }
  .gallery-static-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
}
@media (prefers-reduced-motion: reduce) { .gallery-static-cta { transition: none; } .gallery-static-cta:hover { transform: none; } }
