@charset "utf-8";
@import url(fonts/pretendard.css);
#react-chatbot-widget-container{display:none;}
:root {
	--kwu-purple: #24947c;
	--kwu-purple-hover: #1a7562;
	--kwu-primary: #24947c;
	--kwu-primary-hover: #1a7562;
	--kwu-bg: #ffffff;
	--kwu-bg-panel: #ffffff;
	--kwu-border: #e5e5e5;
	--kwu-text: #222;
	--kwu-muted: #777;
	--layout-max: 1920px;
	--content-max: 1680px;
	--sidebar-w: 220px;
	--sidebar-w-folded: 72px;
	--inner-pad-x: clamp(16px, 3vw, 24px);
	--sub-layout-max: 1440px;
	--section-gap: clamp(14px, 2vw, 18px);
	--mobile-topbar-h: 56px;
	--top-banner-h: 0px;
	--hero-bottom-quick-h: 0px;
	--chatbot-widget-offset: 76px;
	--font-sans: "Pretendard", sans-serif;
	--section-title-size: clamp(36px, 3.5vw, 48px);
	--section-title-weight: 700;
	--section-title-line-height: 1.1;
	--section-title-tracking: -0.02em;
}

.block__title,
.der__title,
.notice-board__title,
.academic-cal__title,
.sns-board__title {
	font-family: var(--font-sans);
	font-size: var(--section-title-size);
	font-weight: var(--section-title-weight);
	line-height: var(--section-title-line-height);
	letter-spacing: var(--section-title-tracking);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
}

html {
	overflow-x: hidden;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: #aeb7c2 #eef1f5;
}

html::-webkit-scrollbar {
	width: 12px;
}

html::-webkit-scrollbar-track {
	background: #eef1f5;
}

html::-webkit-scrollbar-thumb {
	background-color: #aeb7c2;
	border: 3px solid #eef1f5;
	border-radius: 10px;
	background-clip: padding-box;
}

body {
	overflow: visible;
	background: #fff;
	color: var(--kwu-text);
	font-family: var(--font-sans);
	letter-spacing: -0.02em;
	line-height: 1.45;
	font-size: 15px;
}

html:has(body.is-quick-open),
html.is-scroll-lock {
	overflow: hidden !important;
}

body.is-quick-open {
	overflow: hidden;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
	margin:0 auto;
}

h1,
h2,
h3,
p,
ul {
	margin: 0;
	padding: 0;
}

ul {
	list-style: none;
}

button {
	font-family: inherit;
	cursor: pointer;
}

address {
	font-style: normal;
}

/* ----- 레이아웃 ----- */
.page-container {
	max-width: var(--layout-max);
	margin: 0 auto;
	padding-left: var(--sidebar-w);
	min-height: 100vh;
	position: relative;
	transition: padding-left 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.page-container.is-sidebar-folded {
	padding-left: var(--sidebar-w-folded);
}

.side-nav {
	position: fixed;
	top: var(--top-banner-h);
	bottom: 0;
	left: max(0px, calc((100vw - min(100vw, var(--layout-max))) / 2));
	width: var(--sidebar-w);
	z-index: 200;
	background: var(--kwu-primary);
	color: #fff;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	transition:
		top 0.35s ease,
		width 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 0.4s ease;
}

.side-nav.is-folded {
	width: var(--sidebar-w-folded);
	box-shadow: 2px 0 14px rgba(0, 0, 0, 0.1);
	overflow: hidden;
}

.side-nav__inner {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: 28px 20px 24px;
	transition: padding 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.side-nav.is-folded .side-nav__inner {
	position: relative;
	align-items: center;
	padding: 24px 10px;
}

.side-nav__logo {
	flex-shrink: 0;
	overflow: hidden;
	max-height: 200px;
	height:90px;
	opacity: 1;
	transition:
		opacity 0.32s ease,
		max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1),
		margin 0.45s cubic-bezier(0.4, 0, 0.2, 1);

	margin-bottom:50px;
}

.side-nav.is-folded .side-nav__logo {
	max-height: 0;
	opacity: 0;
	margin: 0;
	pointer-events: none;
}

.side-nav__logo img {
	width: 100%;
	max-width: 151px;
	height:86px;
	margin: 0 auto 68px;
	object-fit: contain;
	transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.side-nav__fold-bg,
.side-nav__fold-mark,
.side-nav__scroll-hint {
	display: none !important;
}

.side-nav__fold-bg {
	display: none;
	flex-shrink: 0;
	width: 52px;
	height: auto;
	margin: 4px auto 0;
	object-fit: contain;
	pointer-events: none;
}

.side-nav.is-folded .side-nav__fold-bg {
	display: block;
}

.side-nav__fold-mark {
	display: none;
	margin: 4px auto 0;
	padding: 0;
	border: 0;
	background: transparent;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	cursor: pointer;
}

.side-nav__fold-mark span {
	display: block;
	height: 2px;
	width: 100%;
	background: #fff;
	border-radius: 1px;
	transform-origin: center;
	transition: transform 0.35s ease, opacity 0.25s ease;
}

.side-nav.is-folded .side-nav__fold-mark {
	display: flex;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: 0;
	transform: translate(-50%, -50%);
	z-index: 1;
}

.side-nav__scroll-hint {
	display: none;
	flex-shrink: 0;
	margin: auto 0 0;
	padding: 0 0 20px;
	font-family: var(--font-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1;
	color: #fff;
	text-transform: lowercase;
	white-space: nowrap;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	pointer-events: none;
	user-select: none;
}

.side-nav.is-folded .side-nav__scroll-hint {
	display: block;
}

.side-nav__nav {
	flex-shrink: 0;
	opacity: 1;
	transform: translateX(0);
	transition:
		opacity 0.35s ease 0.04s,
		transform 0.45s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		margin 0.4s ease,
		padding 0.4s ease;
}

.side-nav__util {
	flex-shrink: 0;
	opacity: 1;
	transform: translateX(0);
	transition:
		opacity 0.35s ease 0.04s,
		transform 0.45s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		margin 0.4s ease,
		padding 0.4s ease;
}

.side-nav.is-folded .side-nav__nav,
.side-nav.is-folded .side-nav__util {
	max-height: 0;
	opacity: 0;
	margin: 0;
	padding: 0;
	transform: translateX(-16px);
	pointer-events: none;
	overflow: hidden;
	transition:
		opacity 0.28s ease,
		transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.42s cubic-bezier(0.4, 0, 0.2, 1),
		margin 0.35s ease,
		padding 0.35s ease;
}

.side-nav__nav .menu-list li + li {
	margin-top: 30px;
}

.side-nav__nav .menu-list a {
	display: block;
	font-family: var(--font-sans);
	font-size: 18px;
	font-weight: 500;
	color: #fff;
	opacity: 0.95;
	padding: 2px 0;
	text-align: center;
}

.side-nav__nav .menu-list a:hover {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Chrome-style overlay scrollbar (side menu / GNB panel) */
.side-nav {
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.side-nav::-webkit-scrollbar {
	width: 0;
	height: 0;
	display: none;
}

.gnb__panel-inner {
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.42) transparent;
}

.gnb__panel-inner::-webkit-scrollbar {
	width: 12px;
}

.gnb__panel-inner::-webkit-scrollbar-track {
	background: transparent;
}

.gnb__panel-inner::-webkit-scrollbar-thumb {
	background-color: rgba(255, 255, 255, 0.35);
	border: 3px solid transparent;
	border-radius: 10px;
	background-clip: padding-box;
}

.gnb__panel-inner::-webkit-scrollbar-thumb:hover {
	background-color: rgba(255, 255, 255, 0.55);
}

.gnb__panel-inner::-webkit-scrollbar-corner {
	background: transparent;
}

/* ----- GNB (Global Navigation) ----- */
.gnb {
	position: relative;
	width: 100%;
}

.gnb__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gnb__item + .gnb__item {
	margin-top: 30px;
}

.gnb__link {
	display: block;
	font-family: var(--font-sans);
	font-size: 18px;
	font-weight: 500;
	color: #fff;
	opacity: 0.95;
	padding: 2px 0;
	text-align: center;
	transition: opacity 0.2s ease;
}

.gnb__link:hover,
.gnb__item.is-open > .gnb__link {
	opacity: 1;
	font-weight: 700;
	text-decoration: none;
}

.gnb__link-icon--toggle {
	display: none;
}

.gnb__link-icon--external {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 13px;
	line-height: 1;
	opacity: 0.88;
}

.gnb__link:has(.gnb__link-icon--external) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
}

.gnb__depth-link-text {
	min-width: 0;
	flex: 0 1 auto;
}

.gnb__depth2-link:has(.gnb__link-icon--external),
.gnb__depth3-link:has(.gnb__link-icon--external) {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
}

.gnb-backdrop {
	position: fixed;
	inset: 0;
	z-index: 180;
	background: transparent;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.28s ease,
		visibility 0.28s ease;
	pointer-events: none;
}

.gnb-backdrop.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.gnb-panel-root {
	position: relative;
	z-index: 220;
	pointer-events: none;
}

.gnb__panel {
	position: fixed;
	top: var(--top-banner-h);
	bottom: 0;
	left: calc(max(0px, calc((100vw - min(100vw, var(--layout-max))) / 2)) + var(--sidebar-w) - 1px);
	right: auto;
	width: min(
		calc(min(100vw, var(--layout-max)) * 0.6 + 1px),
		calc(100vw - max(0px, calc((100vw - min(100vw, var(--layout-max))) / 2)) - var(--sidebar-w) + 1px)
	);
	z-index: 220;
	height: calc(100vh - var(--top-banner-h));
	max-height: none;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.75);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	border-left: 0;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	transform: none;
	transition:
		top 0.35s ease,
		opacity 0.28s ease,
		visibility 0.28s ease;
	pointer-events: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.gnb__panel.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.gnb__panel-inner {
	display: flex;
	flex-direction: column;
	justify-content: safe center;
	max-width: 100%;
	width: 100%;
	height: 100%;
	min-height: 100%;
	margin: 0;
	padding: 56px 40px 48px 36px;
	overflow-x: hidden;
	overflow-y: auto;
	box-sizing: border-box;
}

.gnb__panel-title {
	display: none;
}

.gnb__depth2 {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-rows: repeat(2, auto);
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	align-content: start;
	column-gap: 40px;
	row-gap: 0;
	width: 100%;
	max-width: 100%;
}

.gnb__depth2-item {
	min-width: 0;
}

.gnb__depth2-item:nth-child(2n) {
	margin-top: 28px;
	padding-top: 28px;
	border-top: 1px dotted rgba(255, 255, 255, 0.45);
}

.gnb__depth2-link {
	display: block;
	margin-bottom: 12px;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	line-height: 1.4;
	transition: opacity 0.2s ease;
	overflow-wrap: anywhere;
	word-break: keep-all;
}

.gnb__depth2-link::before {
	content: "\f105";
	display: inline-block;
	margin-right: 6px;
	font-family: 'Font Awesome 5 Pro';
	font-weight: 300;
	opacity: 0.85;
}

.gnb__depth2-link:hover {
	opacity: 0.8;
	color: #fff;
}

.gnb__depth3 {
	list-style: none;
	margin: 0;
	padding: 0 0 0 14px;
}

.gnb__depth3-item + .gnb__depth3-item {
	margin-top: 8px;
}

.gnb__depth3-link {
	display: block;
	font-size: 16px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.88);
	line-height: 1.45;
	transition: color 0.2s ease, opacity 0.2s ease;
	word-break: keep-all;
}

.gnb__depth3-link:hover {
	color: #fff;
	opacity: 1;
}

.page-container.is-sidebar-folded .gnb__panel {
	left: calc(max(0px, calc((100vw - min(100vw, var(--layout-max))) / 2)) + var(--sidebar-w-folded) - 1px);
}

.side-nav__util {
	margin-top: 60px;
	padding-top:50px;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 12px;
}

.side-nav__util::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 78px;
	height: 1px;
	background: rgba(255, 255, 255, 0.28);
	transform: translateX(-50%);
}

.side-nav__util a {
	display: flex;
	align-items: center;
	gap: 0px;
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 800;
	color: rgba(255, 255, 255, 0.88);
	text-align: center;
}

.side-nav__util a i {
	width: 1.1em;
	text-align: center;
	opacity: 0.9;
}

.lang-box {
	position: relative;
	width: fit-content;
	max-width: 100%;
}

.lang-box__trigger {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 6px 14px;

	border-radius: 999px;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.lang-box__trigger:hover {
	background: #f8f8f8;
	color: #000;
}

.lang-box__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
}

.lang-box__icon svg {
	display: block;
	width: 18px;
	height: 18px;
}

.lang-box__label {
	letter-spacing: -0.01em;
}

.lang-box__arrow {
	flex-shrink: 0;
	font-size: 10px;
	color: #fff;
	transition: transform 0.2s ease;
}

.lang-box__trigger:hover .lang-box__arrow {
	color: #000;
}

.lang-box.is-open .lang-box__arrow {
	transform: rotate(180deg);
}

.lang-box__menu {
	position: absolute;
	top: 50%;
	bottom: auto;
	left: calc(100% + 8px);
	right: auto;
	z-index: 20;
	min-width: 160px;
	margin: 0;
	padding: 6px 0;
	list-style: none;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	transform: translateY(-50%);
}

body.has-top-banner-open .lang-box__menu {
	top: auto;
	bottom: 0;
	transform: none;
}

.lang-box__menu[hidden] {
	display: none;
}

.lang-box__menu button {
	display: block;
	width: 100%;
	padding: 8px 16px;
	border: 0;
	background: transparent;
	color: #222;
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
}

.lang-box__menu button:hover {
	background: #f5f5f5;
}

@media (min-width: 901px) {
	.side-nav__util #langBox {
		width: 100%;
		max-width: 100%;
	}

	.side-nav__util #langBox .lang-box__trigger {
		width: 100%;
		justify-content: center;
	}

	.side-nav__util #langBox .lang-box__menu {
		top: calc(100% + 8px);
		bottom: auto;
		left: 0;
		right: 0;
		transform: none;
		min-width: 0;
		width: 100%;
		z-index: 30;
	}

	body.has-top-banner-open .side-nav__util #langBox .lang-box__menu {
		top: calc(100% + 8px);
		bottom: auto;
		transform: none;
	}

	.side-nav__util #langBox.lang-box--drop-up .lang-box__menu {
		top: auto;
		bottom: calc(100% + 8px);
	}
}

