/* ============================================================
   [D/common.css] Gallup-Style Design System
   미디어토마토 D 시안 - 공통 스타일 (gallup.co.kr 참고)
   ============================================================ */

@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');

/* ─── CSS Variables ─────────────────────────────────────── */
:root {
	--primary: #161c23;
	/* Gallup Dark Blue-Black */
	--primary-mid: #005596;
	/* Gallup Royal Blue (Main Point) */
	--primary-light: #0076cf;
	--primary-dark: #003d6b;
	--accent: #005596;
	/* Accent used for primary action links */
	--accent-hover: #003d6b;
	--text: #161c23;
	--text-sub: #666666;
	--text-light: #999999;
	--border: #e0e0e0;
	--border-light: #f1f1f1;
	--bg: #ffffff;
	--bg-section: #f8f8f8;
	--white: #ffffff;
	--shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 20px rgba(0, 0, 0, 0.08);
	--shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.12);
	--transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--radius: 0px;
	--radius-lg: 0px;
}

/* ─── Reset & Base ──────────────────────────────────────── */
*,
*::before,
*::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	width: 100%;
	overflow-x: hidden;
	scroll-behavior: smooth;
}

body {
	font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
	font-size: 16px;
	/* 갤럽 기본 사이즈 매칭 */
	font-weight: 400;
	color: var(--text);
	line-height: 1.6;
	background-color: var(--white);
	word-break: keep-all;
	width: 100%;
	overflow-x: hidden;
	letter-spacing: -0.3px;
	/* 약간의 자간 축소로 세련됨 부여 */
}

a {
	text-decoration: none;
	color: inherit;
	transition: color var(--transition);
}

ul,
ol {
	list-style: none;
}

img {
	max-width: 100%;
	display: block;
}

button {
	cursor: pointer;
	border: none;
	background: none;
	font-family: inherit;
}

/* ─── Container ─────────────────────────────────────────── */
.inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
	position: relative;
	box-sizing: border-box;
}

