/* product-kidol.css - 영상이 하나일 때 전체 너비 사용 및 16:9 비율 유지 */
.product-detail-section {
    padding: 100px 0;
}

/* * 🎨 [이전 요청 - Global K-IDOL 배경 섹션 스타일] 
 * h1부터 바로 아래 p 텍스트 구간에 배경 이미지 적용 
 */
.kidol-hero-content {
    background-image: url('../images/bg/globalKidol_bg1.jpg'); /* 배경 이미지 경로 설정 */
    background-size: cover; /* 배경 이미지를 섹션에 맞게 채움 */
    background-position: center; /* 배경 이미지를 중앙에 위치 */
    background-repeat: no-repeat;
    padding: 50px 20px; /* 내부 여백 추가 */
    margin-bottom: 50px; /* 섹션 하단 여백 추가 */
    border-radius: 10px; /* 모서리 둥글게 처리 */
    color: #fff; /* 텍스트 색상을 흰색으로 변경 (배경색을 고려) */
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); /* 텍스트 가독성을 위한 그림자 */
    position: relative; 
    overflow: hidden; 
}

/* 가독성을 높이기 위한 오버레이 */
.kidol-hero-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.3); /* 어두운 반투명 오버레이 */
    z-index: 1;
}

/* h1과 p의 텍스트가 오버레이 위로 오도록 설정 */
.kidol-hero-content h1, .kidol-hero-content p {
    position: relative;
    z-index: 2;
    color: #fff; /* 텍스트 색상을 흰색으로 강제 */
    text-align: center;
}


.product-detail-section h1 {
    font-size: 2.5em;
    color: var(--primary-color);
    margin-bottom: 20px;
}
/* kidol-hero-content 내부의 h1에 대한 추가 스타일 */
.kidol-hero-content h1 {
    color: #fff;
}


.product-detail-section h3 {
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: 10px;
    margin-bottom: 20px;
    font-size: 1.5em;
}
.product-detail-section p, .product-detail-section ul, .product-detail-section li {
    font-size: 1.1em;
    line-height: 1.8;
    color: var(--text-color);
    margin-bottom: 1rem;
}
/* kidol-hero-content 내부의 p에 대한 추가 스타일 */
.kidol-hero-content p {
    color: #fff;
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.product-detail-section ul {
    list-style-type: none;
    padding-left: 0;
}
.product-detail-section li {
    margin-bottom: 10px;
}

/* 제품 상세 정보를 2열로 나누는 그리드 레이아웃 */
.product-details-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 50px;
}
@media (max-width: 768px) {
    .product-details-grid {
        grid-template-columns: 1fr;
    }
}

/* 주요 특징 카드형 레이아웃 */
.features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 30px;
    margin-bottom: 50px;
}

/* * 🎨 [기존 스타일 유지] */
.feature-card {
    background-color: #333; /* 배경 이미지 로딩 실패 대비 */
    border-radius: 8px;
    padding: 25px;
    text-align: left;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    
    /* 배경 이미지 설정 */
    background-size: cover;
    background-position: center;
    position: relative; /* ::before 요소의 기준점 */
    overflow: hidden; /* 모서리 둥글게 처리 */
    color: #fff; /* 텍스트 색상을 흰색으로 기본 설정 */
}
.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

/* 텍스트 가독성을 위한 오버레이 (Opacity/Dark Mode 대응) */
.feature-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    /* 라이트 모드 (기본): 배경 밝기에 따라 0.4 (40%) 오버레이 */
    background-color: rgba(0, 0, 0, 0.4); 
    transition: background-color 0.3s ease;
}

/* 다크 모드일 때 오버레이를 더 어둡게 하여 가독성 확보 (높은 오퍼시티: 65%) */
.dark-mode .feature-card::before {
    background-color: rgba(0, 0, 0, 0.65); 
}

/* 카드 내부 요소들이 오버레이 위에 오도록 z-index 설정 */
.feature-card h4, .feature-card p {
    position: relative;
    z-index: 2;
    color: #fff !important; /* 배경 이미지 위에서 항상 흰색 텍스트 */
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.8); /* 텍스트 가독성 향상 */
}

/* 개별 카드에 배경 이미지 적용 */
.feature-card-1 {
    background-image: url('../images/bg/globalKidol_banner_1.jpg');
}
.feature-card-2 {
    background-image: url('../images/bg/globalKidol_banner_2.jpg');
}
.feature-card-3 {
    background-image: url('../images/bg/globalKidol_banner_3.jpg');
}
.feature-card-4 {
    background-image: url('../images/bg/globalKidol_banner_4.jpg');
}

@media (max-width: 1024px) {
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 767px) {
    .features-grid {
        grid-template-columns: 1fr;
    }
}

