/**
 * 싱글 프로덕트 — 와디즈 스타일 레이아웃
 *
 * 좌측: 이미지 + 상세 설명 (스크롤)
 * 우측: sticky 사이드바 위젯
 *
 * @package HelloElementorChild
 */

/* =============================================================================
   CSS 변수
   ============================================================================= */
:root {
	--sp-primary: var(--color-primary, #0064FF);
	--sp-primary-hover: #0050CC;
	--sp-danger: #F04452;
	--sp-text-primary: #191F28;
	--sp-text-secondary: #4E5968;
	--sp-text-muted: #8B95A1;
	--sp-border: #E5E8EB;
	--sp-bg: #F7F8FA;
	--sp-white: #FFFFFF;
	--sp-radius-sm: 8px;
	--sp-radius-md: 12px;
	--sp-radius-lg: 16px;
	--sp-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
	--sp-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
	--sp-transition: 200ms ease;
}

/* =============================================================================
   레이아웃 리셋
   ============================================================================= */
.sp-wadiz {
	background: var(--sp-white);
	padding: 0;
	margin: 0;
}

.sp-wadiz *,
.sp-wadiz *::before,
.sp-wadiz *::after {
	box-sizing: border-box;
}

/* 부모 테마(hello-elementor) reset.css 자주색 버튼 오버라이드 */
.sp-wadiz button:hover,
.sp-wadiz button:focus,
.sp-wadiz [type="button"]:hover,
.sp-wadiz [type="button"]:focus,
.sp-wadiz [type="submit"]:hover,
.sp-wadiz [type="submit"]:focus {
	background-color: inherit;
}

/* WooCommerce 기본 스타일 오버라이드 */
.sp-wadiz .woocommerce-breadcrumb,
.sp-wadiz .woocommerce-product-gallery,
.sp-wadiz .product_title,
.sp-wadiz .price,
.sp-wadiz .woocommerce-product-details__short-description {
	display: none !important;
}

body.single-product .woocommerce-breadcrumb:not(.sp-breadcrumb) {
	display: none !important;
}

body.single-product .woocommerce-notices-wrapper {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0;
	background: transparent;
}

/* =============================================================================
   메인 그리드: 좌측(이미지+상세) + 우측(사이드바)
   ============================================================================= */
.sp-top {
	border-bottom: 1px solid var(--sp-border);
	border-radius: 0;
}

.sp-top__inner {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 0;
	max-width: 1280px;
	margin: 0 auto;
}

/* =============================================================================
   좌측 메인 칼럼 (이미지 + 상세 설명)
   ============================================================================= */
.sp-main {
	padding: 40px;
}

/* 갤러리 — 대표 이미지 (16:9 비율) */
.sp-gallery__featured {
	position: relative;
	width: 100%;
	border-radius: var(--sp-radius-lg);
	overflow: hidden;
	background: var(--sp-bg);
	margin-bottom: 16px;
}

.sp-gallery__featured-ratio {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%; /* 16:9 */
	overflow: hidden;
}

.sp-gallery__featured-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.sp-gallery__placeholder {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--sp-bg);
}

/* 대표 이미지 위 좌우 화살표 */
.sp-gallery__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.25);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #FFFFFF;
	transition: background var(--sp-transition);
	padding: 0;
}

.sp-gallery__arrow:hover {
	background: rgba(0, 0, 0, 0.45);
}

.sp-gallery__arrow--prev { left: 12px; }
.sp-gallery__arrow--next { right: 12px; }

/* 갤러리 — 캐러셀 */
.sp-gallery__carousel {
	position: relative;
	padding: 0;
	margin-bottom: 20px;
}

.sp-gallery-swiper {
	overflow: hidden;
}

.sp-gallery-swiper .swiper-slide {
	width: auto;
}

.sp-gallery__thumb {
	display: block;
	width: 80px;
	height: 60px;
	border-radius: 6px;
	overflow: hidden;
	border: 2px solid transparent;
	padding: 0;
	background: none;
	cursor: pointer;
	transition: border-color var(--sp-transition);
}