/* ─── Section Title ─────────────────────────────────────── */
.section-title {
	text-align: center;
	/* 중앙 정렬로 변경 */
	margin-bottom: 56px;
	position: relative;
}

	/* 새로운 디자인: 바닥 가운데 블루 ~ 스카이블루 그라디언트 바 추가 */
	.section-title::after {
		content: '';
		position: absolute;
		bottom: -16px;
		left: 50%;
		transform: translateX(-50%);
		width: 60px;
		height: 4px;
		background: linear-gradient(90deg, var(--primary-mid) 0%, #1ab1f5 100%);
		border-radius: 4px;
	}

	.section-title h2 {
		font-size: 34px;
		font-weight: 800;
		color: var(--primary);
		margin-bottom: 14px;
		letter-spacing: -1.5px;
		line-height: 1.2;
	}

	.section-title p {
		font-size: 16px;
		color: var(--text-sub);
		font-weight: 500;
	}

	/* 기존 가운데 정렬용 title-bar 보존 (원래 HTML에 있다면 안보이게 하거나 보존) */
	.section-title .title-bar {
		display: none;
	}

	/* .section-title.center는 이제 기본 스타일이 중앙 정렬이므로 추가적인 스타일 변경은 필요 없음 */
	.section-title.center {
		padding-left: 0;
		text-align: center;
	}

		/* 텍스트 그라디언트 변형 클래스 (.center) 사용 시 텍스트 자체 그라디언트 */
		.section-title.center h2 {
			background: linear-gradient(90deg, var(--primary-mid) 0%, #002d5c 100%);
			-webkit-background-clip: text;
			background-clip: text;
			-webkit-text-fill-color: transparent;
		}


/* ─── UTILITIES ────────────────────────────────────────── */
.u-text-point {
	color: #f5a623 !important;
	font-weight: 800 !important;
}

.u-primary-mid {
	color: var(--primary-mid) !important;
}

.u-bg-primary-mid {
	background-color: var(--primary-mid) !important;
}

.u-flex-center {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

.u-flex-column {
	display: flex !important;
	flex-direction: column !important;
}

.d-flex {
	display: flex !important;
}

.align-items-center {
	align-items: center !important;
}

.justify-content-center {
	justify-content: center !important;
}

.gap-10 {
	gap: 10px !important;
}

.gap-12 {
	gap: 12px !important;
}

.gap-15 {
	gap: 15px !important;
}

.gap-20 {
	gap: 20px !important;
}

.gap-25 {
	gap: 25px !important;
}

.u-card-flat {
	border-radius: 0 !important;
	border: 1px solid var(--border-light) !important;
}

.u-shadow-none {
	box-shadow: none !important;
}

.border-top-dashed {
	border-top: 1px dashed #ddd !important;
}

.u-mt-20 {
	margin-top: 20px !important;
}

.u-mt-40 {
	margin-top: 40px !important;
}

.u-mt-50 {
	margin-top: 50px !important;
}

.u-mt-60 {
	margin-top: 60px !important;
}

.u-mt-80 {
	margin-top: 80px !important;
}

.u-mb-8 {
	margin-bottom: 8px !important;
}

.u-mb-15 {
	margin-bottom: 15px !important;
}

.u-mb-20 {
	margin-bottom: 20px !important;
}

.u-mb-25 {
	margin-bottom: 25px !important;
}

.u-mb-30 {
	margin-bottom: 30px !important;
}

.u-mb-40 {
	margin-bottom: 40px !important;
}

.u-mb-60 {
	margin-bottom: 60px !important;
}

.u-fs-13 {
	font-size: 13px !important;
}

.u-fs-14 {
	font-size: 14px !important;
}

.u-fs-15 {
	font-size: 15px !important;
}

.u-fs-16 {
	font-size: 16px !important;
}

.u-fs-17 {
	font-size: 17px !important;
}

.u-fs-18 {
	font-size: 18px !important;
}

.u-fs-20 {
	font-size: 20px !important;
}

.u-fs-28 {
	font-size: 28px !important;
}

.u-fs-40 {
	font-size: 40px !important;
}

.u-fw-600 {
	font-weight: 600 !important;
}

.u-fw-700 {
	font-weight: 700 !important;
}

.u-fw-800 {
	font-weight: 800 !important;
}

.u-text-danger {
	color: #e74c3c !important;
}

.u-text-muted {
	color: #666 !important;
}

.u-primary-light {
	color: var(--primary-light) !important;
}

.u-h-50 {
	height: 50px !important;
}

.u-fs-24 {
	font-size: 24px !important;
}

.u-mt-36 {
	margin-top: 36px !important;
}

.u-w-full {
	width: 100% !important;
}

.u-display-inline-flex {
	display: inline-flex !important;
}

.u-text-center {
	text-align: center !important;
}

.u-cursor-pointer {
	cursor: pointer !important;
}

.u-cursor-default {
	cursor: default !important;
}

.u-opacity-30 {
	opacity: 0.3 !important;
}

.u-ml-10 {
	margin-left: 10px !important;
}

.u-pl-20 {
	padding-left: 20px !important;
}

.u-u-case {
	text-transform: uppercase !important;
}

.u-ls-1 {
	letter-spacing: 1px !important;
}

.u-ls-2 {
	letter-spacing: 2px !important;
}

.u-opacity-80 {
	opacity: 0.8 !important;
}

.u-display-block {
	display: block !important;
}

.u-bg-white {
	background-color: #fff !important;
}

.u-ls-neg-05 {
	letter-spacing: -0.5px !important;
}

.u-delay-1 {
	transition-delay: 0.1s !important;
}

.u-delay-2 {
	transition-delay: 0.2s !important;
}

.u-delay-3 {
	transition-delay: 0.3s !important;
}

/* [회사소개 - intro_about.html] */
.about-stat-item.u-card-flat {
	padding: 30px 20px;
	background: #fff;
}

/* ─── HEADER ─────────────────────────────────────────────── */
.d-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 9000;
	background: var(--white);
	border-bottom: 1px solid var(--border-light);
	transition: all var(--transition);
}

	.d-header.scrolled {
		box-shadow: var(--shadow-sm);
	}

.d-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 80px;
	max-width: 1132px;
	margin: 0 auto;
	z-index: 10;
}

/* 로고 */
.d-logo a {
	display: flex;
	align-items: center;
}

.d-logo img {
	height: 26px;
	width: auto;
}

/* GNB */
.d-nav-area {
	height: 100%;
}

.d-gnb {
	display: flex;
	align-items: stretch;
	height: 100%;
	gap: 0;
}

.d-gnb-item {
	display: flex;
	align-items: center;
	height: 100%;
	position: static;
}

	.d-gnb-item > a {
		display: flex;
		align-items: center;
		height: 80px;
		padding: 0 32px;
		font-size: 18px;
		font-weight: 600;
		color: var(--primary);
		position: relative;
		transition: all var(--transition);
		white-space: nowrap;
	}

		.d-gnb-item > a::after {
			content: '';
			position: absolute;
			bottom: 0;
			left: 32px;
			right: 32px;
			height: 3px;
			background: var(--primary-mid);
			transform: scaleX(0);
			transition: transform 0.3s ease;
		}

	.d-gnb-item:hover > a {
		color: var(--primary-mid);
	}

		.d-gnb-item:hover > a::after,
		.d-gnb-item.active > a::after {
			transform: scaleX(1);
		}

/* 드롭다운: gnb-item 기준 absolute */

.d-dropdown {
	position: fixed;
	top: 80px;
	left: -9999px;
	transform: translateY(-6px);
	background: #f4f5f7;
	border-bottom: 1px solid #e8e8e8;
	border: 1px solid #e8e8e8;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
	border-radius: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, transform 0.2s ease;
	z-index: 9100;
	padding: 0;
	min-width: max-content;
}

.d-gnb-item:hover .d-dropdown {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

.d-dropdown ul {
	list-style: none;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0;
	padding: 0;
	margin: 0;
}

.d-dropdown a {
	display: inline-flex;
	align-items: center;
	padding: 13px 20px;
	font-size: 14px;
	font-weight: 500;
	color: #999;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: all 0.2s;
	background: transparent;
}

	.d-dropdown a:hover {
		color: var(--primary-mid);
		font-weight: 600;
		background: transparent;
		border-bottom-color: var(--primary-mid);
	}

/* 헤더 우측 CTA */
.d-header-cta a {
	display: inline-block;
	padding: 10px 24px;
	background: var(--primary-mid);
	color: var(--white);
	font-size: 14px;
	font-weight: 500;
	border-radius: 0;
	transition: background var(--transition);
}

	.d-header-cta a:hover {
		background: var(--accent-hover);
	}

/* 햄버거 버튼 */
.d-mobile-btn {
	display: none;
	flex-direction: column;
	gap: 5px;
	padding: 8px;
	cursor: pointer;
}

	.d-mobile-btn span {
		display: block;
		width: 24px;
		height: 2px;
		background: var(--primary);
		border-radius: 0;
		transition: all 0.3s ease;
	}

	.d-mobile-btn.open span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.d-mobile-btn.open span:nth-child(2) {
		opacity: 0;
	}

	.d-mobile-btn.open span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

/* ─── 모바일 오버레이 메뉴 ────────────────────────────────── */
.d-mobile-nav {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--primary);
	z-index: 8900;
	display: flex;
	flex-direction: column;
	padding: 90px 30px 40px;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}

	.d-mobile-nav.active {
		opacity: 1;
		visibility: visible;
	}

.d-mobile-nav-list > li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

	.d-mobile-nav-list > li > a {
		display: block;
		padding: 16px 0;
		font-size: 18px;
		font-weight: 700;
		color: var(--white);
	}

.d-mobile-sub {
	padding: 0 0 12px 16px;
}

	.d-mobile-sub a {
		display: block;
		padding: 9px 0;
		font-size: 15px;
		color: rgba(255, 255, 255, 0.75);
	}

		.d-mobile-sub a:hover {
			color: var(--white);
		}

/* ─── 서브 비주얼 (내부 페이지 상단) ────────────────────── */
.d-sub-visual {
	margin-top: 80px;
	background: linear-gradient(135deg, #001f4d 0%, #003375 60%, #005596 100%);
	padding: 60px 0;
	position: relative;
	overflow: hidden;
}

	.d-sub-visual::before {
		content: '';
		position: absolute;
		top: -40px;
		right: -40px;
		width: 300px;
		height: 300px;
		background: radial-gradient(circle, rgba(26,177,245,0.15) 0%, transparent 70%);
		pointer-events: none;
		z-index: 0;
	}

	.d-sub-visual::after {
		content: '';
		position: absolute;
		bottom: -60px;
		left: 10%;
		width: 400px;
		height: 400px;
		background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
		pointer-events: none;
		z-index: 0;
	}

.d-sub-visual-inner {
	position: relative;
	z-index: 1;
}

.d-sub-visual h1 {
	font-size: 40px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 12px;
	letter-spacing: -1px;
}

.d-sub-visual p {
	font-size: 16px;
	color: rgba(255,255,255,.65);
}

.d-sub-visual .d-breadcrumb span {
	color: rgba(255,255,255,.4);
}

	.d-sub-visual .d-breadcrumb span.current {
		color: #1ab1f5;
	}

	.d-sub-visual .d-breadcrumb span:not(:last-child)::after {
		color: rgba(255,255,255,.2);
	}

.d-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
}

	.d-breadcrumb span {
		font-size: 14px;
		color: var(--text-light);
		display: flex;
		align-items: center;
		gap: 8px;
	}

		.d-breadcrumb span:not(:last-child)::after {
			content: "\f054";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			font-size: 8px;
			color: #ccc;
		}

		.d-breadcrumb span.current {
			color: var(--primary-mid);
			font-weight: 600;
		}

/* ─── 탭 UI ────────────────────────────────────────── */
.d-lnb {
	position: sticky;
	top: 100px;
	align-self: flex-start;
	flex: 0 0 240px;
	width: 240px;
}

	.d-lnb h3 {
		font-size: 22px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: 20px;
		padding-bottom: 12px;
		border-bottom: 2px solid var(--primary);
	}

.d-lnb-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

	.d-lnb-list li {
		margin-bottom: 4px;
	}

		.d-lnb-list li a,
		.d-tab-btn {
			display: block;
			padding: 14px 20px;
			font-size: 16px;
			font-weight: 600;
			color: var(--text-mid);
			text-decoration: none;
			transition: all 0.3s ease;
			background: #f8fafc;
			border: 1px solid var(--border-light);
			border-radius: var(--radius);
			cursor: pointer;
			width: 100%;
			text-align: left;
		}

			.d-lnb-list li a:hover,
			.d-tab-btn:hover {
				background: #fff;
				color: var(--primary);
				border-color: var(--primary-mid);
				transform: translateX(4px);
			}

			.d-lnb-list li.active a,
			.d-tab-btn.active {
				background: var(--primary-mid);
				color: #fff;
				border-color: var(--primary-mid);
				box-shadow: 0 4px 10px rgba(0, 45, 92, 0.2);
			}

.d-tab-nav {
	display: flex;
	border-bottom: 2px solid var(--border-light);
	gap: 4px;
	/* 버튼 사이 간격 추가 */
	margin-bottom: 30px;
}

.d-tab-content {
	display: none;
	padding: 32px 0;
}

	.d-tab-content.active {
		display: block;
	}

/* ─── 게시판 공통 (리스트형 - 이미지 디자인 반영) ────────────────── */
.d-board-list {
	border-top: 2px solid var(--primary);
}

.d-board-item {
	padding: 30px 0;
	border-bottom: 1px solid var(--border-light);
	transition: background 0.3s ease;
}

	.d-board-item:hover {
		background: #fafafa;
	}

.d-board-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 12px;
}