.nav-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 150;
	background: rgba(0, 0, 0, 0.45);
}

.main-content {
	background: var(--kwu-bg);
	min-height: 100vh;
	max-width: 100%;
	margin-top: var(--top-banner-h);
	transition: margin-top 0.35s ease;
}

.mobile-topbar {
	display: none;
}

.side-nav__close {
	display: none;
}

.side-nav-drawer {
	display: contents;
}

/* ----- Hero ----- */
.hero {
	position: relative;
	z-index: 2;
	background: #111;
	--hero-bottom-quick-h: 100px;
	--hero-caption-bottom: calc(var(--hero-bottom-quick-h) + 24px);
	overflow: hidden;
	isolation: isolate;
}

.hero-swiper {
	position: relative;
	z-index: 1;
	width: 100%;
	height: clamp(280px, 85svh, 100vh) !important;
	max-height: 100vh;
	min-height: 0;
	overflow: hidden;
}

.hero-swiper,
.hero-swiper .swiper-wrapper,
.hero-swiper .swiper-slide {
	width: 100%;
	height: 100%;
}

.hero-swiper .swiper-slide {
	position: relative;
	overflow: hidden;
}

.hero__media {
	position: absolute;
	inset: 0;
	z-index: 1;
}



.hero__media img,
.hero__media video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}

.hero__bottom-quick {
	position: absolute;
	z-index: 20;
	width: 100%;
	left: 0;
	right: 0;
	bottom: 30px;
	margin-top: 0 !important;

	border-top: none;
	box-shadow: none;
	pointer-events: auto;
}

.hero-bottom-quick__nav {
	display: none;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 11px;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.hero-bottom-quick__nav:hover:not(:disabled) {
	background: rgba(0, 0, 0, 0.55);
	border-color: rgba(255, 255, 255, 0.75);
}

.hero-bottom-quick__nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.hero-bottom-quick__nav:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.hero__bottom-quick-swiper {
	flex: 1;
	min-width: 0;
}

.hero__bottom-quick-inner {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 12px 16px;
	max-width: 100%;
	margin: 0 auto;
	padding: 12px var(--inner-pad-x);
	box-sizing: border-box;
}

.hero__bottom-quick-swiper .swiper-slide {
	height: auto;
}

.hero__bottom-quick-item {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	max-width: 140px;
	margin: 0 auto;
	min-width: 0;
	gap: 10px;
	text-align: center;
	color: rgba(255, 255, 255, 0.92);
	transition: color 0.2s ease;
}

.hero__bottom-quick-item:hover {
	color: #fff;
}

.hero__bottom-quick-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: center;
}

.hero__bottom-quick-icon img {
	width: auto;
	height: 45px;
	object-fit: contain;
	transform-origin: center center;
	filter: brightness(0) invert(1);
	opacity: 0.95;
}

.hero__bottom-quick-item:hover .hero__bottom-quick-icon {
	animation: hero-quick-icon-shake 0.55s ease-in-out;
}

@keyframes hero-quick-icon-shake {
	0%,
	100% {
		transform: translateX(0) rotate(0deg);
	}
	15% {
		transform: translateX(-4px) rotate(-6deg);
	}
	30% {
		transform: translateX(4px) rotate(6deg);
	}
	45% {
		transform: translateX(-3px) rotate(-4deg);
	}
	60% {
		transform: translateX(3px) rotate(4deg);
	}
	75% {
		transform: translateX(-2px) rotate(-2deg);
	}
}

.hero__bottom-quick-label {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 7px 10px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
	text-align: center;
	background: rgba(0, 0, 0, 0.5);
	border-radius: 999px;
	word-break: keep-all;
}

@media (min-width: 901px) {
	.hero__bottom-quick-swiper {
		width: 100%;
		display: flex;
		justify-content: center;
		overflow: visible;
	}

	.hero__bottom-quick-swiper .hero__bottom-quick-inner {
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: flex-start;
		transform: none !important;
	}
}

@media (min-width: 901px) and (max-width: 1248px) {
	.hero__bottom-quick-swiper .hero__bottom-quick-inner {
		width: 100%;
		max-width: 100%;
		gap: clamp(6px, 1vw, 10px);
		padding: 12px clamp(10px, 2vw, 16px);
	}

	.hero__bottom-quick-swiper .swiper-slide {
		flex: 1 1 0;
		width: auto !important;
		min-width: 0;
		max-width: none;
		margin: 0 !important;
	}

	.hero__bottom-quick-item {
		width: 100%;
		max-width: none;
		margin: 0;
		gap: 8px;
	}

	.hero__bottom-quick-icon img {
		height: clamp(30px, 3.2vw, 40px);
	}

	.hero__bottom-quick-label {
		padding: 6px clamp(4px, 0.8vw, 8px);
		font-size: clamp(11px, 1.05vw, 14px);
	}
}

@media (min-width: 1249px) {
	.hero__bottom-quick-swiper .hero__bottom-quick-inner {
		gap: 12px 16px;
		width: auto;
		max-width: 100%;
		padding: 12px var(--inner-pad-x);
	}

	.hero__bottom-quick-swiper .swiper-slide {
		width: 150px !important;
		flex: 0 0 auto;
		margin: 0 !important;
	}

	.hero__bottom-quick-item {
		width: 112px;
		max-width: 120px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero__bottom-quick-item:hover .hero__bottom-quick-icon {
		animation: none;
	}
}

.hero-swiper__pagination {
	position: absolute;
	bottom: calc(var(--hero-bottom-quick-h) + 10px);
	z-index: 10;
	width: auto !important;
	margin: 0 auto;
	left: 0;
	right: 0;
	text-align: center;
}

.hero-swiper__pagination .swiper-pagination-bullet {
	width: 9px;
	height: 9px;
	background: rgba(255, 255, 255, 0.55);
	opacity: 1;
	margin: 0px 3px;
}

.hero-swiper__pagination .swiper-pagination-bullet-active {
	background: #fff;
}

.hero-swiper__progress {
	position: absolute;
	left: var(--inner-pad-x);
	bottom: calc(var(--hero-bottom-quick-h) + 15px);
	z-index: 10;
	width: 250px;
	height: 3px;
	background: rgba(255, 255, 255, 0.28);
	overflow: hidden;
}

.hero-swiper__progress-fill {
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
}

/* 우측 퀵 메뉴 + Quick Service: 뷰포트에 고정(스크롤 시에도 같은 위치) */
.hero-quick-bar {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	z-index: 95;
	right: calc((100vw - min(100vw, var(--layout-max))) / 2 + var(--inner-pad-x));
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
}

.hero-actions {
	position: relative;
	z-index: 8;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-shrink: 0;
}

.hero-actions a {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(36, 148, 124, 0.92);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 19px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
	transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
	transform: scale(1);
}

.hero-actions a:hover {
	transform: scale(1.1);
	background: var(--kwu-purple-hover);
}

.hero-actions a:focus-visible {
	outline: none;
	box-shadow:
		0 4px 14px rgba(0, 0, 0, 0.2),
		0 0 0 4px rgba(36, 148, 124, 0.35);
}

.hero-actions__btn-surface {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: transparent;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	overflow: hidden;
	line-height: 1;
	color: inherit;
}

.hero-actions__quick-open.is-active {
	background: var(--kwu-purple-hover);
}

.hero-actions__quick-open .fa-ellipsis-h {
	font-size: 14px;
	line-height: 1;
	color: #fff;
}

.hero-actions__quick-text {
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #fff;
}

/* 채팅(이미지) 버튼 */
.hero-actions a:has(> img) {
	background: #fff;
	border: 0;
	box-shadow: 0 2px 14px rgba(36, 148, 124, 0.18);
}

.hero-actions a:has(> img):hover {
	transform: scale(1.1);
	background: #fff;
}

.hero-actions a img {
	display: block;
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.hero-actions .hero-actions__top {
	flex-direction: column;
	gap: 1px;
	width: 64px;
	height: 64px;
	min-height: 64px;
	padding: 0;
	border-radius: 50%;
	background: #404040 !important;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

.hero-actions__top i {
	font-size: 16px;
	line-height: 1;
	color: #fff;
}

.hero-actions__top-text {
	margin-top: 0;
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #fff;
}

.hero-actions__top:hover {
	background: #323232 !important;
	color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	.hero-actions a,
	.hero-actions a:hover {
		transform: none;
		transition: box-shadow 0.3s ease;
	}
}

/* KWU Quick Service: 중앙 다이얼로그 모달 */
.quick-service {
	position: fixed;
	inset: 0;
	z-index: 1200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 20px;
	background: rgba(0, 0, 0, 0.62);
	backdrop-filter: blur(2px);
}

.quick-service[hidden] {
	display: none !important;
}

.quick-service__dialog {
	width: min(760px, calc(100vw - 48px));
	max-height: min(86vh, 640px);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 0;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
	background: #fff;
}

.quick-service__header {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px 18px;
	background: linear-gradient(90deg, #6c4de6 0%, #8b65f5 100%);
	color: #fff;
}

.quick-service__title {
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.quick-service__close {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	transition: background 0.2s ease;
}

.quick-service__close:hover {
	background: rgba(255, 255, 255, 0.4);
}

.quick-service__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	background: #f3f4f8;
}

.quick-accordion {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-areas:
		"tab1 tab2 tab3"
		"panel panel panel";
}

.quick-accordion__item:nth-child(1) .quick-accordion__trigger {
	grid-area: tab1;
}

.quick-accordion__item:nth-child(2) .quick-accordion__trigger {
	grid-area: tab2;
}

.quick-accordion__item:nth-child(3) .quick-accordion__trigger {
	grid-area: tab3;
}

.quick-accordion__item {
	display: contents;
}

.quick-accordion__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 12px;
	border: none;
	border-right: 1px solid #dde1ea;
	border-bottom: 1px solid #dde1ea;
	background: #f3f4f8;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: #1a1a1a;
	text-align: left;
	transition: background 0.2s ease, color 0.2s ease;
}

.quick-accordion__item:last-child .quick-accordion__trigger {
	border-right: 0;
}

.quick-accordion__item.is-open .quick-accordion__trigger {
	background: #fff;
	color: var(--kwu-purple);
	border-bottom: none;
}

.quick-accordion__trigger:hover {
	background: #eceff6;
}

.quick-accordion__icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
}

.quick-accordion__icon--student {
	background: rgba(36, 148, 124, 0.12);
	color: var(--kwu-primary);
}

.quick-accordion__icon--staff {
	background: #dff3f3;
	color: #238b8b;
}

.quick-accordion__icon--prospect {
	background: rgba(36, 148, 124, 0.12);
	color: var(--kwu-purple);
}

.quick-accordion__label {
	flex: 0;
	white-space: nowrap;
}

.quick-accordion__item:not(.is-open) .quick-accordion__panel {
	display: none;
}

.quick-accordion__panel {
	grid-area: panel;
	grid-column: 1 / -1;
	background: #ffffff;
	padding: 16px;
}

.quick-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	padding: 0;
}

.quick-service-grid a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 72px;
	padding: 10px 8px;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	color: #222;
	background: transparent;
	border: 0;
	border-radius: 0;
	transition: color 0.2s ease;
}

