/* 강사뱅크 - 강사 검색 및 조회 */

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.lecturer-bank {
	float: left;
	width: 100%;
}

.lecturer-bank__title {
	text-align: center;
	padding-bottom: 40px;
	color: #222;
	font-weight: 700;
	font-size: 32px;
}

/* 검색 박스 */
.search-box {
	position: relative;
	width: 100%;
	border: 2px solid #d4d4f3;
	border-radius: 16px;
	padding: 40px;
	background: #fff;
	box-sizing: border-box;
}

.search-notice {
	width: 100%;
	border: 1px solid #d8d8d8;
	border-radius: 16px;
	padding: 28px 32px;
	margin-bottom: 24px;
	background: #fff;
	box-sizing: border-box;
}

.search-notice ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.search-notice li {
	position: relative;
	padding-left: 14px;
	font-size: 16px;
	line-height: 1.6;
	color: #555;
}

.search-notice li + li {
	margin-top: 10px;
}

.search-notice li:before {
	content: '\2022';
	position: absolute;
	top: 0;
	left: 0;
}

.search-box__filters {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.search-field {
	display: flex;
	flex-direction: column;
}

.search-field label {
	margin-bottom: 12px;
	font-size: 18px;
	font-weight: 700;
	color: #222;
}

.search-field select,
.search-field input[type="text"] {
	height: 52px;
	padding: 0 16px;
	border: 1px solid #d9dae2;
	border-radius: 10px;
	font-size: 16px;
	color: #222;
	background-color: #fff;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}

.search-field select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 18px;
	padding-right: 40px;
	cursor: pointer;
}

.search-field input[type="text"]::placeholder {
	color: #555;
}

.search-field select:focus-visible,
.search-field input[type="text"]:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 1px;
	border-color: #7883d5;
}

/* 주요 교육 대상 */
.search-box__targets {
	border: 0;
	margin: 32px 0 0;
	padding: 0;
	min-width: 0;
}

.search-box__targets-label {
	display: block;
	width: 100%;
	margin: 0 0 16px;
	padding: 0;
	font-size: 16px;
	font-weight: 700;
	color: #222;
	border: none;
}

.search-box__targets-label span {
	font-weight: 400;
	font-size: 14px;
	color: #555;
}

.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tag-checkbox {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.tag-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 44px;
	padding: 0 18px;
	border: 1px solid #d8d8d8;
	border-radius: 22px;
	font-size: 15px;
	font-weight: 500;
	color: #555;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.tag-label:before {
	content: '';
	display: none;
	width: 14px;
	height: 14px;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236366d1' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-size: contain;
}

.tag-checkbox:checked + .tag-label {
	border-color: #c3c9ef;
	background: #edefff;
	color: #4d4dc5;
}

.tag-checkbox:checked + .tag-label:before {
	display: inline-block;
}

.tag-checkbox:focus-visible + .tag-label {
	outline: 2px solid #7883d5;
	outline-offset: 2px;
}

/* 구분선 */
.search-box__divider {
	margin: 32px 0 24px;
	border: none;
	border-top: 1px solid #ececf1;
}

/* 상세검색 토글 */
.detail-search-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: none;
	background: none;
	padding: 2px;
	font-size: 18px;
	font-weight: 700;
	color: #6565d5;
	cursor: pointer;
}

.detail-search-toggle:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
	border-radius: 4px;
}

.detail-search-toggle i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	font-size: 13px;
	border: 1px solid #6565d5;
    border-radius: 4px;
}

/* 상세검색 패널 */
.detail-search-panel {
	margin-top: 24px;
	padding: 28px;
	border-radius: 12px;
	background: #f7f7fb;
}

.detail-search-panel__row {
	display: flex;
	gap: 40px;
	flex-wrap: wrap;
}

