	:root {
		--color-primary: #172554;	
		--color-secondary: #64748b;	
		--color-border: #cbd5e1;	 
		--color-bg-light: #f8fafc;	 
		--color-bg-white: #ffffff;	 
		--accent-blue: #2563eb;
		--accent-hover: #1e3a8a;
		--accent-red: #ef4444;
		--max-width: 1280px;
		--header-height: 64px;
		--radius-sm: 4px;
		--radius-md: 8px;
		--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
		--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
		--space-section: 80px;
	}
	.text-primary { color: var(--color-primary); }
	.text-secondary { color: var(--color-secondary); }
	.text-blue { color: var(--accent-blue); }
	.fw-bold { font-weight: 700; }
	.d-flex { display: flex; }
	.align-center { align-items: center; }
	.justify-between { justify-content: space-between; }
	.btn {
		display: inline-flex; align-items: center; justify-content: center;
		padding: 10px 20px; font-size: 14px; font-weight: 700;
		border-radius: var(--radius-sm); border: 1px solid var(--color-border); 
		transition: all 0.3s ease; gap: 8px; cursor: pointer;
	}
	.btn.primary {
		background-color: var(--color-primary); color: #fff; border-color: var(--color-primary);
	}
	.btn.primary:hover { background-color: var(--accent-hover); }
	.btn.outline { 
		border-color: var(--color-border); color: var(--color-primary); background: #fff; 
	}
	.btn.outline:hover { 
		background-color: var(--color-bg-light); border-color: var(--color-primary); 
	}
	.hero {
		background: var(--color-primary);
		padding: 56px 0 64px;
		color: #ffffff;
		border-bottom: none;
		display: flex; flex-direction: column; justify-content: center;
	}
	.hero-content { max-width: 820px; }
	.hero-sub {
		font-size: 14px; margin-bottom: 16px; letter-spacing: 1px; color: rgba(255,255,255,0.8); font-weight: 700;
	}
	.hero-title {
		font-size: 46px; line-height: 1.2; font-weight: 800;
		margin: 0 0 24px 0; color: #fff;
	}
	.hero-desc {
		font-size: 18px; color: rgba(255,255,255,0.9); line-height: 1.6; margin: 0; word-break: keep-all;
	}
	.policy-container { padding: var(--space-section) 0; }
	.panel {
		background: var(--color-bg-white);
		border: 1px solid var(--color-border);
		border-top: 3px solid var(--color-primary);
		box-shadow: var(--shadow-sm);
		padding: 48px;
		border-radius: var(--radius-md);
		width: 100%;
	}
	.policy-header {
		margin-bottom: 40px;
		border-bottom: 2px solid var(--color-bg-light);
		padding-bottom: 20px;
	}
	.policy-header h2 { font-size: 28px; font-weight: 800; color: var(--color-primary); margin: 0 0 10px 0; }
	.policy-header p { color: var(--color-secondary); margin: 0; }
	.policy-section { margin-bottom: 50px; }
	.policy-section:last-child { margin-bottom: 0; }
	.policy-section h3 {
		font-size: 20px; font-weight: 800; color: var(--color-primary);
		margin: 0 0 20px 0; padding-bottom: 12px;
		border-bottom: 1px solid var(--color-border);
		display: flex; align-items: center; gap: 10px;
	}
	.policy-section h3 i { color: var(--accent-blue); font-size: 18px; }
	.policy-text { color: var(--color-secondary); margin-bottom: 12px; word-break: keep-all; font-size: 15px; line-height: 1.7; }
	.policy-text strong { color: var(--color-primary); }
	.policy-list { margin-left: 5px; margin-bottom: 20px; }
	.policy-list li {
		position: relative; padding-left: 16px; margin-bottom: 10px;
		color: var(--color-secondary); font-size: 15px; line-height: 1.6;
	}
	.policy-list li strong { color: var(--color-primary); }
	.policy-list li::before {
		content: "•"; position: absolute; left: 0; color: var(--accent-blue); font-weight: bold; top:0;
	}
	.info-box-light {
		background-color: var(--color-bg-light);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-sm);
		padding: 24px;
		margin-top: 16px;
	}
	.info-box-light strong { color: var(--color-primary); display: block; margin-bottom: 8px; font-size: 15px; font-weight: 700; }
	@media only screen and (min-width: 641px) {
		.info-box-light .period_flex {display:grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap:10px; margin-top:10px;}
	}
	.history-wrap { margin-top: 60px; }
	.history-container { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; background: #fff; }
	.history-header-bar { 
		background: var(--color-bg-light); padding: 18px 24px; border-bottom: 1px solid var(--color-border); 
		font-weight: 700; font-size: 16px; color: var(--color-primary); display: flex; align-items: center; gap: 8px; 
	}
	.history-body { padding: 24px; }
	.history-info { font-size: 14px; color: var(--color-secondary); margin: 0 0 20px 0; }
	details.history-row { border-bottom: 1px solid var(--color-bg-light); transition: all 0.2s; }
	details.history-row:last-child { border-bottom: none; }
	details.history-row[open] { background-color: #fff; }
	@media only screen and (min-width: 641px) {
		summary.history-summary { 
			display: flex; justify-content: space-between; align-items: center; padding: 16px 10px; 
			cursor: pointer; list-style: none; user-select: none; transition: color 0.2s; 
		}
	}
	summary.history-summary::-webkit-details-marker { display: none; }
	summary.history-summary:hover .version-date, summary.history-summary:hover .btn-view { color: var(--accent-blue); }
	.version-date { font-weight: 700; font-size: 15px; color: var(--color-primary); }
	.btn-view { font-size: 13px; color: var(--color-secondary); display: flex; align-items: center; gap: 6px; font-weight: 600; }
	.arrow-icon { transition: transform 0.3s ease; font-size: 10px; }
	details[open] .arrow-icon { transform: rotate(180deg); color: var(--accent-blue); }
	.archive-content { 
		padding: 30px; background: var(--color-bg-light); border-top: 1px dashed var(--color-border); 
		margin-bottom: 20px; font-size: 14px; color: var(--color-secondary); animation: fadeIn 0.3s ease-in-out; 
		border-radius: var(--radius-sm);
	}
	@keyframes fadeIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
	.archive-content h4 { font-size: 15px; font-weight: 700; color: var(--color-primary); margin: 24px 0 12px 0; border-left: 3px solid var(--color-border); padding-left: 10px; }
	.archive-content h4:first-child { margin-top: 0; }
	.archive-content p { margin-bottom: 10px; line-height: 1.6; }
	.archive-content ul, .archive-content ol { margin-left: 20px; margin-bottom: 15px; }
	.archive-content li { margin-bottom: 5px; list-style: disc; }
	.archive-content .decimal li { list-style: decimal; }
	.archive-content mark { background: #dbeafe; color: var(--color-primary); padding: 0 4px; border-radius: 2px; font-weight: 600; }
	@media (max-width: 640px){
		.hero { height: auto; padding: 36px 5vw; text-align: center; }
		.hero-content { max-width: 100%; margin: 0 auto; }
		.hero-sub, .hero-title, .hero-desc { text-align: center; }
		.hero-desc br { display: none; }
		.hero-title { font-size: 28px; }
		.access-intro h2 { font-size: 24px; }
		.panel { padding: 30px 20px; }
		.policy-container { padding: 40px 5vw; }
		.info-box-light { display: block !important; }
		.info-box-light > div { padding-left: 0 !important; border-left: none !important; }
		.info-box-light .period_flex > div { margin-top: 10px; }
		summary.history-summary { margin-top: 15px; padding-bottom: 15px; }
		summary.history-summary .btn-view { margin-top: 10px; }
		.archive-content { margin-top: 0; word-break: break-all; }
	}
	

	/* ── 개인정보처리방침 인라인 스타일 클래스화 (17항목 정리) ── */
	.hero-sub--white { color: rgba(255, 255, 255, 0.8); }
	.collect-grid { gap: 20px; flex-wrap: wrap; }
	.info-box-light--flex { flex: 1; min-width: 300px; }
	.info-box-light--alert { border-left: 4px solid var(--accent-red); }
	.info-box-light--final { border-left: 4px solid var(--accent-blue); }
	.alert-body-text { margin: 0; color: var(--color-secondary); line-height: 1.7; }
	.policy-table-wrap { overflow-x: auto; margin-top: 14px; }
	.policy-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
	.policy-table-head { background: #f8fafc; }
	.policy-th { padding: 10px 12px; border: 1px solid var(--color-border); text-align: left; }
	.policy-th--label { width: 30%; }
	.policy-td { padding: 10px 12px; border: 1px solid var(--color-border); }
	.policy-td--label { font-weight: 700; }
	.policy-text--mt-14 { margin-top: 14px; }
	.policy-text--mt-10 { margin-top: 10px; }
	.policy-text--report-info { margin-top: 15px; font-size: 13px; }
	.period-card { background: #fff; padding: 10px; border-radius: 4px; border: 1px solid var(--color-border); font-size: 14px; color: var(--color-secondary); }
	.period-card-strong { display: inline; color: var(--color-primary); }
	.dispose-box { margin-top: 15px; font-size: 14px; }
	.dispose-label { color: var(--color-primary); }
	.info-box-light--contact { display: flex; gap: 40px; flex-wrap: wrap; align-items: center; }
	.contact-line { color: var(--color-secondary); }
	.contact-col--divider { border-left: 1px solid var(--color-border); padding-left: 40px; }
	.contact-email { color: var(--accent-blue); }
	.policy-list--flush { margin-bottom: 0; }
	/* 모바일에서 contact box divider 자연 정렬 */
	@media (max-width: 640px) {
		.info-box-light--contact { gap: 20px; }
		.contact-col--divider { border-left: 0; padding-left: 0; border-top: 1px solid var(--color-border); padding-top: 16px; }
	}