.sp-gallery__thumb:hover,
.sp-gallery__thumb.is-active {
	border-color: var(--sp-primary);
}

.sp-gallery__thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 6px;
}

/* 캐러셀 네비게이션 */
.sp-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--sp-white);
	border: 1px solid var(--sp-border);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--sp-text-secondary);
	transition: all var(--sp-transition);
	box-shadow: var(--sp-shadow-sm);
}

.sp-gallery__nav:hover {
	background: var(--sp-bg);
	color: var(--sp-text-primary);
}

.sp-gallery__nav--prev { left: 0; }
.sp-gallery__nav--next { right: 0; }

/* =============================================================================
   탭 네비게이션
   ============================================================================= */
.sp-tabs {
	display: flex;
	justify-content: flex-start;
	gap: 0;
	border-bottom: 2px solid var(--sp-border);
	margin-top: 40px;
	position: sticky;
	top: 0;
	z-index: 10;
	background: transparent;
	border-radius: 0;
}

.sp-tabs__btn {
	flex: none;
	padding: 14px 24px;
	font-size: 15px;
	font-weight: 600;
	color: var(--sp-text-muted);
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	margin-bottom: -2px;
	cursor: pointer;
	transition: all var(--sp-transition);
	text-align: center;
}

.sp-tabs__btn:hover,
.sp-tabs__btn:focus {
	color: var(--sp-text-secondary);
	background: none;
}

.sp-tabs__btn.is-active,
.sp-tabs__btn.is-active:hover,
.sp-tabs__btn.is-active:focus {
	color: var(--sp-text-primary);
	border-bottom-color: var(--sp-text-primary);
	background: none;
}

/* =============================================================================
   탭 패널 — 상세 설명 / 리뷰
   ============================================================================= */
.sp-panel {
	display: none;
	padding: 32px 0 40px;
	font-size: 15px;
	color: var(--sp-text-primary);
	line-height: 1.8;
}

.sp-panel.is-active {
	display: block;
}

.sp-panel h1,
.sp-panel h2,
.sp-panel h3 {
	margin: 32px 0 12px;
	color: var(--sp-text-primary);
	font-weight: 700;
}

.sp-panel h2 { font-size: 22px; }
.sp-panel h3 { font-size: 18px; }
.sp-panel p { margin: 0 0 16px; }

.sp-panel img {
	max-width: 100%;
	height: auto;
	border-radius: var(--sp-radius-md);
	margin: 16px 0;
}

.sp-panel ul,
.sp-panel ol {
	padding-left: 24px;
	margin: 0 0 16px;
}

.sp-panel li {
	margin-bottom: 6px;
	line-height: 1.7;
}

/* =============================================================================
   사이드바 위젯 (우측 sticky)
   ============================================================================= */
.sp-sidebar {
	position: relative;
}

.sp-sidebar__widget {
	position: sticky;
	top: 40px;
	margin-top: 40px;
	margin-right: 0;
	padding: 32px 28px;
	max-height: calc(100vh - 60px);
	overflow-y: auto;
	background: var(--sp-white);
	border-radius: var(--sp-radius-lg);
	border: 1px solid var(--sp-border);
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06), 0 0 1px rgba(0, 0, 0, 0.08);
}

.sp-sidebar__widget::-webkit-scrollbar { width: 4px; }
.sp-sidebar__widget::-webkit-scrollbar-track { background: transparent; }
.sp-sidebar__widget::-webkit-scrollbar-thumb {
	background: var(--sp-border);
	border-radius: 4px;
}

/* 모바일 전용 썸네일 (데스크톱 숨김) */
.sp-sidebar__thumb-mobile {
	display: none;
}

/* 브레드크럼 */
.sp-breadcrumb {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: var(--sp-text-muted);
	margin-bottom: 16px;
}

.sp-breadcrumb a {
	color: var(--sp-text-muted);
	text-decoration: none;
	transition: color var(--sp-transition);
}

.sp-breadcrumb a:hover { color: var(--sp-primary); }

.sp-breadcrumb__sep {
	flex-shrink: 0;
	color: var(--sp-text-muted);
}