.detail-field {
	display: flex;
	flex-direction: column;
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.detail-field--grow {
	flex: 1;
	min-width: 280px;
}

.detail-field__label {
	display: block;
	width: 100%;
	margin: 0 0 14px;
	padding: 0;
	font-size: 18px;
	font-weight: 700;
	color: #222;
	border: none;
}

.detail-field input[type="text"] {
	height: 52px;
	padding: 0 16px;
	border: 1px solid #d9dae2;
	border-radius: 10px;
	font-size: 15px;
	color: #222;
	background: #fff;
}

.detail-field input[type="text"]::placeholder {
	color: #999;
}

.detail-field input[type="text"]:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 1px;
	border-color: #7883d5;
}

.radio-group {
	display: flex;
	align-items: center;
	gap: 28px;
	height: 52px;
	padding: 0 24px;
	background: #fff;
	border-radius: 10px;
}

.radio-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.radio-item label {
	font-size: 15px;
	color: #555;
	cursor: pointer;
	font-weight: 500;
}

.radio-item input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: #4b4fc7;
	margin: 0;
	cursor: pointer;
}

.detail-search-panel__checks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px 30px;
	border: 0;
	margin: 24px 0 0;
	padding: 20px 24px;
	background: #fff;
	border-radius: 10px;
	min-width: 0;
}

.check-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.check-item label {
	font-size: 16px;
	color: #555;
	cursor: pointer;
	font-weight: 500;
}

.check-item input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: #4b4fc7;
	margin: 0;
	cursor: pointer;
}

/* 하단 버튼 */
.search-box__actions {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: 36px;
}

.btn-reset,
.btn-search {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 52px;
	padding: 0 28px;
	border-radius: 10px;
	font-size: 18px;
	cursor: pointer;
}

.btn-reset {
	border: 1px solid #d8d8d8;
	background: #fff;
	color: #222;
}

.btn-search {
	border: 1px solid #3e3e72;
	background: #3e3e72;
	color: #fff;
}

.btn-reset:hover {
	background: #f5f5f8;
}

.btn-search:hover {
	background: #1e2050;
}

.btn-reset:focus-visible,
.btn-search:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
}

/* 안내 문구 */
.search-tip {
	margin-top: 70px;
	text-align: center;
}

.search-tip__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 90px;
	height: 90px;
	margin: 0 auto 24px;
	border: 1px solid #d9dae8;
	border-radius: 50%;
	font-size: 32px;
	color: #6366d1;
}

.search-tip__quote {
	margin: 0 0 20px;
	font-size: 20px;
	font-weight: 700;
	color: #222;
}

.search-tip__desc {
	margin: 0;
	font-size: 18px;
	line-height: 1.7;
	color: #555;
}

/* 검색 결과 */
.search-results {
	margin-top: 40px;
}

.search-results__header {
	margin-bottom: 20px;
}

.search-results__summary {
	margin-bottom: 50px;
	font-size: 18px;
	color: #555;
	text-align: center;
}

.search-results__summary strong {
	color: #222;
}

.search-results__sort {
	margin: 0;
	font-size: 14px;
	color: #555;
	text-align: right;
}
.search-results__sort i {
	font-size: 12px;
}

.search-results__sort strong {
	color: #222;
	font-weight: 700;
}

.result-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 60px;
}

.result-empty {
	grid-column: 1 / -1;
	padding: 60px 0;
	text-align: center;
	color: #555;
	font-size: 16px;
}

.result-card {
	border: 1px solid #c6c6c6;
	border-radius: 14px;
	padding: 24px;
	background: #fff;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.result-card:hover,
.result-card.is-active {
	padding: 23px;
	border: 2px solid #6565d5;
}

.result-card__region {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 12px;
	font-size: 14px;
	color: #555;
	justify-content: flex-end;
}

.result-card__name {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 700;
	color: #222;
}

.result-card__name span {
	font-size: 16px;
	font-weight: 400;
	color: #222;
}

.result-card__org {
	margin: 0 0 14px;
	font-size: 14px;
	color: #222;
}

.result-card__categories {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #ececf1;
}

.category-tag {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 500;
}

.category-tag--eval {
	border: 1px solid #ebe5c3;
	background: #fef9dc;
	color: #62581d;
}

.category-tag--violence {
	border: 1px solid #d0e9d2;
	background: #ecfbed;
	color: #3e7b43;
}

.category-tag--equality {
	border: 1px solid #d8dbf5;
	background: #edefff;
	color: #4d4dc5;
}

.result-card__conditions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0 0 24px;
	font-size: 15px;
	color: #555;
}

