@charset "utf-8";

/* ========================================================================
 * book.css
 * 2026-03-30 08:18:00 r014
 *
 * [r014]
 * - 교재 특징(book-feature-list) 마커를 .book-concise-mo-line::before 톤으로 통일
 * - .bullet.ico-course 출력 유무와 무관하게 .book-feature-text::before 로 표시되도록 정리
 * - 모바일에서는 기존 concise 규칙과 동일하게 텍스트형 POINT -> 원형 점 마커로 축약
 *
 * [r013]
 * - 공통 icons.css의 .bullet / .ico-* 사용하도록 book.css 중복 정의 제거
 * - bullet 관련 규칙은 배치용(.book-bullet-list, .book-feature-value .book-bullet-list)만 유지
 * - 중복된 book-info3-more-banner 블록을 최종 버전 1개로 정리
 * - 누적 패치 기준(quick nav / mobile top / preview / series / lecture) 반영 상태로 재정리
 * - 반응형 기준
 *   1280+
 *   992~1279
 *   768~991
 *   413~767
 *   412 이하
 * ====================================================================== */
 
 

/* ---------------------------------------------------------
   common
--------------------------------------------------------- */
/*#page-top-content span { display:inline; font-weight:400; }*/
#page-top-content div.book-cate-wrap div span { display:inline-block; }
#page-body-content { margin-top:20px; }

@keyframes bookGradient {
	0%   { background-position:0% 50%; }
	50%  { background-position:100% 50%; }
	100% { background-position:0% 50%; }
}

em.hlt { background:linear-gradient(to top, #6699ff 60%, transparent 40%); }
em.exp { color:#f6f6f6; }
em.exp_r { color:#fde8cc; font-weight:500; }

span.mo,
div.mo { display:none; }
div.pc { display:block; }

.book-info-arrow { color:#fbf9f7; }
.book-inline-highlight,
.book-inline-link { display:inline !important; }

td.data-gubun { width:100px; }
td.data-size { width:100px; }
td.btn-down { width:120px; text-align:center; }

.mo-book-content-title { display:none; }

span.book-title-lead {
	font-size:13px;
	color:#b74475;
	line-height:1.1;
}

span.book-title {
	font-size:17px;
	line-height:1.1;
	font-weight:600;
	margin-top:4px;
}

/* ---------------------------------------------------------
   top summary
--------------------------------------------------------- */
.book-page-top {}
.book-page-top-inner {}

/* 초기 배경 -> 컬러 애니메이션 배경 전환 */
div.page-top-content-box {
    display:flex;
    width:100%;
    height:auto;
    background:linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
    background-size:400% 400%;
    animation:bookGradient 35s ease infinite;
    border-radius:8px;
    padding-bottom:10px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.14),
        inset 0 -6px 12px rgba(0,0,0,.06),
        0 8px 20px rgba(0,0,0,.08);
}

/* 실제 내용은 배경 위로 */
div.page-top-content-box > *{
    position:relative;
    z-index:1;
}


div.book-cover-top {
	display:block;
	width:205px;
	height:260px;
	background-size:contain;
	background-repeat:no-repeat;
	background-position:center center;
	text-shadow:rgba(0,0,0,.4) 0 2px 4px, rgba(0,0,0,.3) 0 7px 13px -3px, rgba(0,0,0,.2) 0 -3px 0 inset;
}

div.book-basic-info {
	flex:1 1 auto;
	min-width:0;
	margin:20px;
	line-height:2;
	padding:10px;
	border-radius:4px;
	color:#eee;
}

div.book-basic-info div.book-title-wrap { line-height:1.5; }

div.book-basic-info div.book-title-wrap span.book-title-mesg {
	font-size:14px;
	font-weight:500;
	color:#fff;
	text-shadow:1px 2px 3px rgba(0,0,0,.3);
}

#page-top-content .book-basic-info .book-title-wrap .book-title-name {
	display:block;
	margin:0;
	font-size:27px;
	font-weight:700;
	color:#fff;
	text-shadow:1px 2px 3px rgba(0,0,0,.3);
	line-height:1.5;
	background-color:transparent;
}

div.book-basic-info div.book-concise-desc { margin-top:0; }

div.book-basic-info div.book-concise-desc span.book-concise-desc-txt {
	font-weight:500;
	line-height:1.8;
	color:#fff9e3;
}

div.book-basic-info div.book-info-concise-wrap {
	margin-top:10px;
	column-count:2;
	column-gap:8px;
}

div.book-basic-info div.book-info-concise-wrap span em.gubun {
	color:#fbf9f7;
	margin-right:8px;
}

div.book-btn-wrap {
	display:flex;
	flex-wrap:wrap;
	margin-top:8px;
}

div.book-btn-wrap button {
	width:90px;
	padding:0 4px;
}

div.book-btn-wrap div.book-btn-wrap-half {
	display:flex;
	margin-left:4px;
}

div.book-btn-wrap div.book-btn-wrap-half div:last-child {
	margin-left:4px;
}

/* ---------------------------------------------------------
   tabs
--------------------------------------------------------- */
section ul.book-navi-tab {
	margin:0;
	position:relative;
	display:flex;
	flex-wrap:nowrap;
	align-items:flex-end;
}

section ul.book-navi-tab li {
	margin:0;
	line-height:2.3;
	z-index:1;
	font-weight:500;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:calc(100% / 7);
	text-align:center;
	border-top-left-radius:4px;
	border-top-right-radius:4px;
	background-color:#eee;
	border:1px solid #ddd;
	border-bottom:1px solid #ddd;
	box-sizing:border-box;
	position:relative;
}

section ul.book-navi-tab li a {
	color:#333;
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	padding:0 6px;
	text-decoration:none !important;
	border:0 !important;
	border-bottom:0 !important;
	box-shadow:none !important;
	outline:0 !important;
	background-image:none !important;
}

section ul.book-navi-tab li.sel {
	background-color:#fefefe;
	border:1px solid #ddd;
	border-bottom-color:#fefefe !important;
	box-shadow:none !important;
	z-index:3;
}

section ul.book-navi-tab li.sel a,
section ul.book-navi-tab li a:hover,
section ul.book-navi-tab li a:focus,
section ul.book-navi-tab li a:active,
section ul.book-navi-tab li a:visited {
	text-decoration:none !important;
	border:0 !important;
	border-bottom:0 !important;
	box-shadow:none !important;
	outline:0 !important;
	background-image:none !important;
}

section ul.book-navi-tab li::before,
section ul.book-navi-tab li::after,
section ul.book-navi-tab li a::before,
section ul.book-navi-tab li a::after,
section ul.book-navi-tab li.sel::before,
section ul.book-navi-tab li.sel::after,
section ul.book-navi-tab li.sel a::before,
section ul.book-navi-tab li.sel a::after {
	display:none !important;
	content:none !important;
	border:0 !important;
	border-bottom:0 !important;
	box-shadow:none !important;
	background:none !important;
}

section ul.book-navi-tab li,
section ul.book-navi-tab li a,
section ul.book-navi-tab li a:focus,
section ul.book-navi-tab li a:active {
	-webkit-tap-highlight-color:transparent;
}

section div.book-tab-content {
	font-weight:500;
	border-top:1px solid #ccc;
	margin-top:-1px;
	z-index:2;
	padding:20px 10px 10px;
}

section div.book-tab-content span {
	line-height:1.8;
}

section div.book-tab-content span.book-tab-content-data p img { max-width:100%; }
section div.book-tab-content span.book-tab-content-data p { line-height:1.45; margin:0 0 8px; }

@media all and (min-width:960px) {
	.book-tab-content-wrap > .book-tab-content {
		display:none;
	}
	.book-tab-content-wrap > .book-tab-content.active-tab-content {
		display:block;
	}
}

@media all and (min-width:1200px) {
	.book-tab-content-wrap > .book-tab-content.info1.active-tab-content {
		display:flex !important;
		align-items:flex-start;
		gap:32px;
	}

	.book-tab-content.info1 > .book-tab-content-data {
		flex:1 1 52%;
		min-width:0;
	}

	.book-tab-content.info1 > .book-preview-section {
		flex:1 1 48%;
		min-width:0;
		margin-top:0;
		position:sticky;
		top:24px;
		align-self:flex-start;
	}
}

/* ---------------------------------------------------------
   mobile concise
--------------------------------------------------------- */
.book-concise-mo-wrap { display:none; }
.book-concise-mo-title { font-size:14px; margin:0 0 8px; }

.book-feature-list {
	list-style:none;
	padding:0;
	margin:0;
}

.book-feature-item {
	display:flex;
	align-items:flex-start;
	gap:8px;
	margin:0 0 8px;
}

.book-feature-text {
	flex:1 1 auto;
	line-height:1.6;
}

/* ---------------------------------------------------------
   bullets
   - 모양/색상은 공통 icons.css 사용
   - 여기서는 배치만 담당
--------------------------------------------------------- */
.book-bullet-list {
	display:flex;
	flex-wrap:wrap;
	gap:4px 6px;
	align-items:center;
	margin:0 0 6px 0;
}

/* ---------------------------------------------------------
   preview
--------------------------------------------------------- */
.mySwiper {
	width:100%;
	height:auto;
	margin:0;
	border:none;
	padding:0;
	background:transparent;
}

.swiper-slide {
	text-align:center;
	font-size:18px;
	background:#fff;
	display:flex;
	justify-content:center;
	align-items:center;
}

.swiper-slide img {
	display:block;
	width:100%;
	height:auto;
	object-fit:cover;
}

.book-preview-section { margin-top:20px; }

.book-preview-head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
}

.book-preview-title {
	margin:0;
	font-size:18px;
	font-weight:700;
	line-height:1.3;
	color:#0b2541;
}

.book-preview-head-right {
	margin-left:auto;
}

.book-preview-download-btn {
	min-height:34px;
	padding:0 12px;
	font-size:13px;
}

.book-preview-meta {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:10px;
}

.book-preview-page-info {
	display:inline-flex;
	align-items:center;
	font-size:14px;
	font-weight:600;
	color:#333;
	white-space:nowrap;
}

.book-preview-page-info .book-preview-current,
.book-preview-page-info .book-preview-total {
	display:inline;
	width:auto;
	line-height:1;
}

.book-preview-nav {
	display:flex;
	align-items:center;
	gap:6px;
}

.book-preview-nav-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:32px;
	height:32px;
	border:1px solid #cfd8ea;
	border-radius:999px;
	background:#fff;
	color:#0f2d71;
	font-size:15px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
	transition:all .2s ease;
}

.book-preview-nav-btn:hover,
.book-preview-nav-btn:focus {
	border-color:#0f2d71;
	background:#0f2d71;
	color:#fff;
}

.book-preview-nav-btn.swiper-button-disabled {
	opacity:.35;
	cursor:default;
	pointer-events:none;
}

.book-preview-frame {
	border:1px solid #e6ecf5;
	border-radius:2px;
	padding:10px;
	background:#fcfdff;
	box-shadow:0 2px 10px rgba(15,45,113,.04);
}

.book-preview-frame .swiper-slide {
	background:#fff;
}

.book-preview-frame .swiper-slide img {
	display:block;
	width:100%;
	height:auto;
	border:1px solid #edf1f7;
	border-radius:10px;
	box-sizing:border-box;
}

.book-preview-frame .swiper-button-prev,
.book-preview-frame .swiper-button-next {
	display:none !important;
}

.book-preview-desktop { display:block; }
.book-preview-mobile { display:none; }

.book-preview-cover {
	position:relative;
	border-radius:16px;
	overflow:hidden;
	background:#0f172a;
	box-shadow:0 8px 24px rgba(0,0,0,.14);
}

.book-preview-cover img {
	display:block;
	width:100%;
	height:auto;
}

.book-preview-dim {
	position:absolute;
	inset:0;
	background:rgba(0,0,0,.42);
}

.book-preview-pdf-btn {
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%, -50%);
	z-index:2;
	min-width:132px;
	min-height:44px;
	padding:0 18px;
	box-shadow:0 8px 22px rgba(0,0,0,.22);
}