.d-board-title {
	font-size: 18px;
	font-weight: 700;
	color: var(--primary);
	line-height: 1.5;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	word-break: keep-all;
}

.d-board-item:hover .d-board-title {
	color: var(--primary-mid);
}

.d-board-item .badge-new {
	font-size: 10px;
	font-weight: 900;
	color: #ff6b00;
	font-family: 'Pretendard', sans-serif;
}

.d-board-meta {
	display: flex;
	align-items: center;
	gap: 15px;
	font-size: 13px;
	color: var(--text-light);
}

	.d-board-meta span {
		display: flex;
		align-items: center;
		gap: 5px;
	}

	.d-board-meta i {
		font-size: 12px;
		opacity: 0.7;
	}

.d-board-table {
	display: none;
	/* 기존 테이블 방식에서 리스트 방식으로 전환 */
}

/* ─── 폼 공통 ────────────────────────────────────────────── */
.d-form-group {
	margin-bottom: 20px;
}

	.d-form-group label {
		display: block;
		font-size: 13px;
		font-weight: 600;
		color: var(--text);
		margin-bottom: 7px;
	}

		.d-form-group label .req {
			color: var(--accent);
			margin-left: 3px;
		}

.d-form-control {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	font-size: 14px;
	font-family: inherit;
	color: var(--text);
	background: var(--white);
	transition: border-color var(--transition);
	outline: none;
}

	.d-form-control:focus {
		border-color: var(--primary-mid);
		box-shadow: 0 0 0 3px rgba(36, 86, 164, 0.08);
	}

	.d-form-control::placeholder {
		color: var(--text-light);
	}

textarea.d-form-control {
	resize: vertical;
	min-height: 120px;
	line-height: 1.6;
}

select.d-form-control {
	cursor: pointer;
}

/* ─── 버튼 공통 ─────────────────────────────────────────── */
.d-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 11px 24px;
	font-size: 14px;
	font-weight: 700;
	border-radius: 0;
	transition: all var(--transition);
	cursor: pointer;
	border: 2px solid transparent;
	font-family: inherit;
}

