/* 운영 메인 Swiper 스타일 (sample 명칭 제거 버전) */

/* 샘플 페이지 전용 UI(.main-swiper-sample-strip)는 제거하고, 운영에서 사용하는 Swiper 공통 스타일만 유지 */

/* 샘플 공지사항 제목: 전광판(마키) 효과 */
.main-info-board-band .info-col.notice-card .info-col-tit .small_tit_wrap {
	display: inline-block;
	width: 3.2em;
	max-width: 3.2em;
	overflow: hidden;
	vertical-align: middle;
}
.main-info-board-band .info-col.notice-card .info-col-tit .small_tit {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	will-change: transform;
	animation: noticeTicker 13s linear infinite;
}
.main-info-board-band .info-col.notice-card .info-col-tit .small_tit > span {
	display: inline-flex;
	align-items: center;
	padding-right: 1.1em;
}
@keyframes noticeTicker {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* 강좌 행: Swiper가 슬라이드 폭을 계산하도록 고정 width 제거 */
.section-best-subject .swiper-course-main:not(.is-mobile-peek) .swiper-slide {
	width: auto;
	height: auto;
	padding: 8px;
	box-sizing: border-box;
	flex-shrink: 0;
	overflow: visible !important;
}
/* 모바일 peek: 슬라이드 폭은 Swiper inline 계산값 사용 (CSS width 고정 금지) */
.section-best-subject .swiper-course-main.is-mobile-peek .swiper-slide {
	height: auto;
	flex-shrink: 0;
	box-sizing: border-box;
}
.section-best-subject .swiper-course-main.is-mobile-peek .swiper-wrapper {
	align-items: stretch;
}
.section-best-subject .swiper-course-main .swiper-slide .ns-ss-all {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	flex: none !important;
	box-sizing: border-box;
}
.section-best-subject .swiper-course-main .swiper-wrapper {
	flex-wrap: nowrap !important;
}

.section-best-subject .course-slider-wrap {
	position: relative;
	overflow: visible;
}
.section-best-subject .main-course-instance {
	width: 100%;
}
.section-best-subject .main-course-instance,
.section-best-subject .best-subject,
.section-best-subject {
	overflow: visible;
}
.section-best-subject .swiper-course-main {
	overflow: hidden;
	width: 100%;
	padding: 12px 0 24px;
	margin: 0;
	box-sizing: border-box;
}
.section-best-subject .swiper-slide {
	overflow: visible !important;
}
.section-best-subject .swiper-course-main .swiper-slide .bs-source-subjcet,
.section-best-subject .swiper-course-main .swiper-slide .bs-source-subjcet ul,
.section-best-subject .swiper-course-main .swiper-slide .bs-source-subjcet li {
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
	float: none;
}
.section-best-subject .course-swiper-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
	padding-bottom: 8px;
	overflow: visible;
}
@media screen and (max-width: 767px) {
	.section-best-subject .course-swiper-nav {
		margin-top: 8px;
		padding-bottom: 0;
	}
}
.section-best-subject .course-swiper-nav__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid #e5e7eb;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
	cursor: pointer;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
	overflow: visible;
}
.section-best-subject .course-swiper-nav__btn:hover {
	border-color: #d1d5db;
	box-shadow: 0 3px 10px rgba(15, 23, 42, 0.1);
}
.section-best-subject .course-swiper-nav__btn.swiper-button-disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}
.section-best-subject .course-swiper-nav__icon {
	display: block;
	width: 7px;
	height: 7px;
	border-top: 1.5px solid #8a94a6;
	border-right: 1.5px solid #8a94a6;
}
.section-best-subject .course-swiper-nav__btn--prev .course-swiper-nav__icon {
	transform: rotate(-135deg);
	margin-left: 3px;
}
.section-best-subject .course-swiper-nav__btn--next .course-swiper-nav__icon {
	transform: rotate(45deg);
	margin-right: 3px;
}