.quick-service-grid__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 0;
	width:80px;
	height: 80px;
}

.quick-service-grid__icon img {
	display: block;
	max-width: none;
	width: auto;
}

.quick-service-grid a:hover {
	color: var(--kwu-purple);
}

.quick-service-grid a:hover .quick-service-grid__icon {
	border-color: rgba(36, 148, 124, 0.45);
}

.hero__caption {
	position: absolute;
	left: var(--inner-pad-x);
	bottom: var(--hero-caption-bottom);
	max-width: 760px;
	padding: 0;
	color: #fff;
	z-index: 9;
	text-shadow:
		0 2px 10px rgba(0, 0, 0, 0.4),
		0 6px 18px rgba(0, 0, 0, 0.26);
}

.hero__caption-line {
	font-size: clamp(14px, 2vw, 16px);
	font-weight: 500;
	margin-bottom: 6px;
	color: #fff;
}

.hero__caption-main {
	font-size: clamp(22px, 4.2vw, 34px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.03em;
	color: #fff;
}

.hero__caption-line,
.hero__caption-main {
	opacity: 0;
	transform: translateY(26px);
	transition:
		opacity 0.55s ease,
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-swiper .swiper-slide-active .hero__caption-line,
.hero-swiper .swiper-slide-duplicate-active .hero__caption-line {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.4s;
}

.hero-swiper .swiper-slide-active .hero__caption-main,
.hero-swiper .swiper-slide-duplicate-active .hero__caption-main {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.65s;
}

/* 히어로 정중앙 슬로건 (hero__caption과 독립) */
.hero__slogan {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 8;
	text-align: center;
	padding: 0 var(--inner-pad-x);
	pointer-events: none;
	color: #fff;
	animation: heroSloganFloat 8s ease-in-out 0s 1 forwards;
}

.hero__slogan-particles {
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(94vw, 780px);
	height: clamp(200px, 36vh, 300px);
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 0;
	overflow: visible;
}

.hero-slogan-particle {
	position: absolute;
	width: var(--sz, 4px);
	height: var(--sz, 4px);
	border-radius: 50%;
	background: radial-gradient(
		circle at 28% 28%,
		#fff 0%,
		rgba(230, 210, 255, 0.95) 28%,
		rgba(160, 110, 220, 0.55) 58%,
		rgba(36, 148, 124, 0.2) 78%,
		transparent 82%
	);
	box-shadow:
		0 0 10px rgba(255, 255, 255, 0.65),
		0 0 22px rgba(190, 150, 255, 0.45);
	opacity: 0;
	animation: heroParticleDrift var(--dur, 9s) ease-out forwards;
}

.hero__slogan-lead {
	position: relative;
	z-index: 1;
	margin: 0 0 18px;
	font-family: var(--font-sans);
	font-size: clamp(2.1rem, 5.4vw, 3.65rem);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.05em;
	background-image: linear-gradient(
		102deg,
		#ffffff 0%,
		#dcc7ff 11%,
		#ffffff 22%,
		#c9a8ff 36%,
		#ffffff 48%,
		#e6d4ff 61%,
		#ffffff 74%,
		#ead9ff 88%,
		#ffffff 100%
	);
	background-size: 260% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	filter:
		drop-shadow(0 2px 12px rgba(0, 0, 0, 0.55))
		drop-shadow(0 8px 36px rgba(0, 0, 0, 0.38));
	animation:
		heroSloganRise 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both,
		heroSloganLeadShimmer 9s linear 0.9s infinite;
}

.hero__slogan-sub {
	position: relative;
	z-index: 1;
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(1.38rem, 3.1vw, 2.05rem);
	font-weight: 600;
	line-height: 1.62;
	letter-spacing: -0.03em;
	color: #fff;
	text-shadow:
		0 2px 14px rgba(0, 0, 0, 0.48),
		0 6px 28px rgba(0, 0, 0, 0.32);
}

.hero__slogan-sub-line {
	display: inline-block;
	animation:
		heroSloganRise 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.38s both,
		heroSubLinePulseOnce 2.4s ease-out 1.05s 1 forwards;
}

.hero__slogan-tag {
	position: relative;
	z-index: 1;
	display: inline-block;
	margin-top: 4px;
	font-weight: 800;
	font-size: 1.08em;
	letter-spacing: -0.02em;
	animation:
		heroSloganRise 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.58s both,
		heroTagGlowOnce 2.5s cubic-bezier(0.22, 1, 0.36, 1) 1.25s 1 forwards;
}

.hero__slogan-tag::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(255, 220, 255, 0.45) 15%,
		rgba(255, 255, 255, 0.98) 50%,
		rgba(220, 200, 255, 0.45) 85%,
		transparent 100%
	);
	opacity: 0.85;
	transform-origin: center bottom;
	animation: heroTagUnderlineOnce 2.1s cubic-bezier(0.22, 1, 0.36, 1) 1.45s 1 forwards;
	pointer-events: none;
}

@keyframes heroParticleDrift {
	0% {
		opacity: 0;
		transform: translate(0, 22px) scale(0.35);
	}

	10% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate(var(--drift, 0px), var(--rise, -90px)) scale(1);
	}
}

@keyframes heroSloganRise {
	from {
		opacity: 0;
		transform: translateY(22px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes heroSloganFloat {
	0%,
	100% {
		transform: translateY(-50%);
	}

	50% {
		transform: translateY(calc(-50% - 12px));
	}
}

@keyframes heroSloganLeadShimmer {
	0% {
		background-position: 130% 50%;
	}

	100% {
		background-position: -130% 50%;
	}
}

@keyframes heroSubLinePulseOnce {
	from {
		filter: brightness(1);
		text-shadow:
			0 2px 14px rgba(0, 0, 0, 0.48),
			0 6px 28px rgba(0, 0, 0, 0.32);
	}

	to {
		filter: brightness(1.15);
		text-shadow:
			0 2px 18px rgba(0, 0, 0, 0.52),
			0 4px 28px rgba(170, 140, 255, 0.42),
			0 0 32px rgba(255, 255, 255, 0.22);
	}
}

@keyframes heroTagGlowOnce {
	from {
		letter-spacing: -0.02em;
		filter: brightness(1);
	}

	to {
		letter-spacing: 0.06em;
		filter: brightness(1.24) drop-shadow(0 0 16px rgba(255, 255, 255, 0.48));
	}
}

@keyframes heroTagUnderlineOnce {
	from {
		transform: scaleX(0.22);
		opacity: 0.55;
	}

	to {
		transform: scaleX(1);
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero__slogan {
		animation: none !important;
		transform: translateY(-50%) !important;
	}

	.hero__slogan-particles {
		display: none !important;
	}

	.hero__slogan-lead,
	.hero__slogan-sub-line,
	.hero__slogan-tag {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}

	.hero__slogan-lead {
		color: #fff;
		-webkit-text-fill-color: #fff;
		background: none;
		text-shadow:
			0 2px 14px rgba(0, 0, 0, 0.45),
			0 8px 40px rgba(0, 0, 0, 0.35);
	}

	.hero__slogan-tag::after {
		animation: none !important;
		transform: scaleX(1);
		opacity: 0.75;
	}
}

/* ----- Inner ----- */
.main-inner {
	width: 100%;
	max-width: var(--content-max);
	margin-right: auto;
	padding: calc(var(--section-gap) * 5) var(--inner-pad-x) calc(var(--section-gap) + 10px) var(--inner-pad-x);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	box-sizing: border-box;
	min-width: 0;
}

/*
.main-inner {
	--main-inner-marquee-w: 150px;
	padding: var(--section-gap) var(--inner-pad-x) calc(var(--section-gap) + 8px) calc(var(--inner-pad-x) + 70px);
}

.main-inner__vertical-marquee {
	position: absolute;
	top: 0;
	bottom: 8px;
	left: 0px;
	width: 210px;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

.main-inner__vertical-rotator {
	position: absolute;
	left: 50%;
	top: 0;
	width: max-content;
	transform: translate(-50%, 0) rotate(90deg);
	transform-origin: top center;
}

.main-inner__vertical-track {
	position: relative;
	left: auto;
	top: auto;
	display: inline-flex;
	width: max-content;
	white-space: nowrap;
	font-family: var(--font-sans);
	font-weight: 900;
	line-height: 1.0em;
	font-size: 120px;
	font-style: italic;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(36, 148, 124, 0.1);
}

.main-inner__vertical-track-inner {
	display: inline-flex;
	flex-shrink: 0;
	padding-right: 0.4em;
}

.main-inner__vertical-track--a {
	animation: mainInnerVerticalFlow 95s linear infinite;
}

@keyframes mainInnerVerticalFlow {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

.main-inner > :not(.main-inner__vertical-marquee) {
	position: relative;
	z-index: 1;
}
*/

@media (prefers-reduced-motion: reduce) {
	.page-container,
	.side-nav,
	.side-nav__logo,
	.side-nav__nav,
	.side-nav__util,
	.side-nav__inner {
		transition: none !important;
	}
}

.section {
	margin: 0;
}

@media (max-width: 1200px) {
	.main-inner {
		padding: calc(var(--section-gap) * 4) var(--inner-pad-x) calc(var(--section-gap) + 8px);
	}
}

/* ----- KWU ABOUT (게시판 시안) ----- */
.section--about {
	padding: 0px 0 80px;
}

.der__title {
	margin: 0 0 28px;
	text-align: center;
	color: #111;
}

.der__tabs {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 24px 36px;
	margin-bottom: 40px;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.der__tabs::-webkit-scrollbar {
	display: none;
}

.der__tab {
	position: relative;
	margin: 0;
	padding: 0 0 12px;
	border: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: #9a9a9a;
	cursor: pointer;
	white-space: nowrap;
}

.der__tab::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--kwu-primary);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.25s ease;
}

.der__tab.is-active {
	color: var(--kwu-primary);
}

.der__tab.is-active::after {
	transform: scaleX(1);
}

.der__tab:hover {
	color: var(--kwu-primary-hover);
}

.der-panel[hidden] {
	display: none !important;
}

.about-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px clamp(20px, 4vw, 56px);
	max-width: 1280px;
	margin: 0 auto;
	box-sizing: border-box;
}

.about-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0 auto 56px;
	color: inherit;
	transition: opacity 0.2s ease;
}

.about-card:hover {
	opacity: 0.88;
}

.about-card__cate {
	display: block;
	margin-bottom: 10px;
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 500;
	color: #154e43;
}

.about-card__thumb {
	overflow: hidden;
	flex-shrink: 0;
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	margin-bottom: 14px;
	background: #eee;
}

.about-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform 0.35s ease;
}

.about-card:hover .about-card__thumb img {
	transform: scale(1.04);
}

.about-card__title {
	margin: 0 0 10px;
	font-family: var(--font-sans);
	font-size: clamp(16px, 1.25vw, 16px);
	font-weight: 700;
	line-height: 1.35;
	color: #111;
	word-break: keep-all;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

.about-card__desc {
	margin: 0;
	width: 100%;
	padding-bottom: 15px;
	border-bottom: 1px dashed #c8c8c8;
}

.about-card__desc-text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
	text-overflow: ellipsis;
	max-height: calc(21px * 4);
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 400;
	line-height: 21px;
	color: #666;
	word-break: break-all;
	overflow-wrap: anywhere;
}

.about-card__desc-text > * { font-size:14px; }

.block {
	background: #fff;
	border: 0;
	padding: 0;
}

.block__more {
	display: inline-flex;
	align-items: center;
	padding-bottom: 2px;
	border-bottom: 1px solid rgba(36, 148, 124, 0.45);
	font-family: var(--font-sans);
	font-size: clamp(16px, 2.2vw, 20px);
	font-weight: 500;
	line-height: 1;
	color: var(--kwu-primary);
	white-space: nowrap;
}

.block__more:hover {
	color: var(--kwu-primary-hover);
	border-bottom-color: var(--kwu-primary-hover);
}