/* 상품명 */
.sp-sidebar__title {
	font-size: 22px;
	font-weight: 700;
	color: var(--sp-text-primary);
	line-height: 1.4;
	margin: 0 0 8px;
	letter-spacing: -0.3px;
}

/* 짧은 설명 */
.sp-sidebar__excerpt {
	font-size: 14px;
	color: var(--sp-text-secondary);
	line-height: 1.6;
	margin: 0 0 20px;
}

/* 가격 블록 */
.sp-sidebar__price-block {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--sp-border);
}

.sp-sidebar__discount {
	font-size: 24px;
	font-weight: 800;
	color: var(--sp-danger);
	letter-spacing: -0.5px;
}

.sp-sidebar__prices {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.sp-sidebar__current-price {
	font-size: 26px;
	font-weight: 800;
	color: var(--sp-text-primary);
	letter-spacing: -0.5px;
}

.sp-sidebar__current-price .woocommerce-Price-amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.sp-sidebar__original-price {
	font-size: 14px;
	color: var(--sp-text-muted);
	text-decoration: line-through;
}

.sp-sidebar__original-price .woocommerce-Price-amount {
	font-size: inherit;
	color: inherit;
}

/* =============================================================================
   액션 행: [공유] + [바로구매] — 와디즈 스타일 한 줄
   ============================================================================= */
.sp-sidebar__actions {
	display: flex;
	gap: 10px;
	align-items: stretch;
	margin-bottom: 10px;
}

/* 공유 토글 버튼 (아이콘만) */
.sp-action-share {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	align-self: center;
	background: var(--sp-white);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-sm);
	cursor: pointer;
	color: var(--sp-text-secondary);
	transition: all var(--sp-transition);
}

.sp-action-share:hover,
.sp-action-share:focus {
	background: var(--sp-bg);
	color: var(--sp-text-primary);
	border-color: var(--sp-text-muted);
}

/* 바로구매 버튼이 나머지 공간 차지 */
.sp-sidebar__actions .sp-sidebar__cart {
	flex: 1;
	min-width: 0;
}

/* =============================================================================
   공유 팝업
   ============================================================================= */
.sp-share-popup {
	display: none;
	background: var(--sp-white);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-md);
	box-shadow: var(--sp-shadow-md);
	margin-bottom: 16px;
	overflow: hidden;
}

.sp-share-popup.is-open {
	display: block;
}

.sp-share-popup__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: 1px solid var(--sp-border);
}

.sp-share-popup__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--sp-text-primary);
}

.sp-share-popup__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: none;
	background: none;
	cursor: pointer;
	color: var(--sp-text-muted);
	border-radius: 50%;
	transition: all var(--sp-transition);
}

.sp-share-popup__close:hover {
	background: var(--sp-bg);
	color: var(--sp-text-primary);
}

.sp-share-popup__body {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding: 16px 44px;
}

.sp-share-option {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border: none;
	background: none;
	cursor: pointer;
	border-radius: var(--sp-radius-sm);
	transition: background var(--sp-transition);
}

.sp-share-option:hover {
	background: var(--sp-bg);
}

.sp-share-option__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--sp-bg);
	color: var(--sp-text-secondary);
	transition: all var(--sp-transition);
}

.sp-share-option:hover .sp-share-option__icon {
	background: var(--sp-border);
}

.sp-share-option__icon--kakao,
.sp-share-option__icon--threads,
.sp-share-option__icon--facebook,
.sp-share-option__icon--instagram,
.sp-share-option__icon--link {
	background: var(--sp-bg);
}

/* =============================================================================
   장바구니/구매 버튼 — WooCommerce + TossPay 오버라이드
   ============================================================================= */
.woocommerce div.product form.cart,
body.single-product .sp-wadiz .sp-sidebar__cart .cart {
	margin: 0 0 10px !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}

/* 수량 필드 비활성화 (숨기기) */
.sp-sidebar__cart .quantity,
.woocommerce div.product form.cart .quantity {
	display: none !important;
}