.result-card__conditions span {
	padding-right: 10px; 
	margin-right: 10px;
	margin-bottom: 10px;
	line-height: 1;
}

.result-card__conditions span:not(:last-child) {
	border-right: 1px solid #d9dae2;
}

.result-card__targets-label {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 700;
	color: #222;
}

.result-card__targets {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
}

.mini-tag {
	display: inline-block;
	padding: 4px 12px;
	margin-right: 6px;
	border-radius: 20px;
	background: #fff;
	color: #555;
	font-size: 14px;
	border: solid 1px #d8d8d8;
}

.result-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	border-top: 1px solid #ececf1;
}

.result-card__date {
	font-size: 14px;
	color: #777;
}

.btn-detail {
	height: 44px;
	padding: 0 16px;
	border: 1px solid #6666d5;
	border-radius: 6px;
	background: #fff;
	color: #4b4fc7;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

.btn-detail:hover {
	color: #fff;
	background: #6666d5;
}

.result-card.is-active .btn-detail {
	background: #4b4fc7;
	color: #fff;
}

.btn-detail:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
}

/* 강사 상세정보 */
.instructor-detail {
	width: 100%;
}

.instructor-card {
	border: 1px solid #d4d4f3;
	border-radius: 16px;
	padding: 40px;
	margin-bottom: 60px;
	background: #fff;
	box-sizing: border-box;
}

.instructor-card__region {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin: 0 0 16px;
	font-size: 14px;
	color: #555;
}

.instructor-card__head {
	display: flex;
	align-items: center;
	gap: 20px;
}

.instructor-card__photo {
	flex: none;
	width: 120px;
	height: 160px;
	border-radius: 10px;
	background-color: #E9ECFF;
	background-image: url(/pub/site/jewfri2024/images/sub/logo_photo.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 60%;
}

.instructor-card__name {
	margin: 0 0 10px;
	font-size: 26px;
	font-weight: 700;
	color: #222;
}

.instructor-card__name span {
	font-size: 18px;
	font-weight: 400;
	color: #222;
}

.instructor-card__org {
	margin: 0;
	font-size: 18px;
	color: #222;
}

.instructor-card hr {
	margin: 24px 0;
	border: none;
	border-top: 1px solid #ececf1;
}

.instructor-card__intro {
	margin: 0 0 40px;
	padding: 20px 24px;
	background: #f5f5f5;
	border-radius: 10px;
	font-size: 18px;
	color: #555;
	line-height: 1.6;
}

.instructor-card__meta {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 40px;
	margin: 0 0 40px;
}

.instructor-card__meta > div {
	display: flex;
	gap: 12px;
	font-size: 18px;
}

.instructor-card__meta dt {
	flex: none;
	width: 100px;
	font-weight: 700;
	color: #222;
}

.instructor-card__meta dd {
	margin: 0;
	color: #555;
}

.instructor-card__badges {
	display: flex;
	flex-wrap: wrap;
}

.detail-badge {
	display: inline-block;
	padding: 8px 16px;
	margin-right: 10px;
	border: 1px solid #c3c9ef;
	border-radius: 8px;
	background: #edefff;
	color: #4d4dc5;
	font-size: 18px;
}

.detail-section-title {
	margin: 0 0 20px;
	font-size: 26px;
	font-weight: 700;
	color: #222;
}

.lecture-table-wrap {
	width: 100%;
	overflow-x: auto;
	border-top: 2px solid #6969bd;
	margin-bottom: 30px;
}

.lecture-table {
	width: 100%;
	border-collapse: collapse;
	white-space: nowrap;
}

.lecture-table th,
.lecture-table td {
	padding: 24px;
	text-align: center;
	border-bottom: 1px solid #e5e5ee;
}

.lecture-table thead th {
	background: #f4f4f4;
	color: #000;
	font-weight: 700;
	font-size: 18px;
}

.lecture-table tbody td {
	color: #666;
	font-size: 18px;
}

.detail-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-bottom: 60px;
	font-size: 15px;
	color: #555;
}