/* ----- 공지사항 ----- */
.section--notice-board {
	background: #f5f5f5;
	padding: 72px 0 80px;
	width: 100%;
}

.notice-board {
	max-width: 1300px;
	margin: 0 auto;
	padding: 0 var(--inner-pad-x);
}

.notice-board__head {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-bottom: 40px;
}

.notice-board__title {
	margin: 0;
	color: #111;
}

.notice-board__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #7b1fa2;
	color: #fff;
	font-size: 18px;
	transition: background 0.2s ease;
}

.notice-board__more:hover {
	background: #5e1689;
}

.notice-board__tabs {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: flex-end;
	gap: 0 4px;
	margin-bottom: 36px;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.notice-board__tabs::-webkit-scrollbar {
	display: none;
}

.notice-board__tab {
	position: relative;
	flex-shrink: 0;
	margin: 0;
	padding: 14px 16px;
	border: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: #9a9a9a;
	cursor: pointer;
	text-align: center;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.notice-board__tab::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 0;
	height: 3px;
	background: #7b1fa2;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.25s ease, background 0.2s ease;
}

.notice-board__tab.is-active {
	color: #7b1fa2;
	font-weight: 700;
}

.notice-board__tab.is-active::after {
	transform: scaleX(1);
	background: #7b1fa2;
}

.notice-board__tab:hover {
	color: #5e1689;
}

.notice-board__tab:hover::after {
	transform: scaleX(1);
	background: #5e1689;
}

.notice-board__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 15px;
}

.notice-board__grid[hidden] {
	display: none !important;
}

.notice-board__grid:has(.notice-board__empty) {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 168px;
}

.notice-board__empty {
	margin: 0;
	width: 100%;
	text-align: center;
	font-family: var(--font-sans);
	font-size: clamp(16px, 2.8vw, 19px);
	font-weight: 600;
	line-height: 1.4;
	color: #555;
	background: none;
	border-top: 1px solid #dfdfdf;
	border-bottom: 1px solid #dfdfdf;
	padding: 15px 0px;
}

.notice-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 130px;
	padding: 20px 16px 18px;
	background: #fff;
	transition: box-shadow 0.2s ease;
}

.notice-card:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.notice-card.is-hidden {
	display: none;
}

.notice-card__title {
	margin: 0 0 16px;
	font-family: var(--font-sans);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: #111;
	word-break: break-all;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.notice-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.notice-card__badge {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	padding: 0.3125rem 1rem;
	border-radius: 999px;
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}

.notice-card__badge--purple {
	background: #f3ebf8;
	color: #6a1b9a;
}

.notice-card__badge--blue {
	background: #e8f2fc;
	color: #0d47a1;
}

.notice-card__badge--green {
	background: #e8f7f1;
	color: #00796b;
}

.notice-card__badge--brown {
	background: #f5ebe0;
	color: #8d5524;
}

.notice-card__badge--pink {
	background: #fceef3;
	color: #c2185b;
}

.notice-card__badge--orange {
	background: #fff2e3;
	color: #e65100;
}

.notice-card__date {
	flex-shrink: 0;
	margin-left: auto;
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	color: #9a9a9a;
	white-space: nowrap;
}

/* ----- 학사일정 ----- */
.section--academic-cal {
	margin: 0;
	padding: 0;
}

.academic-cal {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 600px;
	overflow: hidden;
}

.academic-cal__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.academic-cal__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.academic-cal__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.35) 0%,
		rgba(0, 0, 0, 0.45) 45%,
		rgba(0, 0, 0, 0.8) 100%
	);
}

.academic-cal__inner {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 80px 0px 80px;
}

.academic-cal__head {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-bottom: 50px;
}

.academic-cal__title {
	margin: 0;
	color: #fff;
}

.academic-cal__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #7b1fa2;
	color: #fff;
	font-size: 18px;
	transition: background 0.2s ease;
}

.academic-cal__more:hover {
	background: #5e1689;
}

.academic-cal__schedule-slider {
	display: flex;
	align-items: stretch;
	margin-bottom: 100px;
}

.academic-cal__schedule-viewport {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	background: #fff;
}

.academic-cal__schedule-track {
	display: flex;
	transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.academic-cal__schedule-page {
	flex: 0 0 100%;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	min-width: 0;
}

.academic-cal__arrow {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	margin: 0;
	padding: 0;
	border: 0;
	background: #fff;
	color: #111;
	font-size: 20px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.academic-cal__arrow:hover:not(:disabled) {
	background: #f5f5f5;
	color: #000;
}

.academic-cal__arrow:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.academic-cal__arrow:focus-visible {
	outline: 2px solid #111;
	outline-offset: -2px;
	z-index: 1;
}

.academic-cal__event {
	display: flex;
	align-items: stretch;
	gap: 16px;
	min-height: 100px;
	padding: 22px 24px;
	border-right: 1px solid #e8e8e8;
	transition: background 0.2s ease;
}

.academic-cal__schedule-page .academic-cal__event:last-child {
	border-right: 0;
}

.academic-cal__event:hover {
	background: #fafafa;
}

.academic-cal__date-badge {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 72px;
	min-height: 72px;
	padding: 8px 6px;
	color: #fff;
	text-align: center;
}

.academic-cal__date-badge--gray {
	background: #7a7a7a;
}

.academic-cal__date-badge--navy {
	background: #1e3a5f;
}

.academic-cal__date-badge--brown {
	background: #8b7355;
}

.academic-cal__date-month {
	font-family: var(--font-sans);
	font-size: 25px;
	font-weight: 700;
	line-height: 1.1;
}

.academic-cal__date-day {
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	margin-top: 4px;
	opacity: 0.4;
}

.academic-cal__event-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	min-width: 0;
}

.academic-cal__event-range {
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
	color: #888;
}

.academic-cal__event-title {
	font-family: var(--font-sans);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.4;
	color: #111;
	word-break: keep-all;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.academic-cal__quick {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 12px 16px;
	max-width: 1100px;
	margin: 0 auto;
}

.academic-cal__quick-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
	text-decoration: none;
	color: inherit;
}

.academic-cal__quick-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.academic-cal__quick-icon img {
	display: block;
	height: 45px;
	width: auto;
	object-fit: contain;
	transition: transform 0.28s ease;
}

.academic-cal__quick-item:hover .academic-cal__quick-icon img,
.academic-cal__quick-item:focus-visible .academic-cal__quick-icon img {
	transform: translateY(-6px);
}

@media (prefers-reduced-motion: reduce) {
	.academic-cal__quick-icon img {
		transition: none;
	}

	.academic-cal__quick-item:hover .academic-cal__quick-icon img,
	.academic-cal__quick-item:focus-visible .academic-cal__quick-icon img {
		transform: none;
	}
}

.academic-cal__quick-item:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 6px;
	border-radius: 4px;
}

.academic-cal__quick-label {
	font-family: var(--font-sans);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.3;
	color: #fff;
	word-break: keep-all;
}

/* ----- KWU SNS (B2 카드 그리드) ----- */
.section--kwu-sns {
	margin: 0;
	padding: 72px 0 80px;
	background: #fff;
}

.kwu-sns {
	max-width: var(--content-max);
	margin: 0 auto;
	padding: 0px 0px;
}

.sns-board__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 28px;
	max-width: 1300px;
	margin: 0 auto 36px auto;
}

.sns-board__head-left {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 18px;
}

.section--kwu-sns .sns-board__title {
	margin: 0;
	color: #111;
}

.sns-board__icons {
	display: flex;
	align-items: center;
	gap: 10px;
}

.sns-board__icon-link {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	border-radius: 50%;
}

.sns-board__icon-link img {
	display: block;
	height: 44px;
	width: auto;
	transition: transform 0.28s ease;
}

.sns-board__icon-link:hover img,
.sns-board__icon-link:focus-visible img {
	transform: translateY(-6px);
}

.sns-board__icon-link:focus-visible {
	outline: 2px solid #111;
	outline-offset: 4px;
	border-radius: 50%;
}

@media (prefers-reduced-motion: reduce) {
	.sns-board__icon-link img {
		transition: none;
	}

	.sns-board__icon-link:hover img,
	.sns-board__icon-link:focus-visible img {
		transform: none;
	}
}

.sns-board__promo {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	border-radius: 999px;
	background: var(--kwu-purple);
	color: #fff;
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	line-height: 1;
	box-shadow: 0 4px 14px rgba(123, 31, 162, 0.35);
	transition: background 0.2s ease;
}

.sns-board__promo i {
	font-size: 14px;
	opacity: 0.95;
}

.sns-board__promo:hover {
	background: var(--kwu-purple-hover);
	color: #fff;
}

.sns-board__promo:focus-visible {
	outline: 2px solid #111;
	outline-offset: 3px;
}

.sns-board__tabs {
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 20px 32px;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.sns-board__tabs::-webkit-scrollbar {
	display: none;
}

.sns-board__tab {
	position: relative;
	margin: 0;
	padding: 0 0 12px;
	border: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: #9a9a9a;
	cursor: pointer;
	transition: color 0.2s ease;
}

.sns-board__tab.is-active {
	color: #111;
}

.sns-board__tab.is-active::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: #111;
}

.sns-board__tab:hover:not(.is-active) {
	color: #666;
}

.sns-board__tab:focus-visible {
	outline: 2px solid #111;
	outline-offset: 6px;
	border-radius: 4px;
}

.kwsns-carousel {
	position: relative;
	overflow: hidden;
}

.kwsns-panels {
	min-width: 0;
}

.kwsns-panel[hidden] {
	display: none !important;
}

.kwsns-swiper {
	overflow: hidden;
	width: 100%;
}

.kwsns-swiper .swiper-slide {
	height: auto;
}

.kwsns-swiper:has(.kwsns-swiper__empty) {
	max-width: 1300px;
	margin: 0 auto;
}

.kwsns-swiper:has(.kwsns-swiper__empty) .swiper-slide {
	width: 100% !important;
}

.kwsns-swiper__slide--empty {
	display: flex;
	align-items: center;
	justify-content: center;
}

.kwsns-swiper__empty {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 245px;
	margin: 0;
	padding: 24px;
	box-sizing: border-box;
	background: #f3f3f3;
	font-family: var(--font-sans);
	font-size: clamp(16px, 2.8vw, 17px);
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	color: #555;
}

.kwsns-carousel:has(.kwsns-swiper__empty) .kwsns-swiper__nav {
	display: none;
}

.kwsns-swiper__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 1px solid #111;
	border-radius: 50%;
	background: #fff;
	color: #111;
	font-size: 14px;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.kwsns-swiper__nav--prev {
	left: 8px;
}

.kwsns-swiper__nav--next {
	right: 8px;
}

.kwsns-swiper__nav:hover:not(:disabled) {
	background: #111;
	color: #fff;
}

.kwsns-swiper__nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.kwsns-swiper__nav:focus-visible {
	outline: 2px solid #111;
	outline-offset: 3px;
}

.kwsns-card {
	position: relative;
	display: block;
	overflow: hidden;
	background: #111;
}

.kwsns-card__thumb {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}

.kwsns-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease, filter 0.35s ease;
}


.kwsns-card__badge {
	position: absolute;
	left: 10px;
	bottom: 10px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.88);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

.kwsns-card__badge img {
	display: block;
	width: 22px;
	height: 22px;
	object-fit: contain;
	transition: none;
	transform: none;
	filter: grayscale();
}

@media (prefers-reduced-motion: reduce) {
	.kwsns-card__thumb img {
		transition: none;
	}

	.kwsns-card:hover .kwsns-card__thumb img {
		transform: none;
		filter: grayscale(100%);
	}
}

/* ----- 학과·주요 링크 (SNS 하단) ----- */
.section--dept-map {
	margin: 0;
	padding: 0;
}

.dept-map {
	position: relative;
	overflow: hidden;
	padding: 60px 0px;
}

.dept-map__bg {
	position: absolute;
	inset: 0;
}

.dept-map__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dept-map__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.58);
}

.dept-map__inner {
	position: relative;
	z-index: 1;
	margin: 0 auto;
	max-width: 1440px;
}

.dept-map__head {
	margin: 0;
	padding: 14px 16px;
	font-family: var(--font-sans);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
	text-align: center;
}

.dept-map__head--univ {
	background: #5eb8e8;
}

.dept-map__head--grad {
	background: #2f7d96;
}

.dept-map__head--sites {
	background: #94c93d;
}

.dept-map__body {
	padding: 28px 20px 34px;
}

