/* K-FIMS V10 common responsive refinements. */

/*
 * 공공 플랫폼용 기본 서체. 외부 CDN에 의존하지 않도록 테마 안에 포함해
 * PC·모바일과 한/영 페이지에서 동일한 행높이와 글자폭을 유지한다.
 */
@font-face {
	font-family: "Pretendard Variable";
	src: url("../fonts/PretendardVariable.woff2") format("woff2-variations");
	font-style: normal;
	font-weight: 45 920;
	font-display: swap;
}

html,
body,
button,
input,
select,
textarea {
	font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid #67d8ff;
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   와이드 컨테이너 — 헤더·푸터를 홈페이지 1440px 셸(.kfh-shell)과 동일 폭으로 정렬
   -------------------------------------------------------------------------- */

.kfh-wide {
	max-width: 1440px;
	padding-inline: 40px;
}

/* 공개 홈페이지 브랜드 — 사용자가 제공한 K-FIMS 전체 락업 원본 */
.kf-site-header__inner {
	height: 92px;
}

.kf-site-logo {
	display: flex;
	flex: 0 1 auto;
	width: clamp(160px, 15vw, 188px);
	min-width: 0;
	max-width: calc(100% - 310px);
	line-height: 0;
	text-decoration: none;
}

.kf-site-logo__lockup {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 1120 / 496;
	object-fit: contain;
	object-position: left center;
}

.kf-footer-brand {
	display: block;
	width: min(100%, 280px);
	min-width: 0;
	line-height: 0;
}

.kf-footer-logo-lockup {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 1120 / 496;
	object-fit: contain;
	object-position: left center;
}

body > header .kf-site-header__inner nav[aria-label="주요 메뉴"] > a,
body > header .kf-site-header__inner nav[aria-label="주요 메뉴"] > span,
body > header .kf-site-header__inner .kf-gnb-group__trigger {
	height: 92px;
}

/* 사업소개 2단 메뉴 — 참고 사이트의 사업개요/폐교 기숙사 구조를 K-FIMS 톤으로 재구성 */
.kf-gnb-group {
	position: relative;
	display: flex;
	height: 100%;
	align-items: center;
}

.kf-gnb-group__trigger {
	display: flex;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
}

.kf-gnb-group__chevron {
	width: 15px;
	height: 15px;
	flex: none;
	transition: transform .2s ease;
}

.kf-gnb-submenu {
	position: absolute;
	top: calc(100% - 2px);
	left: 50%;
	z-index: 120;
	width: 326px;
	padding: 17px;
	border: 1px solid #d9e5f4;
	border-radius: 16px;
	background: rgba(255, 255, 255, .985);
	box-shadow: 0 24px 54px -26px rgba(12, 42, 91, .52), 0 8px 18px -14px rgba(12, 42, 91, .28);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px);
	pointer-events: none;
	transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}

.kf-gnb-submenu::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 24px;
	width: 52px;
	height: 3px;
	border-radius: 0 0 4px 4px;
	background: linear-gradient(90deg, #0b4fd6, #53b8ff);
}

.kf-gnb-group:hover .kf-gnb-submenu,
.kf-gnb-group:focus-within .kf-gnb-submenu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	pointer-events: auto;
}

.kf-gnb-group:hover .kf-gnb-group__chevron,
.kf-gnb-group:focus-within .kf-gnb-group__chevron {
	transform: rotate(180deg);
}

.kf-gnb-submenu__eyebrow {
	margin: 0 0 9px;
	padding: 0 5px;
	font-size: 10.5px;
	font-weight: 850;
	letter-spacing: .12em;
	color: #7b8ba7;
}

.kf-gnb-submenu__link {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr) 18px;
	align-items: center;
	gap: 11px;
	min-height: 68px;
	padding: 10px 11px;
	border-radius: 12px;
	color: #253858;
	text-decoration: none;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}

.kf-gnb-submenu__link + .kf-gnb-submenu__link {
	margin-top: 4px;
}

.kf-gnb-submenu__link:hover,
.kf-gnb-submenu__link:focus-visible,
.kf-gnb-submenu__link.is-on {
	background: #edf5ff;
	color: #0b4fd6;
	transform: translateX(2px);
}

.kf-gnb-submenu__number {
	display: flex;
	width: 34px;
	height: 34px;
	align-items: center;
	justify-content: center;
	border: 1px solid #d4e3f7;
	border-radius: 10px;
	background: #f7faff;
	font-size: 10.5px;
	font-weight: 850;
	color: #1a6ef2;
}

.kf-gnb-submenu__copy {
	display: block;
	min-width: 0;
}

.kf-gnb-submenu__copy strong,
.kf-gnb-submenu__copy small {
	display: block;
}

.kf-gnb-submenu__copy strong {
	font-size: 14px;
	font-weight: 800;
	line-height: 1.35;
	word-break: keep-all;
}

.kf-gnb-submenu__copy small {
	margin-top: 3px;
	font-size: 10.5px;
	font-weight: 600;
	line-height: 1.45;
	color: #8391aa;
	word-break: keep-all;
}

.kf-gnb-submenu__link > svg {
	width: 17px;
	height: 17px;
}

@media (max-width: 1024px) {
	.kfh-wide {
		padding-inline: 24px;
	}
}

@media (max-width: 759px) {
	/* :where()로 특이도를 낮춰 모바일 헤더의 기존 14px 패딩 규칙이 우선하도록 함 */
	:where(.kfh-wide) {
		padding-inline: 20px;
	}
}