.detail-pagination[hidden] {
	display: none;
}

.detail-pagination button {
	border: none;
	background: none;
	color: #555;
	font-size: 15px;
	cursor: pointer;
}

.detail-pagination button:disabled {
	cursor: not-allowed;
	opacity: .5;
}

.detail-pagination .is-current {
	color: #222;
	font-weight: 700;
}

.page-numbers {
	display: flex;
	align-items: center;
	gap: 8px;
}

.page-number {
	border: none;
	background: none;
	color: #555;
	font-size: 15px;
	cursor: pointer;
	padding: 4px 6px;
	border-radius: 4px;
}

.page-number:hover {
	background: #f5f5f8;
}

.page-number:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
}

.page-ellipsis {
	color: #999;
	font-size: 15px;
	padding: 0 2px;
}

.detail-info-box {
	border: 1px solid #d8d8d8;
	border-radius: 16px;
	padding: 40px;
	margin-bottom: 60px;
}

.detail-info-box h4 {
	margin: 0 0 16px;
	font-size: 20px;
	font-weight: 700;
	color: #222;
}

.detail-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.detail-list > li {
	position: relative;
	padding-left: 14px;
	margin-bottom: 16px;
	font-size: 18px;
	color: #555;
}

.detail-list > li:before {
	content: '\2022';
	position: absolute;
	left: 0;
	top: 0;
}

.detail-list > li > span {
	display: inline-block;
	margin-left: 12px;
	color: #444;
}

.detail-list ul {
	padding-left: 3px;
	list-style: none;
}

.detail-info-box hr {
	margin: 40px 0;
	border: none;
	border-top: solid 1px #e4e4e4;
}

.file-list {
	margin: 0 0 60px;
	padding: 0;
	list-style: none;
}

.file-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	margin-bottom: 10px;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	font-size: 18px;
}

.file-list__name {
	color: #555;
}

.file-list__name i {
	color: #555;
	margin-right: 6px;
}

.file-list__download {
	display: inline-flex;
	align-items: center;
	padding: 10px 14px;
	font-weight: 700;
	font-size: 16px;
	color: #222;
	border-radius: 6px;
	background: #efefef;
	text-decoration: none;
}
.file-list__download i {
	margin-left: 8px;
}

.file-list__download:hover {
	text-decoration: underline;
}

.detail-back {
	display: flex;
	justify-content: center;
}

.btn-list {
	height: 48px;
	padding: 0 40px;
	border: 1px solid #c6c6c6;
	border-radius: 8px;
	background: #fff;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}

.btn-list:hover {
	background: #f5f5f8;
}

.btn-list:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
}

