@charset "utf-8";
/* =========================================================================
 * 커뮤니티 > 전후사진 (www/community/gallery.jsp 전용)
 * 로드 순서: main_hero.css → jdh_sub.css → 이 파일
 * 선택자는 모두 .gallery 하위로 스코프 한정 → 다른 페이지 오염 없음
 *
 * ⚠ 히어로는 커뮤니티 계열 공통 규격이다 — 공지사항·언론보도·시술후기(page_board.css)
 *   · 피부이야기(page_skinstory.css) · 상담예약(page_booking.css)이 같은 값을 쓴다.
 *     배경 #3B5843 + 좌상단 화이트 광 + 하단 그라데이션 / eng 17px·4.6px / title 38px / desc 15.5px
 *   한 곳만 바꾸지 말 것.
 *
 * ⚠ 전후 비교는 드래그 슬라이더를 쓰지 않는다(사이트 공통 규칙, /css/jdh_ba.css 상단 주석 참조).
 *   카드마다 [시술 전][시술 후] 세그먼트로 전환하고, 크게 볼 때만 라이트박스를 띄운다.
 *   ※ 두 사진은 항상 DOM 에 함께 두고 CSS 로 노출만 바꾼다 — src 를 갈아끼우면 전환할 때마다
 *     흰 화면이 깜빡인다.
 * ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=Noto+Serif+KR:wght@400;500;600;700&display=swap');

.gallery {
	--gl-green:      #3B5843;
	--gl-green-deep: #2C4632;
	--gl-gold:       #C2A878;
	--gl-gold-3:     #CDBF9C;
	--gl-ink:        #1C1E1A;
	--gl-body:       #5B615A;
	--gl-line:       #E7E2D8;
	--gl-cream:      #FBF9F2;

	font-family: 'Pretendard', 'Noto Sans KR', sans-serif;
	color: var(--gl-ink);
	background: #fff;
	overflow-x: clip;
}
.gallery .gl_inner { max-width: 1320px; margin: 0 auto; padding: 0 40px; }

/* =========================================================================
 * 1. 히어로 — 커뮤니티 계열 공통 규격(상단 주석)
 * ========================================================================= */
.gl_hero {
	background: var(--gl-green);
	background-image:
		radial-gradient(120% 90% at 12% 0%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 58%),
		linear-gradient(180deg, rgba(10,16,12,.10) 0%, rgba(10,16,12,.28) 100%);
	padding: 62px 24px 66px;
	text-align: center;
}
.gl_hero__eng {
	display: block;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 700;
	font-size: 17px;
	letter-spacing: 4.6px;
	text-transform: uppercase;
	color: var(--gl-gold-3);
}
.gl_hero__title {
	margin: 14px 0 0;
	font-weight: 700;
	font-size: 38px;
	line-height: 1.2;
	letter-spacing: -.4px;
	color: #fff;
}
.gl_hero__desc {
	margin: 14px auto 0;
	max-width: 620px;
	font-weight: 400;
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba(233,240,232,.76);
	word-break: keep-all;
}

/* =========================================================================
 * 2. 카테고리 탭 — 게시판 페이지(.dctb_tabs)와 같은 알약 버튼
 * ========================================================================= */
/* 카테고리 알약 — **항상 한 줄**이다 (2026-09-08 사용자 지시).
   ⚠ 예전에는 flex-wrap: wrap 이라 영문에서 두 줄로 접혔다(6개 합계 1027px > 컨테이너 952px).
     라벨이 긴 언어가 생겨도 접히지 않게 nowrap 으로 두고, 폭이 모자라면 **가로 스크롤**한다.
   ⚠ justify-content 는 `safe center` 다 — 그냥 center 면 넘칠 때 **왼쪽('All')이 잘려**
     스크롤로도 닿지 못한다. 미지원 브라우저를 위해 center 를 먼저 쓰고 덮어쓴다. */