.d-btn-primary {
	background: var(--primary);
	color: var(--white);
	border-color: var(--primary);
}

	.d-btn-primary:hover {
		background: var(--primary-mid);
		border-color: var(--primary-mid);
	}

.d-btn-accent {
	background: var(--accent);
	color: var(--white);
	border-color: var(--accent);
}

	.d-btn-accent:hover {
		background: var(--accent-hover);
		border-color: var(--accent-hover);
	}

.d-btn-outline {
	background: transparent;
	color: var(--primary);
	border-color: var(--primary);
}

	.d-btn-outline:hover {
		background: var(--primary);
		color: var(--white);
	}

.d-btn-sm {
	padding: 7px 16px;
	font-size: 13px;
}

.d-btn-lg {
	padding: 14px 32px;
	font-size: 16px;
}

/* ─── 뱃지 ──────────────────────────────────────────────── */
.d-badge {
	display: inline-block;
	padding: 3px 10px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 0;
	letter-spacing: 0.3px;
}

.d-badge-primary {
	background: var(--primary);
	color: var(--white);
}

.d-badge-accent {
	background: var(--accent);
	color: var(--white);
}

.d-badge-outline {
	border: 1px solid var(--primary);
	color: var(--primary);
	background: transparent;
}

/* ─── 카드 공통 ─────────────────────────────────────────── */
.d-card {
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: 0;
	overflow: hidden;
	transition: all var(--transition);
}

	.d-card:hover {
		box-shadow: var(--shadow-lg);
		transform: translateY(-3px);
		border-color: transparent;
	}

/* ─── 모달 ──────────────────────────────────────────────── */
.d-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	z-index: 9500;
	display: none;
	align-items: center;
	justify-content: center;
}

	.d-modal-overlay.active {
		display: flex;
	}

.d-modal {
	background: var(--white);
	border-radius: 0;
	width: 90%;
	max-width: 620px;
	max-height: 80vh;
	overflow-y: auto;
	box-shadow: var(--shadow-lg);
}

.d-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid var(--border);
}

	.d-modal-header h3 {
		font-size: 17px;
		font-weight: 700;
		color: var(--primary);
	}

.d-modal-close {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
	font-size: 18px;
	color: var(--text-sub);
	cursor: pointer;
	transition: background var(--transition);
}

	.d-modal-close:hover {
		background: var(--bg);
		color: var(--text);
	}

.d-modal-body {
	padding: 24px;
}

	.d-modal-body .notice-content {
		font-size: 14px;
		line-height: 1.8;
		color: var(--text);
		white-space: pre-line;
	}

.d-modal-footer {
	padding: 16px 24px;
	border-top: 1px solid var(--border);
	text-align: right;
}

/* ─── 페이지 레이아웃 (서브) ─────────────────────────────── */
.d-page-wrap {
	padding: 60px 0 100px;
	background: #fff;
}

.d-page-container {
	display: flex;
	gap: 60px;
}

/* 서브 콘텐츠 영역 */
.d-sub-content {
	flex: 1;
	min-width: 0;
}

.d-sub-content-header {
	margin-bottom: 40px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--border-light);
}

	.d-sub-content-header h2 {
		font-size: 32px;
		font-weight: 700;
		color: var(--primary);
		letter-spacing: -1px;
	}

/* ─── Reveal 애니메이션 ─────────────────────────────────── */
.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

	.reveal.active {
		opacity: 1;
		transform: translateY(0);
	}

.reveal-left {
	opacity: 0;
	transform: translateX(-30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

	.reveal-left.active {
		opacity: 1;
		transform: translateX(0);
	}

.reveal-right {
	opacity: 0;
	transform: translateX(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

	.reveal-right.active {
		opacity: 1;
		transform: translateX(0);
	}

/* ─── FOOTER ─────────────────────────────────────────────── */
.d-footer {
	background: var(--bg-section);
	color: var(--text-sub);
	padding: 60px 0 40px;
	border-top: 1px solid var(--border-light);
}

.d-footer-inner {
	display: flex;
	gap: 48px;
	margin-bottom: 32px;
	align-items: flex-start;
	justify-content: space-between;
}

.d-footer-logo img {
	height: 30px;
	opacity: 1;
	margin-bottom: 20px;
}

.d-footer-info {
	flex: 1;
}

	.d-footer-info p {
		font-size: 14px;
		line-height: 1.8;
		color: var(--text-sub);
	}

	.d-footer-info strong {
		color: var(--primary);
		margin-right: 4px;
	}

.d-footer-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 16px;
}

.d-footer-social a {
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.6);
	font-size: 15px;
	transition: all var(--transition);
}

	.d-footer-social a:hover {
		background: var(--accent);
		color: var(--white);
	}

.d-footer-family {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.4);
	text-align: right;
}

.d-footer-copy {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 24px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.35);
	text-align: center;
	color: #161c23;
}

/* ─── 패밀리 사이트 스크롤 ────────────────────────────────── */
.d-family-wrap {
	background: var(--bg-section);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	padding: 22px 0;
	overflow: hidden;
}

