/* 동명교회 리뉴얼 — Pretendard(OFL) + 포레스트 그린 프레임 레이아웃 */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');
@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Serif+KR:wght@400;500;600;700&display=swap');

:root {
	--church-forest: #1b4332;
	--church-forest-mid: #2d6a4f;
	--church-forest-light: #40916c;
	--church-mint: #74c69d;
	--church-cream: #fffef9;
	--church-cream-dark: #f3f0e8;
	--church-ink: #1a2e28;
	--church-muted: #4a5f56;
	--church-accent: #d4a373;
	--church-card-radius: 12px;
	--church-content-max: 1180px;
	--church-font: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}

/* 좌우 여백 — 구홈피 하늘색 보케 대신 숲녹 그라데이션 프레임 */
html {
	background-color: var(--church-forest);
	background-image:
		radial-gradient(ellipse 55% 45% at 0% 0%, rgba(116, 198, 157, 0.45), transparent 55%),
		radial-gradient(ellipse 50% 40% at 100% 100%, rgba(27, 67, 50, 0.9), transparent 50%),
		linear-gradient(168deg, #143d2e 0%, #2d6a4f 38%, #52b788 62%, #1b4332 100%);
	background-attachment: fixed;
}

body {
	background: transparent;
	color: var(--church-ink);
	font-family: var(--church-font) !important;
	-webkit-font-smoothing: antialiased;
}

input,
textarea,
select,
button {
	font-family: var(--church-font) !important;
}

/* 중앙 본문 — 따뜻한 아이보리 종이 느낌의 섬 */
.container {
	max-width: var(--church-content-max) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	background: var(--church-cream);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.12),
		-30px 0 60px rgba(0, 0, 0, 0.12),
		30px 0 60px rgba(0, 0, 0, 0.12),
		0 24px 48px rgba(0, 0, 0, 0.1);
}

/* 상단 브랜드 라인 */
.header_wrap {
	background: var(--church-cream);
	border-bottom: 3px solid var(--church-forest);
	box-shadow: none;
	position: relative;
}

.header_wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--church-forest) 0%, var(--church-forest-light) 50%, var(--church-accent) 100%);
}

.header > h1 {
	padding-top: 6px !important;
	padding-bottom: 4px !important;
}

body .header .gnb > ul > li > a {
	font-weight: 600 !important;
	letter-spacing: -0.03em !important;
	color: var(--church-muted) !important;
	font-size: 15px !important;
}

.gnb.church-gnb > ul > li > a:hover,
.gnb.church-gnb > ul > li > a:focus,
.gnb.church-gnb > ul > li.church-gnb-on > a {
	color: var(--church-forest) !important;
}

/* 서브메뉴 — 딥 포레스트 단색 */
.church-gnb-subbar {
	background: var(--church-forest-mid);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.church-gnb-subbar .depth2 a {
	font-weight: 500;
	letter-spacing: -0.02em;
}

.church-gnb-subbar .depth2 a:hover,
.church-gnb-subbar .depth2 a:focus,
.church-gnb-subbar .depth2 > li.on > a {
	color: var(--church-mint) !important;
}

.church-gnb-subbar .depth3 {
	background: var(--church-forest);
	border-color: var(--church-forest-light);
}

/* 본문 */
.body.fixed-width {
	width: 100% !important;
	max-width: var(--church-content-max);
	background: var(--church-cream);
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

.body.fixed-width .content {
	color: var(--church-ink);
	line-height: 1.75;
	letter-spacing: -0.01em;
}

.church-home-extra {
	padding-left: 24px;
	padding-right: 24px;
}

/* 푸터 — 슬림 */
.footer.church-footer {
	background: var(--church-cream-dark);
	border-top: 3px solid var(--church-forest);
}

.church-footer-body {
	background: var(--church-cream-dark);
}

.church-footer-address,
.church-footer-copy {
	font-family: var(--church-font);
	color: var(--church-muted);
}

.church-footer-copy strong {
	color: var(--church-forest-mid);
	font-weight: 700;
}

/* 서브페이지 비주얼 — 배경 이미지는 church_sub_top.css 에서 처리 */

@media (max-width: 1240px) {
	.container {
		max-width: 100% !important;
		box-shadow: none;
	}

	html {
		background: var(--church-forest-mid);
	}
}

@media (prefers-reduced-motion: reduce) {
	/* 전역 강제 끔 대신, 전환만 짧게 — 장식성 float는 유지 */
	.church-main-tile,
	.church-main-quicklink,
	.church-main-pastor,
	.church-dm-item {
		transition-duration: 0.01ms !important;
	}
}

/* 안내 페이지 (dmcadmin guide) — 대표사진 워터마크 배경 + 글라스 카드 */
.body.fixed-width .content:has(.church-guide-page) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-guide-page {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0 0 24px;
	font-family: var(--church-font);
	color: var(--church-ink);
	isolation: isolate;
}

/* 대표 사진 — 본문 영역을 가득 채우는 흐린 워터마크 배경 */
.church-guide-bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 100%;
	z-index: -1;
	background-size: cover;
	background-position: center 14%;
	background-repeat: no-repeat;
	opacity: 0.2;
	filter: grayscale(0.2) contrast(1.05);
	pointer-events: none;
	-webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.55) 48%, transparent 96%);
	        mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.55) 48%, transparent 96%);
}

/* 원본 사진 — 첫 블록 상세 본문 오른쪽에 배치, 경계는 부드럽게 페이드 */
.church-guide-portrait {
	float: right;
	width: clamp(150px, 22vw, 210px);
	margin: 2px 0 12px 26px;
}