/* 구분선 */
.sp-sidebar__divider {
	display: none;
}

/* =============================================================================
   아코디언 — 배송/환불 규정
   ============================================================================= */
.sp-info-accordion {
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-sm);
	margin-bottom: 8px;
	overflow: hidden;
}

.sp-info-accordion__header {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 14px 16px;
	font-size: 14px;
	font-weight: 600;
	color: var(--sp-text-primary);
	background: var(--sp-white);
	cursor: pointer;
	list-style: none;
	transition: background var(--sp-transition);
}

.sp-info-accordion__header::-webkit-details-marker { display: none; }
.sp-info-accordion__header:hover { background: var(--sp-bg); }

.sp-info-accordion__icon {
	display: flex;
	align-items: center;
	color: var(--sp-text-muted);
}

.sp-info-accordion__title { flex: 1; }

.sp-info-accordion__chevron {
	color: var(--sp-text-muted);
	transition: transform var(--sp-transition);
	flex-shrink: 0;
}

.sp-info-accordion[open] .sp-info-accordion__chevron {
	transform: rotate(180deg);
}

.sp-info-accordion__body { padding: 0 16px 14px; }

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

.sp-info-list li {
	position: relative;
	padding: 4px 0 4px 14px;
	font-size: 13px;
	color: var(--sp-text-secondary);
	line-height: 1.7;
}

.sp-info-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 12px;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--sp-text-muted);
}

.sp-info-list li strong {
	color: var(--sp-text-primary);
	font-weight: 600;
}

/* =============================================================================
   모바일 하단 고정 바
   ============================================================================= */
.sp-mobile-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--sp-white);
	border-top: 1px solid var(--sp-border);
	box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
	z-index: 999;
	padding: 12px 16px;
	padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}

.sp-mobile-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.sp-mobile-bar__price {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.sp-mobile-bar__discount {
	font-size: 16px;
	font-weight: 800;
	color: var(--sp-danger);
}

.sp-mobile-bar__amount {
	font-size: 18px;
	font-weight: 800;
	color: var(--sp-text-primary);
}

.sp-mobile-bar__amount .woocommerce-Price-amount {
	font-size: inherit;
	font-weight: inherit;
}

.sp-mobile-bar__btn {
	flex-shrink: 0;
	padding: 6px 28px;
	font-size: 15px;
	font-weight: 400;
	color: var(--sp-white);
	background: var(--sp-primary);
	border-radius: var(--sp-radius-sm);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--sp-transition);
}

.sp-mobile-bar__btn:hover {
	background: var(--sp-primary-hover);
	color: #FFFFFF;
}

.sp-mobile-bar__btn {
	color: #FFFFFF !important;
}

/* =============================================================================
   토스트 메시지
   ============================================================================= */
.sp-toast {
	position: fixed;
	bottom: 80px;
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	padding: 12px 24px;
	background: var(--sp-text-primary);
	color: var(--sp-white);
	font-size: 14px;
	font-weight: 600;
	border-radius: var(--sp-radius-sm);
	box-shadow: var(--sp-shadow-md);
	z-index: 10000;
	opacity: 0;
	transition: all 300ms ease;
	pointer-events: none;
}

.sp-toast.is-visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* =============================================================================
   반응형 — 태블릿 (1024px 이하)
   ============================================================================= */
@media (max-width: 1024px) {
	.sp-top__inner {
		grid-template-columns: 1fr 360px;
	}

	.sp-main {
		padding: 32px 24px;
	}

	.sp-sidebar__widget {
		padding: 28px 24px;
	}
}

/* =============================================================================
   반응형 — 모바일 (768px 이하)
   ============================================================================= */