.dept-map__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 24px;
}

.dept-map__col-title {
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.42);
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
	word-break: keep-all;
}

.dept-map__col-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 14px;
}

.dept-map__list li + li {
	margin-top: 5px;
}

.dept-map__list a {
	display: inline-block;
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.9);
	word-break: break-all;
	transition: color 0.2s ease;
}

.dept-map__list a:hover {
	color: #fff;
	text-decoration: underline;
}

.dept-map__list a:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 2px;
}

.dept-map__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.dept-map__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: center;
	gap: 16px;
	margin: 0;
	padding: 24px 20px 28px;
	list-style: none;
}

.dept-map__block--sites .dept-map__links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-content: normal;
	align-items: start;
	gap: 14px 18px;
}

.dept-map__block--sites .dept-map__links li {
	min-width: 0;
	text-align: center;
}

.dept-map__links a {
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
	color: #fff;
	text-align: center;
	transition: opacity 0.2s ease;
}

.dept-map__links a:hover {
	opacity: 0.82;
	text-decoration: underline;
}

.dept-map__links a:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 3px;
}

.dept-map__mobile-actions {
	display: none;
}

.dept-map__mobile-select--source {
	display: none;
}

@media (min-width: 1920px) {
	.main-inner {
		padding: 83px 0 40px 0;
		gap: 0;
	}

	.hero-quick-bar {
		right: calc((100vw - min(100vw, var(--layout-max))) / 2 + 16px);
		gap: 10px;
	}

	.hero-actions {
		gap: 10px;
	}
}

/* ----- Footer ----- */
.site-footer {
	background: #fff;
}

.footer-quick {
	width: 100%;
	max-width: var(--content-max);
	margin: 0 auto;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	background: #fff;
}

.footer-quick__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

.footer-drop {
	min-width: 0;
	border-left: 1px solid #e5e5e5;
	background: #fff;
}

.footer-drop:last-child {
	border-right: 1px solid #e5e5e5;
}

.footer-drop__control {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 0 36px 0 0px;
}

.footer-drop__plus {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 17px;
	font-weight: 400;
	line-height: 1;
	color: #111;
	pointer-events: none;
}

.footer-select {
	flex: 1;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 14px 15px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	color: #111;
	background: transparent;
	border: none;
	border-radius: 0;
	cursor: pointer;
	appearance: none;
}

.footer-select:hover {
	color: #000;
}

.footer-select:focus {
	outline: none;
}

.footer-drop__control:focus-within {
	outline: 2px solid rgba(36, 148, 124, 0.22);
	outline-offset: -2px;
}

.footer-main {
	padding: 28px var(--inner-pad-x) 36px;
	margin-top: 20px;
	text-align: center;
}

.footer-main__logo img {
	width: auto;
	max-width: 220px;
	height: auto;
	margin: 0 auto 20px;
}

.footer-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px 12px;
	margin-bottom: 16px;
	font-size: 16px;
}

.footer-links li {
	display: inline-flex;
	align-items: center;
}

.footer-links li + li::before {
	content: "";
	display: block;
	width: 1px;
	height: 12px;
	margin-right: 12px;
	background: #cfcfcf;
	flex-shrink: 0;
}

.footer-links a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.footer-address {
	font-size: 16px;
	color: var(--kwu-muted);
	line-height: 1.6;
	margin-bottom: 0px;
	margin-top: 30px;
}

.footer-copy {
	font-size: 15px;
	color: #aaa;
	letter-spacing: 0.04em;
}

@media (max-width: 900px) {
	.footer-quick__inner {
		grid-template-columns: 1fr;
	}

	.footer-drop {
		border-right: 0;
		border-bottom: 1px solid #e5e5e5;
	}

	.footer-drop:last-child {
		border-right: 0;
		border-bottom: 0;
	}
}

@media (max-width: 520px) {
	.footer-quick__inner {
		grid-template-columns: 1fr;
	}
}

/* ----- 중간 뷰포트 ----- */
@media (max-width: 1460px) {
	.about-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px clamp(18px, 3vw, 40px);
	}

	.dept-map__grid > .dept-map__col:nth-child(1) .dept-map__col-split,
	.dept-map__grid > .dept-map__col:nth-child(4) .dept-map__col-split {
		grid-template-columns: 1fr;
		gap: 12px 0;
	}

	.dept-map__grid > .dept-map__col:nth-child(1) .dept-map__list a,
	.dept-map__grid > .dept-map__col:nth-child(4) .dept-map__list a {
		font-size: 13px;
	}
}

@media (max-width: 1590px) {
	.gnb__panel {
		width: calc(min(100vw, var(--layout-max)) - var(--sidebar-w) + 1px);
	}

	.page-container.is-sidebar-folded .gnb__panel {
		width: calc(min(100vw, var(--layout-max)) - var(--sidebar-w-folded) + 1px);
	}

	.gnb__depth2 {
		column-gap: clamp(16px, 2vw, 32px);
	}

	.gnb__panel-inner {
		padding: 44px clamp(20px, 2.5vw, 36px) 40px;
	}

	.gnb__depth2-link {
		font-size: clamp(18px, 1.05vw, 18px);
	}

	.gnb__depth3-link {
		font-size: clamp(13px, 0.9vw, 16px);
	}
}

@media (max-width: 1280px) {
	.gnb__panel {
		width: calc(min(100vw, var(--layout-max)) - var(--sidebar-w) + 1px);
	}

	.page-container.is-sidebar-folded .gnb__panel {
		width: calc(min(100vw, var(--layout-max)) - var(--sidebar-w-folded) + 1px);
	}

	.gnb__depth2 {
		column-gap: 24px;
	}

	.gnb__panel-inner {
		padding: 40px 28px 36px;
	}

	.hero-quick-bar {
		right: calc((100vw - min(100vw, var(--layout-max))) / 2 + 12px);
		gap: 8px;
	}
}

@media (max-width: 1200px) {
	:root {
		--sidebar-w: 200px;
	}

	.hero-swiper {
		height: clamp(260px, 75svh, 720px) !important;
	}

	.about-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px clamp(16px, 3vw, 32px);
	}

	.notice-board__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.academic-cal__quick {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 16px 12px;
	}

	.academic-cal__inner {
		padding: 64px var(--inner-pad-x) 64px;
	}

	.academic-cal__schedule-slider {
		margin-bottom: 64px;
	}

	.section--notice-board {
		padding: 56px 0 64px;
	}

	.section--kwu-sns {
		padding: 56px 0 64px;
	}

	.section--about {
		padding: 0 0 64px;
	}

	.dept-map__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 28px 20px;
	}

	.dept-map__body {
		padding: 24px 20px 30px;
	}

	.dept-map__grid > .dept-map__col:nth-child(1) .dept-map__col-split,
	.dept-map__grid > .dept-map__col:nth-child(4) .dept-map__col-split {
		grid-template-columns: 1fr 1fr;
		gap: 0 14px;
	}

	.dept-map__grid > .dept-map__col:nth-child(1) .dept-map__list a,
	.dept-map__grid > .dept-map__col:nth-child(4) .dept-map__list a {
		font-size: 14px;
	}

	.dept-map {
		padding: 48px 0;
	}

	.hero-swiper__progress {
		width: min(250px, 40vw);
	}
}