@media (max-width: 759px) {
	body {
		overflow-x: clip;
	}

	body > header > div.kfh-wide {
		height: 72px;
		gap: 10px;
		padding-inline: 14px;
	}

	.kf-site-logo {
		width: clamp(126px, 38vw, 150px);
		min-width: 0;
		max-width: calc(100% - 112px);
	}

	.kf-site-logo__lockup {
		width: 100%;
		height: auto;
	}

	body > header > div.kfh-wide > a:first-child {
		min-width: 0;
		gap: 7px;
	}

	body > header > div.kfh-wide > a:first-child > svg {
		width: 34px;
		height: 34px;
	}

	body > header > div.kfh-wide > a:first-child > span {
		min-width: 0;
	}

	body > header > div.kfh-wide > a:first-child > span > span:first-child {
		max-width: 42vw;
		overflow: hidden;
		font-size: 13px;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	body > header > div.kfh-wide > a:first-child > span > span:last-child,
	body > header > div.kfh-wide > div:last-child > span,
	body > header > div.kfh-wide > div:last-child > a:nth-of-type(2),
	body > header > div.kfh-wide > div:last-child > button svg:last-child {
		display: none;
	}

	body > header > div.kfh-wide > div:last-child {
		margin-left: auto;
		gap: 7px;
	}

	body > header > div.kfh-wide > div:last-child > a:first-of-type {
		max-width: 72px;
		overflow: hidden;
		font-size: 12px;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	body > header > div.kfh-wide > div:last-child > button {
		gap: 0;
		padding: 7px;
		font-size: 0;
	}
}

@media (max-width: 759px) {
	.kf-footer-grid > :first-child {
		grid-column: 1 / -1;
		min-width: 0;
	}

	.kf-footer-brand {
		width: min(100%, 260px);
	}
}

@media (max-width: 479px) {
	.kf-footer-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.kf-footer-grid > :first-child {
		grid-column: auto;
	}

	.kf-footer-grid > * {
		min-width: 0;
	}

	.kf-footer-grid p,
	.kf-footer-grid a {
		overflow-wrap: anywhere;
	}
}

/* 파트너십 허브도 헤더와 같은 원본 전체 락업으로 통일 */
.hub-center {
	min-width: 0;
	scroll-margin-top: 150px;
}

.hub-center .hc-ring.hc-ring--brand {
	box-sizing: border-box;
	width: clamp(240px, 22vw, 280px);
	height: auto;
	min-height: 126px;
	padding: 12px 14px;
	border: 2px solid #1d4ed8;
	border-radius: 20px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 0 0 10px rgba(29, 78, 216, .06), 0 18px 40px -22px rgba(22, 41, 92, .42);
	overflow: hidden;
}

.hub-center .hc-ring--brand .kf-partnership-logo-lockup {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 1120 / 496;
	object-fit: contain;
}

@media (max-width: 1080px) {
	.hub-center {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.hub-center .hc-ring.hc-ring--brand {
		width: min(100%, 280px);
	}
}

@media (max-width: 380px) {
	.hub-center .hc-ring.hc-ring--brand {
		width: min(100%, 256px);
		min-height: 116px;
		padding: 10px;
	}
}

/* --------------------------------------------------------------------------
   모바일 GNB 토글 + 드롭다운 패널 (header.php)
   -------------------------------------------------------------------------- */

.kf-gnb-toggle,
.kf-mobnav {
	display: none;
}

@media (max-width: 1023px) {
	.kf-gnb-toggle {
		display: inline-flex;
		order: 3;
		flex: none;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		margin: -7px -7px -7px 0;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.kf-gnb-toggle__bar {
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: #33415e;
		transition: transform .2s ease, opacity .2s ease;
	}

	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(2) {
		opacity: 0;
	}

	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.kf-mobnav {
		display: block;
		border-top: 1px solid #e6edf6;
		background: #ffffff;
		box-shadow: 0 26px 30px -26px rgba(22, 41, 92, .35);
	}

	.kf-mobnav[hidden] {
		display: none;
	}

	.kf-mobnav__nav {
		display: flex;
		flex-direction: column;
		max-height: calc(100dvh - 61px);
		padding: 6px 18px 16px;
		overflow-y: auto;
	}

	.kf-mobnav__link {
		display: flex;
		align-items: center;
		min-height: 48px;
		padding: 12px 4px;
		border-bottom: 1px solid #eef2f8;
		font-size: 15px;
		font-weight: 600;
		color: #33415e;
		text-decoration: none;
	}

	.kf-mobnav__link.is-on {
		color: #1a6ef2;
		font-weight: 800;
	}

	.kf-mobnav__link--login {
		justify-content: center;
		min-height: 50px;
		margin-top: 12px;
		padding: 12px;
		border-bottom: 0;
		border-radius: 10px;
		background: #1a6ef2;
		color: #ffffff;
		font-weight: 700;
	}

	.kf-mobnav__group {
		padding-bottom: 9px;
		border-bottom: 1px solid #eef2f8;
	}

	.kf-mobnav__group-title {
		justify-content: space-between;
		border-bottom: 0;
	}

	.kf-mobnav__group-title > svg {
		width: 17px;
		height: 17px;
		flex: none;
		color: #6f82a2;
	}

	.kf-mobnav__submenu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 7px;
		padding: 8px;
		border-left: 3px solid #2f78ed;
		border-radius: 0 11px 11px 0;
		background: #f2f7ff;
	}

	.kf-mobnav__sublink {
		display: flex;
		min-width: 0;
		min-height: 58px;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 3px;
		padding: 9px 10px;
		border: 1px solid #dce8f8;
		border-radius: 9px;
		background: #ffffff;
		color: #33415e;
		text-decoration: none;
	}

	.kf-mobnav__sublink > span {
		font-size: 9.5px;
		font-weight: 850;
		letter-spacing: .08em;
		color: #3980e9;
	}

	.kf-mobnav__sublink > strong {
		font-size: 12px;
		font-weight: 800;
		line-height: 1.35;
		word-break: keep-all;
	}

	.kf-mobnav__sublink.is-on {
		border-color: #7fb0f6;
		background: #e6f1ff;
		color: #0b4fd6;
	}
}

@media (min-width: 760px) and (max-width: 1023px) {
	.kf-mobnav__nav {
		max-height: calc(100dvh - 92px);
		padding: 10px 24px 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* --------------------------------------------------------------------------
   헤더 — 통합관리시스템 접속 버튼 (관리자·지자체 담당자 진입점)
   -------------------------------------------------------------------------- */

.kf-adminbtn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 38px;
	padding-inline: 15px;
	border-radius: 9px;
	background: linear-gradient(135deg, #2a7bff 0%, #0b4fd6 100%);
	box-shadow: 0 8px 18px -8px rgba(11, 79, 214, .75), inset 0 1px 0 rgba(255, 255, 255, .22);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: -.015em;
	color: #ffffff;
	white-space: nowrap;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.kf-adminbtn:hover,
.kf-adminbtn:focus-visible {
	transform: translateY(-1px);
	background: linear-gradient(135deg, #1a6ef2 0%, #0a45bd 100%);
	box-shadow: 0 12px 24px -10px rgba(11, 79, 214, .85), inset 0 1px 0 rgba(255, 255, 255, .28);
	color: #ffffff;
}

.kf-adminbtn__ico {
	width: 16px;
	height: 16px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.kf-adminbtn__sub {
	padding-left: 8px;
	border-left: 1px solid rgba(255, 255, 255, .35);
	font-weight: 700;
	color: rgba(255, 255, 255, .9);
}

/* 폭이 좁아지면 라벨을 줄여 GNB와 겹치지 않게 한다 */
@media (max-width: 1339px) {
	.kf-adminbtn { padding-inline: 13px; gap: 6px; font-size: 12.5px; }
	.kf-adminbtn__txt { display: none; }
	.kf-adminbtn__sub {
		padding-left: 0;
		border-left: 0;
		font-weight: 800;
		color: #ffffff;
	}
	.kf-adminbtn__sub::before { content: "관리자 "; }
}

@media (max-width: 759px) {
	/* 모바일에서는 드롭다운 안의 전용 버튼을 사용 */
	.kf-adminbtn { display: none; }
}

/* 모바일 드롭다운 상단 버튼 */
.kf-mobnav__admin {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 46px;
	margin: 4px 0 10px;
	border-radius: 10px;
	background: linear-gradient(135deg, #2a7bff 0%, #0b4fd6 100%);
	box-shadow: 0 10px 20px -10px rgba(11, 79, 214, .8);
	font-size: 14px;
	font-weight: 800;
	color: #ffffff;
	text-decoration: none;
}

.kf-mobnav__admin svg {
	width: 17px;
	height: 17px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* 헤더 밀도 보정 — 접속 버튼 추가로 좁아진 폭에서 GNB가 줄바꿈되지 않도록 */
body > header nav[aria-label="주요 메뉴"] > a,
body > header nav[aria-label="주요 메뉴"] > span,
body > header nav[aria-label="주요 메뉴"] .kf-gnb-group__trigger {
	white-space: nowrap;
}

@media (max-width: 1439px) {
	body > header > div.kfh-wide { gap: 22px; }
	body > header nav[aria-label="주요 메뉴"] { gap: 22px; }
	body > header nav[aria-label="주요 메뉴"] > a,
	body > header nav[aria-label="주요 메뉴"] > span,
	body > header nav[aria-label="주요 메뉴"] .kf-gnb-group__trigger { font-size: 14.5px; }
}

@media (max-width: 1199px) {
	body > header > div.kfh-wide { gap: 16px; }
	body > header nav[aria-label="주요 메뉴"] { gap: 16px; }
	body > header nav[aria-label="주요 메뉴"] > a,
	body > header nav[aria-label="주요 메뉴"] > span,
	body > header nav[aria-label="주요 메뉴"] .kf-gnb-group__trigger { font-size: 13.5px; }
	body > header > div.kfh-wide > div:last-child { gap: 10px; }
	/* 언어 선택(플레이스홀더)은 좁은 화면에서 접어 접속 버튼 자리를 확보 */
	body > header > div.kfh-wide > div:last-child > button { display: none; }
}

@media (max-width: 1023px) {
	body > header > div.kfh-wide > a:first-child > span > span:last-child { display: none; }
	body > header nav[aria-label="주요 메뉴"] { gap: 13px; }
	body > header nav[aria-label="주요 메뉴"] > a,
	body > header nav[aria-label="주요 메뉴"] > span,
	body > header nav[aria-label="주요 메뉴"] .kf-gnb-group__trigger { font-size: 13px; }
}

/* --------------------------------------------------------------------------
   태블릿·소형 노트북(760~1023px) — 데스크톱 GNB 대신 햄버거 메뉴 사용
   접속 버튼과 로그인 링크는 그대로 노출해 관리자 진입 경로를 유지한다.
   -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
	body > header nav[aria-label="주요 메뉴"] { display: none; }

	/* 모바일·태블릿 헤더 순서: 로고 → 계정 도구 → 메뉴.
	   DOM 순서와 관계없이 햄버거가 항상 화면 오른쪽 끝에 오도록 고정한다. */
	body > header > .kf-site-header__inner {
		flex-wrap: nowrap;
	}

	body > header .kf-site-header__inner > .kf-site-logo {
		order: 1;
	}

	body > header .kf-site-header__inner > .kf-header-tools {
		order: 2;
		margin-left: auto;
	}

	.kf-gnb-toggle {
		display: inline-flex;
		order: 3;
		flex: none;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
		width: 42px;
		height: 42px;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.kf-mobnav {
		display: block;
		border-top: 1px solid #e6edf6;
		background: #ffffff;
		box-shadow: 0 26px 30px -26px rgba(22, 41, 92, .35);
	}

	.kf-mobnav[hidden] { display: none; }

	.kf-gnb-toggle__bar {
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: #33415e;
		transition: transform .2s ease, opacity .2s ease;
	}

	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(2) { opacity: 0; }
	.kf-gnb-toggle[aria-expanded="true"] .kf-gnb-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

@media (max-width: 759px) {
	body > header .kf-site-header__inner > .kf-gnb-toggle {
		margin-left: auto;
	}
}

/* 접속 버튼이 우측 그룹의 첫 링크가 되면서 기존 nth-of-type 규칙이
   로그인 링크를 숨기던 문제 보정 — 마지막 링크(회원가입/로그아웃)만 접는다. */
@media (max-width: 759px) {
	body > header > div.kfh-wide > div:last-child > a:nth-of-type(2) { display: inline; }
	body > header > div.kfh-wide > div:last-child > a:last-of-type { display: none; }
}

/* -----------------------------------------------------------------------
 * template-news.php 보완 유틸리티 — 컴파일된 theme.css에 없는 클래스
 * -------------------------------------------------------------------- */
.gap-px { gap: 1px; }
.aspect-\[16\/10\] { aspect-ratio: 16 / 10; }
.duration-300 { transition-duration: 300ms; }
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }

@media (min-width: 760px) {
	.mob\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1080px) {
	.tab\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tab\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gap-x-5 { column-gap: 1.25rem; }
.left-3 { left: 0.75rem; }
.top-3 { top: 0.75rem; }
.mb-6 { margin-bottom: 1.5rem; }
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
.max-w-\[720px\] { max-width: 720px; }
.min-w-\[220px\] { min-width: 220px; }

/* -----------------------------------------------------------------------
 * 공개 서브페이지 실사 확장 — 화이트·공공 블루 배너와 운영 현장 카드
 * -------------------------------------------------------------------- */
.kf-page-photo-banner {
	position: absolute;
	inset: 0 0 0 auto;
	z-index: 1;
	width: min(58%, 760px);
	height: 100%;
	background: #dfeaf8;
}

/* 공개 페이지 배너는 이미지와 문구의 영역을 분리해 영문에서도 문장이 사진 위로 흘러가지 않게 합니다. */
.kf-page-hero__content > h1,
.kf-page-hero__content > p:last-child {
	min-width: 0;
	word-break: keep-all;
}

@media (min-width: 760px) {
	.kf-page-hero__content > h1 {
		max-width: 50%;
	}

	.kf-page-hero__content > p:last-child {
		max-width: min(510px, 42%);
		line-height: 1.7;
	}

	html[lang^="en"] .kf-page-hero__content > h1 {
		max-width: 52%;
	}

	html[lang^="en"] .kf-page-hero__content > p:last-child {
		max-width: min(530px, 44%);
	}
}

.kf-page-photo-banner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 44%;
	filter: saturate(.88) contrast(1.015);
}

.kf-page-photo-banner .kf-art-ov {
	background: linear-gradient(90deg, #eaf1fb 0%, rgba(234, 241, 251, .92) 19%, rgba(234, 241, 251, .5) 48%, rgba(234, 241, 251, .06) 78%, transparent 100%) !important;
}

.kf-platform-feature {
	position: relative;
	height: 230px;
	margin: 28px 0 24px;
	border: 1px solid #d4e3f6;
	border-radius: 16px;
	background: #eaf3ff;
	box-shadow: 0 20px 46px -34px rgba(13, 79, 159, .68);
	overflow: hidden;
}

.kf-platform-feature--compact { height: 210px; }
.kf-platform-feature--wide { height: 230px; }

.kf-platform-feature__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.kf-platform-feature__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 44%;
	filter: saturate(.9) contrast(1.015);
	transition: transform .7s cubic-bezier(.22,.61,.36,1), filter .45s ease;
}

.kf-platform-feature::after {
	content: "";
	position: absolute;
	inset: 30% 0 0;
	background: linear-gradient(180deg, transparent, rgba(7, 35, 82, .9));
	pointer-events: none;
}

.kf-platform-feature figcaption {
	position: absolute;
	left: 22px;
	right: 22px;
	bottom: 18px;
	z-index: 2;
	display: grid;
	gap: 5px;
	color: #fff;
}

.kf-platform-feature figcaption small {
	font-size: 10px;
	font-weight: 850;
	letter-spacing: .14em;
	color: #c9e4ff;
}

.kf-platform-feature figcaption strong {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: -.015em;
	word-break: keep-all;
}

.kf-platform-ribbon {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 28px 0 24px;
}

.kf-platform-ribbon figure {
	position: relative;
	height: 190px;
	margin: 0;
	border: 1px solid #d4e3f6;
	border-radius: 15px;
	background: #eaf3ff;
	box-shadow: 0 16px 38px -32px rgba(13, 79, 159, .62);
	overflow: hidden;
}

.kf-platform-ribbon__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.kf-platform-ribbon__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(.9) contrast(1.015);
	transition: transform .7s cubic-bezier(.22,.61,.36,1);
}

.kf-platform-ribbon figure::after {
	content: "";
	position: absolute;
	inset: 34% 0 0;
	background: linear-gradient(180deg, transparent, rgba(7, 35, 82, .88));
	pointer-events: none;
}

.kf-platform-ribbon figcaption {
	position: absolute;
	left: 17px;
	right: 17px;
	bottom: 14px;
	z-index: 2;
	display: grid;
	gap: 4px;
	color: #fff;
}

.kf-platform-ribbon figcaption small {
	font-size: 9px;
	font-weight: 850;
	letter-spacing: .13em;
	color: #c9e4ff;
}

.kf-platform-ribbon figcaption strong {
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
	.kf-platform-feature:hover .kf-platform-feature__image img,
	.kf-platform-ribbon figure:hover .kf-platform-ribbon__image img {
		transform: scale(1.025);
		filter: saturate(.98) contrast(1.02);
	}
}

@media (max-width: 759px) {
	.timeline {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
		min-height: 0;
		margin-top: 32px;
	}

	.timeline::before,
	.tl-item::after,
	.tl-card::after {
		display: none;
	}

	.tl-item {
		min-width: 0;
	}

	.tl-card,
	.tl-item.up .tl-card,
	.tl-item.down .tl-card {
		position: relative;
		inset: auto;
		width: 100%;
		margin: 0;
		transform: none;
	}

	.kf-page-photo-banner {
		left: 0;
		width: 100%;
		opacity: .34;
	}

	.kf-page-photo-banner .kf-art-ov {
		background: linear-gradient(90deg, #eaf1fb 0%, rgba(234, 241, 251, .88) 58%, rgba(234, 241, 251, .36) 100%) !important;
	}

	.kf-platform-feature,
	.kf-platform-feature--compact,
	.kf-platform-feature--wide {
		height: 190px;
		margin: 24px 0 20px;
		border-radius: 14px;
	}

	.kf-platform-feature figcaption {
		left: 17px;
		right: 17px;
		bottom: 15px;
	}

	.kf-platform-feature figcaption strong { font-size: 14px; }

	.kf-platform-ribbon {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.kf-platform-ribbon figure { height: 175px; }
}

@media (prefers-reduced-motion: reduce) {
	.kf-platform-feature__image img,
	.kf-platform-ribbon__image img {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   2026-08 언어 선택·로그인 상태·공개 문장 정렬
   -------------------------------------------------------------------------- */

.kf-header-tools {
	min-width: 0;
	margin-left: 0;
}

/* 데스크톱 GNB를 계정·언어 도구 바로 왼쪽에 정돈해 우측 탐색 흐름을 강화합니다. */
@media (min-width: 1024px) {
	body > header > .kf-site-header__inner {
		gap: 16px;
	}

	body > header .kf-site-header__inner > nav[aria-label="주요 메뉴"] {
		justify-content: flex-end;
		margin-left: auto;
	}

	body > header .kf-site-header__inner > .kf-header-tools {
		margin-left: 0;
	}
}

.kf-header-account {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
}

.kf-header-account__link {
	font-size: 13.5px;
	font-weight: 750;
	color: #1a56c4;
	text-decoration: none;
}

.kf-header-account__link:hover { color: #0b4fd6; }

.kf-header-account__divider {
	width: 1px;
	height: 14px;
	background: #c6d2e6;
}

.kf-header-account--municipal {
	gap: 7px;
	padding: 5px 6px 5px 11px;
	border: 1px solid #c9dcf8;
	border-radius: 12px;
	background: linear-gradient(135deg, #f7fbff, #edf5ff);
	box-shadow: 0 10px 24px -20px rgba(13, 79, 159, .72);
}

.kf-header-account__identity {
	display: grid;
	min-width: 0;
	gap: 1px;
	text-decoration: none;
}

.kf-header-account__status {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 9.5px;
	font-weight: 850;
	line-height: 1.25;
	color: #54709a;
}

.kf-header-account__status i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #16a34a;
	box-shadow: 0 0 0 3px rgba(22, 163, 74, .12);
}

.kf-header-account__identity strong {
	max-width: 150px;
	overflow: hidden;
	font-size: 15.5px;
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -.015em;
	color: #10265d;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kf-header-account__identity small {
	max-width: 150px;
	overflow: hidden;
	font-size: 9.5px;
	font-weight: 700;
	line-height: 1.25;
	color: #6b7fa3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kf-header-account__logout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 11px;
	border: 1px solid #f4b8b8;
	border-radius: 9px;
	background: #fff;
	font-size: 13px;
	font-weight: 900;
	color: #b42323;
	text-decoration: none;
}

.kf-header-account__logout:hover {
	border-color: #ef9999;
	background: #fff5f5;
	color: #8f1818;
}

.kf-lang-switch {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 3px;
	border: 1px solid #dbe5f3;
	border-radius: 12px;
	background: #f7faff;
}

.kf-lang-switch__link {
	display: inline-flex;
	min-height: 32px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0 9px;
	border-radius: 8px;
	font-size: 11.5px;
	font-weight: 800;
	color: #526687;
	text-decoration: none;
	white-space: nowrap;
}

.kf-lang-switch__link:hover {
	background: #eaf2ff;
	color: #0b4fd6;
}

.kf-lang-switch__link.is-active {
	background: #145fd1;
	box-shadow: 0 7px 16px -12px rgba(11, 79, 214, .8);
	color: #fff;
}

.kf-lang-switch__flag {
	display: block;
	width: 18px;
	height: 12px;
	aspect-ratio: 3 / 2;
	flex: none;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(22, 41, 92, .14);
}

.kf-mobnav__municipal {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	margin: 12px 0 4px;
	padding: 10px;
	border: 1px solid #c9dcf8;
	border-radius: 12px;
	background: #f3f8ff;
}

.kf-mobnav__municipal-identity {
	display: grid;
	min-width: 0;
	gap: 3px;
	text-decoration: none;
}

.kf-mobnav__municipal-identity small {
	overflow: hidden;
	font-size: 10.5px;
	font-weight: 750;
	color: #61779a;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kf-mobnav__municipal-identity strong {
	overflow: hidden;
	font-size: 16px;
	font-weight: 900;
	color: #10265d;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kf-mobnav__municipal-logout {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	align-self: center;
	padding: 0 13px;
	border: 1px solid #efb2b2;
	border-radius: 9px;
	background: #fff;
	font-size: 13px;
	font-weight: 900;
	color: #b42323;
	text-decoration: none;
}

.kf-mobnav__language {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 10px;
	padding-top: 12px;
	border-top: 1px solid #e4ebf5;
}

.kf-mobnav__language .kf-lang-switch__link {
	min-height: 42px;
	border: 1px solid #dbe5f3;
	background: #f7faff;
	font-size: 13px;
}

.kf-mobnav__language .kf-lang-switch__link.is-active {
	border-color: #145fd1;
	background: #145fd1;
	color: #fff;
}

/* Pretendard를 공개 홈페이지와 입력 요소까지 동일하게 적용해 화면별 글꼴 차이를 없앱니다. */
html,
body,
button,
input,
select,
textarea {
	font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

body > section + main p,
body > section + div main p {
	line-height: 1.72;
	letter-spacing: -.008em;
}

.kf-mobile-card-grid,
.kf-news-card-grid {
	align-items: stretch;
	grid-auto-rows: auto;
}

.kf-mobile-card-grid > *,
.kf-news-card-grid > *,
.kf-news-card-grid > li > a {
	min-width: 0;
	height: 100%;
}

/* 공공기관형 문장 흐름: 한국어는 어절을 보존하고 영문은 긴 단어를 안전하게 줄바꿈합니다. */
.kfh :where(h1, h2, h3, p, li),
body > section + main :where(h1, h2, h3, p, li),
body > section + div main :where(h1, h2, h3, p, li) {
	min-width: 0;
	word-break: keep-all;
	overflow-wrap: break-word;
}

.kfh :where(h1, h2, h3),
body > section + main :where(h1, h2, h3),
body > section + div main :where(h1, h2, h3) {
	text-wrap: balance;
}

.kfh :where(p, li),
body > section + main :where(p, li),
body > section + div main :where(p, li) {
	text-wrap: pretty;
}

html[lang^="en"] .kfh :where(h1, h2, h3, p, li),
html[lang^="en"] body > section + main :where(h1, h2, h3, p, li),
html[lang^="en"] body > section + div main :where(h1, h2, h3, p, li) {
	word-break: normal;
	overflow-wrap: anywhere;
	hyphens: auto;
}

@media (max-width: 1199px) {
	.kf-lang-switch__label,
	.kf-header-account__identity small { display: none; }
	.kf-lang-switch__link { width: 34px; padding-inline: 0; }
	.kf-header-account__identity strong { max-width: 112px; }
}

@media (max-width: 759px) {
	.kf-header-tools { display: none; }
	.kf-mobnav__language .kf-lang-switch__link { width: auto; }

	/* 모바일에서는 배너 문구와 실사 이미지를 각각의 영역으로 분리합니다. */
	.kf-page-hero__content {
		padding-bottom: 24px !important;
	}

	.kf-page-photo-banner {
		display: block;
		position: relative;
		inset: auto;
		width: calc(100% - 40px);
		height: auto;
		aspect-ratio: 16 / 7;
		margin: 0 20px 22px;
		border: 1px solid #cbdcf1;
		border-radius: 14px;
		opacity: 1;
		box-shadow: 0 16px 34px -28px rgba(13, 79, 159, .72);
		overflow: hidden;
	}

	.kf-page-photo-banner .kf-art-ov {
		background: linear-gradient(90deg, rgba(234, 241, 251, .12), rgba(234, 241, 251, 0)) !important;
	}

	.kf-page-hero__content > h1,
	.kf-page-hero__content > p:last-child {
		max-width: 100%;
	}

	.kf-page-hero__content > p:last-child {
		font-size: 14px;
		line-height: 1.7;
	}

	body > section + main,
	body > section + div main {
		font-size: 14px;
	}
}

/* 공개 서브페이지 모바일 카드 — 한 행 2열 */
@media (max-width: 759px) {
	.kf-mobile-card-grid,
	.kf-news-card-grid,
	.step6,
	.org-mid,
	.org-depts,
	.timeline,
	.kf-platform-ribbon {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}

	.kf-mobile-card-grid,
	.kf-news-card-grid {
		grid-auto-rows: auto;
	}

	.kf-mobile-card-grid > *,
	.kf-news-card-grid > *,
	.step6 > *,
	.org-mid > *,
	.org-depts > *,
	.timeline > * {
		min-width: 0;
		height: 100%;
	}

	.kf-mobile-card-grid > div {
		padding: 14px 11px !important;
	}

	.kf-mobile-card-grid > div.flex {
		flex-direction: column;
		align-items: flex-start;
		gap: 9px;
	}

	.kf-mobile-card-grid > div.text-center {
		text-align: left;
	}

	.kf-mobile-card-grid > div > svg {
		width: 30px;
		height: 30px;
		margin: 0 0 4px;
	}

	.kf-mobile-card-grid :where(h3, h4) {
		font-size: 13px;
		line-height: 1.42;
	}

	.kf-mobile-card-grid p {
		font-size: 11.5px;
		line-height: 1.58;
	}

	.kf-mobile-card-grid--last-wide > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.kf-platform-ribbon figure {
		height: 128px;
	}

	.kf-platform-ribbon figure:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		height: 175px;
	}

	.kf-platform-ribbon figcaption {
		left: 12px;
		right: 12px;
		bottom: 11px;
	}

	.kf-platform-ribbon figcaption small { font-size: 8px; }
	.kf-platform-ribbon figcaption strong { font-size: 12px; line-height: 1.4; }

	.kf-dorm-benefit-grid,
	.kf-news-detail-meta-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}

	.kf-dorm-benefit-grid > *,
	.kf-news-detail-meta-grid > * {
		min-width: 0;
		height: 100%;
	}

	.kf-dorm-benefit-grid > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.kf-dorm-benefit-grid .dorm-card {
		padding: 15px 11px !important;
	}

	.kf-dorm-benefit-grid .dorm-card > div:first-child {
		align-items: flex-start;
		gap: 8px;
	}

	.kf-dorm-benefit-grid .dorm-card svg {
		width: 30px;
		height: 30px;
	}

	.kf-dorm-benefit-grid .dorm-card h3 { font-size: 13.5px; }
	.kf-dorm-benefit-grid .dorm-card p { font-size: 11.5px; line-height: 1.55; }
	.kf-dorm-benefit-grid .dorm-card li { font-size: 11.5px; line-height: 1.55; }

	.kf-news-detail-meta-grid > div {
		padding: 13px 11px !important;
	}

	.kf-news-detail-meta-grid p {
		font-size: 11.5px !important;
		line-height: 1.52;
		overflow-wrap: anywhere;
	}

	.kf-location-contact-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px !important;
	}

	.kf-location-contact-grid > div {
		min-width: 0;
		min-height: 128px;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 9px;
		padding: 14px 11px !important;
	}

	.kf-location-contact-grid > div > span {
		width: 36px;
		height: 36px;
	}

	.kf-location-contact-grid > div > div {
		min-width: 0;
	}

	.kf-location-contact-grid p {
		font-size: 12.5px !important;
		line-height: 1.55;
		overflow-wrap: anywhere;
	}

	.step6 {
		position: static;
	}

	.step6 .s6 {
		min-height: 150px;
		padding: 14px 9px 13px;
	}

	.step6 .s6::after { display: none; }
	.step6 .s6 .n { font-size: 11.5px; line-height: 1.4; }
	.step6 .s6 svg { width: 30px; height: 30px; }
	.step6 .s6 p { font-size: 10.8px; line-height: 1.5; }

	.org-chart { overflow: visible; }
	.org-mid {
		display: grid;
		position: static;
	}

	.org-mid::before,
	.org-mid .om::before,
	.org-depts::before,
	.org-dept::before,
	.org-depts-link {
		display: none;
	}

	.org-mid .om,
	.org-dept {
		width: auto;
		min-height: 54px;
		padding: 11px 8px;
		font-size: 11.5px;
		line-height: 1.4;
	}

	.org-depts-wrap { margin-top: 10px; }

	.net-pin {
		max-width: 72px;
		gap: 3px;
		font-size: 8.5px;
		line-height: 1.25;
		white-space: normal;
	}

	.net-pin svg { width: 15px; height: 15px; }

	.timeline {
		margin-top: 28px;
	}

	.tl-card,
	.tl-item.up .tl-card,
	.tl-item.down .tl-card {
		display: grid;
		grid-template-columns: 1fr;
		justify-items: start;
		gap: 7px;
		padding: 12px 10px;
	}

	.tl-card .tc-ic {
		width: 32px;
		height: 32px;
		border-radius: 8px;
	}

	.tl-card .tc-ic svg { width: 17px; height: 17px; }
	.tl-card .tc-date { font-size: 12px; }
	.tl-card .tc-txt { font-size: 10.5px; line-height: 1.45; }

	.kf-news-card-grid { gap: 10px !important; }
	.kf-news-card-grid > li > a { height: 100%; }
	.kf-news-card-grid > li > a > span:last-child { padding: 12px; }
	.kf-news-card-grid b { font-size: 12.5px; line-height: 1.45; }
	.kf-news-card-grid b + span { font-size: 10.5px; line-height: 1.5; }
	.kf-news-card-grid b + span + span {
		align-items: flex-start;
		gap: 5px;
		font-size: 10px;
		line-height: 1.4;
	}

	.doc-row {
		flex-wrap: wrap;
		gap: 8px !important;
		padding: 11px 14px !important;
	}

	.doc-row .nm {
		flex: 1 1 calc(100% - 58px);
		min-width: 0;
		font-size: 12.5px;
		line-height: 1.5;
	}

	.doc-row .nm ~ a:first-of-type { margin-left: 56px; }
}

/* 320px까지 유지되는 공공 플랫폼형 모바일 카드 정렬 보강 */
@media (max-width: 759px) {
	.kf-mobile-card-grid > :last-child:nth-child(odd),
	.kf-news-card-grid > :last-child:nth-child(odd),
	.timeline > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.kf-resource-group__header {
		display: grid !important;
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 4px 10px !important;
		align-items: center;
		padding: 16px 16px 14px !important;
	}

	.kf-resource-group__header > span:first-child {
		grid-row: 1 / span 2;
	}

	.kf-resource-group__header > h3 {
		grid-column: 2;
		min-width: 0;
		font-size: 15px;
		line-height: 1.45;
	}

	.kf-resource-group__header > h3 + span {
		grid-column: 2;
		justify-self: start;
		margin-left: 0;
	}

	.kf-resource-group__header > a {
		grid-column: 1 / -1;
		width: 100%;
		min-height: 40px;
		justify-content: center;
		margin: 8px 0 0 !important;
	}

	.kf-news-card-grid b { font-size: 13px; }
	.kf-news-card-grid b + span { font-size: 11.5px; line-height: 1.55; }
	.kf-news-card-grid b + span + span {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 4px;
		font-size: 11px;
		line-height: 1.45;
	}

	.kf-news-card-grid b + span + span > span {
		display: block;
		width: 100%;
	}

	.kf-platform-ribbon figcaption small { font-size: 9.5px; }
	.step6 .s6 p { font-size: 11.5px; line-height: 1.55; }
	.net-pin { font-size: 9.5px; }
	.tl-card,
	.tl-item.up .tl-card,
	.tl-item.down .tl-card { height: 100%; }
	.tl-card .tc-txt { font-size: 11.5px; line-height: 1.55; }

	.hub-node {
		min-width: 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding: 13px 10px;
	}

	.hub-node .hn-ic {
		width: 38px;
		height: 38px;
	}

	.hub-node .hn-ic svg { width: 19px; height: 19px; }
	.hub-node h3 { font-size: 12.5px; line-height: 1.45; }
	.hub-node p { font-size: 11.5px; line-height: 1.55; }

	.kf-dormitory-map {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.kf-dormitory-map > .kf-art {
		grid-column: 1 / -1;
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.kf-dormitory-map .dorm-chip {
		position: static !important;
		inset: auto !important;
		width: 100%;
		min-width: 0;
		min-height: 44px;
		padding: 8px 9px;
		border-radius: 10px;
		font-size: 11.5px;
		line-height: 1.4;
		white-space: normal;
	}

	.kf-dormitory-map .dorm-chip:last-child:nth-child(even) {
		grid-column: 1 / -1;
	}
}

/* --------------------------------------------------------------------------
   모바일 헤더 최종 위치 잠금
   flex 순서나 저장된 메뉴 개수와 무관하게 햄버거를 우측 안전 여백에 고정합니다.
   -------------------------------------------------------------------------- */
@media (max-width: 1023px) {
	body > header > div.kfh-wide.kf-site-header__inner {
		position: relative !important;
		padding-right: 80px !important;
	}

	body > header > div.kfh-wide.kf-site-header__inner > button.kf-gnb-toggle {
		display: inline-flex !important;
		position: absolute !important;
		top: 50% !important;
		right: clamp(12px, 2.35vw, 24px) !important;
		left: auto !important;
		z-index: 20 !important;
		margin: 0 !important;
		transform: translateY(-50%) !important;
	}

	body > header > div.kfh-wide.kf-site-header__inner > .kf-header-tools {
		margin-right: 0 !important;
		margin-left: auto !important;
	}
}

@media (max-width: 759px) {
	body > header > div.kfh-wide.kf-site-header__inner {
		padding-left: 14px !important;
		padding-right: 70px !important;
	}

		body > header > div.kfh-wide.kf-site-header__inner > .kf-header-tools {
		display: none !important;
	}
}

/* --------------------------------------------------------------------------
   공개 영문 페이지 최종 타이포그래피 — 한국어용 어절·자간 규칙을 영문에서 해제
   -------------------------------------------------------------------------- */
html[lang^="en"] body {
	letter-spacing: 0;
}

html[lang^="en"] body > section + main :where(h1, h2, h3, h4, p, li, strong, a),
html[lang^="en"] body > section + div main :where(h1, h2, h3, h4, p, li, strong, a) {
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}

html[lang^="en"] body > section + main :where(h1, h2, h3, h4),
html[lang^="en"] body > section + div main :where(h1, h2, h3, h4) {
	letter-spacing: -.02em;
	text-wrap: balance;
}

html[lang^="en"] body > section + main :where(p, li),
html[lang^="en"] body > section + div main :where(p, li) {
	letter-spacing: 0;
	text-wrap: pretty;
}

html[lang^="en"] .kf-page-hero__content > h1 {
	letter-spacing: -.02em;
}

html[lang^="en"] .kf-gnb-submenu__copy :where(strong, small),
html[lang^="en"] .kf-mobnav__sublink > strong {
	word-break: normal;
	overflow-wrap: break-word;
}

html[lang^="en"] .kf-ceo-name {
	letter-spacing: .01em !important;
}

html[lang^="en"] .kf-page-hero__content > h1,
html[lang^="en"] .kf-page-hero__content > p:last-child {
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}

.kf-ceo-signature {
	display: block;
	width: clamp(210px, 24vw, 280px);
	height: auto;
	margin: 10px 0 0 auto;
	object-fit: contain;
	object-position: right center;
}
.kfims-res-group-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

@media (max-width: 980px) {
	.kfims-res-group-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.kfims-res-group-grid > section.col-span-2 {
		grid-column: auto;
	}
}