.church-guide-portrait img {
	display: block;
	width: 100%;
	height: auto;
	border: none;
	border-radius: 0;
	box-shadow: none;
	-webkit-mask-image: radial-gradient(ellipse 80% 82% at 50% 46%, #000 46%, rgba(0, 0, 0, 0.35) 72%, transparent 100%);
	        mask-image: radial-gradient(ellipse 80% 82% at 50% 46%, #000 46%, rgba(0, 0, 0, 0.35) 72%, transparent 100%);
}

.church-guide-sections {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 860px;
	margin: 0 auto;
}

/* 플로팅 사진을 카드 안에 가두기 (그림자 유지 위해 overflow 미사용) */
.church-guide-section::after {
	content: '';
	display: block;
	clear: both;
}

.church-guide-section {
	position: relative;
	padding: 24px 26px 20px;
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, 0.65);
	background: rgba(255, 255, 255, 0.7);
	-webkit-backdrop-filter: blur(9px) saturate(1.15);
	        backdrop-filter: blur(9px) saturate(1.15);
	box-shadow: 0 12px 32px rgba(27, 67, 50, 0.1);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.church-guide-section:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 40px rgba(27, 67, 50, 0.14);
}

.church-guide-subtitle {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	padding: 0 0 10px;
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--church-forest, #1b4332);
	border-bottom: 1px solid rgba(45, 106, 79, 0.16);
	letter-spacing: -0.02em;
}

.church-guide-subtitle::before {
	content: '';
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--church-forest-light, #40916c), var(--church-mint, #74c69d));
	box-shadow: 0 0 0 4px rgba(116, 198, 157, 0.25);
}

.church-guide-summary {
	position: relative;
	display: flow-root;
	margin: 0 0 14px;
	padding: 12px 16px;
	border-radius: 10px;
	background: linear-gradient(100deg, rgba(116, 198, 157, 0.16), rgba(116, 198, 157, 0.05));
	border-left: 3px solid var(--church-mint, #74c69d);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.65;
	color: var(--church-forest-mid, #2d6a4f);
}

.church-guide-body {
	position: relative;
	font-size: 1rem;
	line-height: 1.85;
	color: var(--church-ink);
}

.church-guide-body p {
	margin: 0 0 12px;
}

.church-guide-body p:last-child {
	margin-bottom: 0;
}

/* 캐치프레이즈 — 마지막 블록 바로 아래, 진한 이탤릭 가운데 강조 */
.church-guide-catchphrase {
	clear: both;
	position: relative;
	max-width: 760px;
	margin: 30px auto 8px;
	padding: 26px 40px;
	text-align: center;
	font-style: italic;
	font-weight: 800;
	font-size: clamp(1.35rem, 3vw, 1.95rem);
	line-height: 1.5;
	letter-spacing: -0.01em;
	color: var(--church-forest, #1b4332);
	background: linear-gradient(98deg, var(--church-forest, #1b4332), var(--church-forest-light, #40916c) 55%, var(--church-accent, #d4a373));
	-webkit-background-clip: text;
	        background-clip: text;
	-webkit-text-fill-color: transparent;
}

.church-guide-catchphrase::before,
.church-guide-catchphrase::after {
	position: absolute;
	font-size: 2.6em;
	line-height: 1;
	font-style: normal;
	color: rgba(116, 198, 157, 0.4);
	-webkit-text-fill-color: rgba(116, 198, 157, 0.4);
}

.church-guide-catchphrase::before {
	content: '\201C';
	left: 4px;
	top: 2px;
}

.church-guide-catchphrase::after {
	content: '\201D';
	right: 4px;
	bottom: -14px;
}

@media (max-width: 720px) {
	.church-guide-bg {
		opacity: 0.1;
	}

	.church-guide-section {
		padding: 20px 18px 16px;
	}

	.church-guide-subtitle {
		font-size: 1.15rem;
	}
}


/* ===================== 교회 연혁 ===================== */
.body.fixed-width .content:has(.church-history) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-history {
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	font-family: var(--church-font);
	color: var(--church-ink);
}

.church-history-row {
	display: grid;
	grid-template-columns: 196px 1fr;
	gap: 0 28px;
	align-items: stretch;
	padding: 22px 0;
	border-top: 1px solid rgba(45, 106, 79, 0.16);
}

.church-history-row:first-child {
	border-top: none;
}

/* 왼쪽: 연대 + 사진 (사진은 내용 세로 가운데에) */
.church-history-side {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.church-history-era {
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--church-forest-light, #40916c);
}

.church-history-photo {
	margin: auto 0 0;
	width: 100%;
}

.church-history-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
	filter: grayscale(1) contrast(1.02);
	box-shadow: 0 8px 22px rgba(27, 67, 50, 0.18);
}

/* 사진만 있고 연대가 없을 때도 가운데 정렬 유지 */
.church-history-side:only-child .church-history-photo,
.church-history-photo:first-child {
	margin: auto 0;
}

/* 오른쪽: 내용 */
.church-history-content {
	position: relative;
	padding-left: 22px;
	border-left: 2px solid rgba(64, 145, 108, 0.45);
}

.church-history-item {
	position: relative;
	display: grid;
	grid-template-columns: 96px 1fr;
	column-gap: 10px;
	margin: 0 0 6px;
	padding-left: 16px;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--church-ink);
}

.church-history-item::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--church-mint, #74c69d);
}

.church-history-date {
	white-space: nowrap;
	text-align: right;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--church-forest-light, #40916c);
}

.church-history-text {
	min-width: 0;
}

.church-history-gap {
	height: 10px;
}

@media (max-width: 720px) {
	.church-history-row {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.church-history-side {
		flex-direction: row;
		justify-content: flex-start;
		gap: 14px;
		text-align: left;
	}

	.church-history-photo {
		margin: 0;
		max-width: 140px;
	}

	.church-history-content {
		padding-left: 14px;
	}

	.church-history-item {
		grid-template-columns: 74px 1fr;
		column-gap: 8px;
	}
}

/* ===================== 안내 페이지 소제목 머릿기호 통일 ===================== */
/* 구홈피 불릿 이미지(없는 파일 → 깨짐)를 숨기고 통일된 녹색 다이아몬드로 대체 */
.church-info-text img.bullet_img,
.church-info-page img.bullet_img {
	display: none !important;
}

.church-info-text .subtitle,
.church-info-page .subtitle {
	display: flex;
	align-items: center;
	gap: 8px;
	height: auto !important;
	color: var(--church-forest, #1b4332) !important;
}

.church-info-text .subtitle::before,
.church-info-page .subtitle::before {
	content: '';
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
	transform: rotate(45deg);
	border-radius: 2px;
	background: linear-gradient(135deg, var(--church-forest-light, #40916c), var(--church-mint, #74c69d));
	box-shadow: 0 1px 3px rgba(27, 67, 50, 0.25);
}

.church-map-embed {
	width: min(730px, 100%);
	margin: 0 auto 18px;
}

.church-map-embed iframe {
	width: 100%;
	height: 420px;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(27, 67, 50, 0.12);
}

@media (max-width: 768px) {
	.church-map-embed iframe {
		height: 300px;
	}
}

/* ===================== 예배시간 ===================== */
.body.fixed-width .content:has(.church-worship) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-worship {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	font-family: var(--church-font);
	color: var(--church-ink);
}

.church-worship-group {
	margin: 0 0 36px;
}

.church-worship-heading {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--church-forest, #1b4332);
}

.church-worship-heading::before {
	content: '';
	width: 9px;
	height: 22px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--church-forest-light, #40916c), var(--church-mint, #74c69d));
}

.church-worship-heading::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(45, 106, 79, 0.28), transparent);
}

.church-worship-table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	background: #ffffff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(27, 67, 50, 0.08);
	border: 1px solid rgba(45, 106, 79, 0.14);
}

.church-worship-table .cw-name {
	width: 34%;
}

.church-worship-table .cw-time {
	width: 40%;
}

.church-worship-table .cw-place {
	width: 26%;
}

.church-worship-table thead th {
	padding: 12px 14px;
	font-size: 0.95rem;
	font-weight: 700;
	color: #ffffff;
	background: linear-gradient(100deg, var(--church-forest-mid, #2d6a4f), var(--church-forest-light, #40916c));
	text-align: center;
}

.church-worship-table tbody td {
	padding: 12px 14px;
	font-size: 0.98rem;
	text-align: center;
	color: var(--church-ink);
}

/* 셀 사이 옅은 경계선 (주변 색과 어울리는 연녹색 / 헤더는 옅은 흰색) */
.church-worship-table th,
.church-worship-table td {
	border: 1px solid rgba(45, 106, 79, 0.14);
}

.church-worship-table thead th {
	border-color: rgba(255, 255, 255, 0.22);
}

.church-worship-table tbody tr:nth-child(even) td {
	background: rgba(116, 198, 157, 0.06);
}

.church-worship-table tbody td.cw-name {
	font-weight: 600;
}

.church-worship-table thead th.cw-place {
	background: linear-gradient(100deg, var(--church-forest, #1b4332), var(--church-forest-mid, #2d6a4f));
}

.church-worship-table tbody td.cw-place {
	background: rgba(64, 145, 108, 0.12);
	font-weight: 600;
	color: var(--church-forest, #1b4332);
	vertical-align: middle;
}

@media (max-width: 600px) {
	.church-worship-table thead th,
	.church-worship-table tbody td {
		padding: 9px 8px;
		font-size: 0.88rem;
	}
}

/* ===================== 섬기는 분 ===================== */
.body.fixed-width .content:has(.church-people) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-people {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	font-family: var(--church-font);
}

.church-people-group {
	margin: 0 0 44px;
}

.church-people-group:last-child {
	margin-bottom: 8px;
}

.church-people-heading {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--church-forest, #1b4332);
}

.church-people-heading::before {
	content: '';
	width: 9px;
	height: 24px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--church-forest-light, #40916c), var(--church-mint, #74c69d));
}

.church-people-heading::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(45, 106, 79, 0.28), transparent);
}

.church-staff-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px 26px;
}

.church-staff-card {
	text-align: center;
}

.church-staff-card figure {
	margin: 0 0 12px;
	padding: 8px;
	background: #ffffff;
	border: 1px solid rgba(45, 106, 79, 0.18);
	border-radius: 14px;
	box-shadow: 0 8px 22px rgba(27, 67, 50, 0.1);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.church-staff-card:hover figure {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(27, 67, 50, 0.16);
}

.church-staff-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 9px;
}

.church-staff-noimg {
	margin: 0 0 12px;
	padding: 8px;
	border: 1px dashed rgba(45, 106, 79, 0.3);
	border-radius: 14px;
}

.church-staff-noimg::before {
	content: '';
	display: block;
	aspect-ratio: 3 / 4;
	border-radius: 9px;
	background: repeating-linear-gradient(135deg, #f1f5f1, #f1f5f1 10px, #e7efe7 10px, #e7efe7 20px);
}

.church-staff-card h3 {
	font-size: 1.08rem;
	margin: 0 0 6px;
	color: var(--church-ink);
}

.church-staff-card h3 span {
	font-weight: 400;
	color: var(--church-muted);
	font-size: 0.88em;
}

.church-staff-card p {
	margin: 0 0 3px;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--church-muted);
}

@media (max-width: 900px) {
	.church-staff-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 640px) {
	.church-staff-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 22px 16px;
	}

	.church-people-heading {
		font-size: 1.2rem;
	}
}

.church-mission-list {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.body.fixed-width .content:has(.church-domestic-mission),
.body.fixed-width .content:has(.church-mission-detail) {
	padding-top: 0 !important;
	padding-bottom: 48px;
}

.church-domestic-mission {
	position: relative;
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	padding: 32px 24px 36px;
	font-family: var(--church-font);
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient(
		160deg,
		rgba(255, 255, 255, 0.72) 0%,
		rgba(243, 249, 245, 0.62) 50%,
		rgba(237, 246, 240, 0.68) 100%
	);
	box-shadow: 0 10px 36px rgba(27, 67, 50, 0.1);
	border: 1px solid rgba(45, 106, 79, 0.14);
}

.church-domestic-mission::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('/files/church/sub_top/mission.jpg') center center / cover no-repeat;
	opacity: 0.28;
	filter: saturate(0.9);
	pointer-events: none;
	z-index: 0;
}

.church-domestic-mission::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 60% at 50% 40%, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.35) 100%),
		url('/files/church/logo.jpg') center 42% / 200px auto no-repeat;
	opacity: 0.1;
	pointer-events: none;
	z-index: 0;
}

.church-dm-columns {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 28px;
	align-items: stretch;
}

.church-dm-col {
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 20px 18px 22px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid rgba(45, 106, 79, 0.12);
	box-shadow: 0 4px 18px rgba(27, 67, 50, 0.06);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	overflow: visible;
}

.church-dm-head {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	column-gap: 12px;
	align-items: end;
	margin: 0 0 16px;
	padding: 0 0 14px;
	border-bottom: 1px solid rgba(45, 106, 79, 0.18);
}

.church-dm-kicker {
	grid-column: 1;
	grid-row: 1;
	margin: 0 0 4px;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--church-forest, #2d6a4f);
	opacity: 0.72;
}

.church-dm-heading {
	grid-column: 1;
	grid-row: 2;
	margin: 0;
	padding: 0;
	font-size: 1.22rem;
	font-weight: 700;
	color: var(--church-green, #1b4332);
	text-align: left;
	border: none;
	letter-spacing: -0.03em;
	line-height: 1.25;
}

.church-dm-count {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	padding: 6px 10px 8px;
	border-radius: 10px;
	background: rgba(45, 106, 79, 0.08);
	border: 1px solid rgba(45, 106, 79, 0.14);
	line-height: 1;
}

.church-dm-count em {
	font-style: normal;
	font-size: 1.55rem;
	font-weight: 700;
	color: var(--church-green, #1b4332);
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}

.church-dm-count span {
	margin-top: 3px;
	font-size: 0.68rem;
	font-weight: 600;
	color: var(--church-muted, #4a5f56);
	letter-spacing: 0.02em;
}

.church-dm-list {
	list-style: none;
	margin: 0;
	padding: 6px 2px 12px;
	display: flex;
	flex-direction: column;
	gap: 0;
	flex: 1;
	overflow: visible;
}

.church-dm-item {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 11px 8px;
	margin: 0;
	border: none;
	border-radius: 12px;
	border-bottom: 1px solid rgba(45, 106, 79, 0.1);
	background: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	box-shadow: none;
	transition:
		background 0.2s ease,
		box-shadow 0.35s ease,
		transform 0.4s cubic-bezier(0.22, 1.55, 0.36, 1),
		border-color 0.2s ease;
}

.church-dm-item:last-child {
	border-bottom: none;
	padding-bottom: 11px;
}

.church-dm-item:hover {
	background: rgba(45, 106, 79, 0.04);
}

/* 상세 페이지 있는 항목 — 호버 시 크게 튀어오름 */
.church-dm-item:has(.church-dm-item-name a) {
	position: relative;
	z-index: 1;
	cursor: pointer;
}

.church-dm-item:has(.church-dm-item-name a) .church-dm-item-name a {
	position: static;
	text-decoration: none;
}

.church-dm-item:has(.church-dm-item-name a) .church-dm-item-name a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
}

.church-dm-item:has(.church-dm-item-name a):hover {
	z-index: 8;
	transform: translateY(-12px) scale(1.055);
	background: rgba(255, 254, 249, 0.96);
	border-bottom-color: transparent;
	box-shadow:
		0 4px 8px rgba(27, 67, 50, 0.06),
		0 18px 36px rgba(27, 67, 50, 0.2);
}

.church-dm-item:has(.church-dm-item-name a):hover .church-dm-item-name a {
	color: var(--church-forest, #2d6a4f);
	text-decoration: none;
}

.church-dm-item:has(.church-dm-item-name a):hover .church-dm-item-photo img,
.church-dm-item:has(.church-dm-item-name a):hover .church-dm-initial,
.church-dm-item:has(.church-dm-item-name a):hover .church-dm-flag,
.church-dm-item:has(.church-dm-item-name a):hover .church-dm-name-flag img {
	transform: scale(1.08);
}

.church-dm-item-photo img,
.church-dm-initial,
.church-dm-flag,
.church-dm-name-flag img {
	transition: transform 0.4s cubic-bezier(0.22, 1.55, 0.36, 1);
}

.church-dm-item:not(:has(.church-dm-item-photo)):not(:has(.church-dm-initial))::before {
	content: none;
}

.church-dm-initial {
	flex: 0 0 40px;
	width: 40px;
	min-width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	color: var(--church-green, #1b4332);
	background: linear-gradient(145deg, rgba(45, 106, 79, 0.12), rgba(45, 106, 79, 0.06));
	border-radius: 10px;
	border: 1px solid rgba(45, 106, 79, 0.16);
	box-sizing: border-box;
	letter-spacing: -0.04em;
}

.church-dm-flag {
	flex: 0 0 40px;
	width: 40px;
	min-width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4px;
	background: rgba(255, 255, 255, 0.7);
	border-radius: 10px;
	border: 1px solid rgba(45, 106, 79, 0.12);
	box-sizing: border-box;
	overflow: hidden;
}

.church-dm-flag img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 28px;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.church-dm-item-photo {
	flex: 0 0 40px;
	width: 40px;
	min-width: 40px;
	margin: 0;
}

.church-dm-item-photo img {
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
	box-shadow: 0 2px 8px rgba(27, 67, 50, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.9);
	box-sizing: border-box;
}

.church-dm-item-body {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
}

.church-dm-item-body::before {
	content: none;
}

.church-dm-item-name {
	display: block;
	font-size: 1.02rem;
	font-weight: 600;
	color: #142820;
	line-height: 1.35;
	letter-spacing: -0.025em;
}

.church-dm-item-name-row {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	max-width: 100%;
	vertical-align: middle;
}

.church-dm-name-flag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 30px;
	height: 22px;
	padding: 2px;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid rgba(45, 106, 79, 0.14);
	border-radius: 4px;
	box-sizing: border-box;
	overflow: hidden;
	pointer-events: none;
}

.church-dm-name-flag img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.church-dm-item-name a {
	color: var(--church-green, #1b4332);
	text-decoration: none;
}

.church-dm-item-name a:hover {
	color: var(--church-forest, #2d6a4f);
	text-decoration: underline;
}

.church-dm-missionary {
	display: block;
	margin-top: 3px;
	font-size: 0.8rem;
	font-weight: 500;
	color: var(--church-muted, #4a5f56);
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.church-dm-country {
	display: inline-block;
	margin: 0 0 3px;
	padding: 1px 0;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--church-forest, #2d6a4f);
	letter-spacing: 0.04em;
	text-transform: none;
	opacity: 0.95;
	border-bottom: 1.5px solid rgba(45, 106, 79, 0.28);
}

.church-mission-detail-country {
	margin: 0 0 10px;
}

.church-mission-detail-missionary {
	margin: 0 0 18px;
}

/* 해외선교: 파송 1가정 — 강조 카드로 왼쪽 열을 채움 */
.church-overseas-mission .church-dm-columns {
	grid-template-columns: minmax(240px, 0.92fr) 1.08fr;
	align-items: stretch;
}

.church-overseas-mission .church-dm-col-dispatch {
	background: linear-gradient(
		165deg,
		rgba(255, 255, 255, 0.7) 0%,
		rgba(232, 244, 236, 0.75) 100%
	);
	border-color: rgba(45, 106, 79, 0.18);
}

.church-overseas-mission .church-dm-list--featured {
	justify-content: center;
	padding: 8px 0 4px;
}

.church-overseas-mission .church-dm-col:not(.church-dm-col-dispatch) .church-dm-item {
	justify-content: center;
	gap: 14px;
}

.church-overseas-mission .church-dm-col:not(.church-dm-col-dispatch) .church-dm-item-body {
	flex: 0 1 auto;
	min-width: 0;
	text-align: center;
}

.church-overseas-mission .church-dm-col:not(.church-dm-col-dispatch) .church-dm-country {
	display: block;
	margin: 0 auto 3px;
	width: fit-content;
}

.church-overseas-mission .church-dm-col:not(.church-dm-col-dispatch) .church-dm-item-name-row {
	justify-content: center;
}

.church-dm-item--featured {
	flex-direction: column;
	align-items: stretch;
	gap: 14px;
	padding: 18px 14px 16px;
	border: 1px solid rgba(45, 106, 79, 0.14);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.65);
	box-shadow: 0 6px 20px rgba(27, 67, 50, 0.08);
	text-align: center;
}

.church-dm-item--featured:hover {
	background: rgba(255, 255, 255, 0.82);
}

.church-dm-item--featured:has(.church-dm-item-name a):hover {
	z-index: 10;
	transform: translateY(-16px) scale(1.07);
	background: rgba(255, 254, 249, 0.98);
	box-shadow:
		0 8px 16px rgba(27, 67, 50, 0.1),
		0 28px 48px rgba(27, 67, 50, 0.24);
}

.church-dm-item--featured .church-dm-item-photo,
.church-dm-item--featured .church-dm-initial,
.church-dm-item--featured .church-dm-flag {
	flex: none;
	align-self: center;
	width: 72px;
	min-width: 72px;
	height: 72px;
	border-radius: 16px;
}

.church-dm-item--featured .church-dm-item-photo img {
	width: 72px;
	height: 72px;
	border-radius: 16px;
}

.church-dm-item--featured .church-dm-initial {
	font-size: 1.65rem;
}

.church-dm-item--featured .church-dm-flag {
	font-size: inherit;
	padding: 10px;
}

.church-dm-item--featured .church-dm-flag img {
	max-height: 44px;
	border-radius: 4px;
}

.church-dm-item--featured .church-dm-item-body {
	text-align: center;
}

.church-dm-item--featured .church-dm-country {
	display: block;
	margin: 0 auto 8px;
	width: fit-content;
	font-size: 0.78rem;
	letter-spacing: 0.08em;
}

.church-dm-item--featured .church-dm-item-name {
	font-size: 1.28rem;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.church-dm-item--featured .church-dm-missionary {
	margin-top: 6px;
	font-size: 0.92rem;
	color: #2a4038;
}

@media (max-width: 720px) {
	.church-domestic-mission {
		padding: 20px 12px 24px;
		border-radius: 12px;
	}

	.church-domestic-mission::before {
		opacity: 0.24;
	}

	.church-dm-columns,
	.church-overseas-mission .church-dm-columns {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.church-dm-col {
		padding: 16px 14px 18px;
	}

	.church-dm-heading {
		font-size: 1.1rem;
	}

	.church-dm-item-name {
		font-size: 0.96rem;
	}

	.church-dm-item:has(.church-dm-item-name a):hover {
		transform: translateY(-8px) scale(1.04);
	}

	.church-dm-item--featured:has(.church-dm-item-name a):hover {
		transform: translateY(-12px) scale(1.05);
	}

	.church-dm-item--featured {
		padding: 16px 12px;
	}

	.church-dm-item--featured .church-dm-item-name {
		font-size: 1.15rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.church-dm-item,
	.church-dm-item-photo img,
	.church-dm-initial,
	.church-dm-flag {
		transition: background 0.15s ease, box-shadow 0.15s ease;
	}

	.church-dm-item:has(.church-dm-item-name a):hover,
	.church-dm-item--featured:has(.church-dm-item-name a):hover {
		transform: none;
	}
}

.church-mission-card-body h3 {
	margin: 0 0 10px;
	font-size: 1.15rem;
}

.church-mission-card-body h3 a {
	color: var(--church-green, #1b4332);
	text-decoration: none;
}

.church-mission-card-body h3 a:hover {
	text-decoration: underline;
}

.church-dm-teaser {
	margin: 0 0 8px;
	color: #444;
	line-height: 1.7;
}

.church-dm-more {
	margin: 0;
	font-size: 0.92rem;
}

.church-dm-more a {
	color: var(--church-green, #1b4332);
	font-weight: 600;
}

.church-mission-detail {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	font-family: 'Noto Serif KR', 'Gowun Batang', 'Batang', Georgia, serif;
	color: var(--church-ink, #1a2e28);
}

.church-mission-detail--with-gallery {
	max-width: 980px;
}

.church-mission-detail-photo {
	margin: 0 auto 32px;
	max-width: min(68%, 560px);
	text-align: center;
}

.church-mission-detail-photo img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 2px;
	box-shadow: none;
}

/* 대표사진 액자 — 선교사별 톤만 다르고 크기는 절제 */
.church-mission-frame {
	position: relative;
	padding: 10px;
	background: #f7f3ea;
	border-radius: 4px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.65) inset,
		0 8px 22px rgba(27, 67, 50, 0.1);
}

.church-mission-frame-mat {
	display: block;
	position: absolute;
	inset: 6px;
	pointer-events: none;
	border: 1px solid rgba(27, 67, 50, 0.1);
	border-radius: 2px;
	z-index: 1;
}

.church-mission-frame img {
	position: relative;
	z-index: 0;
}

.church-mission-frame--1 {
	background: linear-gradient(160deg, #f3ebe0, #e8dccb);
	box-shadow:
		0 0 0 1px rgba(120, 90, 55, 0.28),
		0 0 0 5px #d7c4a8,
		0 0 0 6px rgba(90, 64, 36, 0.35),
		0 10px 24px rgba(90, 64, 36, 0.14);
}

.church-mission-frame--2 {
	background: linear-gradient(165deg, #eef6f1, #dfece4);
	box-shadow:
		0 0 0 1px rgba(45, 106, 79, 0.28),
		0 0 0 4px #c5dbcd,
		0 0 0 5px rgba(27, 67, 50, 0.4),
		0 10px 24px rgba(27, 67, 50, 0.12);
}

.church-mission-frame--3 {
	background: linear-gradient(165deg, #f8f4ec, #efe6d6);
	box-shadow:
		0 0 0 1px rgba(184, 148, 90, 0.35),
		0 0 0 4px #ead9b8,
		0 0 0 5px rgba(150, 110, 50, 0.45),
		0 10px 22px rgba(120, 90, 40, 0.12);
}

.church-mission-frame--4 {
	background: linear-gradient(165deg, #eef2f6, #dde5ee);
	box-shadow:
		0 0 0 1px rgba(70, 95, 120, 0.3),
		0 0 0 4px #c9d5e2,
		0 0 0 5px rgba(55, 75, 100, 0.4),
		0 10px 22px rgba(40, 60, 85, 0.12);
}

.church-mission-frame--5 {
	background: linear-gradient(165deg, #f6f1ee, #ebe2dc);
	box-shadow:
		0 0 0 1px rgba(130, 95, 80, 0.28),
		0 0 0 4px #dfcfc4,
		0 0 0 5px rgba(100, 70, 55, 0.38),
		0 10px 22px rgba(80, 55, 40, 0.12);
}

.church-mission-frame--6 {
	background: linear-gradient(165deg, #f4f4f2, #e5e5e1);
	box-shadow:
		0 0 0 1px rgba(80, 80, 75, 0.28),
		0 0 0 4px #d4d4ce,
		0 0 0 5px rgba(55, 55, 50, 0.4),
		0 10px 22px rgba(40, 40, 35, 0.12);
}

.church-mission-detail-compose {
	position: relative;
	isolation: isolate;
	padding: 28px 8px 36px;
	min-height: 280px;
}

.church-mission-detail--with-gallery .church-mission-detail-compose {
	padding: 48px 158px 96px;
	border-radius: 18px;
	background:
		radial-gradient(ellipse 70% 55% at 50% 45%, rgba(255, 254, 249, 0.88) 0%, rgba(255, 254, 249, 0.35) 55%, transparent 75%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%232d6a4f' stroke-opacity='0.11' stroke-width='1'%3E%3Cpath d='M36 8c4 10 4 18 0 28-4-10-4-18 0-28z'/%3E%3Cpath d='M36 36c10 4 18 4 28 0-10-4-18-4-28 0z'/%3E%3Cpath d='M36 36c-10 4-18 4-28 0 10-4 18-4 28 0z'/%3E%3Cpath d='M36 64c4-10 4-18 0-28-4 10-4 18 0 28z'/%3E%3Ccircle cx='36' cy='36' r='3.2' fill='%232d6a4f' fill-opacity='0.12' stroke='none'/%3E%3C/g%3E%3C/svg%3E"),
		linear-gradient(165deg, rgba(243, 249, 245, 0.55), rgba(255, 254, 249, 0.4));
	background-size: auto, 72px 72px, auto;
	box-shadow: inset 0 0 0 1px rgba(45, 106, 79, 0.1);
}

.church-mission-detail--with-gallery .church-mission-detail-compose::before,
.church-mission-detail--with-gallery .church-mission-detail-compose::after {
	content: '';
	position: absolute;
	width: 88px;
	height: 88px;
	pointer-events: none;
	z-index: 0;
	opacity: 0.5;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cg fill='none' stroke='%231b4332' stroke-width='1.2' stroke-opacity='0.42'%3E%3Cpath d='M12 28c8-14 22-20 32-20M76 28c-8-14-22-20-32-20M12 60c8 14 22 20 32 20M76 60c-8 14-22 20-32 20'/%3E%3Cpath d='M28 12c-14 8-20 22-20 32M28 76c-14-8-20-22-20-32M60 12c14 8 20 22 20 32M60 76c14-8 20-22 20-32'/%3E%3Ccircle cx='44' cy='44' r='5'/%3E%3C/g%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

.church-mission-detail--with-gallery .church-mission-detail-compose::before {
	top: 10px;
	left: 10px;
}

.church-mission-detail--with-gallery .church-mission-detail-compose::after {
	right: 10px;
	bottom: 10px;
	transform: rotate(180deg);
}

.church-mission-gallery {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.church-mission-gal-item {
	position: absolute;
	margin: 0;
	width: 140px;
	padding: 9px 9px 20px;
	background:
		linear-gradient(180deg, #fffefb 0%, #f7f3ea 100%);
	border-radius: 3px;
	border: 1px solid rgba(45, 106, 79, 0.18);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.9) inset,
		0 2px 4px rgba(27, 67, 50, 0.08),
		0 12px 24px rgba(27, 67, 50, 0.14);
	pointer-events: auto;
	cursor: zoom-in;
	--gal-rot: 0deg;
	--gal-bob: 22px;
	transform: rotate(var(--gal-rot));
	transform-origin: center center;
	transition: box-shadow 0.35s ease;
	animation: church-mission-gal-float var(--gal-dur, 3.6s) ease-in-out infinite !important;
	will-change: transform;
	z-index: 1;
}

.church-mission-gal-item::before {
	content: '';
	position: absolute;
	inset: -10px -12px -14px;
	z-index: -1;
	pointer-events: none;
	opacity: 0.7;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%232d6a4f' stroke-width='1' stroke-opacity='0.35'%3E%3Crect x='8' y='8' width='124' height='124' rx='4' stroke-dasharray='3 5'/%3E%3Cpath d='M20 28c6-10 16-14 24-14M120 28c-6-10-16-14-24-14M20 112c6 10 16 14 24 14M120 112c-6 10-16 14-24 14'/%3E%3C/g%3E%3Ccircle cx='70' cy='18' r='2.2' fill='%23d4a373' fill-opacity='0.7'/%3E%3Ccircle cx='70' cy='122' r='2.2' fill='%23d4a373' fill-opacity='0.7'/%3E%3C/svg%3E");
	background-size: 100% 100%;
	background-repeat: no-repeat;
}

.church-mission-gal-item::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 5px;
	width: 18px;
	height: 3px;
	transform: translateX(-50%);
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, rgba(212, 163, 115, 0.85), transparent);
	pointer-events: none;
}

.church-mission-gal-item img {
	display: block;
	width: 100%;
	height: 113px;
	object-fit: cover;
	border-radius: 2px;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(27, 67, 50, 0.08);
}

.church-mission-gal-item:hover,
.church-mission-gal-item:focus-within {
	z-index: 30;
	animation: none !important;
	transform: scale(2) rotate(0deg);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
	box-shadow:
		0 8px 16px rgba(27, 67, 50, 0.12),
		0 24px 48px rgba(27, 67, 50, 0.22);
	cursor: zoom-out;
}

.church-mission-gal-item:hover::before,
.church-mission-gal-item:focus-within::before {
	opacity: 0.35;
}

.church-mission-gal-item--1 { top: 0; left: -8px; --gal-rot: -8deg; --gal-dur: 3.4s; --gal-bob: 20px; animation-delay: 0s; }
.church-mission-gal-item--2 { top: 2%; right: -8px; --gal-rot: 7deg; --gal-dur: 3.9s; --gal-bob: 24px; animation-delay: -0.6s; }
.church-mission-gal-item--3 { top: 42%; left: -18px; --gal-rot: 5deg; --gal-dur: 3.6s; --gal-bob: 18px; animation-delay: -1.1s; }
.church-mission-gal-item--4 { top: 40%; right: -18px; --gal-rot: -6deg; --gal-dur: 4.1s; --gal-bob: 22px; animation-delay: -1.7s; }
.church-mission-gal-item--5 { bottom: -36px; left: 0; --gal-rot: -4deg; --gal-dur: 3.5s; --gal-bob: 19px; animation-delay: -0.3s; }
.church-mission-gal-item--6 { bottom: -40px; right: 0; --gal-rot: 6deg; --gal-dur: 3.8s; --gal-bob: 23px; animation-delay: -1.4s; }
.church-mission-gal-item--7 { bottom: -52px; left: calc(50% - 70px); --gal-rot: -2deg; --gal-dur: 4s; --gal-bob: 21px; animation-delay: -2s; }

@keyframes church-mission-gal-float {
	0%, 100% {
		transform: translateY(0) rotate(var(--gal-rot, 0deg));
	}
	50% {
		transform: translateY(calc(var(--gal-bob, 22px) * -1)) rotate(var(--gal-rot, 0deg));
	}
}

.church-mission-detail-body {
	position: relative;
	z-index: 5;
	max-width: 34em;
	margin: 0 auto;
	padding: 22px 26px 26px;
	text-align: center;
	background:
		linear-gradient(180deg, rgba(255, 254, 249, 0.92) 0%, rgba(255, 254, 249, 0.97) 100%);
	border-radius: 14px;
	border: 1px solid rgba(45, 106, 79, 0.14);
	box-shadow: 0 10px 28px rgba(27, 67, 50, 0.07);
}

.church-mission-detail-body::before {
	content: none;
}

.church-mission-detail-flag {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
	width: 56px;
	height: 40px;
	padding: 4px;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(45, 106, 79, 0.16);
	box-shadow: 0 4px 12px rgba(27, 67, 50, 0.08);
}

.church-mission-detail-flag img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.church-mission-meta-label {
	display: block;
	margin-bottom: 4px;
	font-family: var(--church-font);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--church-forest-mid, #2d6a4f);
	opacity: 0.75;
}

.church-mission-meta-value {
	display: block;
	font-family: 'Gowun Batang', 'Noto Serif KR', 'Batang', serif;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.02em;
	color: var(--church-forest, #1b4332);
}

.church-mission-detail-country .church-mission-meta-value {
	font-size: 1.12rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--church-forest-mid, #2d6a4f);
}

.church-mission-detail-missionary .church-mission-meta-value {
	font-size: 1.55rem;
	font-weight: 700;
	color: var(--church-ink, #1a2e28);
}

.church-mission-detail-place {
	margin: 0 0 18px;
}

.church-mission-detail-place .church-mission-meta-value {
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--church-muted, #4a5f56);
}

.church-mission-greeting {
	margin-top: 6px;
	padding-top: 16px;
	border-top: 1px solid rgba(45, 106, 79, 0.16);
	text-align: left;
}

.church-mission-greeting-line {
	margin: 0 0 14px;
	font-family: 'Gowun Batang', 'Noto Serif KR', 'Batang', serif;
	font-size: 1.08rem;
	font-weight: 400;
	line-height: 1.95;
	letter-spacing: -0.01em;
	color: #243830;
	word-break: keep-all;
}

.church-mission-greeting-line:first-child {
	font-size: 1.16rem;
	font-weight: 700;
	line-height: 1.8;
	color: var(--church-forest, #1b4332);
}

.church-mission-greeting-line a {
	color: var(--church-forest-mid, #2d6a4f);
	font-weight: 600;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.church-mission-detail-body p {
	margin: 0 0 12px;
}

@media (max-width: 800px) {
	.church-mission-detail--with-gallery .church-mission-detail-compose {
		padding: 18px 12px 22px;
	}

	.church-mission-detail--with-gallery .church-mission-detail-compose::before,
	.church-mission-detail--with-gallery .church-mission-detail-compose::after {
		width: 56px;
		height: 56px;
		opacity: 0.4;
	}

	.church-mission-gallery {
		position: relative;
		inset: auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 18px 14px;
		margin: 0 0 22px;
		pointer-events: auto;
	}

	.church-mission-gal-item {
		position: relative;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 120px;
		animation: church-mission-gal-float var(--gal-dur, 3.6s) ease-in-out infinite !important;
	}

	.church-mission-gal-item img {
		height: 100px;
	}

	.church-mission-detail-photo {
		max-width: min(82%, 420px);
	}

	.church-mission-gal-item:hover,
	.church-mission-gal-item:focus-within {
		transform: scale(1.85) rotate(0deg);
	}

	.church-mission-detail-body {
		max-width: none;
		padding: 18px 16px 20px;
	}

	.church-mission-detail-missionary .church-mission-meta-value {
		font-size: 1.35rem;
	}

	.church-mission-greeting-line,
	.church-mission-greeting-line:first-child {
		font-size: 1.02rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.church-mission-gal-item:hover,
	.church-mission-gal-item:focus-within {
		transform: scale(1.35) rotate(0deg);
		transition: none;
	}
}

.church-mission-card {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 20px;
	align-items: start;
}

.church-mission-card figure {
	margin: 0;
}

.church-mission-card img {
	width: 100%;
	height: auto;
	border-radius: 6px;
}

.church-schedule-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.church-schedule-list li {
	padding: 12px 0;
	border-bottom: 1px solid #e2e8f0;
}

.church-schedule-date {
	color: var(--church-muted);
	font-size: 0.9em;
	margin-left: 6px;
}

@media (max-width: 640px) {
	.church-mission-card {
		grid-template-columns: 1fr;
	}
}

/* ===================== 새가족 안내 ===================== */
.body.fixed-width .content:has(.church-newfamily) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-newfamily {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	font-family: var(--church-font);
}

.church-nf-photos {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
	margin: 0 0 38px;
}

.church-nf-photo {
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
	background: #fff;
	padding: 8px;
	border: 1px solid rgba(27, 67, 50, 0.12);
	box-shadow: 0 10px 26px rgba(27, 67, 50, 0.12);
}

.church-nf-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}

.church-nf-fixed {
	text-align: center;
}

.church-nf-fixed img {
	display: block;
	width: 100%;
	max-width: 730px;
	height: auto;
	margin: 0 auto;
}

@media (max-width: 640px) {
	.church-nf-photos {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-bottom: 26px;
	}
}

/* ===================== 교회둘러보기(갤러리) ===================== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600&family=Gowun+Batang:wght@400;700&display=swap');

.body.fixed-width .content:has(.church-tour) {
	padding-top: 0 !important;
	padding-bottom: 40px;
}

.church-tour {
	width: 75%;
	max-width: 750px;
	margin: 0 auto;
	font-family: var(--church-font);
}

.church-carousel-viewport {
	position: relative;
	width: 100%;
	max-height: 420px;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: 14px;
	background: #0c1f17;
	box-shadow: 0 14px 36px rgba(27, 67, 50, 0.22);
}

.church-carousel-track {
	display: flex;
	height: 100%;
	transition: transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: transform;
}

.church-carousel-slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
}

.church-carousel-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.02);
}

/* 활성 슬라이드에 Ken Burns(천천히 줌·팬) 모션 */
.church-carousel-slide.is-active img {
	animation: church-kenburns 7s ease-out both;
}

@keyframes church-kenburns {
	0% {
		transform: scale(1.16) translate(4%, -3%);
	}
	100% {
		transform: scale(1.02) translate(0, 0);
	}
}

.church-carousel-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	width: 52px;
	height: 52px;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	background: rgba(255, 255, 255, 0.78);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(4px);
	transition: background 0.2s ease, transform 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
}

.church-carousel:hover .church-carousel-arrow {
	opacity: 1;
}

.church-carousel-arrow:hover {
	background: #fff;
	transform: translateY(-50%) scale(1.08);
}

.church-carousel-arrow span {
	display: block;
	width: 14px;
	height: 14px;
	border-right: 3px solid var(--church-forest, #1b4332);
	border-bottom: 3px solid var(--church-forest, #1b4332);
}

.church-carousel-prev {
	left: 18px;
}

.church-carousel-prev span {
	transform: rotate(135deg);
	margin-left: 5px;
}

.church-carousel-next {
	right: 18px;
}

.church-carousel-next span {
	transform: rotate(-45deg);
	margin-right: 5px;
}

.church-carousel-thumbs {
	display: flex;
	flex-wrap: nowrap;
	justify-content: stretch;
	align-items: stretch;
	gap: 8px;
	margin-top: 12px;
	width: 100%;
	padding: 0 2px;
	box-sizing: border-box;
}

.church-carousel-thumb {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	height: 68px;
	padding: 0;
	border: 2px solid rgba(45, 106, 79, 0.18);
	border-radius: 8px;
	overflow: hidden;
	cursor: pointer;
	background: #fff;
	opacity: 0.88;
	box-shadow: 0 2px 8px rgba(27, 67, 50, 0.12);
	transition: opacity 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.church-carousel-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.church-carousel-thumb:hover {
	opacity: 1;
	transform: translateY(-2px);
}

.church-carousel-thumb.is-active {
	opacity: 1;
	border-color: var(--church-forest-light, #40916c);
	border-width: 3px;
	box-shadow: 0 4px 14px rgba(45, 106, 79, 0.28);
	transform: translateY(-1px);
}

.church-tour-desc {
	width: 75%;
	max-width: 750px;
	margin: 28px auto 0;
	padding: 28px 32px 26px;
	position: relative;
	word-break: keep-all;
}

.church-tour-desc p {
	margin: 0 0 16px;
}

.church-tour-desc p:last-child {
	margin-bottom: 0;
}

/* 사랑의 쌀나누기 — 따뜻한 명조·따옴표 카드 */
.church-tour-desc--rice {
	font-family: 'Noto Serif KR', 'Nanum Myeongjo', 'Batang', Georgia, serif;
	font-size: 1.02rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: -0.01em;
	color: var(--church-ink, #1a2e28);
	text-align: center;
	background: linear-gradient(165deg, rgba(255, 254, 249, 0.96) 0%, rgba(243, 240, 232, 0.88) 100%);
	border: 1px solid rgba(45, 106, 79, 0.14);
	border-radius: 14px;
	box-shadow: 0 8px 28px rgba(27, 67, 50, 0.08);
}

.church-tour-desc--rice::before {
	content: '“';
	display: block;
	margin-bottom: 4px;
	font-size: 2rem;
	line-height: 1;
	color: var(--church-mint, #74c69d);
	opacity: 0.85;
}

/* 장학사업 — 골드 포인트·좌측 정렬 학구 스타일 */
.church-tour-desc--scholarship {
	font-family: 'Gowun Batang', 'Noto Serif KR', 'Batang', serif;
	font-size: 1.04rem;
	font-weight: 400;
	line-height: 1.95;
	letter-spacing: 0.01em;
	color: #1e3a34;
	text-align: left;
	background:
		linear-gradient(120deg, rgba(255, 252, 245, 0.98) 0%, rgba(237, 246, 252, 0.92) 55%, rgba(255, 248, 238, 0.95) 100%);
	border: 1px solid rgba(212, 163, 115, 0.35);
	border-left: 5px solid var(--church-accent, #d4a373);
	border-radius: 4px 16px 16px 4px;
	box-shadow:
		0 10px 30px rgba(27, 67, 50, 0.07),
		inset 0 1px 0 rgba(255, 255, 255, 0.8);
	padding-left: 36px;
}

.church-tour-desc--scholarship::before {
	content: '✦';
	display: block;
	margin-bottom: 10px;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--church-accent, #d4a373);
	letter-spacing: 0.2em;
}

.church-tour-desc--scholarship p {
	padding-left: 2px;
}

.church-tour-desc--scholarship p:first-of-type {
	font-weight: 700;
	color: var(--church-forest, #1b4332);
}

@media (max-width: 640px) {
	.church-tour {
		width: 92%;
		max-width: none;
	}

	.church-carousel-viewport {
		max-height: none;
		border-radius: 12px;
	}

	.church-carousel-arrow {
		width: 42px;
		height: 42px;
		opacity: 1;
	}

	.church-carousel-prev {
		left: 10px;
	}

	.church-carousel-next {
		right: 10px;
	}

	.church-carousel-thumb {
		height: 52px;
	}

	.church-tour-desc {
		width: 92%;
		max-width: none;
		padding: 22px 18px 20px;
		font-size: 0.94rem;
		line-height: 1.85;
	}

	.church-tour-desc--scholarship {
		padding-left: 22px;
	}
}

/* ============================================================
   교회학교 부서 소개 (church-school)
   부서별 4가지 사진 패턴 + 통일된 콘텐츠 디자인
   ============================================================ */
.church-school {
	--cs-accent: #3ead5e;
	--cs-accent2: #74c69d;
	--cs-soft: #eef8f1;
	--cs-ink: #1f3b29;
	max-width: 1060px;
	margin: 0 auto;
	padding: 4px 4px 48px;
	color: #2c3a31;
}

.church-school * {
	box-sizing: border-box;
}

/* 부서 전환 (모바일에서도 본문 상단에 항상 노출) */
.cs-dept-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px;
	padding: 10px;
	background: var(--cs-soft);
	border: 1px solid rgba(31, 59, 41, 0.08);
	border-radius: 12px;
}

.cs-dept-nav-item {
	flex: 1 1 auto;
	min-width: 72px;
	text-align: center;
	padding: 10px 14px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--cs-ink) !important;
	background: #fff;
	border: 1px solid rgba(31, 59, 41, 0.12);
	text-decoration: none !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.cs-dept-nav-item.is-active {
	color: #fff !important;
	background: linear-gradient(135deg, var(--cs-accent), var(--cs-accent2));
	border-color: transparent;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.cs-dept-nav-item:hover,
.cs-dept-nav-item:focus {
	border-color: var(--cs-accent);
}

/* ---------- 사진 콜라주 공통 ---------- */
.cs-photos {
	position: relative;
	display: grid;
	gap: 16px;
	margin: 6px auto 40px;
	max-width: 940px;
}

.cs-photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
	background: #f1f3f2;
	box-shadow: 0 14px 30px rgba(31, 59, 41, 0.16);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s;
}

.cs-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cs-photo:hover {
	transform: translateY(-6px) scale(1.015);
	box-shadow: 0 22px 44px rgba(31, 59, 41, 0.26);
	z-index: 6;
}

/* 장식 도형 (부서별로 색/위치 재정의) */
.cs-deco {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
	opacity: 0.55;
}

/* ---------- 콘텐츠 공통 ---------- */
.cs-info {
	position: relative;
}

.cs-theme {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	padding: 22px 26px;
	margin-bottom: 22px;
	border-radius: 18px;
	background: linear-gradient(120deg, var(--cs-soft), #ffffff 80%);
	border: 1px solid rgba(0, 0, 0, 0.05);
	box-shadow: 0 10px 26px rgba(31, 59, 41, 0.08);
}

.cs-theme-label {
	flex: 0 0 auto;
	padding: 6px 16px;
	border-radius: 999px;
	background: var(--cs-accent);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.03em;
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
}

.cs-theme-text {
	flex: 1 1 240px;
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 800;
	line-height: 1.35;
	color: var(--cs-ink);
}

.cs-verse {
	position: relative;
	margin: 0 0 30px;
	padding: 20px 26px 20px 58px;
	border-radius: 16px;
	background: #fbfdfb;
	border-left: 5px solid var(--cs-accent);
	font-size: clamp(16px, 1.8vw, 19px);
	font-style: italic;
	line-height: 1.7;
	color: #46584d;
	box-shadow: 0 6px 18px rgba(31, 59, 41, 0.06);
}

.cs-verse::before {
	content: "\201C";
	position: absolute;
	left: 16px;
	top: 2px;
	font-size: 54px;
	line-height: 1;
	font-family: Georgia, "Times New Roman", serif;
	color: var(--cs-accent2);
	opacity: 0.7;
}

.cs-block {
	margin-bottom: 22px;
	padding: 22px 24px;
	border-radius: 16px;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.06);
	box-shadow: 0 8px 22px rgba(31, 59, 41, 0.07);
}

.cs-block-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	font-size: 19px;
	font-weight: 800;
	color: var(--cs-ink);
}

.cs-block-title::before {
	content: "";
	width: 12px;
	height: 12px;
	border-radius: 4px;
	background: linear-gradient(135deg, var(--cs-accent), var(--cs-accent2));
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16);
}

.cs-block-body {
	font-size: 16px;
	line-height: 1.85;
	color: #4a5a50;
}

/* 교육목표·예배안내·담당교사를 데스크톱에서 카드 그리드로 */
@media (min-width: 760px) {
	.cs-info {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 22px;
	}

	.cs-theme,
	.cs-verse {
		grid-column: 1 / -1;
	}

	.cs-block {
		margin-bottom: 0;
	}

	.cs-goal {
		grid-column: 1 / -1;
	}
}

/* ============================================================
   패턴 1 — 유치부(p109) : 폴라로이드 스캐터 (파스텔·기울임)
   ============================================================ */
.church-school--p109 {
	--cs-accent: #ff8a5c;
	--cs-accent2: #ffd166;
	--cs-soft: #fff3ec;
	--cs-ink: #7a3b1f;
}

.church-school--p109 .cs-photos {
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
	padding: 18px 10px;
}

.church-school--p109 .cs-photo {
	aspect-ratio: 4 / 3;
	border: 8px solid #fff;
	border-radius: 10px;
	box-shadow: 0 16px 30px rgba(122, 59, 31, 0.2);
}

.church-school--p109 .cs-photo-1 { transform: rotate(-4deg); }
.church-school--p109 .cs-photo-2 { transform: rotate(3deg); margin-top: 22px; }
.church-school--p109 .cs-photo-3 { transform: rotate(2.5deg); margin-top: -10px; }
.church-school--p109 .cs-photo-4 { transform: rotate(-3deg); }
.church-school--p109 .cs-photo:hover { transform: rotate(0deg) translateY(-6px) scale(1.03); }

.church-school--p109 .cs-deco-1 { width: 120px; height: 120px; left: -28px; top: -18px; background: var(--cs-accent2); }
.church-school--p109 .cs-deco-2 { width: 78px; height: 78px; right: -20px; bottom: 30px; background: var(--cs-accent); opacity: 0.4; }
.church-school--p109 .cs-deco-3 { width: 46px; height: 46px; right: 38%; top: -26px; background: #9ad6a0; }

/* ============================================================
   패턴 2 — 아동부(p112) : 모자이크 (큰 사진 + 3장)
   ============================================================ */
.church-school--p112 {
	--cs-accent: #2f9be0;
	--cs-accent2: #58d6a8;
	--cs-soft: #ecf6fd;
	--cs-ink: #16415f;
}

.church-school--p112 .cs-photos {
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: 150px 150px;
	gap: 14px;
}

.church-school--p112 .cs-photo-1 { grid-column: 1 / 3; grid-row: 1 / 3; }
.church-school--p112 .cs-photo-2 { grid-column: 3 / 5; grid-row: 1 / 2; }
.church-school--p112 .cs-photo-3 { grid-column: 3 / 4; grid-row: 2 / 3; }
.church-school--p112 .cs-photo-4 { grid-column: 4 / 5; grid-row: 2 / 3; }
.church-school--p112 .cs-photo { border: 4px solid #fff; border-radius: 18px; }

.church-school--p112 .cs-deco-1 { width: 90px; height: 90px; right: -24px; top: -22px; background: var(--cs-accent2); border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; }
.church-school--p112 .cs-deco-2 { width: 60px; height: 60px; left: -22px; bottom: -18px; background: var(--cs-accent); opacity: 0.4; }
.church-school--p112 .cs-deco-3 { display: none; }

/* ============================================================
   패턴 3 — 청소년부(p115) : 다이내믹 대각선 카드
   ============================================================ */
.church-school--p115 {
	--cs-accent: #7c5cff;
	--cs-accent2: #28c0c8;
	--cs-soft: #f0edff;
	--cs-ink: #2c1f63;
}

.church-school--p115 .cs-photos {
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	padding: 30px 12px;
}

.church-school--p115 .cs-photo {
	aspect-ratio: 3 / 4;
	border: 5px solid #fff;
	border-radius: 14px;
	box-shadow: 0 18px 34px rgba(44, 31, 99, 0.28);
}

.church-school--p115 .cs-photo-1 { transform: translateY(28px) rotate(-6deg); margin-right: -16px; z-index: 1; }
.church-school--p115 .cs-photo-2 { transform: translateY(6px) rotate(-2deg); margin-right: -16px; z-index: 2; }
.church-school--p115 .cs-photo-3 { transform: translateY(-8px) rotate(3deg); margin-right: -16px; z-index: 3; }
.church-school--p115 .cs-photo-4 { transform: translateY(14px) rotate(7deg); z-index: 2; }
.church-school--p115 .cs-photo:hover { transform: translateY(-10px) rotate(0deg) scale(1.05); z-index: 9; }

.church-school--p115 .cs-deco-1 { width: 140px; height: 140px; left: -10px; top: -10px; background: radial-gradient(circle at 30% 30%, var(--cs-accent), transparent 70%); opacity: 0.35; }
.church-school--p115 .cs-deco-2 { width: 110px; height: 110px; right: -16px; bottom: -16px; background: radial-gradient(circle at 70% 70%, var(--cs-accent2), transparent 70%); opacity: 0.4; }
.church-school--p115 .cs-deco-3 { width: 200px; height: 6px; border-radius: 6px; left: 50%; bottom: 6px; transform: translateX(-50%); background: linear-gradient(90deg, var(--cs-accent), var(--cs-accent2)); opacity: 0.8; }

/* ============================================================
   패턴 4 — 청년부(p118) : 매거진 비대칭 그리드
   ============================================================ */
.church-school--p118 {
	--cs-accent: #c8a24a;
	--cs-accent2: #5b7a8c;
	--cs-soft: #f5f1e8;
	--cs-ink: #243842;
}

.church-school--p118 .cs-photos {
	grid-template-columns: repeat(6, 1fr);
	grid-template-rows: 210px 160px;
	gap: 14px;
}

.church-school--p118 .cs-photo-1 { grid-column: 1 / 5; grid-row: 1 / 2; }
.church-school--p118 .cs-photo-2 { grid-column: 5 / 7; grid-row: 1 / 2; }
.church-school--p118 .cs-photo-3 { grid-column: 1 / 3; grid-row: 2 / 3; }
.church-school--p118 .cs-photo-4 { grid-column: 3 / 7; grid-row: 2 / 3; }
.church-school--p118 .cs-photo { border-radius: 10px; }

.church-school--p118 .cs-deco-1 { width: 86px; height: 86px; right: -26px; top: -26px; border: 10px solid var(--cs-accent); background: transparent; opacity: 0.5; }
.church-school--p118 .cs-deco-2 { width: 160px; height: 5px; border-radius: 0; left: 0; bottom: -16px; background: var(--cs-accent2); opacity: 0.7; }
.church-school--p118 .cs-deco-3 { display: none; }

/* ============================================================
   반응형 — 모바일에서는 단순 2열/1열로
   ============================================================ */
@media (max-width: 759px) {
	.cs-photos,
	.church-school--p109 .cs-photos,
	.church-school--p112 .cs-photos,
	.church-school--p115 .cs-photos,
	.church-school--p118 .cs-photos {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		gap: 12px;
		padding: 6px 0;
	}

	.church-school .cs-photo,
	.church-school--p112 .cs-photo-1,
	.church-school--p112 .cs-photo-2,
	.church-school--p112 .cs-photo-3,
	.church-school--p112 .cs-photo-4,
	.church-school--p118 .cs-photo-1,
	.church-school--p118 .cs-photo-2,
	.church-school--p118 .cs-photo-3,
	.church-school--p118 .cs-photo-4 {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 4 / 3;
		transform: none;
		margin: 0;
	}

	.church-school--p115 .cs-photo { aspect-ratio: 3 / 4; }
	.cs-deco { display: none; }
}

/* ============================================================
   동키데이 (church-dongkeyday) — 원형 사진 링 + 중앙 소개
   ============================================================ */
.church-dongkeyday {
	--dkd-accent: #e76f51;
	--dkd-accent2: #f4a261;
	--dkd-ink: #5c3d38;
	--dkd-orbit-r: min(34vw, 300px);
	max-width: 960px;
	margin: 0 auto;
	padding: 0 8px 48px;
	color: var(--dkd-ink);
}

.church-dongkeyday * {
	box-sizing: border-box;
}

.dkd-collage {
	position: relative;
	width: min(900px, 100%);
	aspect-ratio: 1;
	margin: -16px auto 28px;
}

.dkd-orbit-ring {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 78%;
	height: 78%;
	transform: translate(-50%, -50%);
	border: 2px dashed rgba(231, 111, 81, 0.2);
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
}

.dkd-orbit-glow {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 50%;
	height: 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(244, 162, 97, 0.14) 0%, rgba(255, 246, 239, 0.4) 45%, transparent 72%);
	z-index: 0;
	pointer-events: none;
}

.dkd-photo {
	position: absolute;
	left: 50%;
	top: 50%;
	width: clamp(100px, 18.5%, 158px);
	aspect-ratio: 1;
	margin: 0;
	padding: 4px;
	overflow: hidden;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	box-shadow:
		0 10px 26px rgba(74, 44, 42, 0.2),
		0 0 0 3px rgba(255, 255, 255, 0.95),
		0 0 0 5px rgba(244, 162, 97, 0.35);
	transition:
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		z-index 0s;
	z-index: 2;
	--dkd-orbit-deg: 0deg;
	--dkd-tilt: 0deg;
	transform:
		translate(-50%, -50%)
		rotate(var(--dkd-orbit-deg))
		translateY(calc(-1 * var(--dkd-orbit-r)))
		rotate(calc(-1 * var(--dkd-orbit-deg)))
		rotate(var(--dkd-tilt));
}

.dkd-photo-shine {
	position: absolute;
	inset: -10%;
	z-index: 3;
	border-radius: 50%;
	pointer-events: none;
	background: linear-gradient(
		115deg,
		transparent 38%,
		rgba(255, 255, 255, 0.15) 44%,
		rgba(255, 255, 255, 0.95) 50%,
		rgba(255, 255, 255, 0.15) 56%,
		transparent 62%
	);
	transform: translateX(-130%) skewX(-14deg);
	opacity: 0;
}

.dkd-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s;
}

.dkd-photo:hover {
	z-index: 12;
	overflow: visible;
	box-shadow:
		0 22px 48px rgba(74, 44, 42, 0.34),
		0 0 0 4px #fff,
		0 0 0 8px rgba(231, 111, 81, 0.5),
		0 0 28px rgba(244, 162, 97, 0.55);
	transform:
		translate(-50%, -50%)
		rotate(var(--dkd-orbit-deg))
		translateY(calc(-1 * var(--dkd-orbit-r) - 8px))
		rotate(calc(-1 * var(--dkd-orbit-deg)))
		rotate(0deg)
		scale(1.42);
}

.dkd-photo:hover .dkd-photo-shine {
	opacity: 1;
	animation: dkd-photo-shine 0.75s ease forwards;
}

.dkd-photo:hover img {
	transform: scale(1.22);
	filter: brightness(1.06) saturate(1.08);
}

@keyframes dkd-photo-shine {
	0% {
		transform: translateX(-130%) skewX(-14deg);
		opacity: 0;
	}
	18% {
		opacity: 1;
	}
	100% {
		transform: translateX(130%) skewX(-14deg);
		opacity: 0;
	}
}

.dkd-photo-1 { --dkd-orbit-deg: -90deg;  --dkd-tilt: -3deg; }
.dkd-photo-2 { --dkd-orbit-deg: -50deg;  --dkd-tilt: 4deg; }
.dkd-photo-3 { --dkd-orbit-deg: -10deg;  --dkd-tilt: -2deg; }
.dkd-photo-4 { --dkd-orbit-deg: 30deg;   --dkd-tilt: 3deg; }
.dkd-photo-5 { --dkd-orbit-deg: 70deg;   --dkd-tilt: -4deg; }
.dkd-photo-6 { --dkd-orbit-deg: 110deg;  --dkd-tilt: 2deg; }
.dkd-photo-7 { --dkd-orbit-deg: 150deg;  --dkd-tilt: -5deg; }
.dkd-photo-8 { --dkd-orbit-deg: 190deg;  --dkd-tilt: 3deg; }
.dkd-photo-9 { --dkd-orbit-deg: 230deg;  --dkd-tilt: -2deg; }

.dkd-intro {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: min(360px, 44%);
	z-index: 4;
	text-align: center;
	padding: 0 6px;
}

.dkd-intro-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 12px;
	margin: 0 0 14px;
}

.dkd-intro-label {
	margin: 0;
	font-family: 'Gowun Batang', 'Noto Serif KR', 'Batang', serif;
	font-size: clamp(1.4rem, 2.6vw, 1.85rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--dkd-accent);
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}

.dkd-apply--inline {
	margin: 0;
	text-align: center;
	flex: 0 0 auto;
}

.dkd-apply--inline .dkd-apply-btn {
	padding: 8px 16px;
	font-size: 0.86rem;
	letter-spacing: 0.02em;
	box-shadow: 0 8px 18px rgba(231, 111, 81, 0.3);
	white-space: nowrap;
}

.dkd-intro-inner {
	font-family: 'Noto Serif KR', 'Gowun Batang', 'Batang', serif;
	font-size: clamp(0.94rem, 1.65vw, 1.06rem);
	font-weight: 500;
	line-height: 2;
	color: var(--dkd-ink);
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
}

.dkd-intro-line {
	display: block;
	width: 72px;
	height: 2px;
	margin: 18px auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, var(--dkd-accent2), var(--dkd-accent), var(--dkd-accent2), transparent);
	opacity: 0.9;
}

.dkd-intro-star {
	position: absolute;
	color: var(--dkd-accent2);
	font-size: 1rem;
	line-height: 1;
	opacity: 0.75;
	pointer-events: none;
}

.dkd-intro-star--tl { left: 2%;  top: 2%;  transform: rotate(-12deg); }
.dkd-intro-star--tr { right: 2%; top: 4%;  transform: rotate(10deg); }
.dkd-intro-star--bl { left: 6%;  bottom: 6%; transform: rotate(8deg); font-size: 0.9rem; }
.dkd-intro-star--br { right: 4%; bottom: 4%; transform: rotate(-8deg); font-size: 0.9rem; }

.dkd-apply {
	text-align: center;
	margin-top: -8px;
}

.dkd-apply-btn {
	display: inline-block;
	padding: 16px 34px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--dkd-accent), #d45d3e);
	color: #fff !important;
	font-family: 'Gowun Batang', 'Noto Serif KR', serif;
	font-size: 1.08rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none !important;
	box-shadow: 0 12px 28px rgba(231, 111, 81, 0.35);
	transition: transform 0.25s, box-shadow 0.25s;
}

.dkd-apply-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 34px rgba(231, 111, 81, 0.45);
}

.dkd-apply-note {
	margin-top: 10px;
	font-size: 0.92rem;
	color: #7a5a52;
}

@media (max-width: 860px) {
	.church-dongkeyday {
		--dkd-orbit-r: 0px;
	}

	.dkd-collage {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-start;
		aspect-ratio: auto;
		gap: 12px;
		min-height: 0;
		padding: 0;
	}

	.dkd-orbit-ring,
	.dkd-orbit-glow,
	.dkd-intro-star {
		display: none;
	}

	.dkd-intro {
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		width: 100%;
		max-width: 520px;
		flex: 0 0 100%;
		order: -1;
		margin-bottom: 8px;
		padding: 0 12px;
	}

	.dkd-intro-inner {
		text-align: left;
		line-height: 1.9;
	}

	.dkd-photo {
		position: relative;
		left: auto;
		top: auto;
		width: calc(50% - 10px);
		max-width: 200px;
		flex: 0 0 calc(50% - 10px);
		transform: none !important;
		border-radius: 18px;
	}

	.dkd-photo img {
		border-radius: 14px;
	}
}