@media (max-width: 768px) {
	.sp-top__inner {
		display: flex !important;
		flex-direction: column-reverse !important;
	}

	.sp-main {
		padding: 0;
	}

	.sp-gallery__featured {
		display: none;
	}

	.sp-gallery__carousel {
		display: none;
	}

	/* 사이드바 — sticky 해제 */
	.sp-sidebar__widget {
		position: static;
		max-height: none;
		padding: 24px 20px;
		border-top: none;
		border-radius: 0;
		border: none;
		box-shadow: none;
		margin-top: 0;
	}

	/* 위젯 내 썸네일 표시 */
	.sp-sidebar__thumb-mobile {
		display: block;
		width: 100%;
		border-radius: var(--sp-radius-sm);
		margin-bottom: 16px;
	}

	.sp-sidebar__title { font-size: 20px; }
	.sp-sidebar__current-price { font-size: 22px; }
	.sp-sidebar__discount { font-size: 20px; }

	/* 모바일: 사이드바 구매 버튼 숨기고 하단 바 사용 */
	.sp-sidebar__actions {
		display: none !important;
	}

	.sp-mobile-bar {
		display: block;
	}

	/* 탭/상세 */
	.sp-tabs {
		margin-top: 0;
		border-top: 8px solid var(--sp-bg);
	}

	.sp-tabs__btn {
		font-size: 14px;
		padding: 12px 12px;
	}

	.sp-panel {
		padding: 24px 20px 80px;
		font-size: 14px;
	}

	.sp-share-popup__body {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* =============================================================================
   반응형 — 소형 모바일 (375px 이하)
   ============================================================================= */
@media (max-width: 375px) {
	.sp-sidebar__widget {
		padding: 20px 16px;
	}

	.sp-sidebar__title { font-size: 18px; }
	.sp-sidebar__current-price { font-size: 20px; }

	.sp-panel {
		padding: 20px 16px 80px;
	}
}

/* =============================================================================
   WooCommerce 추가 오버라이드
   ============================================================================= */
.sp-wadiz #reviews { padding: 0; }
.sp-wadiz #reviews .woocommerce-Reviews-title { display: none; }
.sp-wadiz #reviews #comments { margin: 0; }
.sp-wadiz .related.products { display: none; }

.sp-wadiz .woocommerce-message,
.sp-wadiz .woocommerce-info,
.sp-wadiz .woocommerce-error {
	margin: 16px 40px;
	border-radius: var(--sp-radius-sm);
}

@media (max-width: 768px) {
	.sp-wadiz .woocommerce-message,
	.sp-wadiz .woocommerce-info,
	.sp-wadiz .woocommerce-error {
		margin: 12px 16px;
	}
}

/* =============================================================================
   섹션 공통 — 누구를 위한 강의 / 커리큘럼 / 강사 / FAQ
   ============================================================================= */
.sp-section {
	padding: 0;
	border-top: none;
}

.sp-section__label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: var(--sp-primary);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-top: 40px;
	margin-bottom: 8px;
}

.sp-section__title {
	font-size: 25px;
	font-weight: 800;
	color: var(--sp-text-primary);
	margin: 0 0 16px !important;
	line-height: 1.3;
}

/* ── 왜 이 강의인가요? ── */
.sp-why__headline {
	font-size: 22px !important;
	font-weight: 800 !important;
	color: var(--sp-primary);
	margin: 0 0 12px !important;
	line-height: 1.4;
}

.sp-why__body {
	font-size: 15px;
	color: var(--sp-text-secondary);
	line-height: 1.8;
	margin: 0 !important;
}

/* ── WHAT YOU GET — 아이콘 그리드 ── */
.sp-benefits-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.sp-benefit-card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 20px;
	background: #F8F9FA;
	border-radius: var(--sp-radius-sm);
}

.sp-benefit-card__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--sp-primary);
	background: rgba(0, 100, 255, 0.08);
	border-radius: 10px;
}

.sp-benefit-card__icon svg {
	width: 20px;
	height: 20px;
}

.sp-benefit-card__content {
	flex: 1;
	min-width: 0;
}

.sp-benefit-card__title {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: var(--sp-text-primary);
	margin: 0 0 4px !important;
	line-height: 1.4;
}

.sp-benefit-card__desc {
	font-size: 13px;
	color: var(--sp-text-secondary);
	margin: 0 !important;
	line-height: 1.5;
}