/* 강좌 카드 슬라이더: 배너와 동일 SVG 화살표 (넘칠 때만 표시)
   카드/슬라이더 폭은 건드리지 않고, 화살표만 카드 바깥 40px에 배치 */
.section-new-subject > .section.section-main-course-cat {
	/* 바깥 화살표가 잘리지 않도록 (배경 장식은 inset:0 이라 영향 없음) */
	overflow: visible;
}
.section-best-subject .course-slider-wrap > .swiper-button-prev.course-swiper-arrow,
.section-best-subject .course-slider-wrap > .swiper-button-next.course-swiper-arrow {
	position: absolute;
	top: 42%;
	z-index: 12;
	margin-top: 0 !important;
	transform: translateY(-50%);
}
.section-best-subject .course-slider-wrap > .swiper-button-prev.course-swiper-arrow {
	/* 카드 왼쪽 바깥 40px 간격 */
	left: calc(-40px - 56px);
	right: auto;
}
.section-best-subject .course-slider-wrap > .swiper-button-next.course-swiper-arrow {
	/* 카드 오른쪽 바깥 40px 간격 */
	right: calc(-40px - 56px);
	left: auto;
}
.section-best-subject .course-slider-wrap > .swiper-button-prev.course-swiper-arrow[hidden],
.section-best-subject .course-slider-wrap > .swiper-button-next.course-swiper-arrow[hidden] {
	display: none !important;
}
@media screen and (max-width: 767px) {
	.section-best-subject .course-slider-wrap > .swiper-button-prev.course-swiper-arrow {
		left: calc(-12px - 44px);
	}
	.section-best-subject .course-slider-wrap > .swiper-button-next.course-swiper-arrow {
		right: calc(-12px - 44px);
	}
}