.gl_tabs {
	display: flex;
	justify-content: center;
	justify-content: safe center;
	flex-wrap: nowrap;
	gap: 8px;
	max-width: 1240px;
	margin: 0 auto;
	padding: 34px 24px 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;          /* 스크롤바는 감춘다 — 알약 줄이 지저분해 보인다 */
	-ms-overflow-style: none;
}
.gl_tabs::-webkit-scrollbar { display: none; }
.gl_tab {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;             /* 한 줄 유지 — 줄어들지 않게 고정 */
	white-space: nowrap;
	padding: 11px 22px;
	border: 1px solid var(--gl-line);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: -.2px;
	color: var(--gl-body);
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.gl_tab:hover { border-color: var(--gl-green); color: var(--gl-green); }
.gl_tab.is-on {
	background: var(--gl-green);
	border-color: var(--gl-green);
	color: #fff;
}
.gl_tab__cnt { margin-left: 6px; font-size: 13px; opacity: .7; }

/* =========================================================================
 * 3. 카드 그리드
 * ========================================================================= */
.gl_main { padding: 34px 0 92px; }
/* 증례 사진이 세로형이라 3열이면 카드 한 장이 지나치게 커진다 → 4열(2026-08-03) */
.gl_grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px 24px;
}
.gl_card.is-hide { display: none; }
.gl_card.is-swap { animation: glSwap .42s cubic-bezier(.22,.61,.36,1); }
@keyframes glSwap {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: none; }
}

/* ── 사진 무대 — 전/후 두 장을 겹쳐 두고 노출만 바꾼다 ──
 * 2026-08-06: div → <a>(상세 이동). 커서도 zoom-in 에서 기본 포인터로 바꿨다. */
.gl_stage {
	display: block;
	position: relative;
	aspect-ratio: 3 / 4;         /* 증례 사진 원본 360x496 세로형에 맞춘 비율 */
	overflow: hidden;
	border-radius: 8px;          /* 이미지 박스 radius 8px 규칙 */
	background: #ECE7DE;
	cursor: pointer;
}
.gl_shot {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity .38s ease;
}
.gl_shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gl_card[data-mode="before"] .gl_shot--before,
.gl_card[data-mode="after"]  .gl_shot--after { opacity: 1; }
/* 캡션 배지 — 지금 보고 있는 사진이 전인지 후인지 항상 보이게 */
.gl_shot__cap {
	position: absolute;
	left: 14px;
	top: 14px;
	padding: 6px 14px;
	border-radius: 999px;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	color: #fff;
}
.gl_shot--before .gl_shot__cap { background: rgba(20,22,20,.6); }
.gl_shot--after  .gl_shot__cap { background: var(--gl-gold); color: #23301F; }

/* ── 목록 잠금 — 사진을 흐리게 가린다 (2026-09-09 다국어 / 2026-09-11 한국어) ────────
 * 언어별로 잠그는 기준이 다르다.
 *   · 다국어(eng·chi·jpn): 회원가입이 없다 → 항상 잠그고, 상세로 들어가면 선명하게 보인다.
 *   · 한국어: 회원 전용(2026-09-11 병원 요청) → 미로그인일 때만 잠근다. 상세 사진도 함께 흐려지며,
 *     그쪽 블러는 board/beafphoto/config.jsp 의 useImgBlurPrev/Next 가 관장한다.
 * 켜고 끄는 곳은 각 언어 gallery.jsp 의 `<div class="gl_grid is-locked">` 한 군데뿐이다.
 * ⚠ blur 는 가장자리 픽셀을 바깥의 투명과 섞어 테두리를 비쳐 보이게 만든다 →
 *   scale 로 살짝 키워 그 띠를 .gl_stage(overflow:hidden) 밖으로 밀어낸다.
 * ⚠ 어두운 막을 한 겹 더 얹는다 — 흐리기만 하면 "잠긴 사진"인지 "초점 나간 사진"인지 구분이 안 된다.
 * ⚠ 상세(/board/beafphoto/read)에는 이 CSS 가 없다. 거기 블러는 모듈의
 *   useImgBlurPrev/Next(로그인 기준, 2026-09-11 부터 true)가 따로 관장한다 — 혼동하지 말 것.
 *   그래서 다국어 상세는 로그인 개념이 없어 항상 선명하게 보이고, 한국어 상세는 미로그인이면 흐리다. */
.gl_grid.is-locked .gl_shot img {
	filter: blur(12px);
	transform: scale(1.08);
}
.gl_grid.is-locked .gl_stage::after {
	content: '';
	position: absolute; inset: 0;
	background: rgba(20,22,20,.28);
	pointer-events: none;
}
/* 흐린 상태에서 [시술 전]/[시술 후] 전환은 보여 줄 것이 없다 → 감춘다 */
.gl_grid.is-locked .gl_seg { display: none; }

/* 안내 배지 — 마크업은 각 언어 gallery.jsp 의 baCard() 안에 있다(문구가 언어별로 다르다).
   .gl_stage(=링크) 안에 있으므로 배지를 눌러도 상세로 간다. */
.gl_lock { display: none; }
.gl_grid.is-locked .gl_lock {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	position: absolute; left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	padding: 11px 18px;
	background: rgba(20,22,20,.62);
	border: 1px solid rgba(255,253,248,.34);
	border-radius: 8px;            /* 이미지 박스 radius 8px 규칙 */
	color: #FFFDF8;
	font-size: 14px; font-weight: 600; letter-spacing: .2px;
	white-space: nowrap;
	pointer-events: none;          /* 링크 클릭을 가로채지 않는다 */
}
.gl_lock i {                       /* 셰브론 — 정사각의 두 변만 남겨 45° 로 */
	display: block; width: 7px; height: 7px;
	border-top: 1.6px solid currentColor; border-right: 1.6px solid currentColor;
	transform: translateX(-1px) rotate(45deg);
}

/* ── 세그먼트 (시술 전 / 시술 후) ── */
.gl_seg {
	position: relative;
	display: flex;
	margin: 14px 0 0;
	padding: 4px;
	background: #F2EFE7;
	border-radius: 999px;
}
.gl_seg__btn {
	flex: 1 1 0;
	position: relative;
	z-index: 1;
	padding: 9px 12px;
	border: 0;
	border-radius: 999px;
	background: none;
	cursor: pointer;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	color: rgba(28,30,26,.5);
	transition: color .25s ease;
}
.gl_seg__btn.is-on { color: var(--gl-ink); }
.gl_seg__ink {
	position: absolute;
	top: 4px;
	bottom: 4px;
	left: 4px;
	width: calc(50% - 4px);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 2px 6px rgba(28,30,26,.10);
	transition: transform .32s cubic-bezier(.22,.61,.36,1);
}
.gl_card[data-mode="after"] .gl_seg__ink { transform: translateX(100%); }

/* ── 카드 정보 ── */
.gl_card__info { margin: 14px 0 0; }
.gl_card__cat {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(59,88,67,.07);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--gl-green);
}
.gl_card__name {
	margin: 10px 0 0;
	font-weight: 700;
	font-size: 18px;             /* 4열 카드 폭에 맞춰 20 → 18 (2026-08-03) */
	line-height: 1.36;
	letter-spacing: -.5px;
	color: var(--gl-ink);
	word-break: keep-all;
}
.gl_card__txt {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.72;
	color: rgba(28,30,26,.62);
	word-break: keep-all;
}
.gl_card__meta {
	margin: 12px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	font-size: 13px;
	color: rgba(28,30,26,.5);
}
.gl_card__meta b { font-weight: 600; color: rgba(28,30,26,.68); }