.d-family-label {
	font-size: 12px;
	font-weight: 700;
	color: var(--text-light);
	margin-bottom: 10px;
	text-align: center;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.d-family-scroll {
	overflow: hidden;
	position: relative;
}

.d-family-track {
	display: flex;
	gap: 0;
	animation: familyScroll 22s linear infinite;
	width: max-content;
}

	.d-family-track:hover {
		animation-play-state: paused;
	}

.d-family-item {
	margin-top: 20px;
	flex-shrink: 0;
	padding: 22px 60px;
	font-size: 13px;
	font-weight: 600;
	color: var(--text-sub);
	border-right: 1px solid var(--border);
	white-space: nowrap;
	transition: color var(--transition);
	cursor: pointer;
	text-decoration: none;
}

	.d-family-item:hover {
		color: var(--primary);
	}

@keyframes familyScroll {
	0% {
		transform: translateX(0);
	}

	100% {
		/* 아이템 세트가 4개이므로, 2세트 분량(50%)을 이동했을 때 리셋되면 완벽히 연결됨 */
		transform: translateX(-50%);
	}
}

/* [조사 방법 - survey_method.html] */
.method-env-card {
	border-radius: 0;
	padding: 40px 30px;
	border-top: 4px solid var(--primary-mid);
}

	.method-env-card.accent {
		border-top-color: var(--primary);
	}

.method-info-box {
	margin-top: 80px;
	background: #f8f9fa;
	padding: 40px;
	border: 1px solid var(--border-light);
}

.u-primary {
	color: var(--primary) !important;
}

.u-primary-mid {
	color: var(--primary-mid) !important;
}

/* [오시는 길 - intro_map.html] */
.map-placeholder-box {
	height: 450px;
	background: #f8f9fa;
}

.u-svg-120 {
	width: 120px !important;
	height: 120px !important;
}

/* [조사 분야 - survey_field.html] */
.field-detail-card.primary-light {
	border-top-color: var(--primary-light) !important;
}

.field-detail-card.u-dark {
	border-top-color: #333 !important;
}

.icon-box.primary-light {
	color: var(--primary-light) !important;
}

.icon-box.u-dark {
	color: #333 !important;
}

/* ─── 반응형 ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.d-gnb {
		display: none;
	}

	.d-header-cta {
		display: none;
	}

	.d-mobile-btn {
		display: flex;
		padding-right: 30px;
	}


	.d-logo {
		padding-left: 20px;
	}

	.d-notice-list {
		width: 100%;
	}

	/* 서브페이지 모바일 1컬럼 전환 */
	.d-page-container {
		flex-direction: column;
	}

	.d-lnb {
		display: none;
		/* 사이드바 숨김 */
	}

	.d-sub-content {
		width: 100% !important;
		padding-left: 0 !important;
		margin-top: 20px;
	}

	.d-footer-inner {
		flex-direction: column;
		gap: 24px;
	}

	.d-footer-right {
		align-items: flex-start;
	}

	.d-footer-family {
		text-align: left;
	}
}

@media (max-width: 768px) {
	.d-header-inner.inner {
		padding: 0 30px;
	}

	.inner {
		padding: 0 24px;
	}

	.d-sub-visual {
		padding: 40px 0 35px;
	}

		.d-sub-visual h1 {
			font-size: 26px;
		}

		.d-sub-visual p {
			font-size: 14px;
			opacity: 0.8;
		}

	/* 브레드크럼 숨김 또는 간소화 */
	.d-breadcrumb {
		display: none;
	}

	.section-title h2 {
		font-size: 24px;
	}

	.section-title p {
		font-size: 14px;
	}

	.section-title {
		margin-bottom: 30px;
	}

	.d-tab-btn {
		padding: 10px 12px;
		font-size: 13px;
		flex: 1;
		text-align: center;
	}

	/* 각종 그리드 1컬럼 전환 */
	.field-detail-grid,
	.access-grid,
	.history-grid,
	.method-steps,
	.report-page-grid,
	.package-benefits,
	.package-dl-section,
	.d-press-grid,
	.about-summary,
	.form-row {
		grid-template-columns: 1fr !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 15px;
	}

	.d-form-group {
		width: 100% !important;
	}

	.method-step {
		padding: 20px 15px;
	}

	.method-step-num {
		width: 30px;
		height: 30px;
		font-size: 14px;
	}

	.d-report-card {
		flex-direction: column;
		height: auto;
		padding: 15px;
	}

	.d-report-thumb {
		flex: 0 0 200px;
		width: 100%;
		margin-bottom: 20px;
	}

	.d-report-body {
		padding-left: 0;
	}

		.d-report-body h4 {
			font-size: 18px;
			margin-bottom: 20px;
		}

	.d-report-actions {
		position: relative;
		margin-top: 20px;
		justify-content: flex-end;
	}

	.package-header {
		padding: 40px 20px;
	}

		.package-header h2 {
			font-size: 28px;
		}

		.package-header p {
			font-size: 15px;
		}

	.package-card {
		padding: 30px 20px;
	}

	.about-summary-text h3 {
		font-size: 22px;
	}

	.about-stat-item .num {
		font-size: 28px;
	}
}

/* ─── 서브페이지 전용 스타일 통합 (HTML에서 이전됨) ───────────────── */

/* [회사소개 - intro_about.html] */
.about-summary {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-bottom: 56px;
	align-items: center;
}

.about-summary-text h3 {
	font-size: 24px;
	font-weight: 800;
	color: var(--primary);
	margin-bottom: 14px;
	letter-spacing: -0.3px;
}

.about-summary-text p {
	font-size: 15px;
	color: var(--text-sub);
	line-height: 1.85;
}

.about-stat-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.about-stat-item {
	background: var(--bg-section);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 24px 20px;
	text-align: center;
}

	.about-stat-item .num {
		font-size: 32px;
		font-weight: 900;
		color: var(--primary);
		display: block;
		line-height: 1;
	}

	.about-stat-item .label {
		font-size: 13px;
		color: var(--text-sub);
		margin-top: 6px;
		display: block;
	}

.history-timeline {
	position: relative;
	padding-left: 32px;
}

	.history-timeline::before {
		content: '';
		position: absolute;
		left: 10px;
		top: 0;
		bottom: 0;
		width: 2px;
		background: var(--border);
	}

.history-year-group {
	margin-bottom: 32px;
}

.history-year {
	position: relative;
	font-size: 18px;
	font-weight: 800;
	color: var(--primary);
	margin-bottom: 14px;
}

	.history-year::before {
		content: '';
		position: absolute;
		left: -26px;
		top: 50%;
		transform: translateY(-50%);
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background: var(--accent);
		border: 2px solid var(--white);
		box-shadow: 0 0 0 3px var(--accent);
	}

.history-items {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.history-item-row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 14px;
	color: var(--text);
}

.history-month {
	flex-shrink: 0;
	width: 36px;
	font-weight: 700;
	color: var(--primary-mid);
	font-size: 13px;
}