/* 합격수기: 슬라이드 폭 + 하단 bullet pagination */
.swiper-review-pass .swiper-slide {
	width: min(88vw, 320px);
	box-sizing: border-box;
	height: auto;
}
.review-slider-wrap .swiper-review-pass {
	padding-bottom: 20px;
}
.section_pass_bg--fx .review-slider-wrap .swiper-review-pass {
	overflow: hidden;
	padding-top: 12px; /* 호버 translateY(-6px) 시 상단 잘림 방지 */
	margin-top: -6px;
	padding-bottom: 20px;
}
.main-hero-review .section_pass_bg--hero .review-slider-wrap .swiper-review-pass {
	padding-top: 4px;
	margin-top: 0;
	padding-bottom: 4px;
}
.section_pass_bg--fx .swiper-review-pass .swiper-slide {
	opacity: 1;
	transform: none;
	height: auto;
	display: flex;
	align-items: flex-start;
	min-width: 0;
	padding-top: 2px;
	box-sizing: border-box;
}
.section_pass_bg--fx .swiper-review-pass .swiper-slide > .review-card-link {
	min-width: 0;
	width: 100%;
}
.section_pass_bg--fx .swiper-review-pass .swiper-wrapper {
	align-items: stretch;
}
.swiper-review-pass .review-swiper-pagination {
	position: static !important;
	left: auto !important;
	bottom: auto !important;
	width: 100%;
	margin-top: 18px;
	margin-bottom: 6px;
	text-align: center;
	transform: none !important;
	line-height: 1;
}
.swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0 5px !important;
	opacity: 1;
	background: #4a4d55;
	vertical-align: middle;
	transition: transform .25s ease, opacity .25s ease, background-color .25s ease;
}
.swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet-active {
	background: #0a84ff;
	transform: scale(1.05);
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet {
	width: 16px;
	height: 16px;
	margin: 0 6px !important;
	opacity: 0.45;
	position: relative;
	overflow: hidden;
	border-radius: 50%;
	background: rgba(74, 77, 85, 0.45);
	--dot-fill: 0%;
	--dot-fill-num: 0;
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--dot-fill, 0%);
	background: linear-gradient(180deg, #63c2ff 0%, #0a84ff 100%);
	transition: height 80ms linear;
	z-index: 0;
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet.is-gauge-active::after {
	content: "";
	position: absolute;
	left: -35%;
	width: 170%;
	height: 5px;
	bottom: calc(var(--dot-fill, 0%) - 2px);
	background: radial-gradient(8px 4px at 20% 50%, rgba(255,255,255,.95), rgba(255,255,255,0) 70%),
		radial-gradient(8px 4px at 60% 45%, rgba(255,255,255,.85), rgba(255,255,255,0) 70%),
		radial-gradient(8px 4px at 100% 55%, rgba(255,255,255,.75), rgba(255,255,255,0) 70%);
	opacity: var(--dot-fill-num, 0);
	animation: reviewDotWave 1.2s linear infinite;
	pointer-events: none;
	z-index: 1;
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet-active {
	opacity: 1;
	transform: scale(1.08);
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic {
	position: static !important;
	left: 0 !important;
	width: 100% !important;
	transform: none !important;
	display: flex;
	justify-content: center;
	align-items: center;
	white-space: nowrap;
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
	opacity: 0.82;
	transform: scale(0.95);
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev,
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
	opacity: 0.6;
	transform: scale(0.86);
}
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev,
.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
	opacity: 0.35;
	transform: scale(0.74);
}
@keyframes reviewDotWave {
	0% { transform: translateX(0); }
	100% { transform: translateX(18px); }
}

/* 배너 영역 Swiper 높이는 이미지에 맡김 */
.bannerWrap.swiper {
	position: relative;
	overflow: hidden;
}
.bannerWrap.swiper .swiper-wrapper {
	display: flex !important;
	flex-wrap: nowrap !important;
	width: 100%;
}
.bannerWrap.swiper .swiper-slide {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: 100%;
}

/* JS 초기화 실패 폴백: 모바일 메인배너(14) 3장 자동 슬라이드 */
@keyframes banner14FallbackSlide {
	0%, 30% { transform: translate3d(0, 0, 0); }
	33%, 63% { transform: translate3d(-33.3333%, 0, 0); }
	66%, 96% { transform: translate3d(-66.6667%, 0, 0); }
	100% { transform: translate3d(0, 0, 0); }
}
@media screen and (max-width: 768px) {
	.banner-swiper-14:not(.swiper-initialized) .swiper-wrapper,
	.banner-swiper-14[data-fallback-slider="1"] .swiper-wrapper {
		display: flex !important;
		flex-wrap: nowrap !important;
		width: 300% !important;
		animation: banner14FallbackSlide 12s ease-in-out infinite;
	}
	.banner-swiper-14:not(.swiper-initialized) .swiper-slide,
	.banner-swiper-14[data-fallback-slider="1"] .swiper-slide {
		flex: 0 0 33.3333% !important;
		width: 33.3333% !important;
		max-width: 33.3333% !important;
	}
}
.bannerWrap.swiper .swiper-slide .banner img {
	display: block;
	max-width: 100%;
	height: auto;
}
.bannerWrap.swiper .swiper-slide .banner.banner-bg-only {
	width: 100%;
}
.bannerWrap.swiper .swiper-slide .banner.banner-bg-only .banner-contents-html {
	width: 100%;
}

/* 배너: 전체 번호 페이징 + 활성 번호 뒤 progress (order는 JS에서 설정) */
.bannerWrap.swiper .banner-swiper-fraction {
	position: absolute;
	left: 20px;
	bottom: 18px;
	right: auto;
	width: max-content;
	max-width: calc(100% - 32px);
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	z-index: 20;
	pointer-events: none;
	white-space: nowrap;
	font-size: clamp(12px, 2.4vw, 15px);
	font-weight: 700;
	letter-spacing: 0.04em;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
	box-sizing: border-box;
}
/* pagingPosition 매핑: advReg 기본값 down(중앙 하단) */
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down-left {
	left: 20px;
	right: auto;
	transform: none;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down-right {
	left: auto;
	right: 20px;
	transform: none;
}
.bannerWrap.swiper .banner-swiper-fraction__num {
	appearance: none;
	-webkit-appearance: none;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font: inherit;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	min-width: 2ch;
	min-height: 0 !important;
	height: auto !important;
	flex: 0 0 auto;
	cursor: pointer;
	pointer-events: auto;
	color: rgba(255, 255, 255, 0.42);
	text-align: center;
	text-shadow: inherit;
	box-sizing: content-box !important;
	line-height: 1 !important;
}
.bannerWrap.swiper .banner-swiper-fraction__num--active {
	color: #fff;
}
/* 기본(큰 점): 기본(작은 점)과 동일 구조, 점 크기만 확대 */
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num {
	font-size: 1.35em;
	line-height: 1;
}
/* 스타일3: 숫자/배너명 페이징 */
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--btn-number .banner-swiper-fraction__num,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--btn-title .banner-swiper-fraction__num {
	height: auto !important;
	min-height: 0 !important;
	padding: 0 2px !important;
	background: transparent !important;
	border-radius: 0 !important;
	font-size: clamp(12px, 2.4vw, 15px) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: rgba(255, 255, 255, 0.42) !important;
	text-indent: 0 !important;
	overflow: visible !important;
	width: auto !important;
	min-width: 2ch !important;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--btn-number .banner-swiper-fraction__num--active,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--btn-title .banner-swiper-fraction__num--active {
	color: #fff !important;
}
/* bar(막대) + 기본점: 스타일2 등 — base.css button 덮어쓰기 */
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic .banner-swiper-fraction__num,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic_large .banner-swiper-fraction__num,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num {
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	text-shadow: none !important;
	width: 6px !important;
	height: 6px !important;
	min-width: 6px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.46) !important;
	overflow: hidden !important;
	text-indent: -9999px;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic .banner-swiper-fraction__num:hover,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic_large .banner-swiper-fraction__num:hover,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num:hover {
	background: rgba(255, 255, 255, 0.72) !important;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic .banner-swiper-fraction__num--active,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic_large .banner-swiper-fraction__num--active,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num--active {
	background: rgba(255, 255, 255, 0.92) !important;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic_large .banner-swiper-fraction__num,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-bar.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num {
	width: 10px !important;
	height: 10px !important;
	min-width: 10px !important;
}
/* 스타일2: 현재 점 숨김 + progress bar 강조 */
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--current-hide .banner-swiper-fraction__track {
	align-self: center;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	gap: 30px;
	/* overflow:hidden 배너 안에서 ring(inset -8px)이 잘리지 않게 */
	bottom: 22px;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-fraction__track {
	display: none;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-fraction__num {
	/* base.css 전역 button{height:35px;padding:...} 덮어쓰기 */
	width: 6px !important;
	height: 6px !important;
	min-width: 6px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.72) !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: -9999px;
	overflow: visible !important;
	position: relative;
	opacity: 1;
	box-sizing: content-box !important;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring.banner-swiper-fraction--btn-basic_large .banner-swiper-fraction__num,
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring.banner-swiper-fraction--btn-basic-large .banner-swiper-fraction__num {
	width: 10px !important;
	height: 10px !important;
	min-width: 10px !important;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-ring-progress {
	position: absolute;
	inset: -8px;
	width: calc(100% + 16px) !important;
	height: calc(100% + 16px) !important;
	max-width: none !important;
	max-height: none !important;
	overflow: visible;
	pointer-events: none;
	transform: rotate(-90deg);
	z-index: 2;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-fraction__num:not(.banner-swiper-fraction__num--active) .banner-swiper-ring-progress {
	/* 비활성: 진행 원 숨김 (프리셋과 동일) */
	opacity: 0;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-fraction__num--active .banner-swiper-ring-progress {
	opacity: 1;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring .banner-swiper-ring-progress__arc {
	fill: none;
	stroke: #fff;
	stroke-width: 2;
	stroke-linecap: round;
	transition: stroke-dashoffset 80ms linear;
}
.bannerWrap.swiper .banner-swiper-fraction__track {
	flex: 0 0 auto;
	width: clamp(28px, 9vw, 60px);
	height: 2px;
	background: rgba(255, 255, 255, 0.28);
	border-radius: 1px;
	overflow: hidden;
	align-self: center;
}
.bannerWrap.swiper .banner-swiper-fraction__fill {
	display: block;
	height: 100%;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
	background: #fff;
	border-radius: 1px;
}
/* indicatorThickness 전용 매핑: thin/thick */
.bannerWrap.swiper .banner-swiper-fraction--thin .banner-swiper-fraction__track {
	height: 2px;
	border-radius: 1px;
}
.bannerWrap.swiper .banner-swiper-fraction--thick .banner-swiper-fraction__track {
	height: 6px;
	border-radius: 3px;
}
.bannerWrap.swiper .banner-swiper-fraction--thin .banner-swiper-fraction__fill {
	border-radius: 1px;
}
.bannerWrap.swiper .banner-swiper-fraction--thick .banner-swiper-fraction__fill {
	border-radius: 3px;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring.banner-swiper-fraction--thin .banner-swiper-ring-progress__arc {
	stroke-width: 2;
}
.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--indicator-use-true.banner-swiper-fraction--indicator-ring.banner-swiper-fraction--thick .banner-swiper-ring-progress__arc {
	stroke-width: 3.4;
}

/* 숫자+바 UI 사용 시 기본 bullet 페이저는 숨김 (중복 방지) */
.bannerWrap.swiper:has(.banner-swiper-fraction) .swiper-pagination,
.banner-visual-host--pill .swiper-pagination {
	display: none !important;
}

/* ===== stway visual-nav 동일: 도트 pill + 재생/정지 ===== */
.banner-visual-host {
	position: relative;
	width: 100%;
}
.banner-visual-host--pill .banner-swiper-visual-nav {
	position: absolute;
	left: 50%;
	bottom: 19px;
	transform: translateX(calc(-50% + 80px));
	width: 100%;
	max-width: 1100px;
	padding: 0 20px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	z-index: 40;
	box-sizing: border-box;
	pointer-events: none;
}
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 21px;
	padding: 0 16px;
	background: rgb(244, 255, 255);
	border: 1px solid rgba(20, 56, 109, 0.2);
	border-radius: 999px;
	box-shadow: 0 6px 18px -10px rgba(20, 56, 109, 0.4);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-sizing: border-box;
	pointer-events: auto;
}
/* base.css button{height:35px;padding:0 15px} 완전 리셋 */
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block !important;
	width: 7px !important;
	height: 7px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-height: 7px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #506e9c !important;
	box-shadow: none !important;
	outline: none !important;
	font-size: 0 !important;
	font-weight: 400 !important;
	line-height: 0 !important;
	color: transparent !important;
	cursor: pointer !important;
	opacity: 1 !important;
	flex: 0 0 auto;
	transition: width 0.35s ease, background 0.35s ease;
	overflow: hidden;
}
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet:hover,
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet:focus,
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet:active {
	opacity: 1 !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet.is-active {
	width: 46px !important;
	height: 7px !important;
	max-height: 7px !important;
	background: linear-gradient(90deg, #274da3, #1b79c9) !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	padding: 0;
	background: rgb(244, 255, 255);
	border: 1px solid rgba(20, 56, 109, 0.2);
	border-radius: 50%;
	box-shadow: 0 6px 18px -10px rgba(20, 56, 109, 0.4);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-sizing: border-box;
	pointer-events: auto;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play button {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	font-size: 0 !important;
	font-weight: 400 !important;
	line-height: 0 !important;
	color: transparent !important;
	cursor: pointer !important;
	opacity: 1 !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play button:hover,
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play button:focus,
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play button:active {
	opacity: 1 !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play .visual-start {
	display: none !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play.is-paused .visual-stop {
	display: none !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play.is-paused .visual-start {
	display: flex !important;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__icon--pause {
	display: inline-block;
	width: 7px;
	height: 9.9px;
	border-left: 2.5px solid #274da3;
	border-right: 2.5px solid #274da3;
	box-sizing: border-box;
	margin-left: -1px;
}
.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__icon--play {
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 1.8px;
	border-left: 9px solid #274da3;
	border-top: 4.95px solid transparent;
	border-bottom: 4.95px solid transparent;
}
@media screen and (max-width: 834px) {
	.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet::before,
	.section_pass_bg--fx .swiper-review-pass .review-swiper-pagination .swiper-pagination-bullet.is-gauge-active::after {
		background: none !important;
		animation: none !important;
	}
	.banner-visual-host--pill .banner-swiper-visual-nav {
		left: 14px;
		right: auto;
		bottom: 19px;
		transform: none;
		justify-content: flex-start;
		width: auto;
		max-width: none;
		padding: 0;
	}
}
@media screen and (max-width: 480px) {
	.bannerWrap.swiper .banner-swiper-fraction {
		left: 14px;
		bottom: 14px;
		font-size: 13px;
		gap: 10px;
	}
	.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
	}
	.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down-left {
		left: 14px;
		right: auto;
		transform: none;
	}
	.bannerWrap.swiper .banner-swiper-fraction.banner-swiper-fraction--down-right {
		left: auto;
		right: 14px;
		transform: none;
	}
	.banner-visual-host--pill .banner-swiper-visual-nav {
		left: 14px;
		right: auto;
		bottom: 11px;
		transform: none;
		justify-content: flex-start;
		width: auto;
		max-width: none;
		padding: 0;
	}
	.banner-visual-host--pill .banner-swiper-visual-nav .progressbar {
		height: 19px;
		padding: 0 12px;
		gap: 10px;
	}
	.banner-visual-host--pill .banner-swiper-visual-nav .progressbar .mb-bullet.is-active {
		width: 36px !important;
	}
	.banner-visual-host--pill .banner-swiper-visual-nav .count-wrap__cluster--play {
		width: 17px;
		height: 17px;
	}
}

/* Swiper 좌우 화살표: 회색 반투명 쉐브론 (PC/모바일 공통) */
/* 기본 swiper-icons(:after) 숨기고, 버튼 안 SVG(.swiper-nav-chevron) 사용 */
.swiper-button-next,
.swiper-button-prev {
	--swiper-navigation-color: rgba(100, 100, 100, 0.55);
	width: 56px !important;
	height: 56px !important;
	margin-top: -28px !important;
	background: none !important;
	background-image: none !important;
	color: rgba(100, 100, 100, 0.55) !important;
}
.swiper-button-next:after,
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
	content: none !important;
	display: none !important;
	font-size: 0 !important;
	opacity: 0 !important;
}
.swiper-button-next .swiper-nav-chevron,
.swiper-button-prev .swiper-nav-chevron {
	display: block !important;
	width: 48px;
	height: 48px;
	color: inherit;
	pointer-events: none;
}
.swiper-button-next .swiper-nav-chevron path,
.swiper-button-prev .swiper-nav-chevron path {
	stroke: currentColor;
	stroke-width: 2.5;
	stroke-linecap: butt;
	stroke-linejoin: miter;
	stroke-miterlimit: 8;
	fill: none;
}
.swiper-button-next:hover,
.swiper-button-prev:hover {
	color: rgba(80, 80, 80, 0.82) !important;
}
.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
	color: rgba(100, 100, 100, 0.28) !important;
	opacity: 1 !important;
	pointer-events: none;
}
.swiper-button-next > img,
.swiper-button-prev > img {
	display: none !important;
}
@media screen and (max-width: 767px) {
	.swiper-button-next,
	.swiper-button-prev {
		width: 44px !important;
		height: 44px !important;
		margin-top: -22px !important;
	}
	.swiper-button-next .swiper-nav-chevron,
	.swiper-button-prev .swiper-nav-chevron {
		width: 38px;
		height: 38px;
	}
}
