/* 서브 페이지 전용 스타일 */

.page-hero {
	position: relative;
	padding: 62px 0 54px;
	background: #121212 center/cover no-repeat;
	text-align: center;
}
/* 어둡게 처리는 각 페이지의 background-image에 linear-gradient 레이어로 포함 */
.page-hero .wrap { position: relative; }
.page-hero .eyebrow { font-size: 11px; letter-spacing: 4px; color: var(--gold); margin-bottom: 12px; }
.page-hero h1 {
	margin: 0;
	font-size: clamp(26px, 3.6vw, 40px);
	font-weight: 300;              /* 얇은 대형 타이틀 (대구오페라하우스 문법) */
	letter-spacing: -0.5px;
	color: #fff;
}
.page-hero .crumb { margin-top: 12px; font-size: 12.5px; color: #8E887E; }
.page-hero .crumb a { color: #8E887E; }
.page-hero .crumb a:hover { color: var(--gold); }

.page-body { padding: 62px 0 84px; }
.page-body .wrap { max-width: 900px; }
.page-body.wide .wrap { max-width: var(--maxw); }

.page-body h2 {
	margin: 46px 0 16px;
	font-size: 21px;
	font-weight: 700;
	color: #fff;
	padding-left: 13px;
	border-left: 3px solid var(--red);
	line-height: 1.35;
}
.page-body h2:first-child { margin-top: 0; }

.page-body h3 {
	margin: 30px 0 10px;
	font-size: 17px;
	font-weight: 600;
	color: var(--gold);
}

.page-body p {
	margin: 0 0 17px;
	color: #CFC9BF;
	font-size: 16px;
	line-height: 1.85;
	word-break: keep-all;
}
/* 오프닝 스테이트먼트 (환영문 + 슬로건) */
.statement { text-align: center; padding: 6px 0 12px; margin-bottom: 34px; }
.statement .eyebrow { font-size: 11px; letter-spacing: 5px; color: var(--gold); margin-bottom: 18px; }
.statement .quote {
	margin: 0;
	font-size: clamp(23px, 3vw, 33px);
	font-weight: 700;
	letter-spacing: -0.5px;
	line-height: 1.45;
	color: #fff;
}
.statement .qm { color: var(--gold); font-weight: 400; }
.statement .sub { margin: 15px 0 0; font-size: 14.5px; letter-spacing: .4px; color: #8E887E; }
.statement::after {
	content: '';
	display: block;
	width: 56px; height: 1px;
	background: var(--gold);
	margin: 32px auto 0;
	opacity: .75;
}

.page-body p.lead {
	font-size: 18px;
	color: #EDE7DC;
	line-height: 1.8;
	padding: 20px 22px;
	background: #151515;
	border-left: 3px solid var(--gold);
	margin-bottom: 30px;
}
.page-body .sign { margin-top: 26px; text-align: right; color: var(--gold); font-size: 15px; }
.page-body .quote-it {
	color: #A9A399;
	font-style: italic;
	font-size: 14.5px;
	line-height: 1.8;
	padding: 18px 20px;
	background: #131313;
	border: 1px solid var(--line);
	margin-bottom: 26px;
}

.page-body ul.plain { margin: 0 0 20px; padding-left: 20px; color: #CFC9BF; }
.page-body ul.plain li { margin-bottom: 7px; line-height: 1.7; }

.page-body img.figure {
	margin: 0 auto 26px;
	border: 1px solid var(--line);
}

/* 카드/그리드 */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cards.two { grid-template-columns: repeat(2, 1fr); }
.card {
	background: #151515;
	border: 1px solid var(--line);
	padding: 24px 22px;
	transition: border-color .2s, transform .2s;
}
.card:hover { border-color: var(--red); transform: translateY(-3px); }
.card h3 { margin: 0 0 8px; font-size: 17px; color: #fff; }
.card p { margin: 0; font-size: 14.5px; color: #A9A399; line-height: 1.7; }

/* CI */
.ci-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: center; }
.ci-item { background: #F3EFE7; padding: 30px; text-align: center; }
.ci-item img { margin: 0 auto 14px; max-height: 180px; width: auto; }
.ci-item span { font-size: 13px; color: #555; letter-spacing: 1px; }

/* 협찬사 */
.logos { display: flex; flex-wrap: wrap; gap: 12px; }
.logos span {
	padding: 13px 22px;
	background: #151515;
	border: 1px solid var(--line);
	font-size: 14.5px;
	color: #CFC9BF;
}

/* 영상 */
.video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.video-item iframe { width: 100%; aspect-ratio: 16/9; border: 0; background: #000; }
.video-item p { margin: 10px 0 0; font-size: 14.5px; color: #CFC9BF; }

/* 정보 박스 */
.infobox {
	background: #151515;
	border: 1px solid var(--line);
	border-top: 2px solid var(--red);
	padding: 26px 24px;
	margin-bottom: 24px;
}
.infobox h3 { margin: 0 0 12px; color: #fff; font-size: 17px; }
.infobox p { margin: 0 0 8px; font-size: 15px; }
.infobox .acct { color: var(--gold); font-weight: 600; }

.btn-line {
	display: inline-block;
	margin-top: 8px;
	padding: 11px 28px;
	border: 1px solid var(--gold);
	color: var(--gold);
	font-size: 14px;
	transition: background .2s, color .2s;
}
.btn-line:hover { background: var(--gold); color: #101010; }

/* 게시판 */
.board-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.board-table th {
	padding: 14px 10px;
	border-top: 2px solid var(--red);
	border-bottom: 1px solid var(--line);
	color: #EDE7DC;
	font-weight: 600;
	font-size: 14px;
}
.board-table td {
	padding: 15px 10px;
	border-bottom: 1px solid rgba(255,255,255,.08);
	color: #BFB9AF;
}
.board-table td a { color: #EDE7DC; }
.board-table td a:hover { color: var(--gold); }
.board-table .num, .board-table .date, .board-table .hit { text-align: center; color: #857F76; font-size: 13.5px; }
.board-table .subject { width: 55%; }
.board-empty { padding: 60px 0; text-align: center; color: #7E786F; }

.board-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
.pager { display: flex; justify-content: center; gap: 6px; margin-top: 30px; }
.pager a, .pager span {
	min-width: 36px;
	padding: 8px 10px;
	text-align: center;
	border: 1px solid var(--line);
	font-size: 14px;
	color: #BFB9AF;
}
.pager .on { background: var(--red); border-color: var(--red); color: #fff; }

/* 글 보기 */
.post-head { border-top: 2px solid var(--red); border-bottom: 1px solid var(--line); padding: 22px 4px; }
.post-head h2 { margin: 0 0 8px; border: 0; padding: 0; font-size: 21px; }
.post-meta { font-size: 13.5px; color: #857F76; }
.post-content { padding: 30px 4px 40px; color: #CFC9BF; line-height: 1.85; white-space: pre-wrap; word-break: keep-all; }

/* 폼 */
.form-row { margin-bottom: 18px; }
.form-row label { display: block; margin-bottom: 7px; font-size: 14px; color: #CFC9BF; }
.form-row input[type=text], .form-row input[type=email], .form-row input[type=password], .form-row textarea, .form-row select {
	width: 100%;
	padding: 12px 14px;
	background: #131313;
	border: 1px solid var(--line);
	color: #EDE7DC;
	font-size: 15px;
	font-family: inherit;
}
.form-row textarea { min-height: 200px; resize: vertical; line-height: 1.7; }
.form-row input:focus, .form-row textarea:focus { outline: 0; border-color: var(--gold); }
.form-note { font-size: 13px; color: #7E786F; margin-top: 6px; }

.btn {
	display: inline-block;
	padding: 12px 30px;
	background: var(--red);
	border: 1px solid var(--red);
	color: #fff;
	font-size: 15px;
	font-family: inherit;
	cursor: pointer;
	transition: background .2s;
}
.btn:hover { background: var(--red-light); }
.btn.ghost { background: transparent; border-color: var(--line); color: #BFB9AF; }
.btn.ghost:hover { border-color: var(--gold); color: var(--gold); }

.alert { padding: 14px 18px; margin-bottom: 20px; font-size: 14.5px; }
.alert.ok { background: #12261A; border: 1px solid #2E6B45; color: #A9E0BC; }
.alert.err { background: #2A1213; border: 1px solid #7A2A2E; color: #E7A9AD; }

@media (max-width: 820px) {
	.page-hero { padding: 40px 0 34px; }
	.page-body { padding: 40px 0 56px; }
	.page-body p { font-size: 15.5px; }
	.cards, .cards.two, .ci-grid, .video-grid { grid-template-columns: 1fr; }
	.board-table .hit, .board-table th.hit { display: none; }
	.board-table .subject { width: auto; }
	.board-table td, .board-table th { padding: 12px 6px; font-size: 14px; }
}

/* ---------- 페이지 이미지 ---------- */
.page-body img.figure {
	width: 100%;
	max-width: 720px;
	margin: 30px auto 34px;
	border: 1px solid var(--line);
}
.page-body img.figure.portrait {
	float: right;
	width: min(46%, 340px);
	margin: 4px 0 22px 28px;
	border: 1px solid rgba(201,162,74,.35);
}
.page-body .sign { clear: both; }

/* 하단 갤러리 */
.pagegal {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 12px;
	margin-top: 40px;
}
.pagegal a {
	display: block;
	aspect-ratio: 4/3;
	overflow: hidden;
	background: #0d0d0d;
	border: 1px solid var(--line);
	transition: border-color .2s, transform .2s;
}
.pagegal a:hover { border-color: var(--red); transform: translateY(-2px); }
.pagegal img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.pagegal a:hover img { transform: scale(1.05); }

@media (max-width: 820px) {
	.page-body img.figure.portrait { float: none; width: 100%; max-width: 100%; margin: 0 0 24px; }
	.page-body img.figure { margin: 22px auto 26px; }
	.pagegal { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

/* ---------- 본문 절반 크기 사진 (글 사이 배치) ---------- */
.page-body img.figure.half {
	width: min(44%, 360px);
	margin: 6px 0 16px;
}
.page-body img.figure.half.R { float: right; margin-left: 26px; }
.page-body img.figure.half.L { float: left; margin-right: 26px; }
.page-body h2 { clear: both; }

/* ---------- 감상실 카드 ---------- */
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.media-card { cursor: pointer; }
.media-thumb {
	position: relative;
	aspect-ratio: 16/9;
	overflow: hidden;
	background: #000;
	border: 1px solid var(--line);
}
.media-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s, opacity .3s; }
.media-card:hover .media-thumb img { transform: scale(1.04); opacity: .85; }
.media-thumb iframe { width: 100%; height: 100%; border: 0; }
.media-thumb .play {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-size: 22px;
}
.media-thumb .play i {
	width: 62px; height: 62px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(142, 11, 18, .88);
	border-radius: 50%;
	padding-left: 4px;
	transition: transform .2s, background .2s;
}
.media-card:hover .play i { transform: scale(1.12); background: var(--red-light); }
.media-thumb .dur {
	position: absolute; right: 8px; bottom: 8px;
	font-size: 11px; letter-spacing: .5px;
	background: rgba(0,0,0,.72); color: #ddd;
	padding: 3px 8px;
}
.media-card.playing .play, .media-card.playing .dur { display: none; }
.media-card p { margin: 11px 2px 0; font-size: 14.5px; color: #D6D0C6; line-height: 1.5; }

@media (max-width: 900px) { .media-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
@media (max-width: 560px) {
	.media-grid { grid-template-columns: 1fr; }
	.page-body img.figure.half, .page-body img.figure.half.R, .page-body img.figure.half.L { float: none; width: 100%; margin: 0 0 20px; }
}

/* ---------- 감상실 상세 ---------- */
.media-player { aspect-ratio: 16/9; background: #000; border: 1px solid var(--line); }
.media-player iframe { width: 100%; height: 100%; border: 0; }

/* 오버레이 커스텀 컨트롤 (유튜브 스타일, 상세) */
.mp-cover { position: absolute; top: 0; left: 0; right: 0; bottom: 58px; cursor: pointer; }
.mp-center {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 84px; height: 84px; border-radius: 50%;
	background: rgba(0,0,0,.55); color: #fff; font-size: 30px;
	display: flex; align-items: center; justify-content: center;
	opacity: 0; pointer-events: none;
}
.mp-center.go { animation: mpFlash .7s ease forwards; }
@keyframes mpFlash { 0% { opacity: .9; transform: translate(-50%,-50%) scale(.8); } 100% { opacity: 0; transform: translate(-50%,-50%) scale(1.25); } }
.mp-ctrl {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 26px 14px 8px;
	background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0));
	opacity: 0; transition: opacity .25s;
}
.mp-ctrl.show { opacity: 1; }
.mp-track { height: 4px; background: rgba(255,255,255,.28); cursor: pointer; touch-action: none; }
.mp-track:hover { height: 6px; }
.mp-fill { position: relative; height: 100%; width: 0; background: #F00; }
.mp-knob {
	position: absolute; right: -7px; top: 50%;
	transform: translateY(-50%);
	width: 14px; height: 14px; border-radius: 50%;
	background: #F00;
}
.mp-row { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.mp-btn {
	background: transparent; border: 0; color: #fff;
	font-size: 17px; cursor: pointer; padding: 6px 4px;
	opacity: .92; transition: opacity .2s;
}
.mp-btn:hover { opacity: 1; }
.mp-time { font-size: 13px; color: #EEE; letter-spacing: .3px; }
.mp-yt {
	display: flex; align-items: center; gap: 7px;
	color: #fff; font-size: 12.5px; letter-spacing: .4px;
	opacity: .85; transition: opacity .2s;
}
.mp-yt i { color: #F00; font-size: 20px; }
.mp-yt:hover { opacity: 1; }
.media-player:fullscreen { aspect-ratio: auto; border: 0; }
.media-meta {
	display: flex; align-items: center; gap: 18px;
	padding: 14px 4px; border-bottom: 1px solid var(--line);
	font-size: 14px; color: #A9A399;
}
.media-meta i { margin-right: 4px; color: var(--gold); }
.like-btn {
	background: transparent; border: 1px solid var(--line); color: #D6D0C6;
	padding: 8px 18px; font-size: 14px; font-family: inherit; cursor: pointer;
	transition: border-color .2s, color .2s;
}
.like-btn:hover { border-color: #E8656B; color: #E8656B; }
.like-btn.on { border-color: #E8656B; color: #E8656B; cursor: default; }
.like-btn i { color: inherit; }
.media-desc {
	padding: 24px 4px; color: #CFC9BF; line-height: 1.85; font-size: 15.5px;
	border-bottom: 1px solid rgba(255,255,255,.08); word-break: keep-all;
}

/* 댓글 */
.cmt-box { margin-top: 34px; }
.cmt { padding: 16px 4px; border-bottom: 1px solid rgba(255,255,255,.08); }
.cmt-head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; font-size: 13.5px; }
.cmt-head strong { color: #EDE7DC; }
.cmt-head span { color: #7E786F; font-size: 12.5px; }
.cmt p { margin: 0; color: #C3BDB3; font-size: 14.5px; line-height: 1.7; }
.cmt-del { margin-left: auto; display: flex; gap: 6px; }
.cmt-del input {
	width: 110px; padding: 5px 9px; font-size: 12px;
	background: #101010; border: 1px solid var(--line); color: #EDE7DC; font-family: inherit;
}
.cmt-del button {
	padding: 5px 10px; font-size: 12px; background: transparent;
	border: 1px solid var(--line); color: #8E887E; cursor: pointer; font-family: inherit;
}
.cmt-del button:hover { border-color: #7A2A2E; color: #E7A9AD; }
.cmt-form { margin-top: 24px; }
.cmt-form-top { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.cmt-form input, .cmt-form textarea {
	width: 100%; padding: 11px 13px; background: #131313;
	border: 1px solid var(--line); color: #EDE7DC; font-size: 14.5px; font-family: inherit;
}
.cmt-form textarea { min-height: 90px; resize: vertical; line-height: 1.7; }
.cmt-form input:focus, .cmt-form textarea:focus { outline: 0; border-color: var(--gold); }

/* 목록 카드 통계 */
.media-stats { display: flex; gap: 14px; margin-top: 7px; font-size: 12.5px; color: #857F76; }
.media-stats i { margin-right: 3px; }

@media (max-width: 560px) {
	.cmt-form-top { grid-template-columns: 1fr; }
	.media-meta { flex-wrap: wrap; gap: 10px; }
}

/* 감상실: 상세 플레이어 초기 화면 + 목록 카드 정보영역 */
.media-player { position: relative; cursor: pointer; }
.media-player img { width: 100%; height: 100%; object-fit: cover; }
.media-player .play.big {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	color: #fff;
}
.media-player .play.big i {
	width: 84px; height: 84px; font-size: 30px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(142, 11, 18, .9);
	border-radius: 50%; padding-left: 6px;
	transition: transform .2s, background .2s;
}
.media-player:hover .play.big i { transform: scale(1.1); background: var(--red-light); }
.media-player.on { cursor: default; }

.media-card .media-thumb { cursor: pointer; }
.media-info { display: block; }
.media-info:hover p { color: var(--gold); }
.media-stats .go { margin-left: auto; color: var(--gold); font-size: 12px; }
.media-card.playing .media-thumb { cursor: default; }

/* ===== 공연 목록 카드 (포스터 3:4 · 대구오페라하우스 비율 참조) ===== */
.sec-eyebrow { display: block; font-size: 11px; letter-spacing: 4px; color: var(--gold); margin: 40px 0 6px; }
.sec-eyebrow + h2 { margin-top: 0; }

.show-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.show-card {
	display: flex; flex-direction: column;
	background: #131313;
	border: 1px solid var(--line);
	color: inherit;
	transition: border-color .35s ease, transform .35s ease;
}
.show-poster {
	position: relative;
	display: block;
	aspect-ratio: 3/4;
	overflow: hidden;
	background: #0E0E0E;
}
.show-poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sd-noposter {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 11px; letter-spacing: 3px; color: #4A453D;
}
.show-body { display: flex; flex-direction: column; padding: 16px 16px 18px; flex: 1; }
.show-meta { font-size: 11.5px; letter-spacing: .5px; color: var(--gold); margin-bottom: 7px; line-height: 1.5; }
.show-name { font-size: 16px; font-weight: 700; color: #fff; line-height: 1.4; }
.show-sub { margin-top: 5px; font-size: 13.5px; color: #A9A399; font-weight: 300; line-height: 1.6; }
.show-more { margin-top: auto; padding-top: 14px; font-size: 12.5px; color: #7E786F; }

.show-card.past .show-poster img { filter: grayscale(.45) brightness(.85); }

@media (hover: hover) {
	.show-poster img { transition: transform 1s ease, filter .5s ease; }
	.show-card:hover { border-color: rgba(201,162,74,.55); transform: translateY(-3px); }
	.show-card:hover .show-poster img { transform: scale(1.07); filter: none; }
	.show-card:hover .show-name { color: var(--gold); }
	.show-card:hover .show-more { color: var(--gold); }
	.btn-line { transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease; }
	.btn-line:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.35); }
}

@media (max-width: 1024px) { .show-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .show-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } .show-name { font-size: 15px; } }
@media (max-width: 420px)  { .show-body { padding: 13px 13px 15px; } .show-sub { display: none; } }

/* ===== 공연 상세 (대구오페라하우스 상세 구조) ===== */
.show-detail { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
.sd-poster { position: relative; aspect-ratio: 3/4; overflow: hidden; background: #0E0E0E; border: 1px solid var(--line); }
.sd-poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sd-badge {
	display: inline-block; padding: 5px 14px;
	background: var(--red); color: #fff;
	font-size: 11.5px; letter-spacing: 1px;
}
.sd-badge.past { background: #33302B; color: #A9A399; }
.sd-title { margin: 14px 0 0 !important; padding: 0 !important; border: 0 !important; font-size: clamp(21px, 2.6vw, 28px); font-weight: 700; color: #fff; line-height: 1.35; }
.sd-sub { margin: 8px 0 0; color: #A9A399; font-size: 15px; }
.sd-list {
	margin: 24px 0 26px; padding: 22px 0 0;
	border-top: 1px solid var(--line);
	display: grid; grid-template-columns: 92px 1fr; gap: 12px 18px;
	font-size: 14.5px;
}
.sd-list dt { color: var(--gold); font-weight: 600; }
.sd-list dd { margin: 0; color: #CFC9BF; line-height: 1.65; }
.sd-body { color: #CFC9BF; font-size: 15.5px; line-height: 1.9; word-break: keep-all; }
/* 출연진: 촘촘한 2단 구성 (역할 · 이름) */
.sd-cast {
	margin: 0; padding: 0; list-style: none;
	display: block;                       /* 한 칸 · 위에서 아래로 나열 */
	max-width: 620px;
	border-top: 1px solid rgba(255,255,255,.10);
}
.sd-cast li {
	display: flex; align-items: baseline; gap: 10px;
	padding: 6px 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
	color: #CFC9BF;
	font-size: 14px;
	line-height: 1.5;
}
.sd-cast .role { flex: 0 0 auto; min-width: 62px; color: var(--gold); font-size: 12.5px; letter-spacing: .3px; }
.sd-cast .name { color: #EDE7DC; }

/* 공연 소개 사진 */
.sd-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 26px 0 6px; }
.sd-gallery.one { grid-template-columns: 1fr; max-width: 760px; }
.sd-gallery figure { margin: 0; display: block; aspect-ratio: 4/3; overflow: hidden; }
.sd-gallery.one figure { aspect-ratio: auto; }
.sd-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; border: 1px solid var(--line); pointer-events: none; }
.sd-actions { margin-top: 44px; text-align: center; }

@media (max-width: 760px) {
	.show-detail { grid-template-columns: 1fr; gap: 22px; }
	.sd-poster { max-width: 260px; margin: 0 auto; }
	.sd-list { grid-template-columns: 78px 1fr; font-size: 14px; }
	.sd-cast { max-width: none; }
	.sd-gallery { grid-template-columns: 1fr 1fr; gap: 10px; }
}

/* ===== 협찬사 그리드 (로고+이름 단일 카드) ===== */
.sponsor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 10px; }
.sponsor-card {
	background: #FBF9F4;
	border: 1px solid var(--line);
	display: flex; flex-direction: column;
	overflow: hidden;
}
.sp-logo {
	height: 110px;
	display: flex; align-items: center; justify-content: center;
	padding: 16px 18px;
	background: #fff;
}
.sp-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.sp-name {
	padding: 10px 12px 12px;
	text-align: center;
	font-size: 13px;
	color: #3D362C;
	border-top: 1px solid #E7E2D6;
	background: #F4F0E6;
	letter-spacing: .2px;
}
@media (hover: hover) {
	.sponsor-card { transition: transform .35s ease, box-shadow .35s ease; }
	.sponsor-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.35); }
	.sp-logo img { transition: transform .7s ease; }
	.sponsor-card:hover .sp-logo img { transform: scale(1.05); }
}
@media (max-width: 900px) { .sponsor-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .sponsor-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } .sp-logo { height: 84px; } }

/* ---------- 게시판 모바일: 제목이 세로로 눌리는 문제 해결 ---------- */
@media (max-width: 560px) {
	.board-table { table-layout: fixed; }
	.board-table .num, .board-table th.num,
	.board-table .hit, .board-table th.hit { display: none; }
	.board-table th:nth-child(3), .board-table td:nth-child(3) { display: none; }  /* 작성자 숨김 */
	.board-table .subject, .board-table th.subject { width: auto; }
	.board-table .date, .board-table th.date { width: 82px; }
	.board-table td.subject a {
		display: block;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: anywhere;
		line-height: 1.5;
	}
	.board-table td, .board-table th { padding: 13px 8px; font-size: 14px; }
}

@media (max-width: 480px) {
	.sd-gallery, .sd-gallery.one { grid-template-columns: 1fr; }
}

/* ===== 할인 혜택표 (예매안내) ===== */
.disc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	margin-top: 4px;
}
.disc-table thead th {
	padding: 13px 16px;
	background: #151515;
	border-top: 2px solid var(--red);
	border-bottom: 1px solid var(--line);
	color: #EDE7DC;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1px;
	text-align: left;
}
.disc-table td {
	padding: 15px 16px;
	border-bottom: 1px solid rgba(255,255,255,.08);
	color: #CFC9BF;
	line-height: 1.6;
	vertical-align: middle;
}
.disc-table tbody tr:nth-child(odd) { background: rgba(255,255,255,.018); }
.disc-table td:first-child { color: #F3EFE7; font-weight: 500; white-space: nowrap; }
.disc-table .c { text-align: center; width: 110px; }
.disc-table .c b {
	font-size: 19px;
	font-weight: 700;
	color: var(--gold);
	letter-spacing: -0.5px;
}
.disc-table td.muted { color: #5E5A53; }
.disc-note { margin-top: 14px !important; font-size: 13.5px !important; color: #8E887E !important; }

@media (hover: hover) {
	.disc-table tbody tr { transition: background .25s ease; }
	.disc-table tbody tr:hover { background: rgba(201,162,74,.07); }
}
@media (max-width: 560px) {
	.disc-table { font-size: 14px; }
	.disc-table thead th, .disc-table td { padding: 12px 10px; }
	.disc-table td:first-child { white-space: normal; word-break: keep-all; }
	.disc-table .c { width: 74px; }
	.disc-table .c b { font-size: 17px; }
}

/* ===== 게시글 사진 (최대 3장) ===== */
.post-pics { display: grid; gap: 14px; margin: 26px auto 4px; max-width: 860px; }
.post-pics figure { margin: 0; }
.post-pics img { width: 100%; height: auto; display: block; border: 1px solid var(--line); }

/* ===== 후원회 ===== */
.sp-sign {
	display: flex; flex-wrap: wrap; gap: 12px 46px;
	justify-content: center;
	margin: -10px 0 6px;
	padding-bottom: 34px;
	border-bottom: 1px solid var(--line);
}
.sp-sign div { text-align: center; }
.sp-sign span { display: block; font-size: 12px; color: #8E887E; letter-spacing: .3px; margin-bottom: 4px; }
.sp-sign strong { font-size: 16px; color: #EDE7DC; font-weight: 600; letter-spacing: 1px; }

.sp-ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.sp-way { background: #131313; padding: 28px 24px 26px; }
.sp-way .no { display: block; font-size: 12px; letter-spacing: 4px; color: var(--gold); margin-bottom: 12px; }
.sp-way h3 { margin: 0 0 10px !important; font-size: 18px !important; color: #fff !important; font-weight: 700; }
.sp-way p { margin: 0 0 12px; font-size: 14.5px; color: #A9A399; }
.sp-way ul { margin: 0; padding: 0; list-style: none; }
.sp-way li {
	position: relative; padding-left: 13px; margin-bottom: 7px;
	font-size: 14px; color: #CFC9BF; line-height: 1.6;
}
.sp-way li::before { content: ''; position: absolute; left: 0; top: 9px; width: 4px; height: 4px; background: var(--gold); }
.sp-way a { color: var(--gold); }

.sp-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 26px 0 8px; }
.sp-acct, .sp-cta {
	padding: 26px 26px 24px;
	background: #151515;
	border: 1px solid var(--line);
	border-top: 2px solid var(--red);
}
.sp-acct .lbl { display: block; font-size: 11.5px; letter-spacing: 3px; color: var(--gold); margin-bottom: 12px; }
.sp-acct strong { display: block; font-size: clamp(17px, 2vw, 21px); color: #fff; letter-spacing: -0.3px; }
.sp-acct .own { display: block; margin-top: 7px; font-size: 14px; color: #CFC9BF; }
.sp-acct .hint { display: block; margin-top: 12px; font-size: 13px; color: #8E887E; }
.sp-cta { border-top-color: var(--gold); display: flex; flex-direction: column; align-items: flex-start; }
.sp-cta p { margin: 0 0 16px; font-size: 14.5px; color: #CFC9BF; }
.sp-cta .via { margin-top: 12px; font-size: 12.5px; color: #8E887E; }

.sp-th {
	margin: 40px 0 14px !important;
	font-size: 16px !important;
	color: #EDE7DC !important;
	font-weight: 700;
	letter-spacing: .3px;
}
.sp-th span { margin-left: 8px; font-size: 12px; font-weight: 400; color: var(--gold); letter-spacing: 1px; }

.sp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sp-table { width: 100%; min-width: 780px; border-collapse: collapse; font-size: 13.5px; }
.sp-table thead th {
	padding: 12px 10px;
	background: #1A1917;
	border-top: 2px solid var(--red);
	border-bottom: 1px solid var(--line);
	color: #E8E1D5;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.45;
	white-space: nowrap;
}
.sp-table td {
	padding: 13px 10px;
	border-bottom: 1px solid rgba(255,255,255,.07);
	color: #BFB9AF;
	line-height: 1.5;
	text-align: center;
	vertical-align: middle;
}
.sp-table td.g { color: #fff; font-weight: 700; font-size: 14.5px; white-space: nowrap; }
.sp-table td.fee { color: var(--gold); font-weight: 600; white-space: nowrap; }
.sp-table td.c { font-size: 12px; color: #3E3A34; }
.sp-table td.c.on { color: var(--gold); font-size: 13px; }
.sp-table td.dc { color: #E8E1D5; font-weight: 600; white-space: nowrap; }
.sp-table tbody tr:nth-child(odd) { background: rgba(255,255,255,.018); }

.sp-note { margin-top: 18px !important; font-size: 13.5px !important; color: #8E887E !important; }

@media (hover: hover) {
	.sp-table tbody tr { transition: background .25s ease; }
	.sp-table tbody tr:hover { background: rgba(201,162,74,.07); }
	.sp-way { transition: background .3s ease; }
	.sp-way:hover { background: #171614; }
}
@media (max-width: 860px) {
	.sp-ways { grid-template-columns: 1fr; }
	.sp-actions { grid-template-columns: 1fr; }
}
