@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
body {
	font-family: 'pretendard', sans-serif;
	background-color: #ffffff;
	color: #090d16;
	overflow-x: hidden;
}
.font-outfit {
	font-family: 'Outfit', sans-serif;
}
/* GNB 2depth 호버 유지 브릿지 */
.gnb-dropdown-bridge {
	transform: translateY(0);
	transition: all 0.25s ease;
}
/* Swiper 도트 디자인 매칭 (사파이어 블루) */
.swiper-pagination-bullet-active {
	background: #0055ff !important;
	width: 32px !important;
	border-radius: 4px !important;
	transition: all 0.3s ease;
}
/* 모바일 서브 아코디언 메뉴 */
.mob-sub-menu {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* 포트폴리오 가로 Swiper 전용 간격 및 풀 가로폭 스타일 */
.portfolio-swiper-container {
	width: 100%;
	padding: 20px 0;
}
/* 생산시설 수직 텍스트 스와이퍼 스타일링 */
.facilities-text-swiper .swiper-slide {
	opacity: 0.25;
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
/* 액티브 상태인 중앙 텍스트만 100% 불투명 및 포인트 블루 강조 */
.facilities-text-swiper .swiper-slide-active {
	opacity: 1 !important;
}
.facilities-text-swiper .swiper-slide-active h4 {
	color: #0055ff !important;
	font-weight: 800;
}
/* 생산시설 수직 슬라이더 높이 바운더리 제어 */
.facilities-vertical-container {
	height: 380px;
}


/* 커스텀 라디오/체크박스 애니메이션 */
.option-wrapper input:checked ~ .option-card {
	border-color: #0055ff;
	background-color: rgba(0, 85, 255, 0.04);
}
.option-wrapper input[type="radio"]:checked ~ .option-card .custom-radio {
	border-width: 6px;
	border-color: #0055ff;
}
.option-wrapper input[type="checkbox"]:checked ~ .option-card .custom-check {
	background-color: #0055ff;
	border-color: #0055ff;
}
.option-wrapper input[type="checkbox"]:checked ~ .option-card .custom-check i {
	opacity: 1;
}
.option-wrapper input:checked ~ .option-card .card-title {
	color: #0055ff;
}

/* SNS 버튼 호버 이펙트 */
.sns-btn {
	transition: all 0.2s ease-in-out;
}
.sns-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* 폼 전환 애니메이션 */
.fade-in-step {
	animation: fadeInStep 0.4s ease-out forwards;
}
@keyframes fadeInStep {
	from {
		opacity: 0;
		transform: translateY(15px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* 지그재그 이미지 호버 줌 효과 */
.facility-img-wrap img {
	transition: transform 0.7s ease;
}
.facility-img-wrap:hover img {
	transform: scale(1.05);
}
/* 텍스트 탭 액티브 스타일 */
.facilities-text-swiper .swiper-slide {
	opacity: 0.25;
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.facilities-text-swiper .swiper-slide-active {
	opacity: 1 !important;
}
.facilities-text-swiper .swiper-slide-active h4 {
	color: #0055ff !important;
	font-weight: 800;
}


/* 로고 카드 호버 효과 */
.logo-card {
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
	filter: grayscale(100%) opacity(0.7);
}
.logo-card:hover {
	filter: grayscale(0%) opacity(1);
	transform: translateY(-5px);
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
	border-color: #0055ff;
	z-index: 10;
}

/* 드로잉 서명 트랜지션 */
.signature-path {
	stroke-dasharray: 1000;
	stroke-dashoffset: 1000;
	transition: stroke-dashoffset 2s cubic-bezier(0.25, 1, 0.5, 1);
}
.active-sig .signature-path {
	stroke-dashoffset: 0;
}

/* 마우스 무브 연계 구체 그라데이션 광택 */
.orb-shine {
	background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.2) 0%, rgba(0, 85, 255, 0.4) 50%, rgba(9, 13, 22, 0.9) 100%);
	box-shadow: inset -10px -10px 50px rgba(0,0,0,0.6),
				10px 20px 40px rgba(0, 85, 255, 0.15);
}

/* 기술 원리 다이어그램 광택 */
.tech-glow {
	box-shadow: 0 0 40px rgba(0, 85, 255, 0.15);
}

/* pH 라벨 스크롤 애니메이션 컬러 변이용 클래스 */
.ph-indicator { transition: fill 0.5s ease, stroke 0.5s ease; }

/* 기술 원리 다이어그램 광택 */
.tech-glow {
	box-shadow: 0 0 40px rgba(0, 85, 255, 0.15);
}


/* 3D Abstract Ribbon 캔버스 제어 - 창크기 무관 100% 밀착 */
.abstract-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

/* 포트폴리오 갤러리 카드 줌인 효과 */
.portfolio-card {
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

/* ★ 카테고리 탭 스와이퍼 전용 스타일 ★ */
.category-swiper {
	width: 100%;
	overflow: hidden;
	padding-bottom: 5px; /* 그림자 잘림 방지용 여백 */
}
.category-swiper .swiper-slide {
	width: auto; /* 글자 길이에 맞춰 슬라이드 가로 너비 자동 조절 */
}
.category-swiper .swiper-slide a {
	display: block;
	width: 100%;
	text-align: center;
}

/* 성공 체크마크 드로잉 애니메이션 */
.success-checkmark {
	width: 80px;
	height: 80px;
	margin: 0 auto;
	border-radius: 50%;
	display: block;
	stroke-width: 4;
	stroke: #0055ff;
	stroke-miterlimit: 10;
	box-shadow: inset 0px 0px 0px #0055ff;
	animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
}
.success-checkmark__circle {
	stroke-dasharray: 166;
	stroke-dashoffset: 166;
	stroke-width: 4;
	stroke-miterlimit: 10;
	stroke: #0055ff;
	fill: none;
	animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.success-checkmark__check {
	transform-origin: 50% 50%;
	stroke-dasharray: 48;
	stroke-dashoffset: 48;
	animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.6s forwards;
}
@keyframes stroke { 100% { stroke-dashoffset: 0; } }
@keyframes scale { 0%, 100% { transform: none; } 50% { transform: scale3d(1.1, 1.1, 1); } }
@keyframes fill { 100% { box-shadow: inset 0px 0px 0px 30px rgba(0, 85, 255, 0.05); } }

/* 상태 배지 스타일 */
.status-badge-waiting { background-color: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1; }
.status-badge-progress { background-color: #f0f5ff; color: #0055ff; border: 1px solid #bfdbfe; }
.status-badge-done { background-color: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }

/* FAQ 아코디언 스타일 */
.faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s cubic-bezier(0.25, 1, 0.5, 1), padding 0.4s ease, opacity 0.4s ease;
	opacity: 0;
}
.faq-item.active .faq-answer {
	opacity: 1;
}
.faq-item.active .faq-icon {
	transform: rotate(180deg);
	color: #0055ff;
	background-color: #f0f5ff;
}
.faq-item.active .faq-question-text {
	color: #0055ff;
}

/* 선택 카드 호버 이펙트 */
.choice-card {
	transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}
.choice-card:hover {
	transform: translateY(-5px);
	border-color: #0055ff;
	box-shadow: 0 20px 25px -5px rgba(0, 85, 255, 0.1), 0 10px 10px -5px rgba(0, 85, 255, 0.04);
}

/* v20 main portfolio resize flicker guard */
/* .portfolio-swiper .swiper-slide img{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);will-change:auto;}
.portfolio-swiper .swiper-slide:hover img, .portfolio-swiper .group:hover img
{transform:translateZ(0)!important}
.portfolio-swiper .swiper-slide>div{contain:layout paint;isolation:isolate} */


/* CNG board/detail layout guard */
body > .flex.flex-col.min-h-screen { min-height: 100vh; }
body > .flex.flex-col.min-h-screen > main { flex: 1 0 auto; }
footer { flex-shrink: 0; }


/* 이용약관 본문 스타일링 */
.terms-content h3 {
	font-size: 1.125rem;
	font-weight: 700;
	color: #090d16;
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}
.terms-content h4 {
	font-size: 0.95rem;
	font-weight: 700;
	color: #1e293b;
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
}
.terms-content p, .terms-content li {
	font-size: 0.875rem;
	line-height: 1.8;
	color: #475569;
	margin-bottom: 0.75rem;
}
.terms-content ol {
	list-style-type: decimal;
	padding-left: 1.25rem;
	margin-bottom: 1.5rem;
}
.terms-content ul {
	list-style-type: disc;
	padding-left: 1.25rem;
	margin-bottom: 1.5rem;
}