/* ── 결과 없음 ── */
.gl_empty {
	display: none;
	padding: 70px 20px;
	text-align: center;
	font-size: 16px;
	color: rgba(28,30,26,.5);
}
.gl_empty.is-on { display: block; }

/* ── 페이지네이션 — 카드 12장 단위(2026-08-03, 사진 53장 전량 게재) ── */
.gl_pager {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 46px 0 0;
}
.gl_pager:empty { display: none; }   /* 1페이지뿐이면 자리도 차지하지 않는다 */

/* 2026-08-12 — 페이저는 모듈 공통 출력(Page.newIndexUserList → .prd_page_nav_*)을 쓴다.
 * ⚠ 그런데 모듈 공통 board.css 가 **1024px 이하에서 .prd_page_nav_wrapper 를 display:none !important**
 *   로 숨긴다(모바일에서는 .mo_programPage 라는 별도 페이저를 쓰라는 설계인데,
 *   newIndexUserList 는 그 마크업을 만들어 주지 않는다) → 모바일에서 페이지 이동 수단이 통째로 사라졌다.
 *   여기서 되살린다. !important 를 빼면 board.css 를 못 이긴다.
 * ⚠ .gl_pager 스코프 안에서만 되살리므로 다른 게시판에는 영향이 없다.
 * 아래 링크 스타일은 위 .gl_pager__btn(원래 JS 로 그리려던 버튼)과 같은 규격이다 — 함께 고칠 것. */