/* ---------------------------------------------------------
   action buttons
--------------------------------------------------------- */
.book-action-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	padding:0 14px;
	border:1px solid #0b2541;
	border-radius:3px;
	background:#103e70;
	color:#fff !important;
	font-size:12px;
	font-weight:700;
	line-height:1;
	text-decoration:none !important;
	white-space:nowrap;
	box-sizing:border-box;
}

.book-action-btn:hover,
.book-action-btn:focus {
	color:#fff !important;
	text-decoration:none !important;
}

.book-action-btn em {
	font-size:13px;
	line-height:1;
}

.book-action-btn--download {
	background:#2b67a9;
	border-color:#0b2541;
}

.book-action-btn--pdf {
	background:#2b67a9;
	border-color:#0b2541;
}

.book-action-btn--lecture {
	background:#5f3b1b;
	border-color:#5f3b1b;
}

.book-action-btn--lecture:hover,
.book-action-btn--lecture:focus {
	background:#482b12;
	border-color:#482b12;
}

td.btn-down .book-action-btn { min-width:118px; }

.book-preview-download-wrap {
	margin-top:14px;
	text-align:center;
}

.book-preview-download-wrap .book-preview-download-btn {
	display:inline-flex;
	min-height:36px;
}

/* ---------------------------------------------------------
   tables / review / data
--------------------------------------------------------- */
div.book-tab-content span.book-tab-content-data table thead {
	border-top:1px solid #cacaca;
	background-color:#e7f0fe;
}

div.book-tab-content span.book-tab-content-data table tbody td {
	border-bottom:1px solid #cacaca;
}

section div.book-tab-content span.book-tab-content-data span.mo-book-content-title { display:none; }
section div.book-tab-content span.btn-ssam-data { display:inline; margin-left:10px; }
section div.book-tab-content div.rv-nick-wrap span.mo { display:none; }
section div.book-tab-content div.rv-nick-wrap div.mo { display:none; }
section div.book-tab-content div.data-item-wrap span.mo { display:none; }
section div.book-tab-content div.data-item-wrap div.mo { display:none; }