.about-history-title {
	font-size: 24px;
	font-weight: 700;
	color: var(--primary);
	margin: 60px 0 30px;
	padding-bottom: 15px;
	border-bottom: 1px solid var(--border-light);
}

@media (max-width: 768px) {
	.about-history-title {
		font-size: 20px;
		margin: 40px 0 20px;
	}
}

/* [오시는 길 - intro_map.html] */
.map-wrap {
	background: var(--bg-section);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin-bottom: 32px;
}

.map-placeholder {
	width: 100%;
	height: 380px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #e8edf5, #dde4ef);
	gap: 12px;
}

	.map-placeholder i {
		font-size: 48px;
		color: var(--primary-mid);
		opacity: 0.6;
	}

	.map-placeholder p {
		font-size: 15px;
		color: var(--text-sub);
	}

	.map-placeholder .map-address {
		font-size: 16px;
		font-weight: 700;
		color: var(--primary);
	}

.access-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.access-item {
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 24px 20px;
}

	.access-item h4 {
		font-size: 15px;
		font-weight: 800;
		color: var(--primary);
		margin-bottom: 10px;
		display: flex;
		align-items: center;
		gap: 8px;
	}

	.access-item ul {
		list-style: none;
	}

	.access-item li {
		font-size: 13px;
		color: var(--text-sub);
		padding: 5px 0;
		border-bottom: 1px solid var(--border-light);
	}

		.access-item li:last-child {
			border-bottom: none;
		}

/* [조사분야 - survey_field.html] */
.field-detail-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

.field-detail-card {
	background: #fff;
	border: 1px solid #edf2f7;
	border-top: 6px solid var(--primary-mid);
	padding: 40px 30px;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	display: flex;
	flex-direction: column;
	gap: 15px;
	position: relative;
	overflow: hidden;
}

	.field-detail-card:hover {
		transform: translateY(-8px);
		box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
		border-color: var(--primary-light);
	}

	.field-detail-card::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(180deg, rgba(26, 177, 245, 0.03) 0%, rgba(255, 255, 255, 0) 100%);
		opacity: 0;
		transition: opacity 0.3s ease;
	}

	.field-detail-card:hover::before {
		opacity: 1;
	}

	.field-detail-card .icon-box {
		font-size: 36px;
		color: var(--primary-mid) !important;
		margin-bottom: 5px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 64px;
		height: 64px;
		background: #f7fafc;
		border-radius: 12px;
		transition: all 0.3s ease;
	}

	.field-detail-card:hover .icon-box {
		background: var(--primary-mid);
		color: #fff !important;
		transform: scale(1.1) rotate(5deg);
	}

	.field-detail-card h3 {
		font-size: 21px;
		font-weight: 800;
		color: var(--primary);
		margin: 0;
		letter-spacing: -0.5px;
		line-height: 1.3;
	}

	.field-detail-card p {
		font-size: 15px;
		color: var(--text-sub);
		line-height: 1.7;
		margin: 0;
		word-break: keep-all;
	}

	.field-detail-card ul {
		margin-top: 5px;
		padding-top: 20px;
		border-top: 1px solid #edf2f7;
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

		.field-detail-card ul li {
			font-size: 14px;
			color: var(--text-sub);
			padding-left: 20px;
			position: relative;
			font-weight: 500;
		}

			.field-detail-card ul li::before {
				content: "\f00c";
				font-family: "Font Awesome 6 Free";
				font-weight: 900;
				position: absolute;
				left: 0;
				color: var(--primary-mid);
				font-size: 12px;
			}

.btn-contact-submit {
	background: var(--primary-mid);
	color: #fff;
	font-weight: 700;
	border-radius: 0;
	height: 55px;
	padding: 0 40px;
	border: none;
	cursor: pointer;
	transition: background 0.3s;
}

	.btn-contact-submit:hover {
		background: var(--primary-dark);
	}

/* [JS 동적 요소 전용] */
.notice-num-box {
	width: 50px;
	text-align: center;
	color: var(--text-light);
	font-weight: 500;
}

.notice-title-box {
	padding-left: 20px;
}

.modal-meta-box {
	font-size: 12px;
	color: #888;
	margin-bottom: 16px;
}

.empty-msg-box {
	text-align: center;
	padding: 40px;
	color: #888;
	font-size: 15px;
}

	.empty-msg-box.lg {
		padding: 60px;
	}

.press-source-box {
	font-size: 12px;
	font-weight: 400;
	color: #888;
	margin-left: 10px;
}

.u-cursor-pointer {
	cursor: pointer;
}


.field-accent-box {
	margin-top: 60px;
	padding: 50px 40px;
	background: #001224;
	color: #fff;
	border-radius: 0;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	gap: 30px;
}

	.field-accent-box .quote-icon {
		font-size: 50px;
		color: var(--primary-light);
		opacity: 0.5;
		flex-shrink: 0;
	}

	.field-accent-box p {
		font-size: 18px;
		line-height: 1.7;
		font-weight: 500;
		word-break: keep-all;
		margin: 0;
	}

	.field-accent-box strong {
		color: var(--primary-light);
		font-weight: 800;
	}

/* [주요 수행 실적 - survey_history.html] */
.history-intro {
	text-align: center;
	margin-bottom: 60px;
}

	.history-intro h2 {
		font-size: 36px;
		font-weight: 800;
		color: var(--primary-dark);
		margin-bottom: 15px;
	}

	.history-intro p {
		font-size: 18px;
		color: #666;
	}

.history-year-title {
	position: relative;
	font-size: 24px;
	font-weight: 800;
	color: var(--primary-mid);
	margin-bottom: 25px;
	padding-left: 20px;
}

	.history-year-title::before {
		content: '';
		position: absolute;
		left: -34px;
		top: 50%;
		transform: translateY(-50%);
		width: 10px;
		height: 10px;
		background: var(--primary-mid);
		border-radius: 50%;
		border: 4px solid #fff;
		box-shadow: 0 0 0 2px var(--primary-mid);
	}

.history-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.history-card {
	background: #fff;
	border: 1px solid #eee;
	padding: 25px;
	display: flex;
	align-items: center;
	gap: 20px;
	transition: all 0.3s;
}

	.history-card:hover {
		border-color: var(--primary-mid);
		box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
		transform: translateX(10px);
	}

.history-card-icon {
	flex: 0 0 50px;
	height: 50px;
	background: #f8f9fa;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	color: var(--primary-mid);
}

.history-card-info h4 {
	font-size: 17px;
	font-weight: 700;
	color: #333;
	margin-bottom: 5px;
	word-break: keep-all;
}

.history-card-info p {
	font-size: 14px;
	color: #888;
}

/* [조사 방법 - survey_method.html] */
.method-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 40px;
}