.gl_pager .prd_page_nav_wrapper { display: flex !important; margin-top: 0; gap: 6px; }
.gl_pager .prd_page_nav_num_box { gap: 6px; flex-wrap: wrap; justify-content: center; }
.gl_pager a.prd_page_nav_num {
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	aspect-ratio: auto;              /* 모듈 기본값(1/1)은 두 자리 숫자에서 폭이 모자란다 */
	border: 1px solid var(--gl-line);
	border-radius: 8px;
	background: #fff;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--gl-body, #3A4038);
	text-decoration: none;
}
.gl_pager a.prd_page_nav_num:hover { border-color: var(--gl-green); color: var(--gl-green); }
.gl_pager a.prd_page_nav_num.active {
	border-color: var(--gl-green);
	background: var(--gl-green);
	color: #FFFDF8;
	cursor: default;
}
.gl_pager__btn {
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--gl-line);
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1;
	color: rgba(28,30,26,.62);
	transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.gl_pager__btn:hover:not(:disabled) {
	border-color: var(--gl-green);
	color: var(--gl-green);
}
.gl_pager__btn.is-on {
	border-color: var(--gl-green);
	background: var(--gl-green);
	color: #FFFDF8;
	cursor: default;
}
.gl_pager__btn:disabled { opacity: .35; cursor: default; }
.gl_pager__btn--nav { font-size: 12px; }
.gl_pager__gap {
	padding: 0 2px;
	font-size: 14px;
	color: rgba(28,30,26,.4);
}

/* =========================================================================
 * 4. 고지 — ⚠ 의료광고 관련 문구다. 임의로 빼지 말 것(gallery.jsp 상단 주석)
 * ========================================================================= */
.gl_notice { padding: 40px 0 64px; }
.gl_notice__box {
	padding: 24px 28px;
	background: var(--gl-cream);
	border: 1px solid var(--gl-line);
	border-radius: 12px;
}
.gl_notice__title {
	margin: 0 0 10px;
	font-weight: 700;
	font-size: 15px;
	color: var(--gl-ink);
}
.gl_notice__list { margin: 0; padding: 0; list-style: none; }
.gl_notice__list li {
	position: relative;
	padding: 0 0 0 14px;
	font-size: 14px;
	line-height: 1.75;
	color: rgba(28,30,26,.6);
	word-break: keep-all;
}
.gl_notice__list li + li { margin-top: 5px; }
.gl_notice__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .78em;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--gl-gold);
}

/* =========================================================================
 * 5. 클로징
 * ========================================================================= */