@media (max-width: 1024px) {
	.hero-swiper {
		height: clamp(240px, 68svh, 600px) !important;
	}

	.about-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px clamp(14px, 2.5vw, 24px);
	}

	.der__tabs {
		gap: 20px 24px;
	}

	.notice-board__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.notice-board__tab {
		font-size: 18px;
		padding: 12px 14px;
	}

	.academic-cal {
		height: auto;
		min-height: 560px;
	}

	.academic-cal__schedule-page {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.academic-cal__schedule-page .academic-cal__event:nth-child(2) {
		border-right: 0;
	}

	.academic-cal__schedule-page .academic-cal__event:last-child {
		grid-column: 1 / -1;
		border-right: 0;
		border-top: 1px solid #e8e8e8;
	}

	.academic-cal__quick {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.academic-cal__quick-label {
		font-size: 16px;
	}

	.sns-board__head {
		gap: 16px 20px;
	}

	.sns-board__promo {
		font-size: 14px;
		padding: 9px 18px;
	}

	.dept-map__inner {
		padding: 0 var(--inner-pad-x);
	}

	.footer-main {
		padding: 24px var(--inner-pad-x) 32px;
	}

	.footer-links {
		font-size: 15px;
	}

	.footer-address {
		font-size: 15px;
	}
}

/* ----- 태블릿 / 모바일 ----- */
@media (max-width: 900px) {
	.page-container,
	.page-container.is-sidebar-folded {
		padding-left: 0;
		transition: none;
	}

	.side-nav-drawer {
		display: flex;
		align-items: stretch;
		position: fixed;
		top: var(--top-banner-h);
		bottom: 0;
		left: 0;
		width: calc(min(300px, 86vw) + 40px);
		z-index: 200;
		transform: translateX(-100%);
		transition: transform 0.28s ease;
		pointer-events: none;
		overflow: hidden;
	}

	.side-nav-drawer.is-open {
		transform: translateX(0);
		pointer-events: auto;
		overflow: visible;
	}

	.side-nav,
	.side-nav.is-folded {
		position: relative;
		top: auto;
		left: auto;
		flex: 0 0 min(300px, 86vw);
		width: min(300px, 86vw);
		max-width: min(300px, 86vw);
		height: calc(100dvh - var(--top-banner-h));
		transform: none;
		transition: none;
		overflow: hidden;
	}

	.side-nav.is-open {
		transform: none;
		overflow-x: hidden;
		overflow-y: auto;
	}

	.side-nav-drawer .side-nav__close {
		display: inline-flex;
		position: relative;
		flex: 0 0 40px;
		top: auto;
		left: auto;
		align-self: flex-start;
		z-index: 1;
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0;
		border: 0;
		background-color: var(--kwu-primary);
		color: #fff;
		font-size: 18px;
		line-height: 1;
		cursor: pointer;
		align-items: center;
		justify-content: center;
	}

	.side-nav__inner {
		min-height: 100%;
		display: flex;
		flex-direction: column;
		padding-bottom: 14px;
	}
	.side-nav__logo {
		max-height: 100px;
	}
	.side-nav__logo img {
		width: 120px;
		max-width: 120px;
	}

	.side-nav__nav {
		flex-shrink: 0;
		padding: 30px 4px 8px 0;
	}

	.side-nav__util {
		flex-shrink: 0;
		margin-top: 18px;
		padding: 20px 0 0;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		width: 100%;
		align-items: stretch;
		justify-items: stretch;
	}

	.side-nav__util::before {
		left: 0;
		right: 0;
		width: 100%;
		transform: none;
	}

	.side-nav__util a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 40px;
		padding: 5px 12px;
		border: 1px solid rgba(255, 255, 255, 0.35);
		border-radius: 6px;
		background: rgba(255, 255, 255, 0.08);
		font-size: 14px;
		font-weight: 600;
		text-align: center;
		gap: 0px;
		color: #fff;
	}

	.side-nav__util a:hover {
		background: rgba(255, 255, 255, 0.14);
		color: #fff;
	}

	.side-nav__util .lang-box {
		grid-column: 1 / -1;
		justify-self: center;
	}

	.side-nav.is-folded .side-nav__logo {
		max-height: 200px;
		opacity: 1;
		pointer-events: auto;
	}

	.side-nav.is-folded .side-nav__fold-mark,
	.side-nav.is-folded .side-nav__fold-bg,
	.side-nav.is-folded .side-nav__scroll-hint {
		display: none;
	}

	.side-nav.is-folded .side-nav__nav,
	.side-nav.is-folded .side-nav__util {
		max-height: 720px;
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.nav-backdrop {
		display: block;
	}

	.nav-backdrop[hidden] {
		display: none;
	}

	.gnb-backdrop {
		display: none !important;
	}

	.gnb__link {
		text-align: left;
		font-size: 17px;
		padding: 4px 0;
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
	}

	.gnb__link-text {
		flex: 0 1 auto;
		min-width: 0;
	}

	.gnb__link-icon--toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		width: 20px;
		font-size: 16px;
		opacity: 0.9;
	}

	.gnb__link-icon--toggle .fa-angle-up {
		display: none;
	}

	.gnb__link:has(.gnb__link-icon--external) {
		justify-content: flex-start;
	}

	.gnb__item.is-open > .gnb__link .gnb__link-icon--toggle .fa-angle-down {
		display: none;
	}

	.gnb__item.is-open > .gnb__link .gnb__link-icon--toggle .fa-angle-up {
		display: inline-block;
	}

	.gnb__item + .gnb__item {
		margin-top: 18px;
	}

	.gnb__panel {
		position: static;
		left: auto;
		right: auto;
		width: auto;
		height: auto;
		max-height: none;
		margin-top: 10px;
		border: 0;
		box-shadow: none;
		background: rgba(255, 255, 255, 0.08);
		border-radius: 8px;
		transform: none;
		opacity: 1;
		visibility: hidden;
		max-height: 0;
		overflow: hidden;
		pointer-events: none;
		transition:
			max-height 0.32s ease,
			visibility 0.28s ease,
			margin 0.28s ease;
	}

	.gnb__item.is-open > .gnb__panel,
	.gnb__panel.is-open {
		visibility: visible;
		max-height: none;
		overflow: visible;
		pointer-events: auto;
	}

	.gnb__panel-inner {
		display: block;
		justify-content: flex-start;
		min-height: 0;
		height: auto;
		padding: 20px 12px 18px;
		max-height: none;
		overflow: visible;
	}

	.gnb__panel-title {
		display: none;
	}

	.gnb__depth2 {
		display: flex;
		flex-direction: column;
		grid-template-rows: none;
		grid-auto-flow: row;
		gap: 14px;
	}

	.gnb__depth2-item:nth-child(2n) {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}

	.gnb__depth2-link {
		color: #fff;
		font-size: 15px;
		margin-bottom: 6px;
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
	}

	.gnb__depth2-link:hover {
		color: #fff;
		opacity: 0.85;
	}

	.gnb__depth3-link {
		color: rgba(255, 255, 255, 0.78);
		font-size: 13px;
		padding-left: 8px;
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
	}

	.gnb__depth3-link:hover {
		color: #fff;
	}

	.gnb__depth-link-text {
		flex: 0 1 auto;
		min-width: 0;
	}

	.mobile-topbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		position: relative;
		z-index: 110;
		min-height: var(--mobile-topbar-h);
		padding: 10px var(--inner-pad-x);
		background: var(--kwu-primary);
		color: #fff;
	}

	.mobile-topbar h1 {
		font-size: clamp(15px, 4vw, 17px);
		font-weight: 700;
	}

	.mobile-topbar__brand {
		margin: 0;
		min-width: 0;
		flex: 1;
		line-height: 0;
	}

	.mobile-topbar__logo-link {
		display: inline-flex;
		align-items: center;
		max-width: min(220px, 58vw);
	}

	.mobile-topbar__logo {
		display: block;
		width: auto;
		height: auto;
		max-height: 34px;
		max-width: 100%;
		object-fit: contain;
	}

	.mobile-topbar__buttons {
		display: flex;
		align-items: center;
		gap: 2px;
		flex-shrink: 0;
	}

	.mobile-topbar__button,
	.mobile-topbar__button:visited,
	.mobile-topbar__toggle,
	.mobile-topbar .lang-box__trigger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		color: #fff;
		font-size: 18px;
		line-height: 1;
		cursor: pointer;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.mobile-topbar__button:hover,
	.mobile-topbar__toggle:hover,
	.mobile-topbar .lang-box__trigger:hover {
		background: rgba(255, 255, 255, 0.12);
		color: #fff;
		text-decoration: none;
	}

	.mobile-topbar__toggle-bars {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: stretch;
		gap: 5px;
		width: 20px;
	}

	.mobile-topbar__toggle-bars span {
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 999px;
		background: currentColor;
	}

	.mobile-topbar .lang-box {
		position: relative;
		width: auto;
	}

	.mobile-topbar .lang-box__trigger {
		min-height: 0;
		gap: 0;
	}

	.mobile-topbar .lang-box.is-open .lang-box__trigger {
		background: rgba(255, 255, 255, 0.12);
		color: #fff;
	}

	.mobile-topbar .lang-box__menu,
	.mobile-topbar #mLangBox .lang-box__menu {
		top: calc(100% + 8px);
		left: 50%;
		right: auto;
		bottom: auto;
		transform: translateX(-50%);
		min-width: 148px;
		z-index: 120;
	}

	body.has-top-banner-open .mobile-topbar .lang-box__menu,
	body.has-top-banner-open .mobile-topbar #mLangBox .lang-box__menu {
		top: calc(100% + 8px);
		bottom: auto;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
	}

	.side-nav__util #langBox {
		width: 100%;
		max-width: 100%;
	}

	.side-nav__util #langBox .lang-box__trigger {
		width: 100%;
		justify-content: center;
	}

	.side-nav__util #langBox .lang-box__menu {
		top: calc(100% + 8px);
		bottom: auto;
		left: 0;
		right: 0;
		transform: none;
		min-width: 0;
		width: 100%;
		z-index: 30;
	}

	body.has-top-banner-open .side-nav__util #langBox .lang-box__menu {
		top: calc(100% + 8px);
		bottom: auto;
		transform: none;
	}

	.side-nav__util #langBox.lang-box--drop-up .lang-box__menu {
		top: auto;
		bottom: calc(100% + 8px);
	}

	.hero-swiper {
		height: clamp(260px, calc(58svh + 40px), 560px) !important;
		min-height: 0;
	}

	.hero-quick-bar {
		top: auto;
		bottom: max(
			calc(var(--hero-bottom-quick-h) + 20px),
			calc(var(--chatbot-widget-offset) + 12px + env(safe-area-inset-bottom, 0px))
		);
		right: 10px;
		transform: none;
		gap: 8px;
	}

	.hero-swiper__progress {
		bottom: 50px;
		left: var(--inner-pad-x);
		right: var(--inner-pad-x);
		width: 30%;
		max-width: none;
		
	}

	.hero-swiper__pagination {
		bottom: 16px;
	}

	.quick-service {
		align-items: flex-end;
		justify-content: center;
		padding: 0;
	}

	.quick-service__dialog {
		width: 100%;
		max-width: none;
		max-height: min(90dvh, calc(100dvh - env(safe-area-inset-top, 0px)));
		padding-bottom: env(safe-area-inset-bottom, 0px);
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.22);
	}

	.quick-service__header {
		padding: 14px 16px;
	}

	.quick-service__title {
		font-size: 16px;
	}

	.quick-service__body {
		-webkit-overflow-scrolling: touch;
	}

	.quick-accordion {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-areas:
			"tab1 tab2 tab3"
			"panel panel panel";
	}

	.quick-accordion__item {
		display: contents;
	}

	.quick-accordion__item:nth-child(1) .quick-accordion__trigger {
		grid-area: tab1;
	}

	.quick-accordion__item:nth-child(2) .quick-accordion__trigger {
		grid-area: tab2;
	}

	.quick-accordion__item:nth-child(3) .quick-accordion__trigger {
		grid-area: tab3;
	}

	.quick-accordion__trigger {
		justify-content: center;
		gap: 6px;
		padding: 10px 8px;
		border-right: 1px solid #dde1ea;
		border-bottom: 1px solid #dde1ea;
		font-size: 12px;
		text-align: center;
	}

	.quick-accordion__item:last-child .quick-accordion__trigger {
		border-right: 0;
	}

	.quick-accordion__item.is-open .quick-accordion__trigger {
		border-bottom: none;
	}

	.quick-accordion__icon {
		width: 28px;
		height: 28px;
		font-size: 13px;
		border-radius: 6px;
	}

	.quick-accordion__label {
		white-space: normal;
		line-height: 1.25;
		word-break: keep-all;
	}

	.quick-accordion__panel {
		grid-area: panel;
		grid-column: 1 / -1;
		padding: 12px;
		border-top: 0;
		background: #fff;
	}

	.quick-service-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}

	.quick-service-grid a {
		font-size: 13px;
		min-height: 0;
		padding: 8px 4px;
		gap: 6px;
	}

	.quick-service-grid__icon {
		width: 43px;
		height: 43px;
	}

	.quick-service-grid__icon img {
		max-width: 100%;
		height: auto;
	}

	.hero {
		--hero-bottom-quick-h: 132px;
		--hero-caption-bottom: 64px;
	}

	.hero__caption {
		bottom: var(--hero-caption-bottom);
	}

	.hero__bottom-quick {
		bottom: 0px;
		position: relative;
	}

	.hero__bottom-quick.is-carousel {
		display: flex;
		align-items: center;
		gap: 4px;
		padding: 0 max(4px, calc(var(--inner-pad-x) - 6px));
		box-sizing: border-box;
	}

	.hero__bottom-quick.is-carousel .hero-bottom-quick__nav {
		display: inline-flex;
	}

	.hero__bottom-quick.is-carousel.is-nav-hidden .hero-bottom-quick__nav {
		display: none;
	}

	.hero__bottom-quick.is-carousel .hero__bottom-quick-swiper {
		overflow: hidden;
	}

	.hero__bottom-quick.is-carousel .hero__bottom-quick-inner {
		display: flex;
		max-width: none;
		margin: 0;
		padding: 12px 0;
		gap: 0;
	}

	.hero__bottom-quick.is-carousel .hero__bottom-quick-item {
		max-width: 100%;
	}

	.hero__bottom-quick-inner {
		gap: 24px 6px;
		padding: var(--inner-pad-x);
	}

	.hero__bottom-quick-item {
		max-width: 120px;
	}

	.hero__bottom-quick-icon img {
		height: 34px;
	}

	.hero__bottom-quick-label {
		padding: 6px 8px;
		font-size: 13px;
	}

	.section--kwu-sns {
		padding: 56px 0 72px;
	}

	.sns-board__head {
		margin-bottom: 26px;
	}

	.sns-board__head-left {
		gap: 12px 14px;
	}

	.sns-board__icons {
		gap: 8px;
	}

	.sns-board__icon-link img {
		height: 40px;
	}

	.sns-board__promo {
		padding: 10px 16px;
		font-size: 14px;
	}

	.sns-board__tab {
		font-size: 18px;
	}

	.sns-board__tabs {
		gap: 24px;
	}

	.kwsns-swiper__nav {
		width: 32px;
		height: 32px;
		font-size: 12px;
	}

	.kwsns-swiper__nav--prev {
		left: 4px;
	}

	.kwsns-swiper__nav--next {
		right: 4px;
	}

	.about-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-card {
		max-width: 100%;
		margin-bottom: 32px;
	}

	.about-card__desc {
		display: none;
	}

	.section--about {
		padding: 0 0 48px;
	}

	.der__tabs {
		gap: 16px 20px;
		margin-bottom: 28px;
	}

	.der__tab {
		font-size: 18px;
	}

	.notice-board {
		padding: 0;
	}

	.notice-board__head {
		margin-bottom: 28px;
	}

	.notice-board__title {
		font-size: clamp(28px, 6vw, 36px);
	}

	.sns-board__head {
		flex-direction: column;
		align-items: flex-start;
	}

	.sns-board__promo {
		margin-left: 0;
	}

	.academic-cal__inner {
		padding: 56px var(--inner-pad-x) 48px;
	}

	.academic-cal__head {
		margin-bottom: 32px;
	}

	.academic-cal__schedule-slider {
		margin-bottom: 48px;
	}

	.academic-cal__arrow {
		width: 40px;
		font-size: 16px;
	}

	.section--dept-map {
		display: none;
	}

	.dept-map {
		padding: 40px 20px;
	}

	.dept-map__mobile-actions {
		display: block;
		position: relative;
		z-index: 150;
		margin-top: var(--top-banner-h);
		padding: 0;
		background: transparent;
		transition: margin-top 0.35s ease;
	}

	.main-content {
		margin-top: 0;
	}

	.dept-map__mobile-bar {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.dept-map__mobile-dept {
		min-width: 0;
		border-left: 1px solid rgba(0, 0, 0, 0.22);
	}

	.dept-map__mobile-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-width: 0;
		min-height: 48px;
		margin: 0;
		padding: 0 16px;
		border: 0;
		border-radius: 0;
		font-family: var(--font-sans);
		font-size: 16px;
		font-weight: 700;
		line-height: 1.3;
		color: #fff;
		text-align: center;
		text-decoration: none;
		box-sizing: border-box;
		cursor: pointer;
	}

	.dept-map__mobile-btn--ipsi {
		background: #1E3A61;
	}

	.dept-map__mobile-btn--ipsi:hover,
	.dept-map__mobile-btn--ipsi:focus-visible {
		background: #13253f;
		color: #fff;
	}

	.dept-map__mobile-btn--dept {
		position: relative;
		background: #63A683;
		padding-right: 36px;
	}

	.dept-map__mobile-btn--dept:hover,
	.dept-map__mobile-btn--dept:focus-visible,
	.dept-map__mobile-actions.is-dept-open .dept-map__mobile-btn--dept {
		background: #437c5f;
		color: #fff;
	}

	.dept-map__mobile-btn__icon {
		position: absolute;
		top: 50%;
		right: 14px;
		transform: translateY(-50%);
		font-size: 14px;
		pointer-events: none;
	}

	.dept-map__mobile-actions.is-dept-open .dept-map__mobile-btn__icon {
		transform: translateY(-50%) rotate(180deg);
	}

	.dept-map__mobile-dropdown {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 20;
		max-height: min(70vh, 420px);
		overflow-x: hidden;
		overflow-y: auto;
		background: #fff;
		border-top: 1px solid #d8d8d8;
		box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
		-webkit-overflow-scrolling: touch;
	}

	.dept-map__mobile-dropdown-cat {
		margin: 0;
		padding: 12px 14px 6px;
		font-size: 14px;
		font-weight: 600;
		line-height: 1.4;
		color: #222;
		text-align: center;
	}

	.dept-map__mobile-dropdown-list {
		margin: 0;
		padding: 0 0 10px;
		list-style: none;
	}

	.dept-map__mobile-dropdown-list a {
		display: block;
		padding: 7px 16px;
		font-size: 14px;
		line-height: 1.45;
		color: #222;
		text-decoration: none;
	}

	.dept-map__mobile-dropdown-list a:hover,
	.dept-map__mobile-dropdown-list a:focus-visible {
		background: #eef3f9;
		outline: none;
	}

	.dept-map__block--univ .dept-map__body {
		display: none;
	}

	.dept-map__inner {
		padding: 0;
	}

	.sub-content {
		padding: 40px 0 56px;
	}

	.sub-content__title {
		margin-bottom: 28px;
	}

	.notice-board__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 0 var(--inner-pad-x);
	}

	.dept-map__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 18px;
	}

	.dept-map__grid > .dept-map__col:nth-child(1) .dept-map__col-split,
	.dept-map__grid > .dept-map__col:nth-child(4) .dept-map__col-split {
		grid-template-columns: 1fr;
		gap: 12px 0;
	}

	.dept-map__row {
		grid-template-columns: 1fr;
	}

	.notice-board__tabs {
		max-width: 100%;
	}

	.academic-cal__schedule-page {
		grid-template-columns: 1fr;
	}

	.academic-cal__schedule-page .academic-cal__event {
		border-right: 0;
		border-bottom: 1px solid #e8e8e8;
	}

	.academic-cal__schedule-page .academic-cal__event:last-child {
		border-bottom: 0;
	}

	.academic-cal__quick {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 40px 12px;

	}

	.academic-cal {
		height: auto;
		min-height: 700px;
	}
}

