html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

body {
	font-family: 'Pretendard Variable', Pretendard, sans-serif;
	word-break: keep-all;
	overflow-x: clip;
}

body.is-gnb-open {
	overflow: hidden;
}

/* GSAP 등장 전 깜빡임 방지 (스크립트 실패 시 .js 제거로 다시 보임) */
.js .fade-up,
.js .fade-up-slow,
.js .slide-left,
.js .slide-right,
.js .fade-down,
.js .scale-in,
.js .rotate-in,
.js .blur-in,
.js .stagger-item {
	opacity: 0;
}

/* 이미지 자리표시자 */
.ph {
	background-color: #dff0ff;
	position: relative;
	overflow: hidden;
}

.ph::after {
	content: attr(data-label);
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	letter-spacing: -0.01em;
	color: #5aa9de;
	font-weight: 500;
	text-align: center;
	padding: 0 12px;
}

.ph-dark {
	background-color: #06427d;
}

.ph-dark::after {
	color: rgba(255, 255, 255, 0.45);
}

/* 개인정보처리방침 모달 — 네이티브 스크롤바(화살표 포함) 숨김 */
.privacy-scroll-hide,
#privacyModalBody,
#termsModalBody {
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.privacy-scroll-hide::-webkit-scrollbar,
#privacyModalBody::-webkit-scrollbar,
#termsModalBody::-webkit-scrollbar {
	width: 0 !important;
	height: 0 !important;
	display: none !important;
	background: transparent;
}

#privacyScrollThumb.is-visible,
#termsScrollThumb.is-visible {
	opacity: 1;
}

/* 장비안내: 텍스트 없는 사진은 확대·크롭 없이 박스에 딱 맞춤, 제목 바가 있는 사진만 확대해 자름 */
#equipPhoto {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	transform: none;
}
#equipPhoto.is-zoom {
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	object-fit: cover;
	object-position: center bottom;
	transform-origin: center bottom;
	transform: scale(1.12);
}
/* 세로로 긴 장비: 16:9 크롭 없이 원본 비율 그대로 전체 노출 */
#equipFrame.is-fit {
	aspect-ratio: auto;
	overflow: visible;
	padding: 1.5rem 2rem;
}
#equipPhoto.is-fit {
	width: 100%;
	height: auto;
	max-height: none;
	object-fit: contain;
	object-position: center;
	transform: none;
}

/* 비급여항목 표: 마지막 행 border + 컨테이너 border 이중선 방지 */
.price-group table tbody tr:last-child {
	border-bottom-width: 0;
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}

	.js .fade-up,
	.js .fade-up-slow,
	.js .slide-left,
	.js .slide-right,
	.js .fade-down,
	.js .scale-in,
	.js .rotate-in,
	.js .blur-in,
	.js .stagger-item {
		opacity: 1 !important;
		transform: none !important;
	}
}