section div.book-tab-content table td.rv-post-no { width:80px; }
section div.book-tab-content table td.rv-content { text-align:left; color:#2c2621; }
section div.book-tab-content table td.lite { background-color:#eeedea; }
section div.book-tab-content table td.rv-rate { width:100px; color:#974728; }
section div.book-tab-content table td.rv-nick { width:140px; }
section div.book-tab-content table td.rv-date { width:80px; }

.data-item-wrap {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}

.data-item-main { min-width:0; }
.data-file-name { word-break:break-all; }

.data-item-wrap .mo.down .book-action-btn {
	min-width:108px;
	min-height:36px;
	padding:0 12px;
	font-size:13px;
}

.data-gubun-color { color:#6600ff; }
.data-gubun-ssam-color { color:#cc0099; }
.data-target-color { color:#9933ff; }
.data-size-color { color:#a59aab; }

.book-teacher-guide,
.book-lecture-guide {
	margin-bottom:12px;
}

.book-review-more-wrap {
	margin-top:14px;
	text-align:center;
}

.btn-call-more {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	min-height:40px;
	padding:0 16px;
	border:1px solid #103e70;
	background:#fff;
	color:#103e70;
	border-radius:999px;
	font-weight:700;
	cursor:pointer;
}

/* ---------------------------------------------------------
   info2 columns
--------------------------------------------------------- */
.book-tab-content.info2 .book-index-columns {
	position:relative;
	column-count:2;
	column-gap:70px;
}

.book-tab-content.info2 .book-index-columns > * {
	break-inside:avoid;
	-webkit-column-break-inside:avoid;
	page-break-inside:avoid;
	margin-top:0;
	padding-left:0;
	border-left:0;
}

.book-tab-content.info2 .book-index-columns::before {
	content:"";
	position:absolute;
	top:0;
	bottom:0;
	left:calc(50% - 14px);
	width:1px;
	background:#ddd;
}

@media all and (max-width:767px) {
	.book-tab-content.info2 .book-index-columns {
		column-count:1;
		column-gap:0;
	}

	.book-tab-content.info2 .book-index-columns::before {
		content:none;
		display:none;
	}
}

.book-tab-content.info2 .book-index-columns p {
	margin:0 0 8px;
	line-height:1.6;
}

@media all and (min-width:960px) {
	.book-tab-content.info2 .book-index-columns {
		column-count:2;
	}
}

@media all and (min-width:413px) and (max-width:959px) {
	.book-tab-content.info2 .book-index-columns {
		column-count:2;
		column-gap:70px;
	}
}

@media all and (max-width:579px) {
	.book-tab-content.info2 .book-index-columns {
		column-count:1;
		column-gap:0;
	}

	.book-tab-content.info2 .book-index-columns > * {
		border-left:none !important;
		padding-left:0 !important;
	}
}

/* ---------------------------------------------------------
   same series legacy block
--------------------------------------------------------- */
.series-book-head { margin-bottom:10px; }

.series-book-title {
	display:block;
	width:80%;
	margin:0 auto;
	text-align:center;
}

.series-book-desc {
	display:block;
	margin-top:4px;
}

div.book-list-item {
	display:flex;
	width:100%;
	height:auto;
	flex:1;
	min-width:0;
	background:rgba(246,249,246,1);
	border-radius:4px;
	padding:16px 16px 8px;
}

div.book-cover-wrap { margin:0; }

div.book-cover-wrap > a > img {
	display:block;
	box-shadow:rgba(0,0,0,.08) 0 4px 12px;
}

div.book-desc-wrap { margin:0 0 0 20px; }

div.book-desc-wrap span.book-desc-option-gubun {
	display:inline;
	font-size:12px;
	color:#747474;
}

div.book-desc-wrap span.book-desc-option-gubun-txt {
	display:inline;
	font-size:13px;
	color:#33384a;
}

div.book-desc-wrap div.book-desc-option { margin-top:10px; }
div.book-desc-wrap div.book-desc-option div > span { display:inline; }
div.book-desc-wrap div.book-desc-option div > span:not(:first-child) { margin-left:6px; }
div.book-desc-wrap div.book-btn-wrap { margin:10px 0; }
div.book-desc-wrap div.book-btn-wrap > div { margin:6px 0 10px 0; }
div.book-desc-wrap div.book-btn-wrap > div > div { display:inline; }

div.book-rv-wrap { margin:10px 0 0 0; }
div.book-rv-wrap > ul.roll > li { margin:0; }
div.book-rv-wrap span.rv_content { display:inline; }

/* ---------------------------------------------------------
   media player
--------------------------------------------------------- */
.book-media-section {
	margin:20px 0 24px;
	padding:16px;
	border:1px solid #e6ecf5;
	border-radius:16px;
	background:#fff;
	box-shadow:0 2px 12px rgba(15,45,113,.05);
}

.book-media-head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
}

.book-media-title {
	margin:0;
	font-size:18px;
	font-weight:700;
	color:#0f2d71;
	line-height:1.4;
}

.book-media-head-right {
	display:flex;
	align-items:center;
	gap:10px;
}

.book-media-page-info {
	display:none;
	align-items:center;
	justify-content:center;
	min-width:68px;
	font-size:13px;
	font-weight:600;
	color:#4a587c;
	text-align:center;
}

.book-media-nav {
	display:flex;
	align-items:center;
	gap:6px;
}

.book-media-nav-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:32px;
	height:32px;
	border:1px solid #cfd8ea;
	border-radius:999px;
	background:#fff;
	color:#0f2d71;
	font-size:15px;
	font-weight:700;
	cursor:pointer;
}

.book-media-nav-btn:hover,
.book-media-nav-btn:focus {
	border-color:#0f2d71;
	background:#0f2d71;
	color:#fff;
}

.book-media-nav-btn.swiper-button-disabled {
	opacity:.35;
	cursor:default;
	pointer-events:none;
}

.book-media-player {
	position:relative;
	width:100%;
	padding-top:56.25%;
	border-radius:12px;
	overflow:hidden;
	background:#000;
}

.book-media-player iframe {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	border:0;
}

/* ---------------------------------------------------------
   quick nav
--------------------------------------------------------- */
.book-quick-nav {
	display:none;
	position:fixed;
	left:0;
	right:0;
	top:0;
	z-index:790;
	padding:8px 44px;
	background:rgba(255,255,255,.96);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	border-bottom:1px solid rgba(16,62,112,.12);
	box-shadow:0 4px 16px rgba(0,0,0,.06);
	transform:translateY(-100%);
	opacity:0;
	pointer-events:none;
	transition:transform .22s ease, opacity .22s ease;
}

.book-quick-nav.is-active {
	display:block;
	transform:translateY(0);
	opacity:1;
	pointer-events:auto;
}

.book-quick-nav__viewport {
	position:relative;
	overflow:hidden;
}

.book-quick-nav__inner {
	display:flex;
	gap:8px;
	overflow-x:auto;
	overflow-y:hidden;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	padding:0;
	margin:0;
}

.book-quick-nav__inner::-webkit-scrollbar {
	display:none;
}

.book-quick-nav__link {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	min-height:36px;
	padding:0 12px;
	border-radius:999px;
	border:1px solid #d4dce8;
	background:#fff;
	color:#103e70;
	font-size:13px;
	font-weight:700;
	text-decoration:none;
	white-space:nowrap;
}

.book-quick-nav__link.is-active {
	background:#103e70;
	border-color:#103e70;
	color:#fff;
}

.book-quick-nav__arrow {
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	z-index:2;
	display:none;
	align-items:center;
	justify-content:center;
	width:28px;
	height:28px;
	border:1px solid #cfd8ea;
	border-radius:999px;
	background:rgba(255,255,255,.96);
	color:#103e70;
	font-size:14px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
	box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.book-quick-nav__arrow:hover,
.book-quick-nav__arrow:focus {
	border-color:#103e70;
	background:#103e70;
	color:#fff;
}

.book-quick-nav__arrow--prev { left:10px; }
.book-quick-nav__arrow--next { right:10px; }

.book-quick-nav.is-scrollable .book-quick-nav__arrow {
	display:inline-flex;
}

.book-quick-nav.is-at-start .book-quick-nav__arrow--prev {
	opacity:.35;
	pointer-events:none;
}

.book-quick-nav.is-at-end .book-quick-nav__arrow--next {
	opacity:.35;
	pointer-events:none;
}

@media all and (min-width:413px) and (max-width:959px) {
	.book-quick-nav { padding:8px 42px; }
}

@media all and (max-width:412px) {
	.book-quick-nav { padding:8px 38px; }
	.book-quick-nav__inner { gap:6px; }
	.book-quick-nav__link {
		min-height:34px;
		padding:0 11px;
		font-size:12px;
	}
	.book-quick-nav__arrow {
		width:26px;
		height:26px;
		font-size:13px;
	}
	.book-quick-nav__arrow--prev { left:8px; }
	.book-quick-nav__arrow--next { right:8px; }
}

@media all and (min-width:960px) {
	.book-quick-nav {
		display:none !important;
	}
}

/* ---------------------------------------------------------
   info3 / info4 / info5 common
--------------------------------------------------------- */
.book-tab-content.info3 .book-tab-content-data,
.book-tab-content.info4 .book-tab-content-data,
.book-tab-content.info5 .book-tab-content-data {
	display:block;
}

.book-review-empty,
.book-data-empty,
.book-teacher-data-empty {
	padding:28px 16px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fafafa;
	color:#666;
	text-align:center;
	font-size:14px;
}

/* ---------------------------------------------------------
   info3 review card
--------------------------------------------------------- */
.book-review-card-list {
	display:grid;
	grid-template-columns:1fr;
	gap:16px;
}

.book-review-card {
	display:block;
	padding:18px 20px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
}

.book-review-card__head {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
}

.book-review-card__meta {
	display:flex;
	flex-direction:column;
	gap:4px;
	min-width:0;
}

.book-review-card__nick {
	font-size:14px;
	font-weight:700;
	color:#222;
	line-height:1.3;
}

.book-review-card__date {
	font-size:12px;
	color:#888;
	line-height:1.3;
}

.book-review-card__rate {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	min-width:96px;
	padding:7px 12px;
	border-radius:999px;
	background:#fff4dd;
	color:#c46b00;
	font-size:14px;
	font-weight:800;
	line-height:1;
	white-space:nowrap;
	border:1px solid #ffd78a;
	box-sizing:border-box;
}

.book-review-card__title {
	margin:0 0 12px;
	font-size:18px;
	font-weight:800;
	line-height:1.45;
	color:#1d2430;
	word-break:keep-all;
	overflow-wrap:anywhere;
}

.book-review-card__body {
	font-size:14px;
	line-height:1.75;
	color:#444;
	word-break:keep-all;
	padding-top:12px;
	border-top:1px solid #edf0f3;
}

.book-review-more-wrap {
	margin-top:16px;
	text-align:center;
}

.book-review-card__foot {
	margin-top:16px;
	padding-top:14px;
	border-top:1px solid #e5e7eb;
	text-align:right;
}

.book-review-card__more {
	display:inline-block;
	padding:8px 14px;
	border:1px solid #d1d5db;
	border-radius:999px;
	background:#fff;
	font-size:13px;
	font-weight:600;
	line-height:1;
	color:#374151;
	text-decoration:none;
	transition:all .2s ease;
}

.book-review-card__more:hover {
	border-color:#2563eb;
	background:#eff6ff;
	color:#1d4ed8;
	text-decoration:none;
}

.book-info3-more-banners {
	margin-top:24px;
}

.book-info3-more-banner {
	position:relative;
	display:block;
	padding:26px 72px 26px 24px;
	border:0;
	border-radius:16px;
	background:linear-gradient(135deg, #1d4ed8 0%, #2563eb 45%, #3b82f6 100%);
	text-decoration:none;
	box-sizing:border-box;
	overflow:hidden;
	box-shadow:0 14px 28px rgba(37, 99, 235, .22);
	transition:transform .2s ease, box-shadow .2s ease;
}

.book-info3-more-banner:hover {
	transform:translateY(-2px);
	box-shadow:0 18px 34px rgba(37, 99, 235, .28);
	text-decoration:none;
}

.book-info3-more-banner::before {
	content:"";
	position:absolute;
	top:-40px;
	right:-40px;
	width:140px;
	height:140px;
	border-radius:50%;
	background:rgba(255,255,255,.10);
}

.book-info3-more-banner::after {
	content:"";
	position:absolute;
	bottom:-30px;
	right:40px;
	width:90px;
	height:90px;
	border-radius:50%;
	background:rgba(255,255,255,.08);
}

.book-info3-more-banner__eyebrow {
	position:relative;
	display:inline-block;
	margin-bottom:10px;
	font-size:12px;
	font-weight:700;
	line-height:1;
	letter-spacing:.08em;
	color:rgba(255,255,255,.78);
}

.book-info3-more-banner__title {
	position:relative;
	display:block;
	margin-bottom:8px;
	font-size:24px;
	font-weight:800;
	line-height:1.35;
	color:#fff;
	word-break:keep-all;
}

.book-info3-more-banner__desc {
	position:relative;
	display:block;
	font-size:14px;
	line-height:1.6;
	color:rgba(255,255,255,.92);
	word-break:keep-all;
}

.book-info3-more-banner__arrow {
	position:absolute;
	top:50%;
	right:24px;
	transform:translateY(-50%);
	font-size:24px;
	font-weight:700;
	line-height:1;
	color:#fff;
}

/* ---------------------------------------------------------
   info4 / info5 card common
--------------------------------------------------------- */
.book-data-card-list,
.book-teacher-data-card-list {
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
}

.book-data-card,
.book-teacher-data-card {
	display:flex;
	align-items:stretch;
	gap:16px;
	width:100%;
	max-width:100%;
	padding:18px 20px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
	box-sizing:border-box;
}

.book-data-card__thumb,
.book-teacher-data-card__thumb {
	flex:0 0 96px;
	width:96px;
	max-width:96px;
}

.book-data-card__thumb img,
.book-teacher-data-card__thumb img {
	display:block;
	width:100%;
	max-width:100%;
	aspect-ratio:3 / 4;
	object-fit:cover;
	border-radius:12px;
	border:1px solid #e2e5ea;
	background:#f7f8fb;
}

.book-data-card__main,
.book-teacher-data-card__main {
	flex:1 1 auto;
	min-width:0;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.book-data-card__top,
.book-teacher-data-card__top {
	margin-bottom:8px;
}

.book-data-card__badge,
.book-teacher-data-card__badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:4px 10px;
	border-radius:999px;
	font-size:12px;
	font-weight:700;
	line-height:1.2;
	border:1px solid;
}

.book-data-card__badge {
	background:#eef4ff;
	color:#2f5db7;
	border-color:#cfe0ff;
}

.book-teacher-data-card__badge {
	background:#fff4dd;
	color:#b96b00;
	border-color:#ffd78a;
}

.book-data-card__title,
.book-teacher-data-card__title {
	margin:0 0 10px;
	font-size:17px;
	font-weight:800;
	line-height:1.45;
	color:#1d2430;
	min-width:0;
	overflow-wrap:anywhere;
	word-break:break-word;
}

.book-data-card__meta,
.book-teacher-data-card__meta {
	display:flex;
	flex-wrap:wrap;
	gap:8px 16px;
	min-width:0;
}

.book-data-card__meta-item,
.book-teacher-data-card__meta-item {
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:13px;
	color:#666;
	line-height:1.5;
}

.book-data-card__meta-item em,
.book-teacher-data-card__meta-item em {
	color:#5c6f91;
}

.book-data-card__action,
.book-teacher-data-card__action {
	flex:0 0 140px;
	width:140px;
	display:flex;
	align-items:center;
	justify-content:flex-end;
}

.book-data-card__btn,
.book-teacher-data-card__btn {
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	gap:6px;
	min-height:42px;
	padding:0 16px;
	border-radius:999px;
	font-size:14px;
	font-weight:700;
	text-decoration:none !important;
	box-shadow:none !important;
	white-space:nowrap;
}

.book-data-card__btn {
	min-width:118px;
	background:#163d8f;
	color:#fff !important;
	border:0 !important;
}

.book-data-card__btn:hover,
.book-data-card__btn:focus {
	background:#0f2d71;
	color:#fff !important;
	text-decoration:none !important;
}

.book-teacher-data-card__btn {
	min-width:112px;
	background:#f5f7fb;
	color:#163d8f !important;
	border:1px solid #d8e0ef !important;
}

.book-teacher-data-card__btn:hover,
.book-teacher-data-card__btn:focus {
	background:#163d8f;
	color:#fff !important;
	text-decoration:none !important;
}

/* ---------------------------------------------------------
   info5 panel
--------------------------------------------------------- */
.book-teacher-panel {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	padding:22px 24px;
	margin-bottom:18px;
	border:1px solid #d9e3f5;
	border-radius:18px;
	background:linear-gradient(135deg, #f7faff 0%, #edf4ff 100%);
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
}

.book-teacher-panel__main {
	flex:1 1 auto;
	min-width:0;
}

.book-teacher-panel__badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:5px 10px;
	border-radius:999px;
	background:#163d8f;
	color:#fff;
	font-size:12px;
	font-weight:700;
	line-height:1.2;
	margin-bottom:10px;
}

.book-teacher-panel__title {
	margin:0 0 8px;
	font-size:22px;
	font-weight:800;
	line-height:1.35;
	color:#1c2f57;
	word-break:keep-all;
}

.book-teacher-panel__desc {
	margin:0;
	font-size:15px;
	line-height:1.7;
	color:#44516a;
	word-break:keep-all;
}

.book-teacher-panel__action {
	flex:0 0 auto;
}

.book-teacher-panel__btn {
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-width:180px;
	min-height:46px;
	padding:0 18px;
	border-radius:999px;
	background:#163d8f;
	color:#fff !important;
	font-size:14px;
	font-weight:700;
	text-decoration:none !important;
	border:0 !important;
	box-shadow:none !important;
	white-space:nowrap;
}

.book-teacher-panel__btn:hover,
.book-teacher-panel__btn:focus {
	background:#0f2d71;
	color:#fff !important;
	text-decoration:none !important;
}

/* ---------------------------------------------------------
   responsive common cards
--------------------------------------------------------- */
@media all and (min-width:1200px) {
	.book-data-card__thumb,
	.book-teacher-data-card__thumb {
		flex:0 0 120px;
		width:120px;
		max-width:120px;
	}

	.book-data-card__action,
	.book-teacher-data-card__action {
		flex:0 0 150px;
		width:150px;
	}

	.book-review-card__title {
		font-size:19px;
	}

	.book-data-card__title,
	.book-teacher-data-card__title {
		font-size:18px;
	}
}

@media all and (min-width:992px) and (max-width:1199px) {
	.book-data-card__thumb,
	.book-teacher-data-card__thumb {
		flex:0 0 100px;
		width:100px;
		max-width:100px;
	}

	.book-data-card__action,
	.book-teacher-data-card__action {
		flex:0 0 136px;
		width:136px;
	}

	.book-teacher-panel__title {
		font-size:21px;
	}
}

@media all and (min-width:768px) and (max-width:991px) {
	.book-review-card,
	.book-data-card,
	.book-teacher-data-card {
		padding:16px 18px;
		border-radius:14px;
	}

	.book-review-card__title {
		font-size:17px;
	}

	.book-data-card,
	.book-teacher-data-card,
	.book-teacher-panel {
		flex-direction:column;
		align-items:flex-start;
	}

	.book-data-card__thumb,
	.book-teacher-data-card__thumb {
		flex:0 0 auto;
		width:100%;
		max-width:320px;
	}

	.book-data-card__main,
	.book-teacher-data-card__main {
		width:100%;
	}

	.book-data-card__action,
	.book-teacher-data-card__action,
	.book-teacher-panel__action {
		width:100%;
		justify-content:flex-start;
	}

	.book-data-card__btn,
	.book-teacher-data-card__btn,
	.book-teacher-panel__btn {
		width:100%;
	}

	.book-teacher-panel {
		padding:20px;
		border-radius:16px;
	}

	.book-teacher-panel__title {
		font-size:20px;
	}
}

@media all and (min-width:413px) and (max-width:767px) {
	.book-review-card,
	.book-data-card,
	.book-teacher-data-card {
		padding:16px;
		border-radius:14px;
	}

	.book-review-card__head,
	.book-data-card,
	.book-teacher-data-card,
	.book-teacher-panel {
		flex-direction:column;
		align-items:flex-start;
	}

	.book-review-card__rate {
		min-width:auto;
		padding:6px 10px;
		font-size:13px;
	}

	.book-review-card__title {
		font-size:16px;
		margin-bottom:10px;
	}

	.book-review-card__body {
		font-size:13px;
		line-height:1.7;
	}

	.book-data-card__thumb,
	.book-teacher-data-card__thumb {
		flex:0 0 auto;
		width:100%;
		max-width:320px;
	}

	.book-data-card__main,
	.book-teacher-data-card__main,
	.book-data-card__action,
	.book-teacher-data-card__action,
	.book-teacher-panel__action {
		width:100%;
	}

	.book-data-card__btn,
	.book-teacher-data-card__btn,
	.book-teacher-panel__btn {
		width:100%;
	}

	.book-teacher-panel {
		padding:18px 16px;
		border-radius:14px;
		gap:14px;
	}

	.book-teacher-panel__title {
		font-size:18px;
	}

	.book-teacher-panel__desc {
		font-size:14px;
		line-height:1.65;
	}
}

@media all and (max-width:412px) {
	.book-review-card-list,
	.book-data-card-list,
	.book-teacher-data-card-list {
		gap:12px;
	}

	.book-review-card,
	.book-data-card,
	.book-teacher-data-card {
		padding:14px;
		border-radius:12px;
	}

	.book-review-card__head,
	.book-data-card,
	.book-teacher-data-card,
	.book-teacher-panel {
		flex-direction:column;
		align-items:flex-start;
	}

	.book-review-card__head {
		gap:8px;
		margin-bottom:10px;
	}

	.book-review-card__nick { font-size:13px; }
	.book-review-card__date { font-size:11px; }

	.book-review-card__rate {
		min-width:auto;
		padding:6px 10px;
		font-size:13px;
	}

	.book-review-card__title {
		font-size:15px;
		line-height:1.4;
		margin-bottom:8px;
	}

	.book-review-card__body {
		font-size:13px;
		line-height:1.65;
		padding-top:10px;
	}

	.book-data-card__thumb,
	.book-teacher-data-card__thumb {
		flex:0 0 auto;
		width:100%;
		max-width:320px;
	}

	.book-data-card__main,
	.book-teacher-data-card__main,
	.book-data-card__action,
	.book-teacher-data-card__action,
	.book-teacher-panel__action {
		width:100%;
	}

	.book-data-card__title,
	.book-teacher-data-card__title {
		font-size:15px;
		margin-bottom:8px;
		line-height:1.4;
	}

	.book-data-card__meta,
	.book-teacher-data-card__meta {
		gap:6px 12px;
	}

	.book-data-card__meta-item,
	.book-teacher-data-card__meta-item {
		font-size:12px;
	}

	.book-data-card__btn,
	.book-teacher-data-card__btn,
	.book-teacher-panel__btn {
		width:100%;
		min-height:38px;
		font-size:13px;
	}

	.book-teacher-panel {
		padding:16px 14px;
		border-radius:12px;
		gap:12px;
		margin-bottom:14px;
	}

	.book-teacher-panel__badge {
		font-size:11px;
		padding:4px 8px;
		margin-bottom:8px;
	}

	.book-teacher-panel__title {
		font-size:16px;
		margin-bottom:6px;
	}

	.book-teacher-panel__desc {
		font-size:13px;
		line-height:1.6;
	}

	.book-review-card__foot {
		margin-top:14px;
		padding-top:12px;
	}

	.book-review-card__more {
		padding:8px 12px;
		font-size:12px;
	}

	.book-info3-more-banners {
		margin-top:20px;
	}

	.book-info3-more-banner {
		padding:22px 56px 22px 18px;
		border-radius:14px;
	}

	.book-info3-more-banner__title {
		font-size:19px;
	}

	.book-info3-more-banner__desc {
		font-size:13px;
		line-height:1.5;
	}

	.book-info3-more-banner__arrow {
		right:18px;
		font-size:20px;
	}
}

/* ---------------------------------------------------------
   info7 internet lecture card
--------------------------------------------------------- */
.book-tab-content.info7 .book-tab-content-data {
	display:block;
}

.book-lecture-guide {
	display:flex;
	align-items:flex-start;
	gap:16px;
	padding:20px 22px;
	margin-bottom:18px;
	border:1px solid #dce6f4;
	border-radius:18px;
	background:linear-gradient(135deg, #f7fbff 0%, #eef5ff 100%);
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
}

.book-lecture-guide__icon {
	flex:0 0 44px;
	width:44px;
	height:44px;
	border-radius:999px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:#163d8f;
	color:#fff;
	font-size:20px;
}

.book-lecture-guide__body {
	flex:1 1 auto;
	min-width:0;
}

.book-lecture-guide__title {
	margin:0 0 8px;
	font-size:20px;
	font-weight:800;
	line-height:1.35;
	color:#1c2f57;
	word-break:keep-all;
}

.book-lecture-guide__desc {
	margin:0 0 8px;
	font-size:14px;
	line-height:1.7;
	color:#44516a;
	word-break:keep-all;
}

.book-lecture-guide__help {
	margin:0;
	font-size:13px;
	line-height:1.7;
	color:#5f6f8a;
}

.book-lecture-card-list {
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
}

.book-lecture-card {
	display:flex;
	align-items:stretch;
	gap:16px;
	width:100%;
	max-width:100%;
	padding:18px 20px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
	box-sizing:border-box;
}

.book-lecture-card__thumb {
	flex:0 0 96px;
	width:96px;
	max-width:96px;
}

.book-lecture-card__thumb img {
	display:block;
	width:100%;
	max-width:100%;
	aspect-ratio:3 / 4;
	object-fit:cover;
	border-radius:12px;
	border:1px solid #e2e5ea;
	background:#f7f8fb;
}

.book-lecture-card__main {
	flex:1 1 auto;
	min-width:0;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.book-lecture-card__top {
	margin-bottom:8px;
}

.book-lecture-card__badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:4px 10px;
	border-radius:999px;
	background:#eef4ff;
	color:#2f5db7;
	border:1px solid #cfe0ff;
	font-size:12px;
	font-weight:700;
	line-height:1.2;
}

.book-lecture-card__title {
	margin:0 0 10px;
	font-size:18px;
	font-weight:800;
	line-height:1.45;
	color:#1d2430;
	min-width:0;
	overflow-wrap:anywhere;
	word-break:break-word;
}

.book-lecture-card__teacher {
	display:flex;
	align-items:center;
	gap:6px;
	margin-bottom:10px;
	font-size:14px;
	color:#37465f;
	font-weight:600;
}

.book-lecture-card__meta {
	display:flex;
	flex-wrap:wrap;
	gap:8px 16px;
	min-width:0;
}

.book-lecture-card__meta-item {
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:13px;
	color:#666;
	line-height:1.5;
}

.book-lecture-card__meta-item em {
	color:#5c6f91;
}

.book-lecture-card__action {
	flex:0 0 140px;
	width:140px;
	display:flex;
	align-items:center;
	justify-content:flex-end;
}

.book-lecture-card__btn {
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	gap:6px;
	min-width:112px;
	min-height:42px;
	padding:0 16px;
	border-radius:999px;
	background:#163d8f;
	color:#fff !important;
	font-size:14px;
	font-weight:700;
	text-decoration:none !important;
	box-shadow:none !important;
	border:0 !important;
	white-space:nowrap;
}

.book-lecture-card__btn:hover,
.book-lecture-card__btn:focus {
	background:#0f2d71;
	color:#fff !important;
	text-decoration:none !important;
}

.book-lecture-empty {
	padding:28px 16px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fafafa;
	color:#666;
	text-align:center;
	font-size:14px;
}

@media all and (min-width:1200px) {
	.book-lecture-card__thumb {
		flex:0 0 120px;
		width:120px;
		max-width:120px;
	}

	.book-lecture-card__action {
		flex:0 0 150px;
		width:150px;
	}
}

@media all and (min-width:992px) and (max-width:1199px) {
	.book-lecture-card__thumb {
		flex:0 0 100px;
		width:100px;
		max-width:100px;
	}

	.book-lecture-card__action {
		flex:0 0 136px;
		width:136px;
	}
}

@media all and (max-width:991px) {
	.book-lecture-guide,
	.book-lecture-card {
		flex-direction:column;
		align-items:flex-start;
	}

	.book-lecture-card__thumb {
		flex:0 0 auto;
		width:100%;
		max-width:320px;
	}

	.book-lecture-card__main,
	.book-lecture-card__action {
		width:100%;
	}

	.book-lecture-card__btn {
		width:100%;
	}
}

@media all and (max-width:412px) {
	.book-lecture-guide {
		padding:16px 14px;
		border-radius:12px;
	}

	.book-lecture-guide__title {
		font-size:16px;
	}

	.book-lecture-guide__desc,
	.book-lecture-guide__help {
		font-size:13px;
		line-height:1.6;
	}

	.book-lecture-card {
		padding:14px;
		border-radius:12px;
	}

	.book-lecture-card__title {
		font-size:15px;
		line-height:1.4;
	}

	.book-lecture-card__teacher,
	.book-lecture-card__meta-item {
		font-size:12px;
	}

	.book-lecture-card__btn {
		min-height:38px;
		font-size:13px;
	}
}

/* ---------------------------------------------------------
   info6 related series tab + card
--------------------------------------------------------- */
.book-tab-content.info6 .book-tab-content-data {
	display:block;
}

.book-series-tab-nav {
	display:flex;
	gap:10px;
	margin-bottom:18px;
	overflow-x:auto;
	padding-bottom:2px;
	-webkit-overflow-scrolling:touch;
}

.book-series-tab-nav__btn {
	flex:0 0 auto;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	justify-content:center;
	gap:3px;
	min-width:160px;
	padding:12px 14px;
	border:1px solid #d9e3f5;
	border-radius:14px;
	background:#f8fbff;
	color:#35507f;
	font-size:13px;
	line-height:1.3;
	text-align:left;
	cursor:pointer;
	box-sizing:border-box;
}

.book-series-tab-nav__btn.is-active {
	background:#163d8f;
	border-color:#163d8f;
	color:#fff;
}

.book-series-tab-nav__level {
	font-size:11px;
	font-weight:700;
	opacity:.9;
}

.book-series-tab-nav__name {
	font-size:14px;
	font-weight:800;
	word-break:keep-all;
}

.book-series-panel {
	display:none;
}

.book-series-panel.is-active {
	display:block;
}

.book-series-panel__head {
	padding:18px 20px;
	margin-bottom:16px;
	border:1px solid #dce6f4;
	border-radius:18px;
	background:linear-gradient(135deg, #f7fbff 0%, #eef5ff 100%);
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
}

.book-series-panel__head-top {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px;
	margin-bottom:8px;
}

.book-series-panel__badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:5px 10px;
	border-radius:999px;
	background:#163d8f;
	color:#fff;
	font-size:12px;
	font-weight:700;
	line-height:1.2;
}

.book-series-panel__title {
	margin:0;
	font-size:22px;
	font-weight:800;
	line-height:1.35;
	color:#1c2f57;
	word-break:keep-all;
}

.book-series-panel__desc {
	font-size:14px;
	line-height:1.7;
	color:#44516a;
	word-break:keep-all;
}

.book-series-card-list {
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
}

.book-series-card {
	display:block;
}

.book-series-card__link {
	display:flex;
	align-items:flex-start;
	gap:16px;
	width:100%;
	max-width:100%;
	padding:18px 20px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(0,0,0,0.04);
	box-sizing:border-box;
	text-decoration:none !important;
}

.book-series-card__thumb {
	position:relative;
	width:96px;
	min-width:96px;
	flex:0 0 96px;
	overflow:hidden;
}

.book-series-card__thumb img {
	display:block;
	width:96px;
	height:auto;
	max-width:100%;
	object-fit:cover;
	image-rendering:auto;
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
}

.book-series-card__main {
	flex:1 1 auto;
	min-width:0;
	width:auto;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
}

.book-series-card__icons {
	display:block;
	width:100%;
	margin:0 0 10px;
	line-height:1.4;
}

.book-series-card__icons .book-bullet-list {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px;
	width:100%;
	margin:0;
}

.book-series-card__title {
	display:block;
	width:100%;
	margin:0 0 10px;
	font-size:18px;
	font-weight:800;
	line-height:1.45;
	color:#1d2430;
	word-break:keep-all;
	overflow-wrap:anywhere;
}

.book-series-card__meta {
	display:flex;
	flex-wrap:wrap;
	gap:8px 16px;
	width:100%;
	margin-bottom:12px;
}

.book-series-card__meta-item {
	display:inline-block;
	font-size:13px;
	line-height:1.6;
	color:#666;
}

.book-series-card__meta-item strong {
	color:#1d2430;
	font-weight:700;
}

.book-series-card__review {
	display:block;
	width:100%;
	padding-top:12px;
	border-top:1px solid #edf0f3;
}

.book-series-card__review-item {
	display:flex;
	align-items:flex-start;
	gap:10px;
	width:100%;
	margin-bottom:6px;
}

.book-series-card__review-item:last-child {
	margin-bottom:0;
}

.book-series-card__review-rate {
	flex:0 0 auto;
	min-width:52px;
	font-weight:800;
	color:#cc0066;
	line-height:1.6;
	white-space:nowrap;
}

.book-series-card__review-text {
	display:block;
	flex:1 1 auto;
	min-width:0;
	width:auto;
	white-space:normal;
	word-break:keep-all;
	overflow-wrap:anywhere;
	line-height:1.7;
	color:#4b5565;
}

.book-series-card__action {
	flex:0 0 130px;
	width:130px;
	display:flex;
	align-items:center;
	justify-content:flex-end;
	align-self:center;
}

.book-series-card__btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:108px;
	min-height:42px;
	padding:0 16px;
	border-radius:999px;
	background:#163d8f;
	color:#fff;
	font-size:14px;
	font-weight:700;
	white-space:nowrap;
}

.book-series-empty {
	padding:28px 16px;
	border:1px solid #e2e5ea;
	border-radius:16px;
	background:#fafafa;
	color:#666;
	text-align:center;
	font-size:14px;
}

@media all and (min-width:1200px) {
	.book-series-card__thumb {
		flex:0 0 120px;
		width:120px;
		max-width:120px;
	}

	.book-series-card__thumb img {
		width:120px;
	}

	.book-series-card__title {
		font-size:19px;
	}

	.book-series-card__action {
		flex:0 0 150px;
		width:150px;
	}
}

@media all and (min-width:992px) and (max-width:1199px) {
	.book-series-card__thumb {
		flex:0 0 100px;
		width:100px;
		max-width:100px;
	}

	.book-series-card__thumb img {
		width:100px;
	}

	.book-series-card__action {
		flex:0 0 136px;
		width:136px;
	}
}

@media all and (max-width:991px) {
	.book-series-panel__head {
		padding:18px 16px;
		border-radius:16px;
	}

	.book-series-panel__title {
		font-size:18px;
	}

	.book-series-card__link {
		flex-direction:column;
		align-items:flex-start;
		padding:16px;
		border-radius:14px;
	}

	.book-series-card__thumb {
		flex:0 0 auto;
		width:100%;
		max-width:320px;
		justify-items:center;
	}

	.book-series-card__thumb img {
		/*width:100%;*/
		width:241px;
	}

	.book-series-card__main,
	.book-series-card__action {
		width:100%;
	}

	.book-series-card__action {
		justify-content:flex-start;
		align-self:auto;
	}

	.book-series-card__btn {
		width:100%;
	}
}

@media all and (max-width:412px) {
	.book-series-tab-nav__btn {
		min-width:136px;
		padding:10px 12px;
		border-radius:12px;
	}

	.book-series-panel__head {
		padding:16px 14px;
		border-radius:12px;
	}

	.book-series-panel__title {
		font-size:16px;
	}

	.book-series-panel__desc {
		font-size:13px;
		line-height:1.6;
	}

	.book-series-card__link {
		padding:14px;
		border-radius:12px;
	}

	.book-series-card__title {
		font-size:15px;
		line-height:1.4;
	}

	.book-series-card__meta-item,
	.book-series-card__review-item,
	.book-series-card__review-text {
		font-size:12px;
	}

	.book-series-card__btn {
		min-height:38px;
		font-size:13px;
	}
}

/* ---------------------------------------------------------
   responsive tab / quick nav switch
--------------------------------------------------------- */
@media all and (min-width:959px) {
	#page-body-content > ul.book-navi-tab,
	section ul.book-navi-tab {
		display:flex !important;
	}

	.book-quick-nav {
		display:none !important;
	}
}

@media all and (max-width:958px) {
	#page-body-content > ul.book-navi-tab,
	section ul.book-navi-tab {
		display:none !important;
	}

	.book-quick-nav {
		display:block !important;
	}
}

/* ---------------------------------------------------------
   mobile top summary card
--------------------------------------------------------- */
@media all and (max-width:768px) {
	#page-top-content {
		margin-bottom:20px;
	}

	#page-top-content .page-top-content-box,
	div.page-top-content-box {
		display:block !important;
		width:100%;
		padding:16px !important;
		border-radius:4px;
		box-shadow:0 10px 28px rgba(0,0,0,.10);
		overflow:hidden;
	}

	#page-top-content .book-basic-info,
	div.book-basic-info {
		margin:0 !important;
		padding:0 !important;
		line-height:1.7 !important;
		color:#fff;
	}

	#page-top-content .book-basic-info .book-title-wrap,
	div.book-basic-info div.book-title-wrap {
		margin-top:0 !important;
		text-align:center;
		line-height:1.4;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-mesg,
	div.book-basic-info div.book-title-wrap span.book-title-mesg {
		font-size:12px;
		font-weight:500;
		opacity:.92;
		text-align:center;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-name {
		display:block;
		margin-top:6px;
		font-size:23px !important;
		line-height:1.28;
		font-weight:700;
		text-align:center;
		word-break:keep-all;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-sub,
	#page-top-content .book-basic-info .book-title-wrap .book-title-lead {
		text-align:center;
	}

	#page-top-content .book-basic-info .book-info-concise-wrap,
	div.book-basic-info div.book-info-concise-wrap {
		margin:14px 0 0 !important;
		padding:14px 14px 10px;
		background:rgba(255,255,255,.14);
		border:1px solid rgba(255,255,255,.18);
		border-radius:12px;
		backdrop-filter:blur(2px);
		-webkit-backdrop-filter:blur(2px);
		column-count:1 !important;
	}

	#page-top-content .book-basic-info .book-info-concise-wrap > div,
	#page-top-content .book-basic-info .book-info-concise-wrap > span {
		margin-bottom:6px;
	}

	#page-top-content .book-basic-info .book-concise-desc,
	div.book-basic-info div.book-concise-desc {
		display:none !important;
	}

	.book-concise-mo-wrap,
	#page-top-content .book-concise-mo-wrap {
		display:block !important;
		margin-top:14px !important;
		padding:14px;
		background:#fff;
		border-radius:12px;
		box-shadow:0 6px 18px rgba(0,0,0,.08);
		color:#222;
	}

	.book-concise-mo-title,
	#page-top-content .book-concise-mo-title {
		display:block;
		margin:0 0 8px;
		font-size:14px;
		font-weight:700;
		line-height:1.4;
		color:#111;
	}

	.book-feature-list {
		margin:0;
		padding:0;
	}

	.book-feature-item {
		display:flex;
		align-items:flex-start;
		gap:8px;
		margin:0 0 8px;
	}

	.book-feature-item:last-child {
		margin-bottom:0;
	}

	.book-feature-text {
		flex:1 1 auto;
		line-height:1.55;
		font-size:13px;
		color:#333;
	}

	#page-top-content .book-basic-info .book-btn-wrap,
	div.book-basic-info div.book-btn-wrap {
		display:flex;
		flex-wrap:wrap;
		gap:10px;
		margin-top:14px;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half {
		display:flex !important;
		flex:1 1 calc(50% - 5px);
		min-width:calc(50% - 5px);
		margin:0 !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half > div,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half > div {
		width:100%;
		margin:0 !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap a,
	#page-top-content .book-basic-info .book-btn-wrap button,
	div.book-basic-info div.book-btn-wrap a,
	div.book-basic-info div.book-btn-wrap button {
		width:100%;
		min-height:44px;
		border-radius:10px;
	}

	#page-top-content span {
		word-break:keep-all;
	}

	#page-top-content .book-bullet-list {
		justify-content:center;
		margin-top:10px;
		margin-bottom:8px;
	}

	#page-top-content .book-info-arrow {
		opacity:.9;
	}
}

@media all and (max-width:412px) {
	#page-top-content .page-top-content-box,
	div.page-top-content-box {
		padding:14px !important;
		border-radius:14px;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-name {
		font-size:20px !important;
	}

	.book-concise-mo-wrap,
	#page-top-content .book-concise-mo-wrap {
		padding:12px;
		border-radius:10px;
	}

	#page-top-content .book-basic-info .book-btn-wrap,
	div.book-basic-info div.book-btn-wrap {
		gap:8px;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half {
		flex:1 1 100%;
		min-width:100%;
	}
}

/* ---------------------------------------------------------
   958 이하 : mobile tab content card
--------------------------------------------------------- */
@media all and (max-width:958px) {
	#page-body-content > ul.book-navi-tab,
	section ul.book-navi-tab {
		display:none !important;
	}

	.book-quick-nav {
		display:block !important;
	}

	#page-body-content .book-tab-content-wrap .book-tab-content,
	section .book-tab-content-wrap .book-tab-content {
		display:block !important;
		margin-top:16px !important;
		padding:18px 14px 16px !important;
		border:1px solid #d9e1ef !important;
		border-radius:14px;
		background:#fff;
		box-shadow:0 6px 18px rgba(16, 62, 112, .06);
		scroll-margin-top:74px;
		min-height:auto !important;
		height:auto !important;
	}

	#page-body-content .book-tab-content-wrap .book-tab-content:first-child,
	section .book-tab-content-wrap .book-tab-content:first-child {
		margin-top:0 !important;
		border-top:1px solid #d9e1ef !important;
	}

	.mo-book-content-title,
	#page-body-content .mo-book-content-title,
	#page-body-content .book-tab-content .mo-book-content-title,
	section div.book-tab-content span.mo-book-content-title {
		display:flex !important;
		align-items:center;
		gap:8px;
		width:100%;
		margin:0 0 14px !important;
		padding:0 0 10px !important;
		border:0 !important;
		border-bottom:2px solid #103e70 !important;
		background:none !important;
		color:#103e70 !important;
		font-size:18px !important;
		line-height:1.35 !important;
		font-weight:700 !important;
		letter-spacing:-0.01em;
	}

	.mo-book-content-title::before,
	#page-body-content .mo-book-content-title::before,
	#page-body-content .book-tab-content .mo-book-content-title::before,
	section div.book-tab-content span.mo-book-content-title::before {
		content:"";
		display:inline-block;
		width:5px;
		height:18px;
		border-radius:999px;
		background:#103e70;
		flex:0 0 auto;
	}

	#page-body-content .book-tab-content .book-tab-content-data,
	section .book-tab-content .book-tab-content-data {
		display:block;
		color:#222;
	}

	#page-body-content .book-tab-content .book-tab-content-data p,
	section .book-tab-content .book-tab-content-data p {
		line-height:1.6;
	}

	.book-preview-head,
	.book-media-head {
		align-items:flex-start;
		flex-direction:column;
		gap:10px;
	}

	.book-preview-head-right,
	.book-media-head-right {
		width:100%;
		justify-content:space-between;
	}

	.book-preview-title,
	.book-media-title {
		font-size:18px;
		line-height:1.35;
		font-weight:700;
		color:#103e70;
	}

	.book-concise-mo-wrap {
		display:block !important;
		margin-top:16px;
	}
}

@media all and (max-width:768px) {
	#page-body-content .book-tab-content-wrap .book-tab-content,
	section .book-tab-content-wrap .book-tab-content {
		margin-top:14px !important;
		padding:16px 12px 14px !important;
		border-radius:12px;
	}

	.mo-book-content-title,
	#page-body-content .mo-book-content-title,
	#page-body-content .book-tab-content .mo-book-content-title,
	section div.book-tab-content span.mo-book-content-title {
		margin-bottom:12px !important;
		padding-bottom:9px !important;
		font-size:17px !important;
	}

	.mo-book-content-title::before,
	#page-body-content .mo-book-content-title::before,
	#page-body-content .book-tab-content .mo-book-content-title::before,
	section div.book-tab-content span.mo-book-content-title::before {
		height:16px;
	}
}

@media all and (max-width:412px) {
	#page-body-content .book-tab-content-wrap .book-tab-content,
	section .book-tab-content-wrap .book-tab-content {
		padding:14px 11px 12px !important;
		border-radius:10px;
	}

	.mo-book-content-title,
	#page-body-content .mo-book-content-title,
	#page-body-content .book-tab-content .mo-book-content-title,
	section div.book-tab-content span.mo-book-content-title {
		font-size:16px !important;
		margin-bottom:10px !important;
		padding-bottom:8px !important;
	}

	.mo-book-content-title::before,
	#page-body-content .mo-book-content-title::before,
	#page-body-content .book-tab-content .mo-book-content-title::before,
	section div.book-tab-content span.mo-book-content-title::before {
		width:4px;
		height:15px;
	}
}

/* ---------------------------------------------------------
   top layout reconstructed
--------------------------------------------------------- */
.book-title-icons {
	display:block;
	margin:0 0 8px;
}

.book-top-summary-row {
	display:flex;
	align-items:flex-start;
	gap:20px;
	margin-top:14px;
}

.book-top-summary-main {
	flex:1 1 auto;
	min-width:0;
	display:flex;
	flex-direction:column;
	gap:14px;
}

.book-cover-top img {
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:3 / 4;
	object-fit:cover;
	border-radius:4px;
}

.book-concise-desc {
	margin:0;
}

.book-concise-mo-body {
	display:block;
	padding:14px 16px;
	background:rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.18);
	border-radius:3px;
	color:#fff;
}

.book-concise-mo-icons {
	margin:0 0 8px;
}

.book-concise-mo-text {
	display:flex;
	flex-direction:column;
	gap:8px;
}

.book-concise-mo-line {
	position:relative;
	display:block;
	padding-left:54px;
	line-height:1.75;
	word-break:keep-all;
	color:#fff;
}

.book-concise-mo-line::before {
	content:"POINT";
	position:absolute;
	left:0;
	top:3px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:18px;
	border-radius:3px;
	background:#ffcc00;
	border:1px solid rgba(0,0,0,.12);
	color:#103e70;
	font-size:11px;
	font-weight:800;
	line-height:1;
}

.book-info-concise-wrap {
	margin-top:0 !important;
	margin-left:0 !important;
}

.book-info-concise-item {
	display:flex;
	align-items:flex-start;
	gap:10px;
	margin:0 0 6px;
}

.book-info-concise-label {
	flex:0 0 32px;
	font-weight:700;
	color:#fff;
}

.book-info-concise-value {
	flex:1 1 auto;
	color:#fff;
	word-break:keep-all;
}

.book-title-wrap {
	display:block;
}

.book-title-mesg {
	display:block;
	margin:0 0 6px;
	font-size:13px;
	line-height:1.5;
	opacity:.92;
}

.book-title-name {
	display:block;
	margin:0;
}

.book-title-sub,
.book-title-lead {
	display:block;
	margin-top:6px;
}

.book-feature-list {
	display:flex;
	flex-direction:column;
	gap:8px;
	margin:12px 0 0;
	padding-top:12px;
	border-top:1px solid rgba(255,255,255,.18);
}

.book-feature-item {
	display:flex;
	align-items:flex-start;
	gap:10px;
}

.book-feature-label {
	flex:0 0 44px;
	font-size:12px;
	font-weight:700;
	line-height:1.6;
	color:#dfe9ff;
}

.book-feature-value {
	flex:1 1 auto;
	font-size:13px;
	line-height:1.65;
	color:#fff;
	word-break:keep-all;
}

.book-feature-value .book-bullet-list {
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	align-items:center;
	margin:0;
}

.book-gubun-badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:24px;
	padding:0 8px;
	border-radius:999px;
	background:rgba(255,255,255,.14);
	border:1px solid rgba(255,255,255,.24);
	font-size:12px;
	font-weight:700;
	line-height:1;
	color:#fff;
	white-space:nowrap;
	letter-spacing:-0.01em;
}

/* ---------------------------------------------------------
   mobile cover restore / top summary
--------------------------------------------------------- */
.book-page-top .book-title-wrap {
	display:block;
}

.book-page-top .book-top-summary-row {
	display:flex;
	align-items:flex-start;
	gap:20px;
	margin-top:14px;
}

.book-page-top .book-cover-top {
	flex:0 0 205px;
	width:205px;
	height:auto;
}

.book-page-top .book-cover-top img {
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:3 / 4;
	object-fit:cover;
	border-radius:4px;
	box-shadow:rgba(0,0,0,.12) 0 10px 24px;
}

.book-page-top .book-top-summary-main {
	flex:1 1 auto;
	min-width:0;
}

.book-page-top .book-btn-wrap {
	gap:8px;
}

.book-page-top .book-btn-wrap .book-btn-wrap-half {
	margin-left:0;
}

@media all and (max-width:768px) {
	.book-top-summary-row,
	.book-page-top .book-top-summary-row {
		flex-direction:column;
		gap:14px;
	}

	.book-cover-top,
	.book-page-top .book-cover-top {
		margin:0 auto !important;
	}

	.book-top-summary-main,
	.book-page-top .book-top-summary-main {
		width:100%;
	}

	.book-concise-mo-body {
		padding:12px 14px;
		border-radius:3px;
	}

	.book-title-icons {
		margin-bottom:7px;
	}

	.book-title-mesg {
		margin-bottom:5px;
		font-size:12px;
	}

	.book-feature-list {
		gap:7px;
		margin-top:10px;
		padding-top:10px;
	}

	.book-feature-label {
		flex-basis:40px;
		font-size:11px;
	}

	.book-feature-value {
		font-size:12px;
	}

	.book-info-concise-label {
		flex:0 0 58px;
	}

	.book-gubun-badge {
		min-height:22px;
		padding:0 7px;
		font-size:11px;
	}

	.book-concise-mo-text {
		gap:7px;
	}

	.book-concise-mo-line {
		padding-left:26px;
		line-height:1.68;
	}

	.book-concise-mo-line::before {
		top:2px;
		width:17px;
		height:17px;
		font-size:10px;
		content:"";
		border-radius:999px;
	}
}

@media all and (max-width:412px) {
	.book-feature-item {
		gap:8px;
	}

	.book-feature-label {
		flex-basis:36px;
	}

	.book-info-concise-label {
		flex:0 0 54px;
	}

	.book-concise-mo-line {
		padding-left:24px;
	}

	.book-concise-mo-line::before {
		width:16px;
		height:16px;
	}
}

@media all and (max-width:768px) {
	#page-top-content .page-top-content-box,
	div.page-top-content-box {
		display:block !important;
		padding:16px !important;
	}

	#page-top-content .book-top-summary-row,
	.book-page-top .book-top-summary-row {
		flex-direction:column;
		align-items:center;
		gap:14px;
	}

	#page-top-content .book-cover-top,
	.book-page-top .book-cover-top,
	div.book-cover-top {
		display:block !important;
		flex:0 0 auto;
		width:345px;
		max-width:345px;
		height:auto;
		margin:0 auto !important;
	}

	#page-top-content .book-cover-top img,
	.book-page-top .book-cover-top img {
		width:100%;
		height:auto;
	}

	#page-top-content .book-top-summary-main,
	.book-page-top .book-top-summary-main {
		width:100%;
	}

	#page-top-content .book-basic-info,
	div.book-basic-info {
		margin:0 !important;
		padding:0 !important;
	}

	#page-top-content .book-basic-info .book-title-wrap,
	div.book-basic-info div.book-title-wrap {
		text-align:center;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-name {
		font-size:23px !important;
		line-height:1.28;
	}

	#page-top-content .book-basic-info .book-info-concise-wrap,
	div.book-basic-info div.book-info-concise-wrap {
		margin:14px 0 0 !important;
		padding:14px 14px 10px;
		column-count:1 !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap,
	div.book-basic-info div.book-btn-wrap {
		display:flex;
		flex-wrap:wrap;
		gap:10px;
		margin-top:14px;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half {
		display:flex !important;
		flex:1 1 calc(50% - 5px);
		min-width:calc(50% - 5px);
		margin:0 !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half > div,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half > div {
		width:100%;
		margin:0 !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap a,
	#page-top-content .book-basic-info .book-btn-wrap button,
	div.book-basic-info div.book-btn-wrap a,
	div.book-basic-info div.book-btn-wrap button {
		width:100%;
		min-height:44px;
		border-radius:10px;
	}
}

@media all and (max-width:412px) {
	#page-top-content .page-top-content-box,
	div.page-top-content-box {
		padding:14px !important;
		border-radius:14px;
	}

	#page-top-content .book-cover-top,
	.book-page-top .book-cover-top {
		width:209px;
		max-width:209px;
	}

	#page-top-content .book-basic-info .book-title-wrap .book-title-name {
		font-size:20px !important;
	}

	#page-top-content .book-basic-info .book-btn-wrap .book-btn-wrap-half,
	div.book-basic-info div.book-btn-wrap div.book-btn-wrap-half {
		flex:1 1 100%;
		min-width:100%;
	}
}

/* ==========================================================================
 * patch
 * 2026-04-14 13:40:00 r022
 *
 * [r022]
 * - 1차 diagonal sweep을 최초 구현 느낌으로 복원
 * - ::after 를 sweep 전용으로 다시 분리
 * - 2차: ::before 로 우상단 -> 우하단 우측 끝선 하강
 * - 3차: .book-cover-top__flash 를 하단 끝선 우 -> 좌 이동용으로 재활용
 * - 기존 전체 flash / corner flash 제거
 * ========================================================================== */

/* ---------------------------------------------------------
   book-cover-top light reveal
--------------------------------------------------------- */
#page-top-content .book-cover-top,
.book-page-top .book-cover-top {
	position:relative;
	display:inline-block;
	overflow:hidden;
	border-radius:2px;
	isolation:isolate;
	background:#ffffff12;
}

#page-top-content .book-cover-top img,
.book-page-top .book-cover-top img {
	display:block;
	width:100%;
	height:auto;
	position:relative;
	z-index:1;
	transform:scale(1.01);
	filter:brightness(1.05) contrast(1.02);
	will-change:transform, filter;
	border-radius:2px;
}

/* 3차 : 하단 끝선 우 -> 좌 이동 */
#page-top-content .book-cover-top .book-cover-top__flash,
.book-page-top .book-cover-top .book-cover-top__flash {
	position:absolute;
	right:0;
	top:calc(100% - 3px);
	width:34%;
	height:3px;
	z-index:6;
	pointer-events:none;
	opacity:0;
	transform:translateX(130%);
	background:linear-gradient(
		90deg,
		rgba(255,255,255,0.00) 0%,
		rgba(255,255,255,.98) 50%,
		rgba(255,255,255,0.00) 100%
	);
	filter:blur(.25px);
	border-radius:999px;
	box-shadow:
		0 0 8px rgba(255,255,255,.78),
		0 0 14px rgba(255,255,255,.34);
	will-change:opacity, transform;
}

/* 1차 : 최초 구현 느낌 그대로 복원 */
#page-top-content .book-cover-top::after,
.book-page-top .book-cover-top::after {
	content:"";
	position:absolute;
	top:-20%;
	left:0;
	width:62%;
	height:150%;
	z-index:4;
	pointer-events:none;
	opacity:0;
	transform-origin:center center;
	transform:translateX(-190%) rotate(-28deg);
	background:linear-gradient(
		90deg,
		rgba(255,255,255,0.00) 0%,
		rgba(255,255,255,0.00) 18%,
		rgba(255,255,255,0.08) 34%,
		rgba(255,255,255,0.38) 50%,
		rgba(255,255,255,0.08) 66%,
		rgba(255,255,255,0.00) 82%,
		rgba(255,255,255,0.00) 100%
	);
	filter:blur(1px);
	mix-blend-mode:screen;
	will-change:transform, opacity;
	border-radius:2px;
}

/* 2차 : 우측 끝선 상 -> 하 */
#page-top-content .book-cover-top::before,
.book-page-top .book-cover-top::before {
	content:"";
	position:absolute;
	top:0;
	right:0;
	width:3px;
	height:34%;
	z-index:5;
	pointer-events:none;
	opacity:0;
	transform:translateY(-135%);
	background:linear-gradient(
		180deg,
		rgba(255,255,255,0.00) 0%,
		rgba(255,255,255,.98) 50%,
		rgba(255,255,255,0.00) 100%
	);
	filter:blur(.25px);
	box-shadow:
		0 0 6px rgba(255,255,255,.74),
		0 0 12px rgba(255,255,255,.34);
	border-radius:999px;
	will-change:opacity, transform;
}

#page-top-content .book-cover-top.is-cinematic-reveal img,
.book-page-top .book-cover-top.is-cinematic-reveal img {
	animation:bookCoverFastImageSettle 0.22s ease-out forwards;
}

/* 1차 : diagonal sweep */
#page-top-content .book-cover-top.is-cinematic-reveal::after,
.book-page-top .book-cover-top.is-cinematic-reveal::after {
	animation:bookCoverWideFlareSweep 0.28s cubic-bezier(.22,.61,.36,1) 0.12s forwards;
}

/* 2차 : 우측 라인 */
#page-top-content .book-cover-top.is-cinematic-reveal::before,
.book-page-top .book-cover-top.is-cinematic-reveal::before {
	animation:bookCoverRightEdgeTopToBottom 0.16s ease-out 0.42s forwards;
}

/* 3차 : 하단 라인 */
#page-top-content .book-cover-top.is-cinematic-reveal .book-cover-top__flash,
.book-page-top .book-cover-top.is-cinematic-reveal .book-cover-top__flash {
	animation:bookCoverBottomEdgeRightToLeft 0.18s ease-out 0.58s forwards;
}

@keyframes bookCoverFastImageSettle {
	0% {
		transform:scale(1.01);
		filter:brightness(1.05) contrast(1.02);
	}
	100% {
		transform:scale(1);
		filter:brightness(1) contrast(1);
	}
}

/* 최초 수정전 sweep 느낌 */
@keyframes bookCoverWideFlareSweep {
	0% {
		opacity:0;
		transform:translateX(-190%) rotate(-28deg);
	}
	16% {
		opacity:.95;
	}
	84% {
		opacity:.78;
	}
	100% {
		opacity:0;
		transform:translateX(230%) rotate(-28deg);
	}
}

/* 우상단 -> 우하단 */
@keyframes bookCoverRightEdgeTopToBottom {
	0% {
		opacity:0;
		transform:translateY(-135%);
	}
	14% {
		opacity:1;
	}
	82% {
		opacity:.92;
	}
	100% {
		opacity:0;
		transform:translateY(310%);
	}
}

/* 우하단 -> 좌하단 */
@keyframes bookCoverBottomEdgeRightToLeft {
	0% {
		opacity:0;
		transform:translateX(130%);
	}
	14% {
		opacity:1;
	}
	82% {
		opacity:.90;
	}
	100% {
		opacity:0;
		transform:translateX(-310%);
	}
}


/* ==========================================================================
 * patch
 * 2026-04-14 13:55:00 r023
 *
 * [r023]
 * - book-cover-top 애니메이션 종료 후 resting 상태 강화
 * - 교재 이미지 외곽선(옅은 라인) 추가
 * - shadow blur 반경 확장
 * - 기존 reveal 연출은 유지하고 정착된 상태만 더 고급스럽게 보정
 * ========================================================================== */

/* ---------------------------------------------------------
   resting outline + wider shadow
--------------------------------------------------------- */
#page-top-content .book-cover-top,
.book-page-top .book-cover-top {
	border:1px solid rgb(34 34 34 / 11%)
	box-shadow:
		0 0 0 1px rgba(255,255,255,.08) inset,
		0 18px 36px rgba(0,0,0,.16),
		0 32px 54px rgba(0,0,0,.10);
}

#page-top-content .book-cover-top img,
.book-page-top .book-cover-top img {
	border:1px solid rgba(255,255,255,.14);
	box-shadow:
		0 14px 28px rgba(0,0,0,.14),
		0 24px 44px rgba(0,0,0,.10);
}

/* 애니메이션 끝나는 지점도 resting 상태와 자연스럽게 연결 */
@keyframes bookCoverFastImageSettle {
	0% {
		transform:scale(1.01);
		filter:brightness(1.05) contrast(1.02);
		box-shadow:
			0 8px 18px rgba(0,0,0,.10),
			0 14px 26px rgba(0,0,0,.06);
	}
	100% {
		transform:scale(1);
		filter:brightness(1) contrast(1);
		box-shadow:
			0 14px 28px rgba(0,0,0,.14),
			0 24px 44px rgba(0,0,0,.10);
	}
}




/* patch */
/* ==========================================================================
 * patch
 * 2026-03-30 08:18:00 r014
 *
 * [r014]
 * - 교재 특징(book-feature-list) 마커를 .book-concise-mo-line::before 톤으로 통일
 * - .bullet.ico-course 출력 유무와 무관하게 .book-feature-text::before 로 표시되도록 정리
 * - 모바일에서는 기존 concise 규칙과 동일하게 텍스트형 POINT -> 원형 점 마커로 축약
 * - 반응형 기준 유지
 *   1280+
 *   992~1279
 *   768~991
 *   413~767
 *   412 이하
 * ========================================================================== */
/* ==========================================================================
 * patch
 * 2026-03-30 08:24:00 r014
 *
 * [r014]
 * - 교재 특징(book-feature-list) 마커를 .book-concise-mo-line::before 스타일과 동일 톤으로 통일
 * - .bullet.ico-course 출력 유무와 무관하게 .book-feature-text::before 로 POINT 배지 표시
 * - 모바일에서도 점형 축약 없이 동일한 POINT 배지를 유지하도록 정리
 * - 반응형 기준 유지
 *   1280+
 *   992~1279
 *   768~991
 *   413~767
 *   412 이하
 * ========================================================================== */

/* ---------------------------------------------------------
   r014 : feature marker unified with POINT badge style
--------------------------------------------------------- */
.book-concise-mo-wrap .book-feature-list,
#page-top-content .book-concise-mo-wrap .book-feature-list{
	margin:0;
	padding:0;
	list-style:none;
}

.book-concise-mo-wrap .book-feature-item,
#page-top-content .book-concise-mo-wrap .book-feature-item{
	display:block;
	margin:0 0 8px;
}

.book-concise-mo-wrap .book-feature-item:last-child,
#page-top-content .book-concise-mo-wrap .book-feature-item:last-child{
	margin-bottom:0;
}

/* 기존 bullet 마크업은 숨기고 pseudo element 로 통일 */
.book-concise-mo-wrap .book-feature-item > .bullet.ico-course,
#page-top-content .book-concise-mo-wrap .book-feature-item > .bullet.ico-course{
	display:none !important;
}

.book-concise-mo-wrap .book-feature-item > .book-feature-text,
#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text{
	position:relative;
	display:block;
	padding-left:54px;
	font-size:13px;
	line-height:1.75;
	color:#333;
	word-break:keep-all;
	overflow-wrap:anywhere;
}

.book-concise-mo-wrap .book-feature-item > .book-feature-text::before,
#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text::before{
	content:"POINT";
	position:absolute;
	left:0;
	top:3px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:18px;
	border-radius:3px;
	background:#ffcc00;
	border:1px solid rgba(0,0,0,.12);
	color:#103e70;
	font-size:11px;
	font-weight:800;
	line-height:1;
	box-sizing:border-box;
	white-space:nowrap;
}

/* ---------------------------------------------------------
   768~991
--------------------------------------------------------- */
@media all and (min-width:768px) and (max-width:991px){
	.book-concise-mo-wrap .book-feature-item > .book-feature-text,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text{
		padding-left:54px;
		font-size:13px;
		line-height:1.72;
	}

	.book-concise-mo-wrap .book-feature-item > .book-feature-text::before,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text::before{
		top:3px;
		width:44px;
		height:18px;
		font-size:11px;
	}
}

/* ---------------------------------------------------------
   413~767
--------------------------------------------------------- */
@media all and (min-width:413px) and (max-width:767px){
	.book-concise-mo-wrap .book-feature-item > .book-feature-text,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text{
		padding-left:54px;
		font-size:12px;
		line-height:1.68;
	}

	.book-concise-mo-wrap .book-feature-item > .book-feature-text::before,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text::before{
		top:3px;
		width:44px;
		height:18px;
		font-size:11px;
	}
}

/* ---------------------------------------------------------
   412 이하
--------------------------------------------------------- */
@media all and (max-width:412px){
	.book-concise-mo-wrap .book-feature-item > .book-feature-text,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text{
		padding-left:54px;
		font-size:12px;
		line-height:1.62;
	}

	.book-concise-mo-wrap .book-feature-item > .book-feature-text::before,
	#page-top-content .book-concise-mo-wrap .book-feature-item > .book-feature-text::before{
		top:3px;
		width:44px;
		height:18px;
		font-size:11px;
	}
}
/* ==========================================================================
 * patch
 * 2026-04-14 11:35:00 r017
 *
 * [r017]
 * - page-top-content 상단 버튼 CTA형 톤다운
 * - filled/gradient 중심에서 outline badge형으로 정리
 * - hover 시인성은 유지하되 기능버튼처럼 과도하게 튀지 않도록 절제
 * - book-btn-wrap 래퍼 박스 배경/테두리 제거
 * - 교재 미리보기 하단 액션 영역도 동일한 아웃라인 계열로 정리
 * - 모바일 2열/1열 대응 유지
 * ========================================================================== */

/* ---------------------------------------------------------
   top summary button tone-down
--------------------------------------------------------- */
#page-top-content .book-btn-wrap,
.book-page-top .book-btn-wrap{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:14px;
	padding:0;
	border:0;
	border-radius:0;
	background:transparent;
	box-shadow:none;
}

#page-top-content .book-btn-wrap .book-btn-wrap-half,
.book-page-top .book-btn-wrap .book-btn-wrap-half{
	display:flex;
	flex:0 0 auto;
	min-width:0;
	margin:0;
}

#page-top-content .book-btn-wrap .book-btn-wrap-half > div,
.book-page-top .book-btn-wrap .book-btn-wrap-half > div{
	display:flex;
	width:auto;
	padding:0;
	margin:0;
	box-sizing:border-box;
}

#page-top-content .book-btn-wrap .book-action-btn,
.book-page-top .book-btn-wrap .book-action-btn{
	width:auto;
	min-height:38px;
	padding:0 14px;
	border-radius:999px;
	border:1px solid rgba(255,255,255,.28);
	background:rgba(255,255,255,.04);
	color:#fff !important;
	box-shadow:none;
	font-size:13px;
	line-height:1;
	font-weight:700;
	letter-spacing:-0.01em;
	backdrop-filter:none;
	-webkit-backdrop-filter:none;
	transition:
		background-color .18s ease,
		border-color .18s ease,
		color .18s ease,
		transform .18s ease;
}

#page-top-content .book-btn-wrap .book-action-btn:hover,
#page-top-content .book-btn-wrap .book-action-btn:focus,
.book-page-top .book-btn-wrap .book-action-btn:hover,
.book-page-top .book-btn-wrap .book-action-btn:focus{
	background:rgba(255,255,255,.14);
	border-color:rgba(255,255,255,.48);
	color:#fff !important;
	transform:translateY(-1px);
	box-shadow:none;
	text-decoration:none !important;
}

#page-top-content .book-btn-wrap .book-action-btn em,
.book-page-top .book-btn-wrap .book-action-btn em{
	font-size:13px;
	opacity:.9;
}

#page-top-content .book-btn-wrap .book-action-btn span,
.book-page-top .book-btn-wrap .book-action-btn span{
	line-height:1.15;
	white-space:nowrap;
}

/* 약한 뉘앙스만 구분 */
#page-top-content .book-btn-wrap .book-action-btn--pdf,
#page-top-content .book-btn-wrap .book-action-btn--download,
.book-page-top .book-btn-wrap .book-action-btn--pdf,
.book-page-top .book-btn-wrap .book-action-btn--download{
	border-color:rgba(255,255,255,.30);
	background:rgba(255,255,255,.05);
}

#page-top-content .book-btn-wrap .book-action-btn--lecture,
.book-page-top .book-btn-wrap .book-action-btn--lecture{
	border-color:rgba(255,243,220,.34);
	background:rgba(255,243,220,.07);
	color:#fff6e8 !important;
}

#page-top-content .book-btn-wrap .book-action-btn--lecture:hover,
#page-top-content .book-btn-wrap .book-action-btn--lecture:focus,
.book-page-top .book-btn-wrap .book-action-btn--lecture:hover,
.book-page-top .book-btn-wrap .book-action-btn--lecture:focus{
	background:rgba(255,243,220,.16);
	border-color:rgba(255,243,220,.56);
	color:#fff !important;
}

/* ---------------------------------------------------------
   preview action row
--------------------------------------------------------- */
.book-preview-download-wrap{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:center;
	gap:8px;
	margin-top:16px;
	padding:0;
	text-align:center;
}

.book-preview-download-wrap .book-preview-download-btn,
.book-preview-download-wrap .book-preview-popup-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:38px;
	padding:0 14px;
	border-radius:999px;
	font-size:13px;
	font-weight:700;
	line-height:1;
	box-shadow:none;
	transition:
		background-color .18s ease,
		border-color .18s ease,
		color .18s ease,
		transform .18s ease;
}