@media (max-width: 300px) {
	.quick-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.quick-service-grid a {
		font-size: 12px;
	}

	.quick-service-grid__icon {
		width: 44px;
		height: 44px;
	}
}

@media (max-width: 600px) {
	.section--about {
		padding: 40px 0 56px;
	}

	.der__tabs {
		gap: 18px;
	}

	.der__tab {
		font-size: 16px;
	}

	.about-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 10px;
		max-width: none;
		margin-left: auto;
		margin-right: auto;
	}

	.about-card {
		width: 100%;
		max-width: 100%;
		margin-bottom: 24px;
	}

	.hero {
		--hero-bottom-quick-h: 168px;
		--hero-caption-bottom: 60px;
	}

	.hero-swiper {
		height: clamp(240px, calc(50svh + 40px), 440px) !important;
		min-height: 0;
	}

	.hero-quick-bar {
		bottom: max(
			calc(var(--hero-bottom-quick-h) + 12px),
			calc(var(--chatbot-widget-offset) + 12px + env(safe-area-inset-bottom, 0px))
		);
		right: 8px;
	}

	.hero__bottom-quick-item {
		max-width: 100%;
	}

	.hero__bottom-quick-label {
		padding: 6px 8px;
		font-size: 12px;
	}

	.section--kwu-sns {
		padding: 46px 0 58px;
	}

	.sns-board__head {
		gap: 14px;
		margin-bottom: 18px;
	}

	.sns-board__head-left {
		width: 100%;
		gap: 10px 12px;
	}

	.sns-board__icons {
		gap: 6px;
	}

	.sns-board__icon-link img {
		height: 34px;
	}

	.sns-board__promo {
		margin-left: auto;
		padding: 9px 14px;
		font-size: 13px;
	}

	.sns-board__tabs {
		gap: 20px;
		width: 100%;
	}

	.sns-board__tab {
		font-size: 17px;
		padding-bottom: 9px;
	}

	.kwsns-card__badge {
		width: 30px;
		height: 30px;
		left: 8px;
		bottom: 8px;
	}

	.kwsns-card__badge img {
		width: 18px;
		height: 18px;
	}

	.dept-map__head {
		font-size: 19px;
		padding: 12px 14px;
	}

	.dept-map__body {
		padding: 20px 16px 24px;
	}

	.dept-map__grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.dept-map__col-split {
		grid-template-columns: 1fr;
		gap: 12px 0;
	}

	.dept-map__col-title {
		font-size: 15px;
	}

	.dept-map__list a {
		font-size: 13px;
	}

	.dept-map__links {
		flex-direction: column;
		gap: 10px;
	}


	.dept-map__links li {text-align: left; width: 100%;}
	.dept-map__block--sites .dept-map__links li {text-align: left; width: 100%;}


	.dept-map__block--sites .dept-map__links {
		grid-template-columns: 1fr;
	}

	.section--notice-board {
		padding: 48px 0 56px;
	}

	.notice-board__tabs {
		justify-content: flex-start;
		margin-bottom: 28px;
		padding-bottom: 4px;
	}

	.notice-board__tab {
		font-size: 15px;
		padding: 12px 14px;
	}

	.notice-board__grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.notice-card {
		min-height: 120px;
		padding: 20px 18px 18px;
	}

	.notice-card__title {
		font-size: 16px;
	}

	.academic-cal__inner {
		padding: 48px 16px 40px;
	}

	.academic-cal__quick {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 12px;
	}

	.academic-cal__quick-label {
		font-size: 13px;
	}

	.academic-cal__event {
		padding: 18px 16px;
	}

	.academic-cal__date-badge {
		width: 64px;
		min-height: 64px;
	}

	.hero__caption {
		left: 14px;
		right: 14px;
		max-width: none;
	}

	.footer-main {
		padding: 20px var(--inner-pad-x) 28px;
		margin-top: 12px;
	}

	.footer-links {
		gap: 8px 10px;
		font-size: 14px;
	}

	.footer-address {
		font-size: 14px;
		margin-top: 20px;
	}

	.footer-copy {
		font-size: 13px;
	}

	.sub-hero {
		height: 240px;
	}

	.sub-hero__inner {
		padding-bottom: 48px;
	}

	.sub-hero__title {
		font-size: clamp(24px, 7vw, 32px);
	}

	.sub-hero__breadcrumb-list {
		font-size: 13px;
	}

	.sub-nav-bar__home {
		width: 48px;
		font-size: 16px;
	}

	.sub-nav-bar__select {
		height: 46px;
		font-size: 15px;
		padding: 0 32px 0 12px;
	}

	.sub-nav-bar__btn {
		width: 46px;
		height: 46px;
		font-size: 14px;
	}

	.sub-content {
		padding: 32px 0 48px;
	}

	.sub-content__head {
		margin-bottom: 20px;
	}

	.sub-content__title {
		margin-bottom: 24px;
	}

	.philosophy-card {
		padding: 28px 18px 24px;
	}

	.philosophy-card__char {
		font-size: 42px;
	}
}

@media (max-width: 480px) {
	:root {
		--inner-pad-x: 14px;
	}

	.hero {
		--hero-bottom-quick-h: 132px;
		--hero-caption-bottom: 56px;
	}

	.hero-swiper {
		height: clamp(220px, calc(44svh + 40px), 360px) !important;
	}

	.hero__bottom-quick-icon img {
		height: 28px;
	}

	.hero__bottom-quick-label {
		font-size: 11px;
		padding: 5px 6px;
	}

	.hero-quick-bar {
		bottom: max(
			calc(var(--hero-bottom-quick-h) + 8px),
			calc(var(--chatbot-widget-offset) + 12px + env(safe-area-inset-bottom, 0px))
		);
	}

	.der__tab {
		font-size: 15px;
		padding-bottom: 10px;
	}

	.notice-board__tab {
		font-size: 14px;
		padding: 10px 12px;
	}

	.sns-board__tab {
		font-size: 15px;
	}

	.academic-cal__event-title {
		font-size: 17px;
	}

	.footer-links li + li::before {
		margin-right: 8px;
	}
}

/* ----- Sub Page ----- */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.sub-hero {
	position: relative;
	width: 100%;
	height: 360px;
	overflow: visible;
	z-index: 1;
}

.sub-hero__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.sub-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}

.sub-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.48);
}

.sub-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 0 var(--inner-pad-x) 64px;
	color: #fff;
	text-align: center;
	box-sizing: border-box;
}

.sub-hero__title {
	margin: 0 0 14px;
	font-size: clamp(32px, 3vw, 44px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.0em;
}

.sub-hero__breadcrumb-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 10px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 15px;
}

.sub-hero__breadcrumb-list li:not([aria-current="page"]) {
	opacity: 0.92;
}

.sub-hero__breadcrumb-list li + li::before {
	content: "/";
	margin-right: 10px;
	opacity: 0.7;
}

.sub-hero__breadcrumb-list li[aria-current="page"] {
	color: #a5ffec;
}
.sub-hero__breadcrumb-list li::before { color: #fff;}

.sub-nav-bar {
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 2;
	display: flex;
	align-items: stretch;
	width: calc(100% - var(--inner-pad-x) - var(--inner-pad-x));
	max-width: var(--sub-layout-max);
	margin: 0;
	transform: translateX(-50%);
	background: transparent;
	color: #fff;
	isolation: isolate;
}

.sub-nav-bar__select-wrap {
	flex: 1;
	min-width: 0;
	background: rgba(0, 0, 0, 0.5);
	position: relative;
	z-index: 1;
}

.sub-nav-bar__select {
	width: 100%;
	height: 52px;
	padding: 0 36px 0 16px;
	border: 0;
	background-color: rgba(0, 0, 0, 0);
	color: #fff;
	font-family: var(--font-sans);
	font-size: 18px;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	position: relative;
	z-index: 1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}

html:has(.gnb.is-active) .sub-nav-bar__select,
html:has(.gnb.is-active) .sub-nav-bar__select-wrap {
	z-index: 0;
	pointer-events: none;
}

.sub-nav-bar__home {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	flex-shrink: 0;
	background: var(--kwu-primary);
	color: #fff;
	font-size: 18px;
}

.sub-nav-bar__selects {
	display: flex;
	flex: 1;
	min-width: 0;
}

.sub-nav-bar__select option {
	color: #222;
	background: #fff;
}

.sub-nav-bar__select:focus {
	outline: 2px solid rgba(255, 255, 255, 0.45);
	outline-offset: -2px;
}

.sub-nav-bar__util {
	display: flex;
	flex-shrink: 0;
	background: rgba(0, 0, 0, 0.5);
}

.sub-nav-bar__btn {
	width: 52px;
	height: 52px;
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	font-size: 16px;
}

.sub-content {
	padding: 56px 0 72px;
	background: #fff;
	overflow: visible;
}

.main-content--sub {
	min-height: auto;
	overflow: visible;
}

.page-container:has(.main-content--sub) {
	min-height: auto;
	overflow: visible;
}

.sub-content .board_write,
.sub-content .board_write .write_box {
	overflow: visible;
}

.sub-content__inner {
	width: calc(100% - var(--inner-pad-x) - var(--inner-pad-x));
	max-width: var(--sub-layout-max);
	margin: 0 auto;
	padding: 0;
}

.sub-content__head {
	margin-bottom: 36px;
}

.sub-content__head .sub-content__title {
	margin-bottom: 0;
}

.sub-nav-bar__util--content {
	display: none;
}

.sub-content__title {
	margin: 0 0 36px;
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 700;
	text-align: center;
	color: var(--kwu-text);
	letter-spacing: -0.02em;
}

.sub-content__intro {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px 32px;
	margin-bottom: 48px;
	font-size: 15px;
	line-height: 1.75;
	color: var(--kwu-text);
	text-align: center;
}

.sub-content__intro p {
	margin: 0;
}

.philosophy-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid #ddd;
}

