@charset "utf-8";

.ks-gallery {
	--ks-brand: #6d91b6;
	--ks-brand-dark: #345f82;
	--ks-brand-pale: #edf4f9;
	--ks-ink: #243342;
	--ks-muted: #6d7d8a;
	--ks-line: #dce6ed;
	--ks-bg: #f7fafc;
	--ks-white: #fff;
	--ks-danger: #b9545c;
	--ks-radius: 18px;
	--ks-shadow: 0 12px 32px rgba(50, 84, 111, .09);
	position: relative;
	color: var(--ks-ink);
	font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	word-break: keep-all;
}
.ks-gallery,
.ks-gallery * { box-sizing: border-box; }
.ks-gallery a { color: inherit; }
.ks-gallery img { max-width: 100%; border: 0; }
.ks-gallery fieldset { margin: 0; padding: 0; border: 0; }
.ks-gallery legend {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ks-gallery__admin { display: flex; justify-content: flex-end; margin: 0 0 12px; }
.ks-gallery__admin a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 7px 13px;
	border: 1px solid var(--ks-line);
	border-radius: 10px;
	background: #fff;
	color: var(--ks-muted);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
.ks-gallery__admin a:hover,
.ks-gallery__admin a:focus { border-color: var(--ks-brand); color: var(--ks-brand-dark); }

.ks-gallery__categories {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 26px;
	padding: 13px;
	border: 1px solid var(--ks-line);
	border-radius: 16px;
	background: #fff;
}
.ks-gallery__categories a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 8px 15px;
	border-radius: 999px;
	color: #526575;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}
.ks-gallery__categories a:hover,
.ks-gallery__categories a:focus { background: var(--ks-brand-pale); color: var(--ks-brand-dark); }
.ks-gallery__categories a.is-active { background: var(--ks-brand); color: #fff; }
.ks-gallery__categories a.is-child::before { content: "·"; margin-right: 6px; }

.ks-gallery-list__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 25px;
	padding: 30px 32px;
	border: 1px solid #cfdee9;
	border-radius: 22px;
	background: linear-gradient(135deg, #f9fcfe 0%, #eaf3f9 100%);
}
.ks-gallery-list__header h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; margin: 0; color: var(--ks-brand-dark); font-size: 30px; line-height: 1.3; letter-spacing: -.035em; }
.ks-gallery-list__english { color: var(--ks-brand); font-size: 14px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ks-gallery-list__separator { color: #9eb4c5; font-size: 20px; font-weight: 400; }
.ks-gallery-list__description { margin: 10px 0 0; color: #5e7384; font-size: 15px; }
.ks-gallery-list__count { margin: 0; color: var(--ks-muted); font-size: 14px; white-space: nowrap; }
.ks-gallery-list__count strong { color: var(--ks-brand-dark); font-size: 20px; }

.ks-gallery-grid { display: grid; gap: 22px; }
.ks-gallery-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ks-gallery-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ks-gallery-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.ks-gallery-card {
	min-width: 0;
	margin: 0;
	border: 1px solid var(--ks-line);
	border-radius: var(--ks-radius);
	background: #fff;
	box-shadow: 0 8px 24px rgba(56, 88, 113, .06);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.ks-gallery-card:hover,
.ks-gallery-card:focus-within { transform: translateY(-5px); border-color: #b8cfdf; box-shadow: var(--ks-shadow); }
.ks-gallery-card__link { display: block; height: 100%; color: inherit; text-decoration: none !important; }
.ks-gallery-card__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	background: #eaf0f4;
	overflow: hidden;
}
.ks-gallery-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ks-gallery-card:hover .ks-gallery-card__media img { transform: scale(1.045); }
.ks-gallery-card__media::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 36%;
	background: linear-gradient(to top, rgba(18, 35, 49, .35), transparent);
	pointer-events: none;
}
.ks-gallery-card__category,
.ks-gallery-card__comments {
	position: absolute;
	z-index: 1;
	top: 13px;
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .9);
	color: #345f82;
	font-size: 12px;
	font-weight: 800;
	backdrop-filter: blur(5px);
}
.ks-gallery-card__category { left: 13px; }
.ks-gallery-card__comments { right: 13px; }
.ks-gallery-card__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient(145deg, #eef3f7, #dce6ed);
	color: #718595;
}
.ks-gallery-card__empty > span { font-size: 34px; line-height: 1; }
.ks-gallery-card__empty em { margin-top: 10px; font-style: normal; font-size: 13px; font-weight: 700; }
.ks-gallery-card__body { padding: 18px 18px 17px; }
.ks-gallery-card__body h3 {
	min-height: 2.9em;
	margin: 0;
	color: #2c4050;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: -.02em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ks-gallery-card__summary {
	margin: 10px 0 0;
	color: var(--ks-muted);
	font-size: 13px;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ks-gallery-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 15px;
	padding-top: 13px;
	border-top: 1px solid #edf2f5;
	color: #83909a;
	font-size: 12px;
}
.ks-gallery-card__meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ks-gallery-empty {
	padding: 70px 24px;
	border: 1px dashed #cbd9e3;
	border-radius: 20px;
	background: #fbfdfe;
	text-align: center;
}
.ks-gallery-empty strong { color: var(--ks-brand-dark); font-size: 19px; }
.ks-gallery-empty p { margin: 8px 0 0; color: var(--ks-muted); font-size: 14px; }

.ks-gallery-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 7px;
	margin: 38px 0 30px;
}
.ks-gallery-pagination a,
.ks-gallery-pagination strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 11px;
	border: 1px solid var(--ks-line);
	border-radius: 11px;
	background: #fff;
	color: #627483;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
.ks-gallery-pagination a:hover,
.ks-gallery-pagination a:focus { border-color: var(--ks-brand); color: var(--ks-brand-dark); }
.ks-gallery-pagination strong { border-color: var(--ks-brand); background: var(--ks-brand); color: #fff; }
.ks-gallery-pagination__numbers { display: flex; gap: 7px; }
.ks-gallery-pagination__edge { color: #7b8994 !important; }

.ks-gallery-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 20px;
	border: 1px solid var(--ks-line);
	border-radius: 16px;
	background: var(--ks-bg);
}
.ks-gallery-search { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.ks-gallery-search__label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}
.ks-gallery-search select,
.ks-gallery-search input {
	height: 42px;
	border: 1px solid #ccd9e2;
	border-radius: 10px;
	background: #fff;
	color: #334654;
	font: inherit;
	font-size: 14px;
}
.ks-gallery-search select { padding: 0 30px 0 12px; }
.ks-gallery-search input { width: min(260px, 38vw); padding: 0 13px; }
.ks-gallery-search button,
.ks-gallery-write,
.ks-gallery-search__reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 17px;
	border: 0;
	border-radius: 10px;
	background: var(--ks-brand);
	color: #fff !important;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none !important;
	cursor: pointer;
}
.ks-gallery-search__reset { background: #e8eef3; color: #526575 !important; }
.ks-gallery-write { flex: 0 0 auto; background: var(--ks-brand-dark); }

.ks-gallery-document {
	max-width: 980px;
	margin: 0 auto;
	border: 1px solid var(--ks-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(56, 88, 113, .07);
	overflow: hidden;
}
.ks-gallery-document__header {
	padding: 36px 40px 29px;
	border-bottom: 1px solid var(--ks-line);
	background: linear-gradient(135deg, #f8fbfd 0%, #eef5fa 100%);
}
.ks-gallery-document__category {
	display: inline-flex;
	margin-bottom: 12px;
	padding: 5px 11px;
	border-radius: 999px;
	background: #fff;
	color: var(--ks-brand-dark) !important;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none !important;
}
.ks-gallery-document__header h1 { margin: 0; color: #2a4052; font-size: 30px; line-height: 1.4; letter-spacing: -.035em; }
.ks-gallery-document__meta { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-top: 17px; color: #788895; font-size: 13px; }
.ks-gallery-document__meta span { position: relative; }
.ks-gallery-document__meta span::before { content: ""; position: absolute; top: 50%; left: -10px; width: 3px; height: 3px; border-radius: 50%; background: #aebbc4; }
.ks-gallery-document__body { min-height: 260px; padding: 44px 40px 52px; color: #344a59; font-size: 16px; line-height: 1.9; }
.ks-gallery-document__body::after { content: ""; display: block; clear: both; }
.ks-gallery-document__body img { display: block; max-width: 100% !important; height: auto !important; margin: 18px auto; border-radius: 14px; }
.ks-gallery-document__body iframe,
.ks-gallery-document__body video { max-width: 100%; }
.ks-gallery-document__body p { margin: 0 0 1.2em; }
.ks-gallery-document__extra { padding: 25px 40px 0; }
.ks-gallery-document__extra dl { margin: 0; border: 1px solid var(--ks-line); border-radius: 14px; overflow: hidden; }
.ks-gallery-document__extra dl > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); border-bottom: 1px solid var(--ks-line); }
.ks-gallery-document__extra dl > div:last-child { border-bottom: 0; }
.ks-gallery-document__extra dt,
.ks-gallery-document__extra dd { margin: 0; padding: 13px 16px; }
.ks-gallery-document__extra dt { background: var(--ks-bg); color: #526575; font-weight: 800; }
.ks-gallery-files { margin: 0 40px 35px; padding: 22px; border: 1px solid var(--ks-line); border-radius: 16px; background: var(--ks-bg); }
.ks-gallery-files h2 { margin: 0 0 13px; color: var(--ks-brand-dark); font-size: 16px; }
.ks-gallery-files h2 span { color: var(--ks-brand); }
.ks-gallery-files ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.ks-gallery-files a { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 13px; border-radius: 10px; background: #fff; text-decoration: none !important; }
.ks-gallery-files a:hover { background: var(--ks-brand-pale); }
.ks-gallery-files strong { overflow-wrap: anywhere; color: #344a59; font-size: 14px; }
.ks-gallery-files span { flex: 0 0 auto; color: #82909b; font-size: 12px; }
.ks-gallery-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 40px 30px; }
.ks-gallery-tags a { padding: 6px 11px; border-radius: 999px; background: var(--ks-brand-pale); color: var(--ks-brand-dark); font-size: 12px; text-decoration: none; }
.ks-gallery-document__footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 22px 40px; border-top: 1px solid var(--ks-line); background: #fbfdfe; }
.ks-gallery-document__footer > div { display: flex; gap: 8px; }
.ks-gallery-action { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 17px; border-radius: 10px; font-size: 14px; font-weight: 800; text-decoration: none !important; }
.ks-gallery-action--primary { background: var(--ks-brand-dark); color: #fff !important; }
.ks-gallery-action--light { border: 1px solid var(--ks-line); background: #fff; color: #526575 !important; }
.ks-gallery-action--danger { background: #faecee; color: var(--ks-danger) !important; }
.ks-gallery-password { max-width: 460px; margin: 30px auto; padding: 25px; border: 1px solid var(--ks-line); border-radius: 15px; background: var(--ks-bg); }
.ks-gallery-password label { display: block; margin-bottom: 10px; font-weight: 800; }
.ks-gallery-password > div { display: flex; gap: 8px; }
.ks-gallery-password input { flex: 1; min-width: 0; height: 42px; padding: 0 12px; border: 1px solid #ccd9e2; border-radius: 9px; }
.ks-gallery-password button { border: 0; border-radius: 9px; background: var(--ks-brand); color: #fff; padding: 0 17px; font-weight: 800; }

.ks-gallery .feedback { max-width: 980px; margin: 26px auto 0; }
.ks-gallery .feedback > h2,
.ks-gallery .feedback .fbHeader { margin: 0 0 12px; color: var(--ks-brand-dark); font-size: 18px; }
.ks-gallery .feedback ul { margin: 0; padding: 0; list-style: none; }
.ks-gallery .feedback > ul > li { margin-bottom: 12px; padding: 20px; border: 1px solid var(--ks-line); border-radius: 15px; background: #fff; }
.ks-gallery .feedback .author { margin: 0 0 8px; color: #344a59; font-size: 14px; }
.ks-gallery .feedback .time { color: #8a98a3; font-size: 12px; }
.ks-gallery .feedback .xe_content { color: #465c6b; line-height: 1.75; }
.ks-gallery .feedback .action { display: flex; justify-content: flex-end; gap: 10px; margin: 12px 0 0; }
.ks-gallery .feedback .action a { color: var(--ks-brand-dark); font-size: 12px; text-decoration: none; }
.ks-gallery .feedback .pagination { margin: 22px 0; text-align: center; }
.ks-gallery .feedback .pagination a,
.ks-gallery .feedback .pagination strong { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; margin: 2px; border: 1px solid var(--ks-line); border-radius: 9px; text-decoration: none; }
.ks-gallery .feedback .pagination strong { border-color: var(--ks-brand); background: var(--ks-brand); color: #fff; }
.ks-gallery .write_comment { padding: 22px; border: 1px solid var(--ks-line); border-radius: 16px; background: #fff; }

.ks-gallery .board_write,
.ks-gallery .context_data { max-width: 980px; margin: 0 auto; }
.ks-gallery .board_write { padding: 28px; border: 1px solid var(--ks-line); border-radius: 20px; background: #fff; }
.ks-gallery .write_header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; margin-bottom: 18px; }
.ks-gallery .write_header .iText { width: 100%; }
.ks-gallery .iText,
.ks-gallery textarea,
.ks-gallery select,
.ks-gallery input[type="text"],
.ks-gallery input[type="password"],
.ks-gallery input[type="search"] { border: 1px solid #ccd9e2; border-radius: 9px; background: #fff; color: #334654; }
.ks-gallery .iText { min-height: 40px; padding: 8px 11px; }
.ks-gallery .write_editor { margin: 18px 0; }
.ks-gallery .write_option,
.ks-gallery .write_author { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 15px 0; color: #5c6f7e; font-size: 13px; }
.ks-gallery .btnArea { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.ks-gallery .btn { display: inline-flex; }
.ks-gallery .btn a,
.ks-gallery .btn button,
.ks-gallery .btn input { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; border: 0; border-radius: 9px; background: var(--ks-brand-dark); color: #fff !important; font: inherit; font-size: 13px; font-weight: 800; text-decoration: none !important; cursor: pointer; }
.ks-gallery .exForm table { width: 100%; border-collapse: collapse; }
.ks-gallery .exForm th,
.ks-gallery .exForm td { padding: 12px; border: 1px solid var(--ks-line); }
.ks-gallery .exForm th { width: 150px; background: var(--ks-bg); text-align: left; }

@media (max-width: 1024px) {
	.ks-gallery-grid--4,
	.ks-gallery-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.ks-gallery-list__header { align-items: flex-start; padding: 25px 22px; }
	.ks-gallery-list__header h2 { font-size: 26px; }
	.ks-gallery-grid--3,
	.ks-gallery-grid--4,
	.ks-gallery-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
	.ks-gallery-card__body { padding: 15px; }
	.ks-gallery-card__body h3 { font-size: 16px; }
	.ks-gallery-toolbar { align-items: stretch; flex-direction: column; }
	.ks-gallery-search { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; }
	.ks-gallery-search input { width: 100%; }
	.ks-gallery-write { width: 100%; }
	.ks-gallery-document__header,
	.ks-gallery-document__body { padding-right: 23px; padding-left: 23px; }
	.ks-gallery-document__header h1 { font-size: 25px; }
	.ks-gallery-files { margin-right: 23px; margin-left: 23px; }
	.ks-gallery-tags { margin-right: 23px; margin-left: 23px; }
	.ks-gallery-document__footer { padding-right: 23px; padding-left: 23px; }
	.ks-gallery-files a { align-items: flex-start; flex-direction: column; gap: 3px; }
}
@media (max-width: 480px) {
	.ks-gallery-list__header { display: block; }
	.ks-gallery-list__count { margin-top: 16px; }
	.ks-gallery-grid--3,
	.ks-gallery-grid--4,
	.ks-gallery-grid--5 { grid-template-columns: 1fr; }
	.ks-gallery-card__media { aspect-ratio: 16 / 10; }
	.ks-gallery-pagination__edge { display: none !important; }
	.ks-gallery-search { grid-template-columns: 1fr; }
	.ks-gallery-search select,
	.ks-gallery-search input,
	.ks-gallery-search button,
	.ks-gallery-search__reset { width: 100%; }
	.ks-gallery-document__footer { align-items: stretch; flex-direction: column; }
	.ks-gallery-document__footer > div { width: 100%; }
	.ks-gallery-action { flex: 1; }
	.ks-gallery-document__extra dl > div { grid-template-columns: 1fr; }
	.ks-gallery-document__extra dt { padding-bottom: 4px; }
}