.method-step {
	text-align: center;
	padding: 28px 16px;
	background: var(--white);
	border: 1px solid var(--border-light);
	position: relative;
}

.method-step-num {
	width: 40px;
	height: 40px;
	border-radius: 0;
	background: var(--primary-mid);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
}

.method-step h4 {
	font-size: 14px;
	font-weight: 700;
	color: var(--primary);
	margin-bottom: 6px;
}

.method-step p {
	font-size: 12px;
	color: var(--text-sub);
	line-height: 1.6;
	word-break: keep-all;
}

/* [조사 결과 - survey_result.html] */
.report-page-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	padding-bottom: 15px;
	border-bottom: 2px solid #333;
}

.report-count {
	font-size: 15px;
	color: #333;
}

	.report-count strong {
		color: var(--primary-mid);
	}

.report-page-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.d-report-card {
	display: flex;
	background: #fff;
	border: 1px solid #ddd;
	padding: 20px;
	height: 280px;
	box-sizing: border-box;
	position: relative;
	transition: border-color 0.3s;
}

	.d-report-card:hover {
		border-color: var(--primary-mid);
	}

.d-report-thumb {
	flex: 0 0 180px;
	height: 100%;
	border: 1px solid #eee;
	overflow: hidden;
	box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
}

	.d-report-thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

.d-report-body {
	flex: 1;
	padding-left: 25px;
	display: flex;
	flex-direction: column;
	position: relative;
}

	.d-report-body h4 {
		font-size: 20px;
		font-weight: 700;
		color: var(--primary-dark);
		line-height: 1.4;
		margin-bottom: 30px;
		word-break: keep-all;
	}

.d-report-info-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

	.d-report-info-list li {
		font-size: 15px;
		color: #555;
		margin-bottom: 8px;
		display: flex;
		align-items: flex-start;
	}

		.d-report-info-list li::before {
			content: '▪';
			margin-right: 8px;
			color: #aaa;
		}

	.d-report-info-list strong {
		color: #333;
		margin-right: 10px;
		min-width: 50px;
		display: inline-block;
	}

.d-report-actions {
	position: absolute;
	bottom: 0;
	right: 0;
	display: flex;
	gap: 5px;
}

.d-report-action-btn {
	width: 44px;
	height: 44px;
	border: 1px solid #ccc;
	background: #fff;
	color: #555;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	cursor: pointer;
	transition: all 0.2s;
}

	.d-report-action-btn:hover {
		background: var(--primary-mid);
		color: #fff;
		border-color: var(--primary-mid);
	}

	.d-report-action-btn.primary {
		background: var(--primary-mid);
		color: #fff;
		border-color: var(--primary-mid);
	}

/* [홍보 패키지 - survey_package.html] */
.package-header {
	text-align: center;
	padding: 60px 40px;
	background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
	color: #fff;
	margin-bottom: 50px;
}

	.package-header h2 {
		font-size: 38px;
		font-weight: 800;
		margin-bottom: 20px;
	}

	.package-header p {
		font-size: 19px;
		opacity: 0.9;
		line-height: 1.6;
		max-width: 700px;
		margin: 0 auto;
	}

.package-benefits {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-bottom: 60px;
}

.benefit-item {
	text-align: center;
	padding: 30px;
	background: #f8f9fa;
	border: 1px solid #eee;
}

	.benefit-item i {
		font-size: 32px;
		color: var(--primary-mid);
		margin-bottom: 20px;
	}

	.benefit-item h4 {
		font-size: 18px;
		font-weight: 700;
		margin-bottom: 15px;
	}

	.benefit-item p {
		font-size: 14px;
		color: #777;
		line-height: 1.5;
	}

.package-dl-section {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}

.package-card {
	background: #fff;
	border: 1px solid #ddd;
	padding: 40px;
	transition: all 0.3s;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

	.package-card:hover {
		border-color: var(--primary-mid);
		box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
	}

.package-badge {
	padding: 6px 15px;
	background: var(--primary-mid);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 20px;
}

.package-card h3 {
	font-size: 24px;
	font-weight: 800;
	margin-bottom: 15px;
	color: #222;
}

.package-card p {
	font-size: 15px;
	color: #666;
	line-height: 1.6;
	margin-bottom: 25px;
	flex-grow: 1;
}

.package-features {
	list-style: none;
	padding: 0;
	margin: 0 0 30px 0;
	width: 100%;
}

	.package-features li {
		font-size: 14px;
		color: #444;
		margin-bottom: 10px;
		display: flex;
		align-items: center;
		gap: 10px;
	}

		.package-features li i {
			color: var(--primary-mid);
			font-size: 14px;
		}

.package-btn {
	width: 100%;
	padding: 15px;
	background: #333;
	color: #fff;
	text-align: center;
	font-weight: 700;
	transition: background 0.3s;
	text-decoration: none;
}

	.package-btn:hover {
		background: var(--primary-mid);
	}

/* [언론보도 - press.html] */
.d-press-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.d-press-card {
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 24px 22px;
	transition: all 0.25s ease;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

	.d-press-card:hover {
		box-shadow: var(--shadow-lg);
		transform: translateY(-3px);
		border-color: var(--primary-light);
	}

.d-press-source {
	display: inline-block;
	padding: 3px 10px;
	background: var(--primary);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	border-radius: 3px;
	letter-spacing: 0.3px;
	align-self: flex-start;
}

.d-press-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--text);
	line-height: 1.55;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.d-press-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 12px;
	color: var(--text-light);
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid var(--border-light);
}