/* ── 누구를 위한 강의 — 4칼럼 (벤치마크 동일) ── */
.sp-section--target {
	background: transparent;
	padding: 48px 0;
}

.sp-target-columns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.sp-target-col {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	text-align: center;
}

.sp-target-col__image {
	margin: 0;
}

.sp-target-col__img {
	width: 112px;
	height: 112px;
	object-fit: cover;
	border-radius: 50%;
}

.sp-target-col__text,
.sp-target-col .sp-target-col__text,
h3.sp-target-col__text {
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--sp-text-primary);
	margin: 0 !important;
	line-height: 1.5;
}

/* ── 커리큘럼 (벤치마크 동일) ── */
.sp-curriculum-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sp-curriculum-block {
	margin-bottom: 0;
}

.sp-curriculum-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 4px 15px;
	margin-bottom: 5px;
	background: #F8F9FA;
	border: none;
	border-radius: var(--sp-radius-md);
}

.sp-curriculum-row__num {
	flex-shrink: 0;
	display: flex;
	flex-direction: row;
	align-items: baseline;
	gap: 2px;
	width: auto;
	min-width: 48px;
	padding-top: 2px;
}

.sp-curriculum-row__number {
	font-size: 28px;
	font-weight: 400;
	color: var(--sp-text-primary);
	line-height: 1;
}

.sp-curriculum-row__suffix {
	font-size: 14px;
	font-weight: 700;
	color: var(--sp-text-muted);
}

.sp-curriculum-row__content {
	flex: 1;
	min-width: 0;
	padding-top: 0;
}

.sp-curriculum-row__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--sp-text-primary);
	margin: 0 !important;
	line-height: 1.4;
}

.sp-curriculum-row__desc {
	font-size: 14px;
	color: var(--sp-text-secondary);
	margin: 0 !important;
	padding-right: 10px;
	line-height: 1.5;
}

/* ── 강사 소개 ── */
.sp-instructor-card {
	display: flex;
	gap: 28px;
	align-items: flex-start;
	background: var(--sp-white);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius-lg);
	padding: 28px;
}

.sp-instructor-card__photo {
	flex-shrink: 0;
}

.sp-instructor-card__img {
	width: 140px;
	height: 140px;
	object-fit: cover;
	border-radius: var(--sp-radius-md);
}

.sp-instructor-card__info {
	flex: 1;
	min-width: 0;
}

.sp-instructor-card__name {
	font-size: 22px;
	font-weight: 800;
	color: var(--sp-text-primary);
	margin: 0 0 4px !important;
}

.sp-instructor-card__title {
	font-size: 15px;
	font-weight: 600;
	color: var(--sp-text-secondary);
	margin: 0 0 12px;
}

.sp-instructor-card__bio {
	font-size: 14px;
	color: var(--sp-text-secondary);
	line-height: 1.7;
	margin: 0 0 16px;
}

.sp-instructor-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sp-instructor-card__tag {
	display: inline-block;
	padding: 4px 10px;
	font-size: 10px;
	font-weight: 600;
	color: var(--sp-primary);
	background: rgba(0, 100, 255, 0.06);
	border-radius: 20px;
}

.sp-instructor-card__tags {
	justify-content: flex-start;
}

/* ── FAQ (벤치마크 동일 — 질문별 배경) ── */
.sp-faq-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sp-faq-item {
	background: #F8F9FA;
	border-radius: var(--sp-radius-sm);
	padding: 20px 20px;
}

.sp-faq-item__question {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding-left: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--sp-text-primary);
	margin-bottom: 8px;
}

.sp-faq-item__answer {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding: 0 10px 0 0;
	font-size: 14px;
	color: var(--sp-text-secondary);
	line-height: 1.7;
}

.sp-faq-item__label {
	flex-shrink: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--sp-primary);
}

.sp-faq-item__label--a {
	color: var(--sp-text-muted);
}

.sp-faq-item__answer p {
	margin: 0;
}

