@charset "utf-8";
/* SUB/photo_gallery — 사진 전시 갤러리 start ----------*/
/* 위젯 CSS 에서 조절 : .photo_gallery.{위젯ID}{ --gal-radius:12px; --gal-cap-bg:rgba(0,0,0,.75); } */
.photo_gallery{
  --gal-radius:10px;
  --gal-cap-bg:rgba(0,0,0,.72);   /* 캡션 그라데이션 진한 쪽 */
  --gal-t1:clamp(13px, calc(0.31vw + 12px), 17px);
  --gal-t2:clamp(11px, calc(0.16vw + 10.5px), 13px);
  width:100%; float:left; position:relative;
}
.photo_gallery *{box-sizing:border-box;}
.photo_gallery .wg_side{width:100%; float:left; position:relative; container-type:inline-size;}

/* 그리드 : 6칸 기준, 줄 높이 = 갤러리 폭의 25% × 배열 배율 */
.photo_gallery .gal_grid{
  display:grid; grid-template-columns:repeat(6, minmax(0, 1fr));
  grid-auto-rows:calc(25cqw * var(--gal-rh, 1));
  grid-auto-flow:row dense;
  gap:min(var(--gal-gap-max, 30px), 2.2vw);
  width:100%;
}
@supports not (width:1cqw){
  .photo_gallery .gal_grid{grid-auto-rows:calc(clamp(110px, 20vw, 330px) * var(--gal-rh, 1));}
}
.photo_gallery .gal_cell{
  grid-column:span var(--gc, 3); grid-row:span var(--gr, 1);
  position:relative; margin:0; overflow:hidden; border-radius:var(--gal-radius); background:#1c1c1c; cursor:zoom-in;
  outline:none;
}
.photo_gallery .gal_cell:focus-visible{box-shadow:0 0 0 3px #fff, 0 0 0 5px #3b82f6;}
.photo_gallery .gal_img,
.photo_gallery .gal_img .wg_img1{position:absolute; inset:0;}
/* 사진 층을 z-index:1 안에 가둠 → 인라인 편집 hover(.wg_edit_img:hover z-index:10)가 캡션 위로 못 올라옴 */
.photo_gallery .gal_img{z-index:1;}
.photo_gallery .gal_img img{width:100%; height:100%; object-fit:cover; object-position:var(--gal-op, center); display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.photo_gallery .gal_cell:hover .gal_img img{transform:scale(1.045);}

/* 캡션 : 아래쪽 그라데이션 + 왼쪽 제목 / 오른쪽 출처 */
.photo_gallery .gal_cap{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  display:flex; flex-direction:column; gap:4px;
  padding:clamp(40px, calc(1.56vw + 35px), 60px) clamp(14px, calc(0.47vw + 12.5px), 20px) clamp(12px, calc(0.47vw + 10.5px), 18px);
  background:linear-gradient(to top, var(--gal-cap-bg) 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,0) 100%);
  color:#fff; pointer-events:none;
}
.photo_gallery .gal_cap > *{pointer-events:auto;}
.photo_gallery .gal_cap_off .gal_cap{background:none; text-shadow:0 1px 3px rgba(0,0,0,.8);}
.photo_gallery .gal_t1{font-size:var(--gal-t1); font-weight:500; line-height:1.4; letter-spacing:-.3px; word-break:keep-all;}
.photo_gallery .gal_t2{font-size:var(--gal-t2); font-style:italic; line-height:1.3; opacity:.92; align-self:flex-end; text-align:right;}
.photo_gallery .gal_t1:empty, .photo_gallery .gal_t2:empty{display:none;}
.photo_gallery .gal_cap .wg_edit_txt:empty{display:block; min-width:60px; min-height:1em; border:1px dashed rgba(255,255,255,.5);}

/* 확대 아이콘 */
.photo_gallery .gal_zoom{
  position:absolute; right:12px; top:12px; z-index:3; width:38px; height:38px; border-radius:50%; pointer-events:none;
  background:rgba(0,0,0,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center/20px no-repeat;
  opacity:0; transform:scale(.8); transition:all .35s;
}
.photo_gallery .gal_cell:hover .gal_zoom{opacity:1; transform:none;}
/* 편집 권한자 로그인 : 확대 뷰어 끔 (확대 아이콘·확대 커서·호버 확대 없음) */
.photo_gallery .gal_noview .gal_cell{cursor:default;}
.photo_gallery .gal_noview .gal_zoom{display:none;}
.photo_gallery .gal_noview .gal_cell:hover .gal_img img{transform:none;}

/* ★ (2026-10-25) 영상 칸 — 가운데 재생 표시 · 썸네일 없으면 어두운 자리 / 링크 칸 — 누르면 링크로 (확대 아이콘 대신 화살표) */
.photo_gallery .gal_play{
  position:absolute; left:50%; top:50%; z-index:2; width:clamp(44px, calc(1.88vw + 38px), 68px); aspect-ratio:1; margin:0; transform:translate(-50%, -50%); border-radius:50%; pointer-events:none;
  background:rgba(0,0,0,.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23fff'/%3E%3C/svg%3E") 55% center/46% no-repeat;
  box-shadow:0 0 0 2px rgba(255,255,255,.75); transition:transform .3s, background-color .3s;
}
.photo_gallery .gal_cell:hover .gal_play{transform:translate(-50%, -50%) scale(1.08); background-color:rgba(0,0,0,.7);}
.photo_gallery .gal_vph{position:absolute; inset:0; display:block; background:linear-gradient(135deg, #1e293b, #0f172a);}
.photo_gallery .gal_has_video .gal_zoom{display:none;}
/* 자동 재생(화면에 보이면) — 칸을 꽉 덮는 소리 끈 플레이어, 클릭은 칸으로 통과 */
.photo_gallery .gal_vlive{position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; background:#000;}
.photo_gallery .gal_vlive iframe{position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); border:0; max-width:none;}
.photo_gallery .gal_vlive video{width:100%; height:100%; object-fit:cover; object-position:var(--gal-op, center); display:block;}
.photo_gallery .gal_vplaying .gal_play{opacity:0;}
.photo_gallery .gal_vplaying:hover .gal_play{opacity:1;}
.photo_gallery .gal_vnc .gal_play, .photo_gallery .gal_vnc:hover .gal_play{display:none;}   /* 이미지 변경 창 "컨트롤 숨김" */
.photo_gallery .gal_has_link{cursor:pointer;}
.photo_gallery .gal_has_link .gal_zoom{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E");
}

/* 빈 칸 (편집 권한자만 보임) */
.photo_gallery .gal_empty{background:repeating-linear-gradient(45deg, #2a2a2a 0 10px, #242424 10px 20px); cursor:default;}
.photo_gallery .gal_empty_tx{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#aaa; font-size:13px;}

/* ---------- inner 설정 ---------- */
/* gal_inner_on : 사이트 콘텐츠 폭(contents-container) 그대로 / 스택(stack_nav) 안에서는 스택이 칸 폭 100% 로 맞춤
   gal_inner_off : 안쪽 폭 제한 없이 100% */
.photo_gallery.gal_inner_off > .contents-container{width:100% !important; max-width:100% !important; padding-left:0 !important; padding-right:0 !important;}

/* ---------- 갤러리 스타일 (설정창 [갤러리 스타일]) ---------- */
.photo_gallery .gal_grid{--gal-g:min(var(--gal-gap-max, 30px), 2.2vw);}

/* ① 기본 그리드 : 같은 크기 칸 + 정한 비율 (1:1 정사각 / 4:3 · 3:2 · 16:9 가로 / 3:4 · 2:3 세로) */
.photo_gallery .gal_st_grid{grid-template-columns:repeat(var(--gal-cols, 3), minmax(0, 1fr)); grid-auto-rows:auto; grid-auto-flow:row;}
.photo_gallery .gal_st_grid .gal_cell{grid-column:auto; grid-row:auto; aspect-ratio:var(--gal-ar, 1 / 1);}

/* ② 세로 메이슨리 : 사진 원래 비율대로 세로로 차곡차곡 (열 수 고정) */
.photo_gallery .gal_st_mason{display:block; columns:var(--gal-cols, 3); column-gap:var(--gal-g);}
.photo_gallery .gal_st_mason .gal_cell{display:block; width:100%; margin:0 0 var(--gal-g); break-inside:avoid; -webkit-column-break-inside:avoid;}

/* ③ 가로 메이슨리 : 줄 높이 고정 + 사진 비율대로 가로폭 (줄 끝은 꽉 차게) */
.photo_gallery .gal_st_hmason{display:flex; flex-wrap:wrap; gap:var(--gal-g); --gal-hh:calc(clamp(150px, 22cqw, 340px) * var(--gal-hk, 1));}
.photo_gallery .gal_st_hmason::after{content:""; flex-grow:999999;}  /* 마지막 줄이 억지로 늘어나지 않게 */
.photo_gallery .gal_st_hmason .gal_cell{height:var(--gal-hh); flex-grow:var(--ar, 1.5); flex-basis:calc(var(--gal-hh) * var(--ar, 1.5)); min-width:0;}
@supports not (width:1cqw){
  .photo_gallery .gal_st_hmason{--gal-hh:calc(clamp(150px, 20vw, 340px) * var(--gal-hk, 1));}
}

/* ④ ★ (2026-11-06) 후원 파트너 : 로고 박스(정한 비율·가운데 contain) + 아래 제목. 로고 비율이 달라도 박스는 안 틀어짐
   설정 : --gal-lsize(로고 크기 %) · gal_lbox_line|fill|none(박스 모양) · --gal-tsize(제목 px) · --gal-talign · --gal-tweight
   위젯 CSS 로 더 조절 : .photo_gallery.{위젯ID}{ --gal-pbox-bg:#fff; --gal-pbox-line:#e5e7eb; --gal-pbox-radius:8px; --gal-pt-color:#333; } */
.photo_gallery .gal_st_partner{
  --gal-pbox-bg:#fff; --gal-pbox-line:#e5e7eb; --gal-pbox-radius:8px; --gal-pt-color:#333;
  grid-template-columns:repeat(var(--gal-cols, 4), minmax(0, 1fr)); grid-auto-rows:auto; grid-auto-flow:row; align-items:start;
}
.photo_gallery .gal_st_partner .gal_cell{
  grid-column:auto; grid-row:auto; display:flex; flex-direction:column; gap:clamp(8px, calc(0.31vw + 7px), 12px);
  height:auto; background:transparent; border-radius:0; overflow:visible; cursor:default;
}
.photo_gallery .gal_st_partner .gal_cell.gal_has_link{cursor:pointer;}
/* 로고 박스 */
.photo_gallery .gal_st_partner .gal_img{
  position:relative; inset:auto; width:100%; aspect-ratio:var(--gal-ar, 16 / 9); overflow:hidden;
  background:var(--gal-pbox-bg); border:1px solid var(--gal-pbox-line); border-radius:var(--gal-pbox-radius);
  transition:border-color .3s, box-shadow .3s;
}
.photo_gallery .gal_lbox_fill .gal_img{background:#f6f7f9; border-color:transparent;}
.photo_gallery .gal_lbox_none .gal_img{background:transparent; border-color:transparent;}
.photo_gallery .gal_st_partner .gal_has_link:hover .gal_img{border-color:#c4b5fd; box-shadow:0 6px 18px rgba(0,0,0,.08);}
.photo_gallery .gal_st_partner .gal_img .wg_img1{position:absolute; inset:0;}
/* 로고 : 박스의 --gal-lsize % 안에서 비율 유지(contain) · 가운데 */
.photo_gallery .gal_st_partner .gal_img img{
  position:absolute; inset:0; margin:auto; width:var(--gal-lsize, 70%); height:var(--gal-lsize, 70%);
  object-fit:contain; object-position:center; transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.photo_gallery .gal_st_partner .gal_cell:hover .gal_img img{transform:none;}
.photo_gallery .gal_st_partner .gal_has_link:hover .gal_img img{transform:scale(1.04);}
.photo_gallery .gal_st_partner .gal_img svg, .photo_gallery .gal_st_partner .gal_img lottie-player{position:absolute; inset:0; margin:auto; width:var(--gal-lsize, 70%); height:var(--gal-lsize, 70%);}
/* 제목 : 박스 아래 · 그라데이션 없음 · 글씨 크기/정렬/두께는 설정값 */
.photo_gallery .gal_st_partner .gal_cap,
.photo_gallery .gal_st_partner.gal_cap_off .gal_cap{
  position:static; padding:0 2px; background:none; text-shadow:none; color:var(--gal-pt-color); pointer-events:auto;
  align-items:stretch; gap:2px; text-align:var(--gal-talign, center);
}
.photo_gallery .gal_st_partner .gal_t1{font-size:var(--gal-tsize, 15px); font-weight:var(--gal-tweight, 500); line-height:1.4; letter-spacing:-.3px; word-break:keep-all; display:block;}
.photo_gallery .gal_st_partner .gal_t2{font-size:calc(var(--gal-tsize, 15px) * .82); font-style:normal; opacity:.65; align-self:auto; text-align:inherit; display:block;}
.photo_gallery .gal_st_partner .gal_t1:empty, .photo_gallery .gal_st_partner .gal_t2:empty{display:none;}
.photo_gallery .gal_st_partner .gal_cap .wg_edit_txt:empty{display:block; border-color:rgba(0,0,0,.25);}
.photo_gallery .gal_st_partner .gal_zoom{display:none;}
.photo_gallery .gal_st_partner .gal_has_link .gal_zoom{display:block; right:8px; top:8px; width:28px; height:28px; background-size:14px; background-color:rgba(0,0,0,.35);}
.photo_gallery .gal_st_partner .gal_play{width:40px;}
.photo_gallery .gal_st_partner .gal_empty .gal_img{background:repeating-linear-gradient(45deg, #f1f1f1 0 10px, #e9e9e9 10px 20px);}
.photo_gallery .gal_st_partner .gal_empty_tx{color:#888; font-size:12px;}

/* 메이슨리 공통 : 사진이 칸 높이를 정함 (세로) */
.photo_gallery .gal_st_mason .gal_img,
.photo_gallery .gal_st_mason .gal_img .wg_img1{position:relative; inset:auto;}
.photo_gallery .gal_st_mason .gal_img img{height:auto;}
.photo_gallery .gal_st_mason .gal_empty{min-height:220px;}
.photo_gallery .gal_st_mason .gal_empty .gal_img{position:absolute; inset:0;}

/* 관리자 : 갤러리 배열 버튼 */
.photo_gallery .gal_set_btn{
  /* 오른쪽 끝 + 관리자 뱃지(왼쪽 위)보다 위 */
  display:table; margin:0 0 10px auto; position:relative; z-index:40;
  padding:7px 14px; border:0; border-radius:6px; cursor:pointer;
  background:#7c3aed; color:#fff; font-size:13px; font-weight:600; box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.photo_gallery.admin_div .grid_layout_badge{z-index:30;}

/* 모바일 배열 (설정창 [모바일 배열]) — gal_mo_same : PC와 동일 구조·간격만 축소 / gal_mo_col_eq : 세로형·모두 같은 높이 / gal_mo_col_ratio : 세로형·PC와 같은 비율 */
@media screen and (max-width:640px){
  .photo_gallery .gal_cap{padding:34px 12px 10px;}
  .photo_gallery .gal_zoom{display:none;}
  /* PC와 동일 : 6칸 구조 유지, 간격 절반 */
  .photo_gallery .gal_mo_same{gap:min(calc(var(--gal-gap-max, 30px) * .5), 10px); grid-auto-rows:calc(25cqw * var(--gal-rh, 1));}
  /* 세로형 공통 */
  .photo_gallery .gal_mo_col_eq,
  .photo_gallery .gal_mo_col_ratio{grid-template-columns:minmax(0, 1fr); gap:min(var(--gal-gap-max, 30px), 14px);}
  .photo_gallery .gal_mo_col_eq .gal_cell,
  .photo_gallery .gal_mo_col_ratio .gal_cell{grid-column:span 1; grid-row:span 1;}
  /* 모두 같은 높이 */
  .photo_gallery .gal_mo_col_eq{grid-auto-rows:calc(62cqw * var(--gal-rh, 1));}
  /* PC와 같은 비율 : 칸마다 PC 가로세로 비율(--gcr) 유지 */
  .photo_gallery .gal_mo_col_ratio{grid-auto-rows:auto;}
  .photo_gallery .gal_mo_col_ratio .gal_cell{height:calc(var(--gcr, 60) * 1cqw * var(--gal-rh, 1));}
  @supports not (width:1cqw){
    .photo_gallery .gal_mo_col_eq{grid-auto-rows:calc(60vw * var(--gal-rh, 1));}
    .photo_gallery .gal_mo_col_ratio .gal_cell{height:calc(var(--gcr, 60) * 0.95vw * var(--gal-rh, 1));}
  }
  /* 새 스타일은 [모바일 배열] 설정과 무관 — 모바일은 2열(그리드·세로 메이슨리) / 줄 높이 낮게(가로 메이슨리) */
  .photo_gallery .gal_grid.gal_st_grid{grid-template-columns:repeat(min(var(--gal-cols, 3), 2), minmax(0, 1fr)); grid-auto-rows:auto; gap:min(var(--gal-gap-max, 30px), 10px);}
  .photo_gallery .gal_grid.gal_st_grid .gal_cell{height:auto;}
  .photo_gallery .gal_grid.gal_st_mason{columns:2; column-gap:min(var(--gal-gap-max, 30px), 10px); --gal-g:min(var(--gal-gap-max, 30px), 10px);}
  .photo_gallery .gal_grid.gal_st_mason .gal_cell{height:auto;}
  .photo_gallery .gal_grid.gal_st_hmason{gap:min(var(--gal-gap-max, 30px), 8px); --gal-hh:calc(30cqw * var(--gal-hk, 1));}
  .photo_gallery .gal_grid.gal_st_hmason .gal_cell{height:var(--gal-hh);}
  .photo_gallery .gal_st_grid .gal_cap,
  .photo_gallery .gal_st_mason .gal_cap,
  .photo_gallery .gal_st_hmason .gal_cap{padding:26px 10px 8px;}
  /* 후원 파트너 : 모바일 2열 · 제목 글씨는 설정값의 90% (최소 12px) */
  .photo_gallery .gal_grid.gal_st_partner{grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:auto; gap:min(var(--gal-gap-max, 30px), 12px);}
  .photo_gallery .gal_grid.gal_st_partner .gal_cell{height:auto;}
  .photo_gallery .gal_st_partner .gal_cap{padding:0 2px;}
  .photo_gallery .gal_st_partner .gal_t1{font-size:max(12px, calc(var(--gal-tsize, 15px) * .9));}
}

/* ---------- 확대 뷰어 (body 에 붙음) ---------- */
.galv{position:fixed; inset:0; z-index:100000; display:none; color:#fff; font-family:inherit;}
.galv.on{display:block;}
.galv *{box-sizing:border-box;}
.galv_bg{position:absolute; inset:0; background:rgba(8,8,10,.94); opacity:0; transition:opacity .3s;}
.galv.show .galv_bg{opacity:1;}
.galv_top{position:absolute; left:0; right:0; top:0; z-index:3; display:flex; align-items:center; justify-content:space-between; padding:16px 20px; font-size:14px; letter-spacing:1px;}
.galv_cnt b{font-weight:700;}
.galv_close{width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.1); cursor:pointer; position:relative;}
.galv_close::before, .galv_close::after{content:""; position:absolute; left:50%; top:50%; width:20px; height:2px; background:#fff; margin:-1px 0 0 -10px; transform:rotate(45deg);}
.galv_close::after{transform:rotate(-45deg);}
.galv_close:hover{background:rgba(255,255,255,.2);}
.galv_stage{position:absolute; left:0; right:0; top:70px; bottom:150px; z-index:1; overflow:hidden; touch-action:pan-y;}
.galv_track{position:absolute; inset:0; display:flex; will-change:transform;}
.galv_slide{flex:0 0 100%; height:100%; display:flex; align-items:center; justify-content:center; padding:0 clamp(12px, 6vw, 110px);}
.galv_slide img{max-width:100%; max-height:100%; object-fit:contain; display:block; border-radius:4px; box-shadow:0 20px 60px rgba(0,0,0,.5); opacity:0; transform:scale(.97); transition:opacity .45s, transform .45s; user-select:none; -webkit-user-drag:none;}
.galv_slide img.ld{opacity:1; transform:none;}
/* ★ (2026-10-25) 뷰어 영상 — 지금 보는 장만 플레이어를 붙이고 넘기면 떼어 멈춤 */
.galv_vid{position:relative; width:min(100%, calc((100vh - 240px) * 16 / 9)); aspect-ratio:16/9; background:#000; border-radius:4px; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.galv_vid iframe, .galv_vid video{position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:4px; background:#000;}
.galv_vid .galv_vph{position:absolute; inset:0; background:center/cover no-repeat; border-radius:4px; opacity:.6;}
.galv_thumbs button.galv_tv{position:relative;}
.galv_thumbs button.galv_tv::after{content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23fff'/%3E%3C/svg%3E") center/50% no-repeat; pointer-events:none;}
.galv_arr{position:absolute; top:50%; z-index:3; width:56px; height:56px; margin-top:-28px; border:0; border-radius:50%; background:rgba(255,255,255,.1); cursor:pointer;}
.galv_arr:hover{background:rgba(255,255,255,.22);}
.galv_arr::before{content:""; position:absolute; left:50%; top:50%; width:14px; height:14px; border-top:2px solid #fff; border-left:2px solid #fff;}
.galv_prev{left:20px;} .galv_prev::before{margin:-7px 0 0 -4px; transform:rotate(-45deg);}
.galv_next{right:20px;} .galv_next::before{margin:-7px 0 0 -10px; transform:rotate(135deg);}
.galv_arr[disabled]{opacity:.25; cursor:default;}
.galv_info{position:absolute; left:0; right:0; bottom:92px; z-index:2; text-align:center; padding:0 20px;}
.galv_t1{font-size:clamp(14px, calc(0.31vw + 13px), 18px); font-weight:500; line-height:1.45; word-break:keep-all;}
.galv_t2{margin-top:4px; font-size:13px; font-style:italic; opacity:.75;}
.galv_thumbs{position:absolute; left:0; right:0; bottom:16px; z-index:2; display:flex; gap:8px; justify-content:center; overflow-x:auto; padding:0 20px; scrollbar-width:none;}
.galv_thumbs::-webkit-scrollbar{display:none;}
.galv_thumbs button{flex:0 0 auto; width:72px; height:54px; padding:0; border:2px solid transparent; border-radius:6px; overflow:hidden; background:#222; cursor:pointer; opacity:.45; transition:all .25s;}
.galv_thumbs button img{width:100%; height:100%; object-fit:cover; display:block;}
.galv_thumbs button.on{opacity:1; border-color:#fff;}
.galv_thumbs button:hover{opacity:.85;}
@media screen and (max-width:640px){
  .galv_stage{top:60px; bottom:120px;}
  .galv_arr{display:none;}
  .galv_info{bottom:74px;}
  .galv_thumbs button{width:52px; height:40px;}
}

/* ---------- 관리자 설정창 (갤러리 배열) ---------- */
/* 관리자 모달 규칙 : 배경 딤 없음(투명 오버레이) + 헤더 드래그 이동 */
.galset{position:fixed; inset:0; z-index:2147483600; font-family:inherit;}
.galset_bg{position:absolute; inset:0; background:transparent;}
.galset_box{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(760px, calc(100vw - 30px)); max-height:calc(100vh - 40px); overflow:auto; background:#fff; color:#222; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.35); border:1px solid #e5e7eb;}
.galset_head{display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:linear-gradient(135deg, #7c3aed, #6366f1); color:#fff; cursor:move; user-select:none; touch-action:none; border-radius:14px 14px 0 0;}
.galset_head b{font-size:15px;}
.galset_head button{border:0; background:rgba(255,255,255,.2); color:#fff; width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:16px;}
.galset_body{padding:18px;}
.galset_lb{font-size:13px; font-weight:700; color:#374151; margin:4px 0 10px;}
.galset_presets{display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; margin-bottom:18px;}
.galset_p{border:2px solid #e5e7eb; border-radius:10px; padding:8px; background:#fafafa; cursor:pointer; text-align:left; transition:all .2s;}
.galset_p:hover{border-color:#a78bfa;}
.galset_p.on{border-color:#7c3aed; background:#f5f3ff;}
.galset_mini{display:grid; grid-template-columns:repeat(6, 1fr); grid-auto-rows:14px; grid-auto-flow:row dense; gap:3px; margin-bottom:6px;}
.galset_mini i{display:block; background:#c4b5fd; border-radius:2px;}
.galset_p.on .galset_mini i{background:#7c3aed;}
.galset_p span{font-size:12px; color:#374151;}
.galset_row{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-bottom:14px; font-size:13px;}
.galset_row label{display:inline-flex; align-items:center; gap:5px; cursor:pointer;}
.galset_row input[type=number]{width:70px; padding:6px 8px; border:1px solid #d1d5db; border-radius:6px;}
.galset_row input[type=range]{width:160px;}
.galset_foot{display:flex; justify-content:flex-end; gap:8px; padding:12px 18px; border-top:1px solid #eee;}
.galset_foot button{padding:9px 18px; border-radius:8px; border:1px solid #d1d5db; background:#fff; cursor:pointer; font-size:13px;}
.galset_foot .galset_save{background:#7c3aed; border-color:#7c3aed; color:#fff; font-weight:700;}
.galset_msg{font-size:12px; color:#6b7280; margin-right:auto; align-self:center;}
/* ★ (2026-10-25) 설정창 탭 + [사진 목록] */
.galset_tabs{display:flex; gap:4px; padding:10px 18px 0; border-bottom:1px solid #e5e7eb; background:#fafafa;}
.galset_tabs button{padding:9px 14px; border:1px solid transparent; border-bottom:0; border-radius:8px 8px 0 0; background:none; color:#6b7280; font-size:13px; font-weight:600; cursor:pointer; margin-bottom:-1px;}
.galset_tabs button.on{background:#fff; border-color:#e5e7eb; color:#7c3aed;}
.galset_box:has(.galset_pane[data-p="items"]:not([style*="none"])){width:min(900px, calc(100vw - 30px));}
.gi_bar{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:12px; font-size:12px;}
.gi_bar button{height:32px; padding:0 14px; border-radius:8px; border:1px solid #7c3aed; background:#7c3aed; color:#fff; font-size:13px; font-weight:600; cursor:pointer;}
.gi_bar .gi_addblank, .gi_bar .gi_addfile{background:#fff; color:#7c3aed;}   /* 1101 [내 컴퓨터] = 파일 올리기 (사진 추가는 admin 이미지함) */
.gi_hint{color:#6b7280;}
.gi_cnt{margin-left:auto; color:#374151; font-weight:600;}
.galset_pane[data-p="items"].gi_drop{outline:3px dashed #a78bfa; outline-offset:4px; border-radius:10px;}
.gi_list{display:flex; flex-direction:column; gap:8px; max-height:min(560px, calc(100vh - 260px)); overflow:auto; padding:2px;}
.gi_empty{padding:36px 0; text-align:center; color:#9ca3af; font-size:13px;}
.gi_row{display:grid; grid-template-columns:18px 22px 92px minmax(0, 1fr) auto; align-items:center; gap:10px; padding:8px 10px; border:1px solid #e5e7eb; border-radius:10px; background:#fff;}
.gi_row.gi_drag{opacity:.4;}
.gi_row.gi_over{border-color:#7c3aed; box-shadow:0 -3px 0 #7c3aed;}
.gi_handle{cursor:grab; color:#9ca3af; font-size:16px; letter-spacing:-3px; user-select:none; text-align:center;}
.gi_no{font-size:12px; color:#6b7280; text-align:center;}
.gi_thumb{position:relative; width:92px; height:70px; border-radius:6px; overflow:hidden; background:#f3f4f6; border:1px solid #e5e7eb; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:11px; color:#9ca3af;}
.gi_thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.gi_thumb:hover{border-color:#7c3aed;}
.gi_vbadge{position:absolute; left:4px; bottom:4px; padding:1px 5px; border-radius:4px; background:rgba(0,0,0,.65); color:#fff; font-size:10px; font-style:normal;}
.gi_rmimg{position:absolute; top:3px; right:3px; width:20px; height:20px; border:0; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; font-size:13px; line-height:20px; padding:0; cursor:pointer; display:none;}
.gi_thumb:hover .gi_rmimg{display:block;}
.gi_fields{display:flex; flex-direction:column; gap:5px; min-width:0;}
.gi_l2{display:flex; gap:6px; align-items:center;}
.gi_fields input[type=text]{flex:1; min-width:0; height:30px; padding:0 8px; border:1px solid #d1d5db; border-radius:6px; font-size:12px; width:100%;}
.gi_fields input.gi_sm{flex:0 0 34%;}
.gi_fields input:disabled{background:#f3f4f6; color:#9ca3af;}
.gi_ck{display:inline-flex; align-items:center; gap:4px; font-size:12px; color:#374151; white-space:nowrap; cursor:pointer;}
.gi_btns{display:flex; flex-direction:column; gap:4px;}
.gi_btns button{height:24px; min-width:44px; padding:0 8px; border:1px solid #d1d5db; border-radius:6px; background:#fff; font-size:12px; cursor:pointer;}
.gi_btns button:disabled{opacity:.35; cursor:default;}
.gi_btns .gi_del{color:#dc2626; border-color:#fecaca;}
@media (max-width:640px){
  .gi_row{grid-template-columns:16px 70px minmax(0, 1fr); grid-template-areas:"h t f" "h b b";}
  .gi_no{display:none;}
  .gi_handle{grid-area:h;} .gi_thumb{grid-area:t; width:70px; height:56px;} .gi_fields{grid-area:f;}
  .gi_btns{grid-area:b; flex-direction:row; justify-content:flex-end;}
  .gi_l2{flex-wrap:wrap;}
}
.galset_inner{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 12px; margin-bottom:16px; background:#f5f3ff; border:1px solid #ddd6fe; border-radius:10px; font-size:13px;}
.galset_inner label{display:inline-flex; align-items:center; gap:6px; font-weight:700; cursor:pointer;}
.galset_inner span{color:#6b7280; font-size:12px;}
.galset_styles{display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px; margin-bottom:16px;}
.galset_s{border:2px solid #e5e7eb; border-radius:10px; padding:8px; background:#fafafa; cursor:pointer; text-align:left; transition:all .2s;}
.galset_s:hover{border-color:#a78bfa;}
.galset_s.on{border-color:#7c3aed; background:#f5f3ff;}
.galset_s span{display:block; font-size:12px; color:#374151; margin-top:6px;}
.galset_s small{display:block; font-size:11px; color:#9ca3af; line-height:1.4;}
.galset_sm{height:52px; display:flex; gap:3px;}
.galset_sm i{display:block; background:#c4b5fd; border-radius:2px;}
.galset_s.on .galset_sm i{background:#7c3aed;}
.galset_sm.g{display:grid; grid-template-columns:repeat(3, 1fr); grid-auto-rows:1fr;}
.galset_sm.m{display:grid; grid-template-columns:repeat(3, 1fr); align-items:start;}
.galset_sm.m b{display:flex; flex-direction:column; gap:3px;}
.galset_sm.h{flex-direction:column;}
.galset_sm.h b{display:flex; gap:3px; flex:1;}
/* ★ (2026-11-06) 후원 파트너 미니 : 테두리 박스 + 가운데 로고 + 아래 글줄 */
.galset_sm.p{display:grid; grid-template-columns:repeat(3, 1fr); gap:4px; align-items:start;}
.galset_sm.p b{display:flex; flex-direction:column; gap:3px;}
.galset_sm.p i{height:30px; background:#fff; border:1px solid #c4b5fd; border-radius:3px; position:relative;}
.galset_sm.p i::after{content:""; position:absolute; left:25%; top:30%; width:50%; height:40%; background:#c4b5fd; border-radius:2px;}
.galset_sm.p u{display:block; height:5px; width:70%; margin:0 auto; background:#c4b5fd; border-radius:2px;}
.galset_s.on .galset_sm.p i{background:#f5f3ff; border-color:#7c3aed;}
.galset_s.on .galset_sm.p i::after, .galset_s.on .galset_sm.p u{background:#7c3aed;}
.galset_sub{margin-bottom:6px;}
/* 후원 파트너 설정 묶음 */
.galset_sub_partner{padding:12px 14px; margin-bottom:14px; background:#fafafa; border:1px solid #e5e7eb; border-radius:10px;}
.galset_sub_partner .galset_lb{margin-top:0;}
.galset_sub_partner .galset_row{margin-bottom:10px;}
.galset_sub_partner .galset_row:last-child{margin-bottom:0;}
.galset_sub_partner .galset_k{min-width:76px; font-weight:600; color:#374151;}
.galset_sub_partner input[type=range]{width:140px;}
.galset_sub_partner .galset_seg{display:inline-flex; border:1px solid #d1d5db; border-radius:8px; overflow:hidden;}
.galset_sub_partner .galset_seg label{padding:5px 11px; margin:0; gap:0; border-right:1px solid #d1d5db; background:#fff; font-size:12px;}
.galset_sub_partner .galset_seg label:last-child{border-right:0;}
.galset_sub_partner .galset_seg label:has(input:checked){background:#7c3aed; color:#fff;}
.galset_sub_partner .galset_seg input{position:absolute; opacity:0; width:0; height:0;}
.galset_sub_partner .galset_hint{color:#6b7280; font-size:12px;}
@media (max-width:640px){ .galset_styles{grid-template-columns:repeat(2, minmax(0, 1fr));} .galset_sub_partner .galset_k{min-width:0; width:100%;} }
/* SUB/photo_gallery //end ----------*/