.d-press-link {
	color: var(--primary-mid);
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 4px;
}

.press-empty {
	text-align: center;
	padding: 80px 20px;
	color: var(--text-light);
}

	.press-empty i {
		font-size: 48px;
		margin-bottom: 16px;
		display: block;
		opacity: 0.3;
	}

/* [조사문의 - contact.html] */
.contact-layout {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.contact-form-wrap {
	background: #fff;
	border: 1px solid var(--border-light);
	padding: 40px;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.contact-submit-area {
	margin-top: 30px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.contact-privacy-check {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--text-sub);
	cursor: pointer;
}

.success-msg {
	display: none;
	background: #f8fcf9;
	border: 1px solid #e1f0e7;
	padding: 15px 20px;
	font-size: 14px;
	color: #27ae60;
	margin-top: 20px;
}

.contact-side-card {
	border: 1px solid var(--border-light);
	padding: 30px;
	margin-top: 40px;
}

	.contact-side-card h3 {
		font-size: 20px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: 20px;
		padding-bottom: 15px;
		border-bottom: 2px solid var(--primary-mid);
	}

.contact-info-item {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 12px 0;
	border-bottom: 1px solid #eee;
}

	.contact-info-item:last-child {
		border-bottom: none;
	}

.contact-info-icon {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--border-light);
	color: var(--primary-mid);
	font-size: 14px;
}

.contact-info-item .label {
	font-size: 12px;
	color: #999;
	margin-bottom: 2px;
}

.contact-info-item .value {
	font-size: 18px;
	font-weight: 600;
	color: var(--primary);
}

/* ─── 반응형 통합 ─────────────────────────────────────────── */
@media (max-width: 1024px) {
	.field-detail-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {

	.package-benefits,
	.package-dl-section {
		grid-template-columns: 1fr;
	}

	.method-steps {
		grid-template-columns: repeat(2, 1fr);
	}

	.history-grid {
		grid-template-columns: 1fr;
	}

	.report-page-grid {
		grid-template-columns: 1fr;
	}

	.d-press-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.about-summary {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.about-stat-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.access-grid {
		grid-template-columns: 1fr;
	}

	.field-detail-grid {
		grid-template-columns: 1fr;
	}

	.field-accent-box {
		flex-direction: column;
		text-align: center;
		padding: 40px 24px;
	}

	.form-row {
		grid-template-columns: 1fr;
	}

	.contact-form-wrap {
		padding: 30px 20px;
	}
}

@media (max-width: 600px) {
	.method-steps {
		grid-template-columns: 1fr;
	}

	.d-press-grid {
		grid-template-columns: 1fr;
	}

	.d-report-card {
		flex-direction: column;
		height: auto;
	}

	.d-report-thumb {
		flex: 0 0 200px;
		margin-bottom: 15px;
	}

	.d-report-body {
		padding-left: 0;
	}

	.d-report-actions {
		position: relative;
		margin-top: 20px;
		justify-content: flex-end;
	}

	.d-page-wrap {
		padding-top: 0;
	}
}

/* [게시글 상세 - Board Detail] */
.d-board-detail {
	margin-top: 20px;
}

.d-board-detail-title-top {
	font-size: 32px;
	font-weight: 700;
	color: var(--primary);
	margin-bottom: 40px;
	letter-spacing: -1px;
}

.d-board-detail-wrap {
	border-top: 2px solid var(--primary);
}

.d-board-detail-header {
	padding: 30px 20px;
	border-bottom: 1px solid var(--border);
	background: #fff;
}

.d-board-detail-title {
	font-size: 18px;
	font-weight: 700;
	color: var(--primary);
	line-height: 1.5;
	margin-bottom: 15px;
	word-break: keep-all;
}

.d-board-detail-meta {
	display: flex;
	gap: 15px;
	font-size: 14px;
	color: var(--text-sub);
	align-items: center;
}

	.d-board-detail-meta .divider {
		width: 1px;
		height: 12px;
		background: var(--border);
	}

.d-board-detail-body {
	padding: 60px 20px;
	min-height: 300px;
	font-size: 16px;
	line-height: 1.8;
	color: var(--text);
	border-bottom: 1px solid var(--border);
}

.d-board-detail-content-link {
	margin-top: 40px;
	padding: 20px;
	background: #fcfcfc;
	border: 1px solid #f1f1f1;
	font-size: 15px;
}

	.d-board-detail-content-link a {
		color: var(--primary-mid);
		text-decoration: underline;
	}

.d-board-detail-nav {
	border-bottom: 1px solid var(--border);
}

.d-board-nav-item {
	display: flex;
	padding: 15px 20px;
	border-top: 1px solid var(--border-light);
	font-size: 14px;
	align-items: center;
}

	.d-board-nav-item:first-child {
		border-top: none;
	}

.d-board-nav-label {
	width: 100px;
	font-weight: 700;
	color: var(--primary);
}

.d-board-nav-link {
	flex: 1;
	color: var(--text-sub);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

	.d-board-nav-link:hover {
		color: var(--primary-mid);
	}

.d-board-detail-footer {
	margin-top: 40px;
	display: flex;
	justify-content: flex-end;
}

.d-btn-list {
	background: #444;
	color: #fff;
	padding: 12px 30px;
	font-weight: 700;
	font-size: 15px;
	transition: background 0.3s;
}

	.d-btn-list:hover {
		background: var(--primary);
	}

@media (max-width: 768px) {
	.d-board-detail-title-top {
		font-size: 26px;
	}

	.d-board-detail-header {
		padding: 20px 15px;
	}

	.d-board-detail-title {
		font-size: 16px;
	}

	.d-board-nav-label {
		width: 70px;
	}
}