.book-preview-download-wrap .book-preview-download-btn{
	background:#fff;
	border:1px solid #d6e0f0;
	color:#163d8f !important;
}

.book-preview-download-wrap .book-preview-download-btn:hover,
.book-preview-download-wrap .book-preview-download-btn:focus{
	background:#163d8f;
	border-color:#163d8f;
	color:#fff !important;
	transform:translateY(-1px);
	text-decoration:none !important;
}

.book-action-btn--preview-popup{
	background:#f8fbff;
	border:1px solid #d6e0f0;
	color:#163d8f !important;
}

.book-action-btn--preview-popup:hover,
.book-action-btn--preview-popup:focus{
	background:#163d8f;
	border-color:#163d8f;
	color:#fff !important;
	transform:translateY(-1px);
	text-decoration:none !important;
}

/* ---------------------------------------------------------
   mobile
--------------------------------------------------------- */
@media all and (max-width:768px){
	#page-top-content .book-btn-wrap,
	.book-page-top .book-btn-wrap{
		gap:8px;
		margin-top:12px;
	}

	#page-top-content .book-btn-wrap .book-btn-wrap-half,
	.book-page-top .book-btn-wrap .book-btn-wrap-half{
		flex:1 1 calc(50% - 4px);
		min-width:calc(50% - 4px);
	}

	#page-top-content .book-btn-wrap .book-btn-wrap-half > div,
	.book-page-top .book-btn-wrap .book-btn-wrap-half > div{
		width:100%;
	}

	#page-top-content .book-btn-wrap .book-action-btn,
	.book-page-top .book-btn-wrap .book-action-btn{
		width:100%;
		min-height:36px;
		padding:0 12px;
		font-size:12px;
		border-radius:999px;
	}

	#page-top-content .book-btn-wrap .book-action-btn em,
	.book-page-top .book-btn-wrap .book-action-btn em{
		font-size:12px;
	}

	.book-preview-download-wrap{
		gap:8px;
	}

	.book-preview-download-wrap .book-preview-download-btn,
	.book-preview-download-wrap .book-preview-popup-btn{
		flex:1 1 calc(50% - 4px);
		min-width:calc(50% - 4px);
		min-height:36px;
		font-size:12px;
	}
}

@media all and (max-width:412px){
	#page-top-content .book-btn-wrap .book-btn-wrap-half,
	.book-page-top .book-btn-wrap .book-btn-wrap-half{
		flex:1 1 100%;
		min-width:100%;
	}

	.book-preview-download-wrap .book-preview-download-btn,
	.book-preview-download-wrap .book-preview-popup-btn{
		flex:1 1 100%;
		min-width:100%;
	}
}