/* 갤러리 페이지 */
.gallery-page{background:#fff}
.g-head{padding:88px 0 40px}
.g-head .eyebrow{color:var(--ink)}
.g-head .eyebrow::before{content:'';width:8px;height:8px;background:var(--yellow)}
.g-head h1{font-size:clamp(48px,7vw,96px);letter-spacing:-.05em;line-height:1;margin:0 0 20px}
.g-lead{font-size:clamp(17px,1.6vw,21px);color:var(--muted);max-width:none;margin:0 0 22px;line-height:1.6}
.g-head .text-link{display:inline-flex;align-items:center}

/* 행사별 보기: 스크롤해도 머리글 아래 붙어 있음 */
.g-filter-bar{position:sticky;top:var(--header-h,85px);z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.g-filters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:12px 0}
.g-filters::-webkit-scrollbar{display:none}
.g-filter{flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:15px;font-weight:700;color:var(--ink);transition:background-color .2s,border-color .2s,color .2s}
.g-filter:hover{border-color:var(--ink)}
.g-filter[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.g-count{font-size:12px;font-weight:700;color:var(--muted);min-width:18px;text-align:center}
.g-filter[aria-selected=true] .g-count{color:var(--yellow)}
.g-filter.is-empty:not([aria-selected=true]) span{color:#8d867e}

/* 벽돌형 그리드: 사진 비율을 그대로 살려 세로로 쌓는다 */
.g-body{padding:36px 0 120px}
.g-grid{column-count:3;column-gap:16px}
.g-item{display:block;width:100%;margin:0 0 16px;padding:0;border:0;background:#f1ece2;position:relative;overflow:hidden;break-inside:avoid;cursor:zoom-in;aspect-ratio:var(--ar)}
.g-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,.7,.3,1)}
.g-item:hover img,.g-item:focus-visible img{transform:scale(1.035)}
.g-cap{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;font-size:14px;font-weight:600;line-height:1.4;color:#fff;text-align:left;background:linear-gradient(transparent,rgba(20,18,17,.72));opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.g-item:hover .g-cap,.g-item:focus-visible .g-cap{opacity:1;transform:none}
.g-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 6px 24px rgba(0,0,0,.25)}
.g-play::before{content:'';position:absolute;left:26px;top:20px;border-left:18px solid var(--ink);border-top:12px solid transparent;border-bottom:12px solid transparent}
.g-item.is-video{cursor:pointer}

.g-empty{border:1px dashed #d8cfbd;padding:64px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.g-empty strong{font-size:20px;letter-spacing:-.02em}
.g-empty p{margin:0;color:var(--muted)}
.g-empty .text-link{background:none;border-width:0 0 1px;border-style:solid;margin-top:8px;cursor:pointer}

/* 크게 보기 */
.g-lightbox{padding:0;border:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;color:#fff}
.g-lightbox::backdrop{background:rgba(18,16,15,.94)}
.g-lb-inner{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:64px 88px}
.g-lb-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:100%;max-height:100%}
.g-lb-media img,.g-lb-media video{display:block;max-width:min(1400px,100%);max-height:calc(100vh - 190px);width:auto;height:auto;margin:auto}
.g-lb-media video{background:#000}
.g-lb-figure figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 14px;font-size:15px;text-align:center}
.g-lb-cat{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.g-lb-count{font-size:13px;color:#b9b2a6;font-variant-numeric:tabular-nums}
.g-lb-btn{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.25);color:#fff;font-size:20px;display:grid;place-items:center;transition:background-color .2s,border-color .2s}
.g-lb-btn:hover{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.g-lb-close{top:18px;right:18px}
.g-lb-prev{left:22px;top:50%;margin-top:-24px}
.g-lb-next{right:22px;top:50%;margin-top:-24px}

@media(max-width:1000px){.g-grid{column-count:2}}
@media(max-width:760px){
  .g-head{padding:52px 0 28px}
  .g-filter-bar{top:var(--header-h,77px)}
  .g-filters{padding:10px 0}
  .g-filter{padding:8px 14px;font-size:14px}
  .g-body{padding:22px 0 80px}
  .g-grid{column-gap:10px}.g-item{margin-bottom:10px}
  .g-cap{opacity:1;transform:none;font-size:12px;padding:22px 10px 9px}
  .g-play{width:48px;height:48px;margin:-24px 0 0 -24px}.g-play::before{left:19px;top:14px;border-left-width:14px;border-top-width:10px;border-bottom-width:10px}
  .g-lb-inner{padding:64px 12px 90px}
  .g-lb-media img,.g-lb-media video{max-height:calc(100vh - 230px)}
  .g-lb-prev,.g-lb-next{top:auto;bottom:22px;margin-top:0}
  .g-lb-prev{left:calc(50% - 60px)}.g-lb-next{right:calc(50% - 60px)}
}
@media(prefers-reduced-motion:reduce){.g-item img,.g-cap{transition:none}}
.g-empty[hidden],.g-grid[hidden]{display:none}

/* 연도(메인/히스토리) + 행사 필터: 가운데 정렬 */
.g-bar{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0 12px}
.g-years{display:inline-flex;padding:4px;border-radius:999px;background:#f3eee4;gap:4px}
.g-year{display:inline-flex;align-items:baseline;gap:8px;padding:9px 22px;border:0;border-radius:999px;background:transparent;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--muted);transition:background-color .2s,color .2s}
.g-year small{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.g-year:hover{color:var(--ink)}
.g-year[aria-selected=true]{background:var(--ink);color:#fff}
.g-bar .g-filters{width:100%;padding:0}
/* 가운데 정렬하되, 칩이 넘치면 왼쪽부터 가로 스크롤 */
.g-filters>:first-child{margin-left:auto}.g-filters>:last-child{margin-right:auto}
.g-filter em{font-style:normal;font-size:12px;font-weight:600;color:var(--muted)}
.g-filter[aria-selected=true] em{color:#d9d3c7}

.g-upcoming{list-style:none;margin:18px 0 6px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.g-upcoming[hidden]{display:none}
.g-upcoming li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;padding:14px 18px;background:#fff;border:1px solid var(--line);text-align:left}
.g-upcoming small{font-size:12px;font-weight:700;letter-spacing:.06em;color:#8b6a00}
.g-upcoming strong{font-size:16px;letter-spacing:-.01em}
.g-empty strong{max-width:640px}
@media(max-width:760px){
  .g-bar{gap:8px;padding:10px 0}
  .g-year{padding:8px 16px;font-size:14px}
  .g-filter em{display:none}
  .g-upcoming li{min-width:0;flex:1 1 40%}
}
/* 넓은 화면: 탭이 넘치면 줄바꿈해서 가운데 정렬. 휴대폰만 가로 스크롤 */
@media(min-width:761px){.g-bar .g-filters{flex-wrap:wrap;justify-content:center;overflow:visible;row-gap:8px}.g-filters>:first-child,.g-filters>:last-child{margin-left:0;margin-right:0}}
.g-lead{text-wrap:balance}

/* 격자: 한 줄의 높이를 맞추고, 사진 비율대로 칸 너비를 나눈다 (사진을 자르지 않음) */
.g-grid{display:flex;flex-wrap:wrap;gap:12px;column-count:initial}
.g-grid::after{content:'';flex-grow:999999}
.g-item{flex-grow:var(--r,1.5);flex-shrink:1;flex-basis:calc(var(--r,1.5) * 170px);width:auto;margin:0;aspect-ratio:var(--ar)}
.g-item img{object-fit:contain}
@media(max-width:1100px){.g-item{flex-basis:calc(var(--r,1.5) * 150px)}}
@media(max-width:760px){.g-grid{gap:8px}.g-item{margin:0;flex-basis:calc(var(--r,1.5) * 70px)}}
@media(max-width:760px){.g-cap{display:none}}