.gl_closing { padding: 80px 0 84px; background: var(--gl-green-deep); text-align: center; }
.gl_closing__title {
	margin: 0;
	font-weight: 700;
	font-size: 30px;
	line-height: 1.4;
	letter-spacing: -.6px;
	color: #F4F2EE;
	word-break: keep-all;
}
.gl_closing__desc {
	margin: 16px 0 0;
	font-size: 16px;
	line-height: 1.8;
	color: rgba(244,242,238,.74);
	word-break: keep-all;
}
.gl_closing__btns { margin: 30px 0 0; display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
/* ⚠ .gallery 로 감쌀 것 — basic.css 의 a:link{color:inherit} 특이도(0,1,1)를 이겨야 한다 */
.gallery .gl_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 176px;
	padding: 15px 30px;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: background .25s ease, border-color .25s ease;
}
.gallery .gl_btn--gold { background: var(--gl-gold); color: #23301F; border: 1px solid var(--gl-gold); }
.gallery .gl_btn--gold:hover { background: #d3bb90; }
.gallery .gl_btn--line { background: rgba(255,255,255,.06); color: #F4F2EE; border: 1px solid rgba(244,242,238,.62); }
.gallery .gl_btn--line:hover { background: rgba(255,255,255,.14); border-color: #F4F2EE; }

/* =========================================================================
 * 6. 상세 — /board/beafphoto/read.jsp (목록 카드의 사진을 누르면 이동)
 *    모듈 read 를 JDH 껍데기로 감싼 구조라, 톤은 전부 여기서 잡는다.
 *    시술후기 상세(page_skinstory.css 의 .sksy_read)와 같은 방식.
 * ========================================================================= */
.gl_read { padding: 56px 0 96px; }
.gl_read__back {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 15px; font-weight: 600; color: var(--gl-body); text-decoration: none;
	transition: color .2s ease;
}
.gl_read__back::before {
	content: ''; width: 8px; height: 8px;
	border-left: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg);
}
.gl_read__back:hover { color: var(--gl-green); }

.gl_read__head {
	margin: 26px 0 0; padding-bottom: 26px;
	border-bottom: 1px solid var(--gl-line);
	text-align: center;
}
.gl_read__cat {
	display: inline-flex; align-items: center;
	padding: 5px 12px;
	background: rgba(59,88,67,.07); border-radius: 999px;
	font-size: 13px; font-weight: 600; color: var(--gl-green);
}
.gl_read__title {
	margin: 14px 0 0;
	font-weight: 700; font-size: 30px; line-height: 1.35; letter-spacing: -0.6px;
	color: var(--gl-ink); word-break: keep-all;
}
.gl_read__date { display: block; margin: 12px 0 0; font-size: 14px; color: rgba(28,30,26,.5); }

/* 회원 전용 안내 (2026-09-11) — 미로그인으로 상세에 들어왔을 때 사진 위에 먼저 뜬다.
   마크업은 board/beafphoto/read.jsp 의 `if (!loginCheck)` 블록. 사진 블러 자체는
   모듈 설정(config.jsp 의 useImgBlurPrev/Next)이 담당한다 — 여기서는 안내만 그린다. */
.gl_read__lock {
	display: flex; align-items: center; justify-content: space-between; gap: 18px;
	margin: 36px 0 0; padding: 18px 22px;
	background: #F4F1EA; border: 1px solid rgba(28,30,26,.1); border-radius: 8px;
	flex-wrap: wrap;
}
.gl_read__lock__txt { margin: 0; font-size: 15px; line-height: 1.6; color: var(--gl-body); word-break: keep-all; }
/* a.~ 로 쓴다 — 공통 CSS 의 링크 색 규칙이 클래스 하나짜리 선택자를 이겨서 글자가 배경색과 같아진다 */
a.gl_read__lock__btn {
	flex: 0 0 auto;
	padding: 11px 22px; border-radius: 999px;
	background: var(--gl-ink); color: #FFFDF8;
	font-size: 14px; font-weight: 600; letter-spacing: .2px; white-space: nowrap;
	transition: opacity .2s ease;
}
a.gl_read__lock__btn:hover { opacity: .82; color: #FFFDF8; }

/* Before / After 두 장을 나란히 — 상세는 크게 보는 자리라 세그먼트 없이 함께 보여준다 */
.gl_read__pairs { margin: 40px 0 0; display: grid; gap: 24px; }
.gl_read__pair {
	margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px;
}
.gl_read__shot {
	position: relative; display: block;
	border-radius: 8px; overflow: hidden; line-height: 0;
	background: #ECE7DE;
}
.gl_read__shot img { width: 100%; height: auto; display: block; }
.gl_read__badge {
	position: absolute; left: 14px; top: 14px;
	padding: 6px 14px; border-radius: 999px;
	font-family: 'Cormorant Garamond', serif;
	font-weight: 700; font-size: 13px; letter-spacing: 1.4px; font-style: normal;
	background: rgba(28,30,26,.72); color: #fff;
}
.gl_read__badge--after { background: rgba(59,88,67,.86); }

.gl_read__body {
	margin: 40px 0 0;
	font-size: 16px; line-height: 1.85; color: var(--gl-body); word-break: keep-all;
}
.gl_read__body img { max-width: 100%; height: auto; border-radius: 8px; }
.gl_read__files { margin: 28px 0 0; font-size: 14.5px; }
.gl_read__files a { color: var(--gl-green); }

.gl_read__notice {
	margin: 44px 0 0; padding: 26px 28px;
	background: var(--gl-cream); border: 1px solid var(--gl-line); border-radius: 8px;
}
.gl_read__notice-title { margin: 0 0 12px; font-weight: 700; font-size: 16px; color: var(--gl-ink); }
.gl_read__notice ul { margin: 0; padding: 0 0 0 18px; }
.gl_read__notice li {
	font-size: 14.5px; line-height: 1.75; color: var(--gl-body); word-break: keep-all;
}
.gl_read__notice li + li { margin-top: 6px; }

.gl_read__foot { margin: 40px 0 0; text-align: center; }
.gallery .gl_read__list-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 168px; padding: 15px 30px;
	background: var(--gl-green); border-radius: 999px;
	font-weight: 700; font-size: 15.5px; color: #fff; text-decoration: none;
	transition: background .25s ease;
}
.gallery .gl_read__list-btn:hover { background: var(--gl-green-deep); }

@media all and (max-width: 768px) {
	.gl_read { padding: 40px 0 68px; }
	.gl_read__title { font-size: 23px; }
	.gl_read__pairs { margin-top: 30px; gap: 18px; }
	.gl_read__pair { gap: 10px; }
	.gl_read__badge { left: 10px; top: 10px; padding: 5px 11px; font-size: 12px; }
	.gl_read__body { margin-top: 30px; font-size: 15px; }
	.gl_read__notice { padding: 20px 18px; }
}

/* =========================================================================
 * 7. 라이트박스 — ⚠ 현재 미사용(2026-08-06)
 *    사진 클릭 동작이 '크게 보기'에서 '상세 이동'으로 바뀌면서 gallery.jsp 의
 *    마크업·스크립트를 걷어냈다. 되돌릴 때를 위해 스타일만 남겨 둔다.
 * ========================================================================= */
.gl_lb {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 40px;
	background: rgba(12,14,12,.88);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.gl_lb.is-open { display: flex; }
.gl_lb__stage { margin: 0; max-width: 900px; width: 100%; text-align: center; }
.gl_lb__shots { position: relative; }
.gl_lb__img {
	max-width: 100%;
	max-height: 66vh;
	border-radius: 8px;
	display: block;
	margin: 0 auto;
}
.gl_lb__cap { margin: 16px 0 0; color: #fff; }
.gl_lb__cap b { display: block; font-size: 19px; font-weight: 700; }
.gl_lb__cap span { display: block; margin: 5px 0 0; font-size: 14.5px; color: rgba(255,255,255,.7); }
.gl_lb__seg {
	display: inline-flex;
	gap: 4px;
	margin: 18px 0 0;
	padding: 4px;
	background: rgba(255,255,255,.12);
	border-radius: 999px;
}
.gl_lb__btn {
	padding: 9px 24px;
	border: 0;
	border-radius: 999px;
	background: none;
	cursor: pointer;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	color: rgba(255,255,255,.72);
	transition: background .25s ease, color .25s ease;
}
.gl_lb__btn.is-on { background: #fff; color: var(--gl-ink); }
.gl_lb__close {
	position: absolute;
	top: 26px;
	right: 26px;
	width: 46px;
	height: 46px;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.12);
	color: #fff;
	cursor: pointer;
	font-size: 20px;
	line-height: 1;
	transition: background .2s;
}
.gl_lb__close:hover { background: rgba(255,255,255,.24); }

/* =========================================================================
 * 반응형
 * ========================================================================= */
@media all and (max-width: 1240px) {
	.gallery .gl_inner { padding: 0 28px; }
	.gl_grid { grid-template-columns: repeat(3, 1fr); gap: 28px 22px; }
}
@media all and (max-width: 980px) {
	.gl_grid { grid-template-columns: repeat(2, 1fr); }
}

@media all and (max-width: 768px) {
	.gallery .gl_inner { padding: 0 20px; }
	/* 게시판 페이지 768↓ 히어로 값과 동일하게 */
	.gl_hero { padding: 46px 18px 50px; }
	.gl_hero__eng { font-size: 15px; letter-spacing: 3.4px; }
	.gl_hero__title { font-size: 27px; }
	.gl_hero__desc { font-size: 14.5px; }
	.gl_hero__desc br { display: none; }

	.gl_tabs { padding: 26px 18px 0; gap: 6px; }
	.gl_tab { padding: 9px 16px; font-size: 14px; }
	.gl_main { padding: 26px 0 68px; }
	/* 세로형 사진이라 모바일에서도 2열이 낫다 — 1열이면 카드 하나가 화면을 넘긴다 */
	.gl_grid { grid-template-columns: repeat(2, 1fr); gap: 22px 14px; }
	.gl_card__name { font-size: 15.5px; }
	.gl_card__cat { padding: 4px 10px; font-size: 11.5px; }
	.gl_seg__btn { padding: 8px 6px; font-size: 12.5px; }
	.gl_shot__cap { left: 10px; top: 10px; padding: 5px 10px; font-size: 11px; letter-spacing: 1.6px; }
	.gl_pager { margin-top: 34px; gap: 5px; }
	.gl_pager__btn { min-width: 36px; height: 36px; padding: 0 9px; font-size: 13.5px; }
	.gl_notice { padding: 28px 0 48px; }
	.gl_notice__box { padding: 20px 18px; }
	.gl_closing { padding: 60px 0 64px; }
	.gl_closing__title { font-size: 23px; }
	.gallery .gl_btn { min-width: 0; flex: 1 1 100%; }
	.gl_lb { padding: 20px; }
	.gl_lb__close { top: 12px; right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.gl_shot, .gl_seg__ink, .gl_tab { transition: none; }
	.gl_card.is-swap { animation: none; }
}