.philosophy-card {
	padding: 40px 24px 36px;
	text-align: center;
	border-right: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.philosophy-card:nth-child(3n) {
	border-right: 0;
}

.philosophy-card:nth-child(n + 4) {
	border-bottom: 0;
}

.philosophy-card__char {
	margin: 0 0 8px;
	font-size: 52px;
	line-height: 1;
	font-family: "Batang", "Times New Roman", serif;
	color: var(--kwu-text);
}

.philosophy-card__name {
	margin: 0 0 16px;
	font-size: 15px;
	color: var(--kwu-muted);
}

.philosophy-card__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.65;
	color: var(--kwu-text);
}

.sub-quick-links {
	border-top: 1px solid #e5e5e5;
	background: #fff;
}

.sub-quick-links__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: var(--content-max);
	margin: 0 auto;
}

.sub-quick-links__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 56px;
	padding: 0 24px;
	border-right: 1px solid #e5e5e5;
	font-size: 15px;
	color: var(--kwu-text);
}

.sub-quick-links__item:last-child {
	border-right: 0;
}

.sub-quick-links__item i {
	flex-shrink: 0;
	font-size: 14px;
	color: var(--kwu-primary);
}

@media (max-width: 1024px) {
	.sub-content__intro {
		grid-template-columns: 1fr;
		text-align: left;
	}

	.philosophy-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.philosophy-card:nth-child(3n) {
		border-right: 1px solid #ddd;
	}

	.philosophy-card:nth-child(2n) {
		border-right: 0;
	}

	.philosophy-card:nth-child(n + 4) {
		border-bottom: 1px solid #ddd;
	}

	.philosophy-card:nth-child(n + 5) {
		border-bottom: 0;
	}
}

@media (max-width: 900px) {
	.sub-hero {
		height: 280px;
		overflow: visible;
	}

	.sub-hero__inner {
		padding-bottom: 56px;
	}

	.sub-nav-bar {
		position: absolute;
		left: 50%;
		bottom: 0;
		width: calc(100% - 28px);
		transform: translateX(-50%);
		flex-wrap: nowrap;
	}

	.sub-nav-bar__util--bar {
		display: none;
	}

	.sub-nav-bar__selects {
		flex-direction: row;
		flex: 1;
		min-width: 0;
		width: auto;
	}

	.sub-nav-bar__select-wrap {
		border-top: 0;
		min-width: 0;
	}

	.sub-nav-bar__select-wrap + .sub-nav-bar__select-wrap {
		border-left: 1px solid rgba(255, 255, 255, 0.12);
	}

	.sub-nav-bar__select {
		font-size: 14px;
		padding: 0 28px 0 10px;
		background-position: right 10px center;
	}

	/* 1·2뎁스(및 마지막 이전 뎁스): 화살표만 표시, select는 투명 오버레이로 선택값 유지 */
	.sub-nav-bar__select-wrap:not(:last-child) {
		position: relative;
		flex: 0 0 40px;
		width: 40px;
		max-width: 40px;
		min-width: 40px;
		overflow: visible;
	}

	.sub-nav-bar__select-wrap:not(:last-child)::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: center;
		pointer-events: none;
	}

	.sub-nav-bar__select-wrap:not(:last-child) .sub-nav-bar__select {
		position: relative;
		z-index: 1;
		width: 100%;
		min-width: 0;
		margin: 0;
		padding: 0;
		opacity: 0;
		font-size: 16px;
		line-height: normal;
		color: #222;
		background: transparent;
		background-image: none;
		cursor: pointer;
	}

	.sub-nav-bar__select-wrap:last-child {
		flex: 1 1 0%;
		min-width: 0;
		max-width: none;
	}

	.sub-nav-bar__select-wrap:last-child .sub-nav-bar__select {
		width: 100%;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.sub_content {
		padding-left: 0;
		padding-right: 0;
	}

	.sub-content__inner {
		width: 100%;
		max-width: none;
		padding-left: 20px;
		padding-right: 20px;
	}

	.sub-content__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		margin-bottom: 24px;
	}

	.sub-content__head .sub-content__title {
		flex: 1;
		min-width: 0;
		text-align: left;
		font-size: clamp(22px, 5.5vw, 28px);
		line-height: 1.0em;
		word-break: break-all;
	}

	.sub-nav-bar__util--content {
		display: flex;
		flex-shrink: 0;
		background: rgba(0, 0, 0, 0.06);
		border-radius: 6px;
	}

	.sub-nav-bar__util--content .sub-nav-bar__btn {
		width: 38px;
		height: 38px;
		color: var(--kwu-primary);
		font-size: 14px;
	}

	.sub-quick-links__inner {
		grid-template-columns: 1fr;
	}

	.sub-quick-links__item {
		border-right: 0;
		border-bottom: 1px solid #e5e5e5;
	}

	.sub-quick-links__item:last-child {
		border-bottom: 0;
	}
}

@media (max-width: 600px) {
	.philosophy-grid {
		grid-template-columns: 1fr;
	}

	.philosophy-card {
		border-right: 0;
		border-bottom: 1px solid #ddd;
	}

	.philosophy-card:last-child {
		border-bottom: 0;
	}
}

/* ----- Top Banner (상단 공지) ----- */
.top-banner {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 260;
	width: 100%;
	background:#13614a;
	color: #fff;
	overflow: hidden;
	transition: transform 0.35s ease, opacity 0.35s ease;
}

.top-banner[hidden] {
	display: none !important;
}

.top-banner.is-closing {
	transform: translateY(-100%);
	opacity: 0;
	pointer-events: none;
}

.top-banner__inner {
	position: relative;
	width: 100%;
	max-width: var(--layout-max);
	margin: 0 auto;
	padding: 10px 52px;
	box-sizing: border-box;
	height:130px;
}

.top-banner__swiper {
	width: 100%;
	overflow: hidden;
	height: 100%;
}

.top-banner__slide {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	padding: 0px 0 6px;
	box-sizing: border-box;
	height:100%;
}

.top-banner__content {
	width: 100%;
	text-align: center;
	line-height: 1.5;
	height:100%;
}
.top-banner__content a { color:#fff;}
.top-banner__content img {
	display: inline-block;
	width: auto;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-banner__pagination {
	position: static !important;
	margin-top: 6px;
}

.top-banner__pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	background: rgba(255, 255, 255, 0.45);
	opacity: 1;
}

.top-banner__pagination .swiper-pagination-bullet-active {
	background: #fff;
}

.top-banner__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 18px;
	cursor: pointer;
}

.top-banner__nav--prev {
	left: 12px;
}

.top-banner__nav--next {
	right: 12px;
}

.top-banner__actions {
	position: absolute;
	right: 16px;
	bottom: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
}

.top-banner__today {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-weight: 300;
	user-select: none;
}

.top-banner__today input {
	margin: 0;
}

.top-banner__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.top-banner__close img {
	display: block;
	width: 17px;
	height: 17px;
}

.top-banner.is-single .top-banner__nav,
.top-banner.is-single .top-banner__pagination {
	display: none;
}

@media (max-width: 900px) {
	.top-banner__inner {
		padding: 0 40px 32px;
	}

	.top-banner__slide {
		min-height: 104px;
		padding-top: 12px;
	}

	.top-banner__nav {
		width: 32px;
		height: 32px;
		font-size: 16px;
	}

	.top-banner__nav--prev {
		left: 8px;
	}

	.top-banner__nav--next {
		right: 8px;
	}

	.top-banner__actions {
		right: 10px;
		bottom: 6px;
		font-size: 12px;
	}

	#react-chatbot-widget-container,
	[id^="chatbot-widget-host-"] {
		display: none !important;
	}
}

/* AOS: transform translate로 문서 높이가 늘어나 이중 스크롤이 생기는 것 방지 */
html body [data-aos]:not(.aos-animate) {
	transform: none !important;
}

html body [data-aos^="fade"][data-aos]:not(.aos-animate) {
	opacity: 0;
	transform: none !important;
}

html body [data-aos^="fade"][data-aos].aos-animate {
	opacity: 1;
	transform: none !important;
}

/* 문서 스크롤은 html만 담당 (body overflow-x:hidden 시 overflow-y:auto로 2중 스크롤 발생) */
html {
	overflow-x: hidden !important;
	overflow-y: auto !important;
}

body {
	overflow: visible !important;
}

/* ----- Bootstrap label reset (일부 서브 페이지 _CSS_FILE_ 로 bootstrap 로드) ----- */
label {
	display: inline !important;
	max-width: none !important;
	margin-bottom: 0 !important;
	font-weight: inherit !important;
}

.top-banner__today {
	display: inline-flex !important;
	font-weight: 300 !important;
}

.sub-nav-bar__select-wrap {
	display: block !important;
	flex: 1;
	min-width: 0;
}

/* ----- 게시판 작성 checkbox / label ----- */
.board_write table td input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 1px solid #c5c5c5;
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	vertical-align: middle;
	flex-shrink: 0;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease;
	margin-top: 3px;
}

.board_write table td input[type="checkbox"]:checked {
	border-color: var(--kwu-primary);
	background: var(--kwu-primary);
}

.board_write table td input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	top: 1px;
	left: 5px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.board_write table td input[type="checkbox"]:focus-visible {
	outline: 2px solid rgba(36, 148, 124, 0.4);
	outline-offset: 2px;
}

.board_write table td label:has(> input[type="checkbox"]) {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 4px 12px 4px 0;
	padding: 9px 16px;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #fff;
	font-size: 15px;
	font-weight: 500;
	color: #333;
	line-height: 1.4;
	cursor: pointer;
	vertical-align: middle;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease;
}

.board_write table td label:has(> input[type="checkbox"]:checked) {
	border-color: var(--kwu-primary);
	background: rgba(36, 148, 124, 0.08);
	color: var(--kwu-primary);
}

.board_write table td input[type="checkbox"] + label {
	display: inline-flex !important;
	align-items: center;
	margin: 0 16px 0 8px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 15px;
	font-weight: 500;
	color: #333;
	line-height: 1.4;
	cursor: pointer;
	vertical-align: middle;
}

.board_write table td input[type="checkbox"]:checked + label {
	color: var(--kwu-primary);
	font-weight: 600;
}

/* ----- Bootstrap input-group (서브 게시판 작성) ----- */
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group {
	display: inline-flex;
	align-items: stretch;
	width: auto;
	max-width: 100%;
	vertical-align: middle;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .form-control,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input-group-addon,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input-group-btn,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input_text {
	display: block;
	float: none;
	margin-bottom: 0;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .form-control,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input_text {
	flex: 0 0 auto;
	width: auto;
	min-width: 0;
	max-width: 100%;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .form-control.datepicker,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .form-control.hasDatepicker {
	width: 160px;
	max-width: 100%;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input-group-addon,
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group .input-group-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto;
	margin-left: -1px;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group > .form-control:not(:last-child),
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group > .input_text:not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group > .input-group-addon:not(:first-child),
.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group > .input-group-btn:not(:first-child) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group img.ui-datepicker-trigger {
	flex: 0 0 auto;
	align-self: center;
	margin-left: 4px;
}

.sub-content .sub-content__inner .board_write form .write_box table tr td span.input-group:has(.input-group-addon) img.ui-datepicker-trigger {
	display: none;
}

/* ----- Bootstrap anchor reset (bootstrap-override.css에서 기본 a 처리) ----- */
a:hover,
a:focus {
	text-decoration: none !important;
}

.sub-content a:hover,
.sub-content a:focus,
.sub-content__inner a:hover,
.sub-content__inner a:focus,
#container a:hover,
#container a:focus,
#mainContent a:hover,
#mainContent a:focus {
	color: inherit !important;
}

.side-nav a:hover,
.side-nav a:focus,
.gnb__link:hover,
.gnb__link:focus,
.gnb__depth2-link:hover,
.gnb__depth2-link:focus,
.gnb__depth3-link:hover,
.gnb__depth3-link:focus {
	color: #fff !important;
}

/* ----- jQuery UI datepicker trigger ----- */
img.ui-datepicker-trigger {
	display: inline-block;
	width: auto;
	max-width: none;
	height: auto;
	vertical-align: middle;
	cursor: pointer;
}



/* page contents */
.sub-content .sub-content__inner .intro_group .depth1 > li {position: relative; z-index: 1;}
.sub-content .sub-content__inner .intro_group .border_line1 .name:before {height: 333px !important;}