/* 반응형 */
@media (max-width: 991px) {
	.detail-search-panel {
		padding: 16px;

	}
	.lecturer-bank__title {
		font-size: 22px;
		padding-bottom: 25px;
	}

	.search-notice {
		padding: 20px;
		border-radius: 12px;
	}

	.search-box {
		padding: 24px 20px;
		border-radius: 12px;
	}

	.search-box__filters {
		grid-template-columns: 1fr 1fr;
		gap: 14px;
	}

	.detail-search-panel__row {
		gap: 20px;
	}

	.detail-search-panel__checks {
		grid-template-columns: 1fr 1fr;
	}
	
	.detail-field--grow {
		min-width: 100%;
	}

	.btn-reset,
	.btn-search {
		width: 100%;
		justify-content: center;
	}

	.search-tip {
		margin-top: 40px;
	}

	.search-tip__desc br {
		display: none;
	}

	.search-tip__icon {
		width: 64px;
		height: 64px;
		font-size: 22px;
	}

	.result-grid {
		grid-template-columns: 1fr 1fr;
	}

	.search-results__header {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.result-card {
		padding: 20px;
	}

	.instructor-card {
		padding: 16px;
		border-radius: 16px;
	}

	.instructor-card__intro {
		padding: 14px;
	}

	.instructor-card__meta {
		grid-template-columns: 1fr;
	}

	.instructor-card__meta > div {
		flex-direction: column;
		gap: 4px;
		font-size: 16px;
	}

	.instructor-card__meta dt {
		width: auto;
	}

	.detail-badge {
		padding: 5px 10px;
		margin-bottom: 10px;
	}

	.detail-info-box {
		padding: 24px 20px;
	}

	.lecture-table th, .lecture-table td {
		padding: 20px 10px;
	}

	.detail-info-box hr {
		margin: 20px 0 30px;
	}

	.file-list li {
		flex-direction: column;
		align-items: flex-start;
		padding: 20px;
		font-size: 16px;
	}

	.file-list__download {
		margin-top: 10px;
		align-self: flex-end;
		font-size: 14px;
	}

	/* 전체 폰트사이즈 -2px */
	.search-notice li { font-size: 14px; }
	.search-field label { font-size: 16px; }
	.search-field select,
	.search-field input[type="text"] { font-size: 16px; }
	.detail-search-toggle { font-size: 16px; }
	.detail-field__label { font-size: 16px; }
	.check-item label { font-size: 14px; }
	.btn-reset,
	.btn-search { font-size: 16px; }
	.search-tip__quote { font-size: 18px; }
	.search-tip__desc { font-size: 16px; }
	.search-results__summary { font-size: 16px; }
	.result-empty { font-size: 14px; }
	.instructor-card__name { font-size: 22px; }
	.instructor-card__name span { font-size: 16px; }
	.instructor-card__org { font-size: 16px; }
	.instructor-card__intro { font-size: 16px; }
	.detail-badge { font-size: 16px; }
	.detail-section-title { font-size: 16px; }
	.lecture-table thead th { font-size: 16px; }
	.lecture-table tbody td { font-size: 16px; }
	.detail-info-box h4 { font-size: 18px; }
	.detail-list > li { font-size: 16px; }
	.btn-list { font-size: 14px; }
}

@media (max-width: 575px) {
	.search-box__filters {
		grid-template-columns: 1fr;
	}

	.detail-search-panel__checks {
		grid-template-columns: 1fr;
	}

	.result-grid {
		grid-template-columns: 1fr;
	}
}

/* 상세보기 모달 */
.modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	justify-content: center;
	padding: 40px 20px;
	background: rgba(20, 20, 30, .55);
	overflow-y: auto;
}

.modal-backdrop[hidden] {
	display: none;
}

.modal-dialog {
	position: relative;
	width: 100%;
	max-width: 1000px;
	height: fit-content;
	margin: auto;
	background: #fff;
	border-radius: 16px;
	padding: 60px 40px;
	box-sizing: border-box;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
}

.modal-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background: #f5f5f8;
	color: #555;
	font-size: 18px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.modal-close:hover {
	background: #ececf1;
	color: #222;
}

.modal-close:focus-visible {
	outline: 2px solid #4b4fc7;
	outline-offset: 2px;
}

body.modal-open {
	overflow: hidden;
}

@media (max-width: 991px) {
	.modal-dialog {
		padding: 50px 10px;
		border-radius: 12px;
	}
	.modal-close {
		width: 30px;
		height: 30px;
		top: 10px;
		right: 10px;
	}
	.instructor-card__photo {
		width: 80px;
		height: 106px;
	}
}