/* 비디오 섹션 - 영상이 하나일 때 전체 너비 사용 및 16:9 비율 유지 */
.video-section {
    padding: 50px 0;
    margin-top: 50px;
}
.video-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
/* 영상이 하나일 때 */
.video-grid:has(> .video-item:only-child) {
    grid-template-columns: 1fr;
}
.video-item {
    text-align: center;
}
.video-item h4 {
    font-size: 1.2em;
    color: var(--primary-color);
    margin-bottom: 10px;
}
.video-item iframe {
    width: 100%;
    aspect-ratio: 16 / 9; /* 16:9 비율 유지 */
    height: auto; /* 높이 자동 조정 */
}
@media (max-width: 768px) {
    .video-grid {
        grid-template-columns: 1fr;
    }
}

/* 브로슈어 섹션 */
.brochure-section {
    padding: 50px 0;
    margin-top: 50px;
}
.brochure-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.brochure-item {
    text-align: center;
    background-color: var(--header-bg);
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    /* [수정] 배경 시각화를 위한 설정 */
    position: relative; 
    z-index: 2; /* 캔버스(z-index: 1) 위에 텍스트가 보이도록 */
    overflow: hidden; /* 배경 시각화가 둥근 모서리를 벗어나지 않도록 */
}
/* [신규] 시각화 배경 컨테이너 스타일 */
.visualizer-bg-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* 텍스트 및 버튼 뒤로 배치 */
    display: none; /* 초기에는 숨김 */
}

/* [신규] 시각화 캔버스 스타일 */
.audio-visualizer-canvas {
    width: 100%;
    height: 100%;
    background-color: transparent !important; /* 캔버스 자체 배경은 투명하게 */
}

/* [수정] brochure-item 내부의 텍스트와 버튼을 시각화(z-index: 1)보다 위에 배치 */
.brochure-item h4, .brochure-item .play-btn {
    position: relative;
    z-index: 3; 
}

.brochure-item img {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
    border-radius: 4px;
}
.brochure-item h4 {
    font-size: 1.2em;
    color: var(--primary-color);
    margin-bottom: 10px;
}
.play-btn {
    display: inline-block;
    background-color: var(--primary-color);
    color: #fff;
    padding: 10px 20px;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.3s;
}
.play-btn:hover {
    background-color: #003b8e; /* 어두운 primary color */
}
@media (max-width: 1024px) {
    .brochure-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 768px) {
    .brochure-grid {
        grid-template-columns: 1fr;
    }
}

/* 🎨 [신규/수정] 이미지 자료 섹션 (LIC 페이지 구조 반영) */
.image-gallery-section {
	padding: 50px 0;
	margin-top: 50px;
}
.gallery-title h3 {
	border-bottom: 2px solid var(--primary-color);
	padding-bottom: 10px;
	margin-bottom: 20px;
	font-size: 1.5em;
}
.category-filter {
	display: flex;
	gap: 15px;
	margin-bottom: 30px;
	justify-content: center;
}
.category-button {
	background: none;
	border: 1px solid var(--primary-color);
	color: var(--primary-color);
	padding: 8px 15px;
	border-radius: 20px;
	cursor: pointer;
	transition: background-color 0.3s, color 0.3s;
	font-weight: bold;
}
.category-button.active {
	background-color: var(--primary-color);
	color: #fff;
}
.gallery-container {
	position: relative;
	max-width: 92%;
	margin: 0 auto;
}
.gallery-wrapper {
	display: flex;
	overflow-x: hidden;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	padding: 10px 0;
}
.gallery-item {
	flex: 0 0 auto;
	width: 300px; /* 카드 너비 */
	margin-right: 20px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease;
	cursor: pointer;
}
.gallery-item img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}
.nav-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background-color: rgba(0, 0, 0, 0.5);
	color: white;
	border: none;
	padding: 10px;
	cursor: pointer;
	z-index: 10;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.nav-arrow.left { left: -50px; }
.nav-arrow.right { right: -50px; }

/* 라이트박스 (팝업) 스타일 (LIC 페이지에서 가져옴) */
.lightbox {
	display: none;
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.9);
	justify-content: center;
	align-items: center;
}
.lightbox-content {
	max-width: 90%;
	max-height: 90%;
	animation-name: zoom;
	animation-duration: 0.6s;
}
.lightbox-content img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	display: block;
	margin: auto;
}
.lightbox .close {
	position: absolute;
	top: 20px;
	right: 35px;
	color: #fff;
	font-size: 40px;
	font-weight: bold;
	transition: 0.3s;
	cursor: pointer;
}
@keyframes zoom {
	from {transform:scale(0)} 
	to {transform:scale(1)}
}
@media (max-width: 768px) {
	.gallery-item {
		width: 250px; /* 모바일에서 카드 너비 줄임 */
	}
	.nav-arrow {
		display: none; /* 모바일에서 화살표 숨기기 */
	}
}