/* ── 섹션 반응형 — 태블릿 ── */
@media (max-width: 1024px) {
	.sp-target-columns {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── 섹션 반응형 — 모바일 ── */
@media (max-width: 768px) {
	.sp-section {
		padding: 0;
	}

	.sp-section__title {
		font-size: 20px;
		margin-bottom: 16px;
	}

	.sp-section--target {
		padding: 0;
	}

	.sp-target-columns {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.sp-target-col__img {
		width: 240px;
		height: 240px;
	}

	.sp-target-col__text {
		font-size: 14px;
	}

	.sp-curriculum-row {
		gap: 10px;
		padding: 12px;
		margin-bottom: 5px;
	}

	.sp-curriculum-row__number {
		font-size: 20px;
	}

	.sp-curriculum-row__title {
		font-size: 15px;
	}

	.sp-faq-item__answer {
		padding: 0 !important;
	}

	.sp-faq-item__question {
		padding-left: 0 !important;
	}

	.sp-benefits-grid {
		grid-template-columns: 1fr;
	}

	.sp-faq-item {
		padding: 16px;
	}

	.sp-instructor-card {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		padding: 24px 20px;
	}

	.sp-instructor-card__img {
		width: 100px;
		height: 100px;
	}

	.sp-instructor-card__tags {
		justify-content: center;
	}

	.sp-faq-item__question {
		padding: 14px 16px;
		font-size: 14px;
	}

	.sp-faq-item__answer {
		padding: 0 16px 14px;
		font-size: 13px;
	}
}

/* 접근성 */
.sp-action-share:focus-visible,
.sp-share-option:focus-visible,
.sp-gallery__thumb:focus-visible,
.sp-gallery__nav:focus-visible,
.sp-tabs__btn:focus-visible {
	outline: 2px solid var(--sp-primary);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.sp-wadiz *,
	.sp-wadiz *::before,
	.sp-wadiz *::after {
		transition-duration: 0ms !important;
		animation-duration: 0ms !important;
	}
}

/* =============================================================================
   무료 PDF (freepdf) 버튼 스타일
   ============================================================================= */

.sp-sidebar__current-price--free {
	color: var(--sp-primary, #6C5CE7);
	font-weight: 800;
}

.sp-freepdf-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 14px 20px;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s, transform 0.1s;
	cursor: pointer;
	border: none;
}

.sp-freepdf-btn:active {
	transform: scale(0.98);
}

.sp-freepdf-btn--kakao {
	background: #FEE500;
	color: #191919;
}
.sp-freepdf-btn--kakao:hover {
	background: #F0D800;
	color: #191919;
	text-decoration: none;
}

.sp-freepdf-btn--download,
.sp-freepdf-btn--download:link,
.sp-freepdf-btn--download:visited,
.sp-freepdf-btn--download:hover,
.sp-freepdf-btn--download:active {
	background: var(--sp-primary, #6C5CE7) !important;
	color: #fff !important;
	text-decoration: none;
}
.sp-freepdf-btn--download:hover {
	background: var(--sp-primary-dark, #5A4BD1) !important;
}

.sp-mobile-bar__btn--kakao {
	background: #FEE500 !important;
	color: #191919 !important;
}
.sp-mobile-bar__btn--kakao:hover {
	background: #F0D800 !important;
}

.sp-mobile-bar__btn--download {
	background: var(--sp-primary, #6C5CE7) !important;
	color: #fff !important;
}
.sp-mobile-bar__btn--download:hover {
	background: var(--sp-primary-dark, #5A4BD1) !important;
}

/* 가격: 오리지널 + 무료 한줄 배치 */
.sp-sidebar__prices--freepdf {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

/* sp-why headline 글자크기 80% 축소 */
.sp-why__headline {
	font-size: 80% !important;
}

/* 모바일 하단 바: 오리지널 가격 취소선 */
.sp-mobile-bar__original {
	color: #999;
	font-size: 0.85em;
	margin-right: 4px;
}

/* 모바일 하단 바: 다운로드 버튼 텍스트 화이트 보장 */
.sp-mobile-bar__btn--download,
.sp-mobile-bar__btn--download:visited,
.sp-mobile-bar__btn--download:active {
	color: #fff !important;
}
