@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;900&display=swap');

:root {
    --primary-color: #007bff;
    --primary-dark: #0056b3;
    --primary-light-bg: #e7f3ff;
    --text-color: #333;
    --text-light: #6c757d;
    --border-color: #dee2e6;
    --white-color: #ffffff;
    --sk-color: #ED1C24;
    --lg-color: #D20268;
    --kt-color: #000000;
    --skb-color: #002266;
    --skylife-color: #ED1C24;
    --hellovision-color: #6A0DAD;
    --kakao-color: #FFDE00;
    --ai-color: #ffc107;
    --danger-color: #dc3545;
    --ryan-size: 40px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Noto Sans KR', sans-serif;
    color: var(--text-color);
    background-color: var(--white-color);
    padding-bottom: 120px;
    font-size: 15px;
    line-height: 1.5;
}

body.modal-open {
    overflow: hidden;
}

body.ai-view-active {
    padding-bottom: 0;
}

body.ai-view-active .summary-sticky-bar {
    display: none;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* --- 상단 UI --- */
.sticky-header-container {
    position: sticky;
    top: 0;
    z-index: 1010;
    background-color: var(--white-color);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

header {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border-bottom: 1px solid var(--border-color);
}

.header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    background-color: var(--white-color);
}

header .logo a {
    text-decoration: none;
    color: var(--primary-color);
    font-size: 1.8em;
    font-weight: 900;
}

.header-actions-container {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    flex-grow: 1;
}

.ai-calculator-link-header {
    flex-grow: 1;
    margin-top: 0;
    justify-content: center;
    padding: 0 60px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    color: var(--white-color);
    text-decoration: none;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1em;
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.2);
    transition: all 0.3s ease;
    position: relative;
    overflow: visible;
}

.ai-calculator-link-header:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0, 86, 179, 0.4);
    filter: brightness(1.1);
}

.ai-calculator-link-header .ai-icon {
    position: absolute;
    height: 70px;
    bottom: 0;
    left: 25px;
    transform: translateY(10px);
    transition: transform 0.3s ease;
    z-index: 1;
}

.ai-calculator-link-header:hover .ai-icon {
    transform: translateY(6px) rotate(-5deg);
}

header .contact-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

header .contact-info .tel {
    font-size: 1.3em;
    font-weight: 700;
    color: var(--text-color);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

header .contact-info .tel i {
    color: var(--primary-color);
}

.quick-menu-header-btn {
    background: none;
    border: 1px solid var(--border-color);
    width: auto;
    height: 40px;
    border-radius: 50px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-color);
    cursor: pointer;
    margin-left: 15px;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.quick-menu-header-btn:hover {
    background-color: var(--primary-light-bg);
    color: var(--primary-color);
}

.category-nav {
    padding: 15px 0;
    border-bottom: 1px solid var(--border-color);
    position: relative;
    background-color: var(--white-color);
}

.category-nav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    gap: 40px;
    flex-wrap: wrap;
}

.category-nav ul a {
    text-decoration: none;
    color: #555;
    font-size: 1.05em;
    font-weight: 700;
    white-space: nowrap;
    padding: 5px 0;
}

/* --- 아이콘 기반 상단 메뉴 스타일 --- */
.icon-nav {
    gap: 20px !important;
}

.icon-nav li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 5px 10px !important;
    border-radius: 8px;
    transition: background-color 0.2s;
}

.icon-nav li a:hover {
    background-color: #f8f9fa;
}

.icon-nav li a img {
    height: 24px;
    object-fit: contain;
}

.icon-nav li a i {
    font-size: 22px;
    color: var(--primary-color);
}

.icon-nav li a span {
    font-size: 13px !important;
    font-weight: 500 !important;
}

.icon-nav .secret-benefit-link {
    color: white !important;
    padding: 10px 15px !important;
}

.icon-nav .secret-benefit-link i,
.icon-nav .secret-benefit-link span {
    color: white !important;
}

#ai-calculator-nav-link {
    position: relative;
    background: linear-gradient(45deg, var(--primary-color), var(--primary-dark));
    color: var(--white-color);
    padding: 10px 20px;
    border-radius: 50px;
    display: inline-flex;
    align-items: center;
    font-weight: 700;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2);
    overflow: hidden;
}

#ai-calculator-nav-link .icon-wrapper {
    display: none;
}

#ai-calculator-nav-link:hover {
    box-shadow: 0 8px 20px rgba(0, 123, 255, 0.3);
    transform: translateY(-2px);
}

.secret-benefit-link {
    background: linear-gradient(45deg, #ff8a00, #e52e71);
    color: white !important;
    padding: 10px 20px !important;
    border-radius: 50px;
    font-weight: 700;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(255, 87, 34, 0.4);
}

.secret-benefit-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 87, 34, 0.5);
}

/* ▼▼▼ PC/모바일 반응형 메뉴 스타일 ▼▼▼ */
.carrier-menu-item {
    display: none;
    /* PC에서는 기본적으로 숨김 */
    position: relative;
}

.carrier-dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--white-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 10px;
    margin-top: 10px;
    z-index: 10;
    flex-direction: row;
    /* 모바일 드롭다운도 가로로 배치 */
    gap: 10px !important;
    width: max-content;
}

.carrier-menu-item.open .carrier-dropdown-menu {
    display: flex;
}

/* --- ▼▼▼ [추가/수정] 롤링 히어로 섹션 스타일 --- */
:root {
    --hero-primary-blue: #007bff;
    --hero-highlight-blue: #31a2ff;
    --hero-dark-bg: #061023;
    --hero-text-light: #e0e8ff;
    --hero-text-white: #ffffff;
}

/* Swiper 컨테이너 기본 스타일 */
.hero-swiper {
    width: 100%;
    height: 500px;
    background-color: var(--hero-dark-bg);
}

.swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    text-align: center;
}

/* [추가] 히어로 이미지 슬라이드 배경 스타일 */
.hero-image-slide {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* 각 슬라이드 공통 콘텐츠 스타일 */
.hero-slide-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    /* 상단과 하단으로 콘텐츠 분리 */
    color: var(--hero-text-white);
    padding: 80px 20px 80px;
    /* 하단 패딩 증가 */
    height: 100%;
    width: 100%;
}

.hero-top-content {
    margin-top: auto;
}

.hero-bottom-content {
    margin-bottom: auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero-slide-content h1 {
    font-size: 3rem;
    font-weight: 900;
    line-height: 1.3;
    margin-top: 0;
    margin-bottom: 1rem;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.hero-slide-content .highlight {
    color: var(--hero-highlight-blue);
}

.hero-slide-content .hero-subtitle {
    font-size: 1.1rem;
    color: var(--hero-text-light);
    max-width: 600px;
    margin-bottom: 2.5rem;
}

.hero-slide-content .btn {
    border: none;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    font-size: 1.1rem;
}

.hero-slide-content .cta-primary {
    background-color: var(--hero-primary-blue);
    color: var(--hero-text-white);
}

.hero-slide-content .cta-primary:hover {
    background-color: #0069d9;
    transform: translateY(-2px);
}

.hero-slide-content .cta-secondary {
    background-color: transparent;
    color: var(--hero-text-light);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-slide-content .cta-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.hero-slide-content .cta-tertiary {
    background-color: rgba(255, 255, 255, 0.15);
    color: var(--hero-text-white);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-slide-content .cta-tertiary:hover {
    background-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
}

.hero-btn-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    width: 100%;
}

/* 2번, 3번 히어로 슬라이드 버튼 가로 나열 */
.hero-image-slide .hero-btn-group,
.hero-video-slide-2 .hero-btn-group {
    flex-direction: row;
    justify-content: center;
    gap: 15px;
}

/* 2번 비디오 슬라이드 버튼 너비 조정 (가로 나열을 위해) */
.hero-video-slide-2 .hero-content-card .btn {
    width: auto;
    min-width: 150px;
}

/* 히어로 캠페인 배지 (오른쪽 상단 작은 배지) */
.hero-campaign-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
    color: white;
    text-decoration: none;
    font-size: 0.85em;
    font-weight: 500;
    backdrop-filter: blur(10px);
    transition: all 0.3s;
}

.hero-campaign-badge:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .hero-campaign-badge {
        top: 15px;
        right: 15px;
        padding: 6px 12px;
        font-size: 0.75em;
    }
    
    /* 모바일에서도 2번, 3번 슬라이드 버튼 가로 나열 유지 */
    .hero-image-slide .hero-btn-group,
    .hero-video-slide-2 .hero-btn-group {
        flex-direction: row;
        gap: 10px;
        flex-wrap: wrap;
    }
}

.hero-slide-content .btn span {
    font-size: 0.8rem;
    font-weight: 400;
    opacity: 0.8;
    margin-top: 4px;
}

/* 슬라이드 1: 비디오 히어로 (디자인 균형 조정) */
.hero-video-slide .hero-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 70% !important;
    /* 화면 너비의 70% 강제 */
    max-width: 840px !important;
    /* 840px 최대 너비 강제 */
    height: auto;
    aspect-ratio: 16 / 9;
    z-index: 0;
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    /* 그림자 효과 */
}

.hero-video-slide .hero-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(6, 16, 35, 0.5); /* 오버레이 더 밝게 (0.85 → 0.5) */
    z-index: 1;
}

/* 비디오 슬라이드 밝기 조정 (1번, 2번 모두) */
.hero-video-slide .hero-video-bg {
    filter: brightness(1.2); /* 비디오 밝기 20% 증가 */
}

.hero-video-slide .hero-bottom-content {
    margin-top: auto;
    margin-bottom: 0;
}

/* 하단에 붙도록 수정 */
.hero-video-slide .hero-content-card {
    background: rgba(0, 26, 51, 0.7);
    backdrop-filter: blur(10px);
    border-radius: 16px;
    padding: 2rem;
    max-width: 600px;
}

.hero-video-slide .hero-content-card h1 {
    margin-bottom: 0.5rem;
}

.hero-video-slide .hero-content-card .hero-subtitle {
    margin-bottom: 1.5rem;
}

.hero-video-slide .hero-content-card .btn {
    width: 100%;
}

/* 슬라이드 2 & 3: 다크 컨셉 히어로 */
.hero-dark-slide {
    background-color: var(--hero-dark-bg);
}

.hero-dark-slide .hero-tagline {
    font-size: 1rem;
    font-weight: 700;
    color: var(--hero-highlight-blue);
    margin-bottom: 0.5rem;
}

.hero-dark-slide .trust-bar {
    display: flex;
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.9rem;
    color: var(--hero-text-light);
}

.hero-dark-slide .trust-bar li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.hero-dark-slide .trust-bar i {
    color: var(--hero-highlight-blue);
}

.hero-dark-slide .cta-buttons {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* 슬라이드 2 전용 */
.hero-30sec-slide .benefit-summary-card {
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 2rem;
    width: 100%;
    max-width: 450px;
}

.hero-30sec-slide .benefit-summary-card ul {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
}

.hero-30sec-slide .benefit-summary-card li {
    display: flex;
    justify-content: space-between;
    padding: 0.8rem 0;
    font-size: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.hero-30sec-slide .benefit-summary-card li:last-child {
    border-bottom: none;
}

.hero-30sec-slide .benefit-summary-card .cta-scan {
    width: 100%;
    background-color: var(--hero-text-white);
    color: var(--hero-dark-bg);
    padding: 1rem;
    font-size: 1.1rem;
}

.hero-30sec-slide .benefit-summary-card .disclaimer {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.5);
    margin-top: 1rem;
    margin-bottom: 0;
}

/* Swiper 네비게이션/페이지네이션 스타일 */
.swiper-button-next,
.swiper-button-prev {
    color: var(--hero-text-white);
}

.swiper-pagination-bullet-active {
    background: var(--hero-text-white);
}

/* 히어로 섹션 잘림 문제 해결 (세로 높이 대응) */
@media (max-height: 750px) {
    .hero-swiper {
        height: 385px;
    }

    .hero-slide-content {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .hero-slide-content h1 {
        font-size: 2.5rem;
        margin-bottom: 0.8rem;
    }

    .hero-slide-content .hero-subtitle {
        margin-bottom: 1.5rem;
    }

    .hero-30sec-slide .benefit-summary-card {
        padding: 1.5rem;
    }
}

/* --- ▲▲▲ [추가/수정] 롤링 히어로 섹션 스타일 --- */

.section {
    padding: 80px 0;
}

.trust-elements {
    display: flex;
    justify-content: space-around;
    text-align: center;
    gap: 20px;
    flex-wrap: wrap;
}

.trust-element {
    flex: 1;
    min-width: 200px;
}

.trust-element .icon {
    font-size: 3em;
    color: var(--primary-color);
    margin-bottom: 15px;
}

.trust-element h3 {
    font-size: 1.3em;
    margin-bottom: 10px;
}

/* ============================================
   누적개통 및 고객만족도 통계 스타일
   ============================================ */

/* 위치 1: 배너 형태 (히어로 배경색) */
.stats-banner-section {
    background-color: var(--hero-dark-bg);
    padding: 30px 0;
    margin: 40px 0;
}

.stats-counter-container.stats-banner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    color: #fff;
}

.stats-counter-container.stats-banner .stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.stats-counter-container.stats-banner .stat-label {
    font-size: 0.9em;
    opacity: 0.9;
    font-weight: 400;
}

.stats-counter-container.stats-banner .stat-value {
    font-size: 2em;
    font-weight: 700;
    color: #fff;
}

.stats-counter-container.stats-banner .stat-value.star {
    color: #ffd700;
}

.stats-counter-container.stats-banner .stat-sub {
    font-size: 0.85em;
    opacity: 0.8;
    margin-top: 4px;
}

.stats-counter-container.stats-banner .stat-divider {
    font-size: 2em;
    opacity: 0.3;
    color: #fff;
}

/* 위치 2: Trust Elements 내부 인라인 형태 */
.stats-counter-container.stats-inline {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 15px;
}

.stat-item-inline {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.stat-label-small {
    font-size: 0.85em;
    color: var(--text-light);
    font-weight: 400;
}

.stat-value-small {
    font-size: 1.4em;
    font-weight: 700;
    color: var(--primary-color);
}

.stat-value-small.star {
    color: #ffd700;
}

.stat-sub-small {
    font-size: 0.75em;
    color: var(--text-light);
    margin-left: 4px;
}

/* 위치 3: Calculator 배너 내부 인라인 */
.stats-counter-container.stats-banner-inline {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.stats-counter-container.stats-banner-inline .stat-label-small {
    font-size: 0.9em;
    color: rgba(255, 255, 255, 0.9);
}

.stats-counter-container.stats-banner-inline strong {
    font-weight: 700;
    margin-left: 4px;
}

/* Trust Element에 통계 카드 추가 시 스타일 */
.trust-element.stats-card {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.trust-element.stats-card .icon {
    margin-bottom: 10px;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .stats-counter-container.stats-banner {
        flex-direction: column;
        gap: 20px;
    }
    
    .stats-counter-container.stats-banner .stat-divider {
        display: none;
    }
    
    .stats-counter-container.stats-banner .stat-value {
        font-size: 1.6em;
    }
    
    .stats-counter-container.stats-banner-inline {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

/* --- [리팩토링 제안 2, 버그 수정] AI 통신사 스캐너 (컨스텔레이션) --- */
.ai-scanner-section {
    background-color: #f8f9fa;
    padding: 80px 0;
}

.ai-scanner-container {
    position: relative;
    width: 100%;
    max-width: 600px;
    height: 400px;
    margin: 40px auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.ai-scanner-core {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    font-weight: 900;
    box-shadow: 0 0 30px rgba(0, 123, 255, 0.5), inset 0 0 15px rgba(255, 255, 255, 0.3);
    animation: core-pulse 2.5s infinite ease-in-out;
    z-index: 5;
}

@keyframes core-pulse {

    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 30px rgba(0, 123, 255, 0.5);
    }

    50% {
        transform: scale(1.05);
        box-shadow: 0 0 45px rgba(0, 123, 255, 0.7);
    }
}

.scanner-constellation {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.scanner-constellation:hover .scanner-card:not(:hover) {
    opacity: 0.5;
}

.ai-scanner-container .scanner-card {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 80px;
    margin: -40px 0 0 -60px;
    background: white;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
}

.ai-scanner-container .scanner-card img {
    max-width: 80px;
    max-height: 40px;
    object-fit: contain;
}

/* 6개 아이템을 원형으로 배치 */
.scanner-card:nth-child(1) {
    transform: rotate(0deg) translateY(-180px) rotate(0deg);
}

.scanner-card:nth-child(2) {
    transform: rotate(60deg) translateY(-180px) rotate(-60deg);
}

.scanner-card:nth-child(3) {
    transform: rotate(120deg) translateY(-180px) rotate(-120deg);
}

.scanner-card:nth-child(4) {
    transform: rotate(180deg) translateY(-180px) rotate(-180deg);
}

.scanner-card:nth-child(5) {
    transform: rotate(240deg) translateY(-180px) rotate(-240deg);
}

.scanner-card:nth-child(6) {
    transform: rotate(300deg) translateY(-180px) rotate(-300deg);
}

/* [버그 수정] 각 카드의 호버 상태에 위치+크기 transform을 모두 지정 */
.scanner-card:nth-child(1):hover {
    transform: rotate(0deg) translateY(-180px) rotate(0deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

.scanner-card:nth-child(2):hover {
    transform: rotate(60deg) translateY(-180px) rotate(-60deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

.scanner-card:nth-child(3):hover {
    transform: rotate(120deg) translateY(-180px) rotate(-120deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

.scanner-card:nth-child(4):hover {
    transform: rotate(180deg) translateY(-180px) rotate(-180deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

.scanner-card:nth-child(5):hover {
    transform: rotate(240deg) translateY(-180px) rotate(-240deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

.scanner-card:nth-child(6):hover {
    transform: rotate(300deg) translateY(-180px) rotate(-300deg) scale(1.1);
    border-color: var(--primary-color);
    box-shadow: 0 10px 25px rgba(0, 123, 255, 0.2);
    z-index: 10;
}

/* 연결선 (애니메이션 효과) */
.scanner-card::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1px;
    height: 140px;
    /* (180px - (80px/2)) */
    background: linear-gradient(to top, var(--primary-color), transparent);
    transform-origin: top;
    transform: rotate(180deg) scaleY(0);
    z-index: -1;
    animation: draw-line 1.5s forwards;
    animation-delay: calc(0.2s * var(--i));
}

@keyframes draw-line {
    to {
        transform: rotate(180deg) scaleY(1);
    }
}

.scanner-card:nth-child(1) {
    --i: 1;
}

.scanner-card:nth-child(2) {
    --i: 2;
}

.scanner-card:nth-child(3) {
    --i: 3;
}

.scanner-card:nth-child(4) {
    --i: 4;
}

.scanner-card:nth-child(5) {
    --i: 5;
}

.scanner-card:nth-child(6) {
    --i: 6;
}

/* --- 견적시스템 UI --- */

#calculator-section {
    padding: 80px 20px;
    background-color: #f8f9fa;
    scroll-margin-top: 130px;
}

.calculator-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .calculator-wrapper {
        grid-template-columns: 1fr 1fr;
    }
}

.selection-panel .calc-section:not(:first-child) {
    margin-top: 30px;
}

.calc-title {
    font-size: 20px;
    font-weight: 700;
    padding-left: 12px;
    border-left: 4px solid var(--primary-color);
    margin-bottom: 15px;
}

.options-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.option-btn {
    background-color: var(--white-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 10px 16px;
    cursor: pointer;
    text-align: center;
    font-family: 'Noto Sans KR', sans-serif;
    transition: all 0.2s ease-in-out;
    font-size: 14px;
    font-weight: 500;
}

.option-btn:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.product-options .option-btn.selected {
    border: 2px solid var(--primary-color);
    background-color: var(--primary-light-bg);
    font-weight: 700;
    color: var(--primary-color);
    padding: 9px 15px;
}

.option-btn .item-name {
    display: block;
    font-weight: 700;
    font-size: 1em;
}

.option-btn .item-price {
    display: block;
    font-size: 0.9em;
    margin-top: 4px;
    color: #555;
}

.product-options .option-btn.selected .item-price {
    color: var(--primary-color);
}

/* [리팩토링] 메인 계산기 통신사 버튼 그리드 적용 */
#telecom-options-simple {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

#telecom-options-simple .option-btn.selected {
    color: var(--white-color);
    padding: 9px 15px;
    border-width: 2px;
}

/* 결합상품 버튼 선택 스타일 */
#combined-options-simple .option-btn.selected {
    border: 2px solid var(--primary-color);
    background-color: var(--primary-light-bg);
    font-weight: 700;
    color: var(--primary-color);
}

#telecom-options-simple .option-btn[data-key="SK"].selected {
    background-color: var(--sk-color);
    border-color: var(--sk-color);
}

#telecom-options-simple .option-btn[data-key="LG"].selected {
    background-color: var(--lg-color);
    border-color: var(--lg-color);
}

#telecom-options-simple .option-btn[data-key="KT"].selected {
    background-color: var(--kt-color);
    border-color: var(--kt-color);
}

#telecom-options-simple .option-btn[data-key="SKB"].selected {
    background-color: #6A0DAD;
    border-color: #6A0DAD;
}

#telecom-options-simple .option-btn[data-key="Skylife"].selected {
    background-color: var(--skylife-color);
    border-color: var(--skylife-color);
}

#telecom-options-simple .option-btn[data-key="HelloVision"].selected {
    background-color: var(--hellovision-color);
    border-color: var(--hellovision-color);
}

.quote-panel {
    background-color: var(--white-color);
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.quote-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 25px 30px;
    background: linear-gradient(to right, #ffffff, #f9f9f9);
    border-bottom: 1px solid #eee;
}

.quote-logo-text {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-color);
}

.quote-header .title {
    font-size: 20px;
    font-weight: 700;
    color: #003366;
}

.quote-body {
    padding: 30px;
}

.fee-details {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 15px;
}

.fee-row {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    font-size: 15px;
    width: 100%;
}

.fee-amount {
    text-align: right;
    font-weight: 700;
    font-size: 1.2em;
}

/* 기본요금 금액 (기본 크기 유지) */
#base-fee {
    font-size: 1.2em;
}

/* 휴대폰 결합요금 금액 (2pt 키우기) */
#combined-fee {
    font-size: 1.33em; /* 1.2em + 2pt (약 0.13em) */
}

.fee-label {
    color: #555;
}

.fee-row.final-fee {
    padding-bottom: 5px;
    border-bottom: 1px dashed #ddd;
}

.fee-row.final-fee .fee-label {
    font-weight: 900;
    font-size: 1.1em;
    color: var(--text-color);
    display: flex;
    align-items: center;
}

.fee-row.final-fee .fee-amount {
    font-weight: 900;
    font-size: 1.67em; /* 1.8em - 2pt (약 0.13em) */
    color: var(--primary-color);
}

.vat-included {
    font-size: 12px;
    color: #888;
    margin-left: 5px;
    font-weight: 500;
}

.support-details-line {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-top: 15px;
    margin-bottom: 10px;
}

.support-details-line .support-total {
    display: flex;
    align-items: center;
    gap: 8px;
}

.support-details-line .support-total .label {
    font-size: 1.1em;
    font-weight: 700;
    color: #333;
}

.support-details-line .support-total .amount {
    font-size: 1.2em;
    font-weight: 900;
    color: var(--danger-color);
}

.details-link {
    display: flex;
    align-items: center;
    font-size: 14px;
    text-decoration: none;
    color: var(--primary-color);
    cursor: pointer;
    font-weight: 500;
}

.button-group-quote {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 15px;
}

.button-group-quote .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    padding: 15px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.2s;
}

.button-group-quote .btn-outline {
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    background: var(--white-color);
}

.button-group-quote .btn-primary {
    border: 1px solid var(--primary-color);
    background-color: var(--primary-color);
    color: white;
}

.detail-fee-summary {
    margin-bottom: 10px;
    padding-top: 10px;
    border-top: 1px dashed #ddd;
    font-size: 14px;
    display: none;
}

.detail-fee-summary h4 {
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 10px 0;
    padding-bottom: 5px;
    border-bottom: 1px solid #ccc;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
    line-height: 1.4;
}

.detail-label {
    color: #555;
    flex-shrink: 0;
    width: 150px;
}

.detail-value {
    font-weight: 500;
    color: #333;
    text-align: right;
}

.detail-value.discount {
    color: var(--danger-color);
    font-weight: 700;
}

.detail-row.final {
    border-top: 1px solid #333;
    padding-top: 8px;
    margin-top: 10px;
}

.detail-row.final .detail-label {
    font-weight: 900;
    color: #333;
    font-size: 1.1em;
}

.detail-row.final .detail-value {
    font-size: 1.5em;
    font-weight: 900;
    color: var(--primary-color);
}

.support-details-line .support-total .fa-gift {
    color: var(--danger-color);
}

/* ▼▼▼ [추가] 메인 계산기 추가 옵션 스타일 ▼▼▼ */
.additional-options-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.additional-options-container {
    display: flex;
    align-items: center;
    padding: 15px;
    background-color: var(--white-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

/* --- 하단 UI --- */
footer {
    background-color: #333;
    color: #ccc;
    padding: 50px 20px;
    text-align: center;
}

/* 관리자/스탭 로그인 버튼 호버 효과 */
footer a[href="admin.html"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
    filter: brightness(1.1);
}

/* ▼▼▼ [수정] 하단 바 애니메이션을 위한 스타일 수정 ▼▼▼ */
.summary-sticky-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--white-color);
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    z-index: 1020;
    padding: 15px 25px;
    display: flex;
    transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out;
    visibility: visible;
    transform: translateY(0);
}

.summary-sticky-bar.hidden {
    visibility: hidden;
    transform: translateY(100%);
}

.summary-sticky-bar-content {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.summary-fees {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex-grow: 1;
}

.summary-fees .fee-line {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 15px;
}

.summary-fees .fee-line .amount {
    text-align: right;
    font-size: 15px;
    font-weight: 700;
    color: #444;
}

/* 하단고정바 기본요금 금액 (기본 크기 유지) */
#summary-base-fee {
    font-size: 15px;
}

/* 하단고정바 휴대폰 결합요금 금액 (2pt 키우기) */
#summary-combined-fee {
    font-size: 17.67px; /* 15px + 2pt (약 2.67px) */
}

.summary-fees .fee-line .label {
    font-size: 14px;
    color: #555;
    white-space: nowrap;
}

.summary-fees .fee-line.final .label {
    font-size: 15px;
    font-weight: 700;
    color: #333;
}

.summary-fees .fee-line.final .amount {
    font-size: 19.33px; /* 22px - 2pt (약 2.67px) */
    font-weight: 900;
    color: var(--primary-color);
}

.vat-info {
    font-size: 12px;
    font-weight: 400;
    color: #888;
    margin-left: 5px;
    vertical-align: middle;
}

.vat-info i {
    font-size: 11px;
}

.summary-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}

.support-info {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 5px;
}

.support-info .support-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--danger-color);
}

.support-info .support-label i {
    margin-right: 5px;
}

.support-info .support-amount {
    font-size: 15px;
    font-weight: 900;
    color: var(--danger-color);
}

/* ▼▼▼ [수정] 레이아웃 밀림 방지를 위해 min-width와 text-align 추가 ▼▼▼ */
.details-link-sticky {
    font-size: 14px;
    color: #555;
    text-decoration: none;
    font-weight: 500;
    min-width: 70px;
    text-align: right;
}

.details-link-sticky:hover {
    color: var(--primary-color);
}

.summary-actions .button-group {
    display: flex;
    gap: 10px;
}

.summary-actions .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.2s;
    white-space: nowrap;
    border: 1px solid var(--border-color);
}

.summary-actions .btn-outline {
    background-color: var(--white-color);
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.summary-actions .btn-primary {
    background-color: var(--primary-color);
    color: var(--white-color);
    border-color: var(--primary-color);
}

.summary-actions .btn-kakao {
    background-color: var(--kakao-color);
    color: #3C1E1E;
    border-color: var(--kakao-color);
    position: relative;
    overflow: visible;
    padding-left: 20px;
}

/* --- AI 계산기 전용 스타일 --- */
#ai-view-wrapper {
    background-color: #f4f7fc;
}

.ai-calculator-body {
    padding: 40px 20px;
}

.ai-grid-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto 40px;
}

.ai-consultant-column {
    display: none;
}

.ai-consultant-image-container {
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    overflow: hidden;
    position: relative;
    background-color: var(--white-color);
    height: 100%;
}

.ai-consultant-image-container video,
.ai-consultant-image-container img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    object-fit: contain !important;
}

.input-container {
    background-color: var(--white-color);
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    padding: 30px;
}

@media (min-width: 1024px) {
    .ai-grid-container {
        grid-template-columns: 320px 1fr;
        max-width: 1000px;
        align-items: stretch;
    }

    .ai-consultant-column {
        display: block;
        position: sticky;
        top: 40px;
    }
}

.input-container h1 {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-dark);
    margin-bottom: 8px;
}

.input-container>p {
    font-size: 14px;
    color: var(--text-light);
    margin-bottom: 30px;
}

.input-group {
    margin-bottom: 25px;
}

.input-group h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--text-color);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.input-group h3 i {
    color: var(--primary-color);
}

.option-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.option-buttons button {
    padding: 12px 5px;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--white-color);
    cursor: pointer;
    transition: all 0.2s ease;
}

.option-buttons button:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.option-buttons button.selected {
    background-color: var(--primary-color);
    color: var(--white-color);
    border-color: var(--primary-color);
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2);
}

.mobile-entry {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
    position: relative;
}

.mobile-entry label {
    font-weight: 500;
    font-size: 14px;
}

.mobile-entry select {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    font-size: 14px;
}

.action-buttons {
    margin-top: 15px;
}

/* ▼▼▼ [수정] 메인 계산기의 '가족 추가' 버튼에도 스타일이 적용되도록 ID 선택자 추가 ▼▼▼ */
#add-mobile-btn,
#main-add-mobile-btn {
    width: 100%;
    padding: 10px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    background-color: var(--primary-light-bg);
    color: var(--primary-dark);
    border: 1px dashed var(--primary-color);
    transition: all 0.2s ease;
}

#add-mobile-btn:hover,
#main-add-mobile-btn:hover {
    background-color: var(--primary-color);
    color: var(--white-color);
    border-style: solid;
}

.remove-mobile-btn {
    position: absolute;
    top: 8px;
    right: -25px;
    background: transparent;
    border: none;
    color: var(--text-light);
    font-size: 18px;
    cursor: pointer;
    transition: color 0.2s ease;
}

.remove-mobile-btn:hover {
    color: var(--danger-color);
}

#calculate-btn {
    width: 100%;
    padding: 16px;
    font-size: 17px;
    font-weight: 700;
    background: linear-gradient(135deg, var(--danger-color), #a71d2a);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 30px;
    box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3);
    transition: all 0.3s ease;
}

#calculate-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(220, 53, 69, 0.4);
}

/* --- 라이언 캐릭터 관련 스타일 --- */
.kakao-character-container {
    width: 60px;
    height: auto;
    position: absolute;
    bottom: 80%;
    left: 50%;
    animation: patrol 4s linear infinite;
    z-index: 10;
}

.kakao-walking-character {
    width: 100%;
    height: auto;
    animation: bounceWalk 0.8s infinite ease-in-out;
}

@keyframes patrol {
    0% {
        transform: translateX(calc(-50% - 25px)) scaleX(-1);
    }

    49% {
        transform: translateX(calc(-50% + 25px)) scaleX(-1);
    }

    50% {
        transform: translateX(calc(-50% + 25px)) scaleX(1);
    }

    99% {
        transform: translateX(calc(-50% - 25px)) scaleX(1);
    }

    100% {
        transform: translateX(calc(-50% - 25px)) scaleX(-1);
    }
}

@keyframes bounceWalk {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }

    100% {
        transform: translateY(0);
    }
}

.header-character-container {
    display: none;
    flex-grow: 1;
    position: relative;
    height: var(--ryan-size);
    overflow: hidden;
}

.header-walking-character {
    position: absolute;
    bottom: 0;
    width: var(--ryan-size);
    height: var(--ryan-size);
    animation:
        walk-header 35s linear infinite,
        bounceWalk 0.8s infinite ease-in-out;
}

@keyframes walk-header {
    0% {
        left: 0;
        transform: scaleX(-1);
    }

    49% {
        left: calc(100% - var(--ryan-size));
        transform: scaleX(-1);
    }

    50% {
        left: calc(100% - var(--ryan-size));
        transform: scaleX(1);
    }

    99% {
        left: 0;
        transform: scaleX(1);
    }

    100% {
        left: 0;
        transform: scaleX(-1);
    }
}

/* --- AI 스마트플래너 배너 CLICK 텍스트 스타일 --- */
.click-indicator {
    position: absolute;
    right: 15px;
    top: 50%;
    background-color: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
    padding: 4px 10px;
    font-size: 0.75em;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.9);
    letter-spacing: 1px;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    animation: bounce-horizontal 2.5s infinite ease-in-out;
}

@keyframes bounce-horizontal {

    0%,
    100% {
        transform: translate(0, -50%);
    }

    50% {
        transform: translate(-6px, -50%);
    }
}

.ai-calculator-link-header:hover .click-indicator {
    opacity: 0;
    transform: translate(10px, -50%);
}

.ai-banner-text {
    font-weight: 700;
    font-size: 1.1em;
    color: var(--white-color);
}

/* --- 반응형 --- */
@media (max-width: 992px) {
    .hero-wrapper {
        flex-direction: column;
        height: auto;
    }

    .hero-video-container {
        display: none;
    }

    .hero-content-container {
        background: none;
        padding: 0;
    }

    .hero {
        background: var(--primary-dark);
        padding: 80px 20px;
        height: auto;
    }

    .hero-content {
        text-align: center;
    }

    .hero h1 {
        font-size: 2.5em;
    }
}

@media (max-width: 768px) {
    body {
        padding-bottom: 150px;
        word-break: keep-all;
    }

    .header-actions-container {
        gap: 0;
        flex-grow: 1;
        justify-content: center;
    }

    .category-nav .container {
        padding: 0;
    }

    /* [수정 1] 모바일 상단 메뉴 한 줄 스크롤 적용 */
    .category-nav ul.text-nav {
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0 15px;
        gap: 20px !important;
    }

    .category-nav ul.text-nav::-webkit-scrollbar {
        display: none;
    }

    .category-nav ul.text-nav {
        scrollbar-width: none;
    }

    .category-nav ul a {
        font-size: 0.9em;
    }

    .carrier-list-desktop {
        display: none;
    }

    .carrier-menu-item {
        display: list-item;
    }

    .icon-nav {
        justify-content: space-around !important;
    }

    .hero {
        padding: 60px 20px;
        height: 500px;
    }

    .hero-video-container {
        display: block;
    }

    .hero-content-container {
        padding: 0;
        background: none;
    }

    .hero h1 {
        font-size: 2.0em;
    }

    .hero p {
        font-size: 0.95em;
    }

    .trust-element h3 {
        font-size: 1.2em;
    }

    .trust-element p {
        font-size: 0.9em;
    }

    .options-container {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    }

    .summary-sticky-bar {
        padding: 10px 15px;
    }

    .summary-sticky-bar-content {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .sticky-info-top {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
    }

    .summary-fees .fee-line:not(.final) {
        display: none;
    }

    .summary-fees .fee-line.final {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .summary-fees .fee-line.final .label {
        font-size: 13px;
        font-weight: 500;
    }

    .summary-fees .fee-line.final .amount {
        font-size: 17.33px; /* 20px - 2pt (약 2.67px) */
    }
    
    /* 모바일 하단고정바 휴대폰 결합요금 금액 (2pt 키우기) */
    #summary-combined-fee {
        font-size: 17.67px; /* 15px + 2pt (약 2.67px) */
    }

    .summary-actions {
        align-items: flex-end;
    }

    .support-info {
        margin-bottom: 0;
    }

    .support-label,
    .details-link-sticky {
        display: none;
    }

    .support-info .support-amount {
        font-size: 18px;
        padding: 5px 10px;
        background-color: #fff8f8;
        border: 1px solid #ffdede;
        border-radius: 6px;
    }

    .support-info .support-amount::before {
        content: '🎁 현금 ';
        font-weight: 700;
        color: var(--danger-color);
    }

    .summary-actions .button-group {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }

    .summary-actions .btn {
        text-align: center;
        padding: 10px;
        font-size: 14px;
    }

    .ai-calculator-body .result-grid,
    .ai-calculator-body .result-card .details {
        grid-template-columns: 1fr;
    }

    .ai-calculator-body .mobile-entry {
        grid-template-columns: 50px 1fr;
    }

    .ai-calculator-body .remove-mobile-btn {
        right: -20px;
    }

    .ai-calculator-link-header {
        flex-grow: 0;
        background: none;
        box-shadow: none;
        padding: 0;
        height: auto;
    }

    .ai-calculator-link-header .ai-icon {
        position: static;
        transform: none;
        height: 48px;
    }

    .ai-banner-text,
    .click-indicator {
        display: none;
    }

    .header-character-container {
        display: none;
    }

    .quick-menu-header-btn,
    .right-sidebar {
        display: none;
    }

    /* [수정 2] 모바일 하단 버튼 한 줄 표시 */
    .quick-nav-buttons {
        flex-wrap: nowrap;
        justify-content: space-around;
    }

    .quick-nav-buttons .btn-quick-nav {
        font-size: 13px;
        padding: 8px 16px;
        gap: 6px;
    }

    .quick-nav-buttons .btn-quick-nav i {
        font-size: 14px;
    }

    .quick-nav-buttons .btn-quick-nav[data-carrier] {
        display: none;
    }

    /* 모바일에서 스캐너 크기 조정 */
    .ai-scanner-container {
        height: 320px;
    }

    .scanner-card:nth-child(1) {
        transform: rotate(0deg) translateY(-140px) rotate(0deg);
    }

    .scanner-card:nth-child(2) {
        transform: rotate(60deg) translateY(-140px) rotate(-60deg);
    }

    .scanner-card:nth-child(3) {
        transform: rotate(120deg) translateY(-140px) rotate(-120deg);
    }

    .scanner-card:nth-child(4) {
        transform: rotate(180deg) translateY(-140px) rotate(-180deg);
    }

    .scanner-card:nth-child(5) {
        transform: rotate(240deg) translateY(-140px) rotate(-240deg);
    }

    .scanner-card:nth-child(6) {
        transform: rotate(300deg) translateY(-140px) rotate(-300deg);
    }

    .scanner-card::after {
        height: 100px;
    }
}

@media (min-width: 769px) {
    .mobile-fab-container {
        display: none;
    }
}

@media (max-width: 360px) {
    .ai-calculator-link-header {
        font-size: 0.9em;
        padding: 6px 8px;
    }
}

/* --- 로딩 오버레이 스타일 --- */
#loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    display: none;
    /* 기본 숨김 */
    justify-content: center;
    align-items: center;
    flex-direction: column;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#loading-overlay.visible {
    display: flex;
    opacity: 1;
}

#loading-overlay .spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #f3f3f3;
    border-top: 5px solid var(--primary-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

#loading-overlay p {
    color: white;
    margin-top: 20px;
    font-weight: 500;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* --- [리팩토링] 상단 텍스트 메뉴 스타일 통합 --- */
.category-nav ul.text-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    gap: 20px;
    flex-wrap: wrap;
}

.text-nav li a {
    text-decoration: none;
    color: #333;
    font-size: 15px;
    font-weight: 700;
    padding: 8px 4px;
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

.text-nav li a:hover {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color);
}

.text-nav li a#ai-calculator-nav-link-text {
    border-bottom: none !important;
    transform: none !important;
    background-color: var(--primary-light-bg) !important;
    color: var(--primary-dark) !important;
    font-weight: 700 !important;
    padding: 6px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #cce4ff !important;
    transition: all 0.2s ease-in-out;
}

.text-nav li a#ai-calculator-nav-link-text:hover {
    background-color: var(--primary-color) !important;
    color: var(--white-color) !important;
    border-color: var(--primary-color) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.25) !important;
    border-bottom: none !important;
}

.text-nav li a.secret-benefit-link {
    border-bottom: none !important;
    transform: none !important;
    background: linear-gradient(45deg, #ff8a00, #e52e71) !important;
    color: var(--white-color) !important;
    font-weight: 700 !important;
    padding: 6px 14px !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(255, 87, 34, 0.25);
    transition: all 0.3s ease;
}

.text-nav li a.secret-benefit-link:hover {
    color: var(--white-color) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 15px rgba(255, 87, 34, 0.4) !important;
    filter: brightness(1.1);
    border-bottom: none !important;
}

/* --- [리팩토링 제안 1] 빠른 탐색 버튼 섹션 스타일 --- */
.quick-nav-section {
    padding: 40px 0;
    background-color: #f8f9fa;
}

.quick-nav-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-quick-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 22px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 50px;
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    color: var(--text-color);
    text-decoration: none;
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

.btn-quick-nav i {
    font-size: 16px;
    transition: color 0.3s ease;
}

.btn-quick-nav[data-carrier="SK"] i {
    color: var(--sk-color);
}

.btn-quick-nav[data-carrier="LG"] i {
    color: var(--lg-color);
}

.btn-quick-nav[data-carrier="KT"] i {
    color: var(--kt-color);
}

#ai-calculator-body-link i {
    color: var(--primary-color);
}

#affiliate-card-link-body i {
    color: var(--primary-dark);
}

#secret-benefit-link-body i {
    color: #E52E71;
}

.btn-quick-nav::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--background-gradient);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
}

.btn-quick-nav:hover {
    color: var(--white-color);
    border-color: transparent;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.btn-quick-nav:hover::before {
    opacity: 1;
}

.btn-quick-nav:hover i {
    color: var(--white-color);
}

.btn-quick-nav[data-carrier="SK"] {
    --background-gradient: linear-gradient(45deg, #FF3E4D, var(--sk-color));
}

.btn-quick-nav[data-carrier="LG"] {
    --background-gradient: linear-gradient(45deg, #F955A7, var(--lg-color));
}

.btn-quick-nav[data-carrier="KT"] {
    --background-gradient: linear-gradient(45deg, #333, var(--kt-color));
}

#ai-calculator-body-link {
    --background-gradient: linear-gradient(45deg, #4D9FFF, var(--primary-color));
}

#affiliate-card-link-body {
    --background-gradient: linear-gradient(45deg, var(--primary-color), var(--primary-dark));
}

#secret-benefit-link-body {
    --background-gradient: linear-gradient(45deg, #ff8a00, #e52e71);
}

/* --- [디자인 수정, 이미지 위치 버그 최종 해결] 계산기 배너 스타일 --- */
#calculator-section {
    padding: 0;
    background-color: #f8f9fa;
}

.calculator-banner {
    position: relative;
    height: 150px;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    color: var(--white-color);
    overflow: visible;
    /* 모델 이미지가 잘리지 않도록 함 */
}

.banner-content-container {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    /* 자식 요소(이미지)의 position:absolute 기준점 */
    max-width: 900px;
}

.banner-text {
    padding-bottom: 0;
    text-align: left;
    flex-shrink: 0;
    z-index: 2;
}

.banner-text .title {
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 8px;
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.banner-text .subtitle {
    font-size: 16px;
    opacity: 0.9;
}

.banner-model-img {
    position: absolute;
    /* [핵심 수정] 이 속성을 다시 추가했습니다. */
    right: 20px;
    /* 이 값을 조절하여 좌우 위치 변경 */
    bottom: -27px;
    /* 이 값을 조절하여 상하 위치 변경 */
    height: calc(100% + 140px);
    z-index: 1;
}

.banner-model-img img {
    height: 100%;
    width: auto;
    display: block;
}

/* 계산기 폼과의 상단 간격 조정 */
#calculator-section>.container {
    padding-top: 80px;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .calculator-banner {
        height: 120px;
    }

    .banner-content-container {
        justify-content: flex-start;
        align-items: center;
        padding-left: 20px;
    }

    .banner-text {
        padding-bottom: 0;
        text-align: left;
        z-index: 2;
    }

    .banner-text .title {
        font-size: 22px;
    }

    .banner-text .subtitle {
        font-size: 13px;
    }

    .banner-model-img {
        position: absolute;
        right: 0;
        bottom: -5;
        height: 110%;
        opacity: 1;
        z-index: 1;
    }
}

/* --- 계산기 탭 인터페이스 스타일 --- */
.calc-tabs {
    display: flex;
    margin-bottom: 25px;
    border-radius: 10px;
    background-color: #e9ecef;
    padding: 5px;
}

.tab-btn {
    flex: 1;
    padding: 12px 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-light);
    background-color: transparent;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.tab-btn.active {
    background-color: var(--white-color);
    color: var(--primary-color);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}

.tab-content {
    display: none;
    animation: fadeIn 0.5s;
}

.tab-content.active {
    display: block;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.calc-wizard-steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 30px;
    padding: 0 10px;
}

.step-indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--text-light);
    transition: color 0.4s;
}

.step-indicator .step-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #e9ecef;
    color: var(--text-light);
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    border: 2px solid #dee2e6;
    transition: all 0.4s;
}

.step-indicator .step-label {
    font-size: 14px;
    font-weight: 500;
}

.step-indicator.active {
    color: var(--primary-color);
}

.step-indicator.active .step-icon {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--white-color);
}

.step-connector {
    flex-grow: 1;
    height: 2px;
    background-color: #dee2e6;
    margin: 0 10px;
    transform: translateY(-12px);
}

.calc-step-content.active {
    display: block;
}

.calc-wizard-nav {
    display: flex;
    gap: 10px;
    margin-top: 30px;
}

.calc-wizard-nav .nav-btn {
    flex: 1;
    /* 원래대로 flex: 1로 복원하여 버튼 크기 유지 */
    padding: 15px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.calc-wizard-nav .btn-prev {
    background-color: #e9ecef;
    color: #495057;
    flex: 1;
    padding: 15px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.calc-wizard-nav .btn-prev.hidden {
    visibility: hidden;
    width: 0;
    padding: 0;
    margin: 0;
    flex: 0;
    opacity: 0;
    overflow: hidden;
}

.calc-wizard-nav .btn-next {
    background-color: var(--primary-color);
    color: var(--white-color);
}


@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- AI 가이드 Wizard 스타일 --- */
.selection-panel {
    position: relative;
    padding-top: 130px;
    /* 가이드 영역 확보 */
    display: flex;
    flex-direction: column;
}

#calc-guide-wrapper {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    height: 140px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

#calc-guide-image {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 160px;
    /* 크기 조절 */
    animation: guide-appear 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.guide-speech-bubble {
    position: relative;
    left: 40px;
    /* 말풍선 위치 조절 */
    background: var(--primary-light-bg);
    border-radius: 10px;
    padding: 12px 15px;
    font-size: 14px;
    font-weight: 500;
    color: var(--primary-dark);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    animation: bubble-pop-in 0.5s 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55) both;
}

.guide-speech-bubble::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 20px;
    border-width: 8px 8px 0 8px;
    border-style: solid;
    border-color: var(--primary-light-bg) transparent;
}

/* 진행률 바 스타일 */
.calc-wizard-progress {
    position: relative;
    display: flex;
    justify-content: space-between;
    width: 80%;
    margin: 0 auto 30px;
    align-items: center;
}

.calc-wizard-progress::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #e9ecef;
    transform: translateY(-50%);
    z-index: 1;
}

.progress-bar-fill {
    position: absolute;
    top: 50%;
    left: 0;
    width: 0%;
    /* JS로 제어 */
    height: 4px;
    background-color: var(--primary-color);
    transform: translateY(-50%);
    z-index: 2;
    transition: width 0.5s ease;
}

.calc-wizard-progress .step-indicator {
    z-index: 3;
    transition: all 0.4s;
}

.calc-wizard-progress .step-indicator .step-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #fff;
    border: 2px solid #e9ecef;
    color: var(--text-light);
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    transition: all 0.4s;
}

.calc-wizard-progress .step-indicator.active .step-icon {
    border-color: var(--primary-color);
    background-color: var(--primary-color);
    color: #fff;
}

.calc-wizard-nav .btn-next {
    animation: pulse-next 2s infinite;
}

/* 애니메이션 효과 */
@keyframes guide-appear {
    from {
        transform: translateY(50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes bubble-pop-in {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes pulse-next {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(1);
    }
}

/* --- AI 가이드 Wizard 반응형 스타일 (모바일) --- */
@media (max-width: 768px) {
    #calc-guide-wrapper {
        height: 120px;
        /* 가이드 전체 컨테이너 높이를 줄입니다. */
    }

    #calc-guide-image {
        height: 140px;
        /* 모델 이미지 높이를 모바일에 맞게 줄입니다. */
        left: -10px;
        /* 이미지를 살짝 왼쪽으로 이동시켜 중앙에 더 잘 보이게 합니다. */
    }

    .guide-speech-bubble {
        left: 35px;
        /* 말풍선 위치를 조정합니다. */
        padding: 10px 12px;
        /* 말풍선 내부 여백을 줄입니다. */
        font-size: 13px;
        /* 글자 크기를 살짝 줄입니다. */
    }

    /* 마법사 진행률 바의 좌우 여백을 줄여줍니다. */
    .calc-wizard-progress {
        width: 90%;
    }
}

.calc-step-content.active {
    display: flex;
    /* block 대신 flex로 변경 */
}

/* 다음/이전 버튼을 콘텐츠의 맨 아래로 보냅니다. */
.calc-wizard-nav {
    margin-top: auto;
    /* 핵심 속성: 남는 공간을 모두 위쪽 여백으로 사용 */
    padding-top: 30px;
    /* 버튼과 콘텐츠 사이의 간격 */
}

.calc-step-content {
    display: none;
    /* 기본적으로 모든 단계를 숨깁니다. */
    animation: fadeIn 0.5s;
    flex-direction: column;
    /* min-height 속성을 완전히 삭제합니다. */
}

.calc-step-content.active {
    display: flex;
    /* 활성화된 단계만 flex로 보여줍니다. */
}

/* 다음/이전 버튼을 콘텐츠의 맨 아래로 보냅니다. */
.calc-wizard-nav {
    margin-top: auto;
    padding-top: 30px;
}

/* ▼▼▼ [추가] 비교함 관련 스타일 ▼▼▼ */
#compare-count-badge {
    background-color: var(--primary-color);
    color: white;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 10px;
    margin-left: 5px;
    font-weight: bold;
}

.compare-table-container {
    width: 100%;
    overflow-x: auto;
}

.modal-table.compare-table {
    width: 100%;
    min-width: 800px;
    /* 모바일에서 스크롤이 생기도록 최소 너비 지정 */
    border-collapse: collapse;
    text-align: center;
}

.modal-table.compare-table th,
.modal-table.compare-table td {
    border: 1px solid var(--border-color);
    padding: 12px;
    vertical-align: middle;
}

.modal-table.compare-table th {
    background-color: #f8f9fa;
    font-weight: 700;
}

.modal-table.compare-table td:first-child {
    font-weight: 700;
    background-color: #f8f9fa;
    text-align: left;
}

.modal-table.compare-table .btn {
    padding: 8px 12px;
    font-size: 14px;
    margin: 2px;
}

/* 공통: 등장 대기 상태 */
.hero-slide-content [data-anim] {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .5s ease, transform .5s ease;
    will-change: opacity, transform;
}

/* 활성 슬라이드에서만 등장 */
.swiper-slide-active .hero-slide-content [data-anim] {
    opacity: 1;
    transform: none;
}

/* 역할별 기본 지연값 (제목 → 본문 → 버튼) */
.hero-slide-content [data-anim="title"] {
    transition-delay: 0ms;
}

.hero-slide-content [data-anim="text"] {
    transition-delay: 120ms;
}

.hero-slide-content [data-anim="buttons"] {
    transition-delay: 240ms;
}

/* 버튼 그룹 안에서도 살짝 스태거 */
.hero-slide-content .cta-buttons .btn {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .45s ease, transform .45s ease;
}

.swiper-slide-active .hero-slide-content .cta-buttons .btn {
    opacity: 1;
    transform: none;
}

.swiper-slide-active .hero-slide-content .cta-buttons .btn:nth-child(1) {
    transition-delay: 260ms;
}

.swiper-slide-active .hero-slide-content .cta-buttons .btn:nth-child(2) {
    transition-delay: 380ms;
}

/* 접근성: 모션 최소화 설정 존중 */
@media (prefers-reduced-motion: reduce) {

    .hero-slide-content [data-anim],
    .hero-slide-content .cta-buttons .btn {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

/* --- 히어로 슬라이드 콘텐츠 애니메이션 --- */

/* 1. 애니메이션 기본 상태 (등장 전) */
.hero-slide-content [data-anim] {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    will-change: opacity, transform;
    /* 브라우저에 애니메이션 최적화 힌트 제공 */
}

/* 2. 활성화된 슬라이드에서만 등장 애니메이션 실행 */
.swiper-slide-active .hero-slide-content [data-anim] {
    opacity: 1;
    transform: translateY(0);
}

/* 3. 요소 종류별로 등장 시간 지연 (순차적 효과) */
.swiper-slide-active .hero-slide-content [data-anim="title"] {
    transition-delay: 0.1s;
}

.swiper-slide-active .hero-slide-content [data-anim="text"] {
    transition-delay: 0.2s;
}

.swiper-slide-active .hero-slide-content [data-anim="buttons"] {
    transition-delay: 0.3s;
}

/* 접근성: 사용자가 모션 최소화를 설정한 경우 애니메이션 비활성화 */
@media (prefers-reduced-motion: reduce) {
    .hero-slide-content [data-anim] {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

.fade-swap-exit-active {
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.fade-swap-enter-active {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
    transition-delay: 0.1s;
}

.fade-swap-enter {
    opacity: 0;
    transform: translateY(8px);
}

.fade-swap-exit {
    opacity: 1;
    transform: translateY(0);
}

/* === 모바일 뷰 개선 === */
@media (max-width: 768px) {
    .hero-swiper {
        height: 300px;
        max-height: 300px;
        /* 고정 높이로 브라우저 폭 변경 시 길어지는 현상 방지 */
    }

    .hero-content {
        padding: 2rem 1rem;
        text-align: center;
    }

    .hero-content h1 {
        font-size: 1rem;
        line-height: 1.3;
    }

    .hero-content p {
        font-size: 0.5rem;
        line-height: 1.4;
        margin-bottom: 1rem;
    }

    .hero-buttons {
        flex-direction: column;
        gap: 0.6rem;
    }

    .hero-buttons .btn {
        width: 90%;
        font-size: 0.95rem;
        padding: 0.8rem 1rem;
    }

    .swiper-button-next,
    .swiper-button-prev {
        display: none;
        /* 모바일에선 버튼 숨기기 */
    }
}

/* === 모바일 전용: 히어로 부제목 글자 크기 조정 === */
@media (max-width: 768px) {

    /* 일반 텍스트형 슬라이드 (지금 바꾸면 최대 4만원 절약!) */
    .hero-slide-content .hero-subtitle,
    .hero-content-card .hero-subtitle {

        font-size: 0.8rem !important;
        /* 기본보다 약 15~20% 작게 */

        line-height: 1.3 !important;
        margin-bottom: 0.5rem !important;
    }

    /* 제목(h1)도 살짝 줄이고 싶다면 함께 ↓ */
    .hero-slide-content h1,
    .hero-content-card h1 {

        font-size: 1.5rem !important;

        line-height: 1.25 !important;
    }

    /* 전체 섹션 높이 고정 */
    .hero-swiper {
        height: 300px !important;
        max-height: 300px !important;
    }

    /* 히어로 슬라이드 내부 콘텐츠 패딩 조정 */
    .hero-slide-content {
        padding: 40px 20px 40px !important;
    }
}



/* === [Hero 1 텍스트/버튼 수평 가운데 정렬] === */
.hero-video-slide {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-video-slide .hero-slide-content {
    text-align: center;
    /* 텍스트 중앙정렬 */
    margin-left: auto;
    margin-right: auto;
}

.hero-video-slide .hero-content-card {
    margin: 0 auto;
    /* 카드 자체 가운데 */
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 버튼/내부 요소 가운데 */
}

.hero-video-slide .hero-content-card h1,
.hero-video-slide .hero-subtitle {
    text-align: center;
}

/* 버튼 가운데 배치 */
.hero-video-slide .hero-content-card .btn,
.hero-video-slide .hero-content-card .btn-primary {
    align-self: center;
}

/* 원하는 최대 폭을 여기서만 바꿔주면 됨 */
:root {
    --site-max: 1200px;
}

/* 1280px, 1400px 등으로 변경해보세요 */

/* 초와이드에서 비디오의 가로폭을 변수로 고정 */
@media (min-width: 1440px) {
    .hero-video-slide .hero-video-bg {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: var(--site-max) !important;
        max-width: var(--site-max) !important;
        min-width: 0 !important;
        height: 100% !important;
        /* 세로는 꽉 채움 */
        object-fit: cover;
        /* 세로 기준 채움, 좌우는 잘릴 수 있음 */
        object-position: center center;
    }
}


/* Optional: gentle wave sweep over hero video */
.hero-video-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle, rgba(0, 150, 255, 0.18) 0%, rgba(255, 255, 255, 0.04) 60%, rgba(0, 0, 0, 0.85) 100%);
    animation: wavePulseSoft 5s ease-in-out infinite;
    z-index: 1;
    mix-blend-mode: screen;
    opacity: 0.35;
    pointer-events: none;
}

@keyframes wavePulseSoft {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.03);
    }
}

/* =========================
   1. AI 상담사(모델 이미지) 섹션 사이즈 제한
   ========================= */
.ai-consultant-image-container {
    max-height: 480px;
}

.ai-consultant-image-container video,
.ai-consultant-image-container img {
    height: 100%;
    max-height: 480px;
    width: auto;
}

/* =========================
   2. 이벤트 카드 레이아웃 정리
   ========================= */
.event-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    margin-top: 24px;
}

.event-card {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.event-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.event-content {
    padding: 16px 18px 18px;
}

.event-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}

.event-description {
    font-size: 14px;
    line-height: 1.5;
    color: #555;
}

.btn-event-details {
    display: inline-flex;
    margin-top: 10px;
    font-size: 14px;
    font-weight: 600;
    color: #1E63E9;
}

/* 모바일에서는 카드가 세로로 길어지지 않게 높이만 살짝 줄이기 */
@media (max-width: 768px) {
    .event-image {
        height: 180px;
    }
}



/* ===============================
   비교함 모달 업그레이드 스타일
   =============================== */

.compare-modal-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 상단 요약 헤더 */
.compare-summary-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-radius: 16px;
    background: #f8f9fb;
    border: 1px solid rgba(0, 0, 0, 0.04);
}

.compare-summary-header .summary-main h3 {
    margin: 0 0 4px 0;
    font-size: 18px;
    font-weight: 700;
}

.compare-summary-header .summary-main .summary-desc {
    margin: 0 0 6px 0;
    font-size: 13px;
    color: var(--text-light);
}

.compare-summary-header .summary-progress {
    font-size: 13px;
    color: var(--text-light);
}

.compare-summary-header .summary-progress .progress-dots {
    margin-left: 8px;
    letter-spacing: 2px;
    font-size: 14px;
}

.compare-summary-header .summary-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.summary-control-item {
    font-size: 13px;
    color: var(--text-light);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.summary-control-item select {
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border-color);
    font-size: 13px;
    background-color: #ffffff;
}

/* 상단 미니 카드 라인 */
.compare-card-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.compare-mini-card {
    border-radius: 16px;
    padding: 12px 14px;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cmp-mini-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-light);
}

.cmp-mini-sub {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 2px;
}

.cmp-mini-numbers {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
}

.cmp-mini-metric {
    display: flex;
    flex-direction: column;
    font-size: 12px;
}

.cmp-mini-metric .label {
    color: var(--text-light);
    margin-bottom: 1px;
}

.cmp-mini-metric .value {
    font-weight: 700;
    font-size: 14px;
}

.cmp-mini-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}

/* 태그(칩) 공통 */
.chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 11px;
    font-weight: 500;
    background-color: #f3f4f6;
    color: #374151;
}

.chip-sm {
    font-size: 11px;
    padding: 2px 8px;
}

/* 통신사 컬러 변형 예시 (필요 시 클래스 부여해서 사용) */
.chip-sk {
    border-color: rgba(237, 28, 36, 0.3);
    color: var(--sk-color);
    background: rgba(237, 28, 36, 0.05);
}

.chip-kt {
    border-color: rgba(0, 0, 0, 0.25);
    color: var(--kt-color);
    background: rgba(0, 0, 0, 0.04);
}

.chip-lg {
    border-color: rgba(210, 2, 104, 0.3);
    color: var(--lg-color);
    background: rgba(210, 2, 104, 0.05);
}

/* 비교 테이블 디테일 */
.modal-table.compare-table {
    width: 100%;
    min-width: 800px;
    border-collapse: collapse;
    text-align: center;
}

.modal-table.compare-table th,
.modal-table.compare-table td {
    padding: 12px 10px;
    border: 1px solid var(--border-color);
    font-size: 14px;
}

.modal-table.compare-table th {
    background-color: #f8f9fa;
    font-weight: 700;
}

.modal-table.compare-table td:first-child {
    font-weight: 700;
    background-color: #f8f9fa;
    text-align: left;
}

/* 하이라이트 셀 */
.modal-table.compare-table .highlight-lowest {
    background: rgba(0, 123, 255, 0.06);
    border-color: rgba(0, 123, 255, 0.3);
    font-weight: 700;
}

.modal-table.compare-table .highlight-benefit {
    background: rgba(34, 197, 94, 0.06);
    border-color: rgba(34, 197, 94, 0.35);
    font-weight: 700;
}

.cmp-subtext {
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-light);
}

/* 액션 버튼 셀 */
.cmp-actions {
    white-space: nowrap;
}

.cmp-actions .btn-xs {
    padding: 6px 10px;
    font-size: 12px;
}

/* 버튼 바리에이션 */
.btn-xs {
    padding: 6px 10px;
    font-size: 12px;
}

.btn-tertiary {
    background-color: #f3f4f6;
    color: #374151;
    border: 1px solid #e5e7eb;
}

.btn-tertiary:hover {
    background-color: #e5e7eb;
}

/* 하단 안내/글로벌 액션 */
.compare-footer-notice {
    font-size: 12px;
    color: var(--text-light);
}

.compare-footer-notice p {
    margin: 4px 0 0 0;
}

.compare-global-actions {
    margin-top: 4px;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px dashed rgba(0, 0, 0, 0.06);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.compare-global-actions .selected-info {
    font-size: 13px;
}

.compare-global-actions .btn-group {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.compare-global-actions .btn-group .btn {
    min-width: 130px;
    justify-content: center;
}

/* 반응형: 모바일에서 여백 축소 */
@media (max-width: 768px) {
    .compare-summary-header {
        padding: 12px 12px;
    }

    .compare-card-row {
        grid-template-columns: 1fr;
    }

    .modal-table.compare-table {
        min-width: 640px;
    }

    .compare-global-actions {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ==========================================================================
   [추가] 게시판 (Board) 스타일
   ========================================================================== */
.sub-page-hero {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    color: white;
    padding: 60px 0 80px;
    text-align: center;
    margin-bottom: -40px;
    /* 컨텐츠와 겹치게 하여 입체감 부여 */
    position: relative;
    z-index: 1;
}

.sub-page-hero h2 {
    font-size: 2.5rem;
    font-weight: 900;
    margin-bottom: 10px;
}

.sub-page-hero p {
    font-size: 1.1rem;
    opacity: 0.9;
}

.board-content-area {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 40px;
    min-height: 600px;
    position: relative;
    z-index: 10;
    margin-bottom: 60px;
}

.board-tabs {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 40px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

.board-tab {
    padding: 12px 30px;
    border-radius: 50px;
    border: 1px solid #ddd;
    background: #f8f9fa;
    font-weight: 700;
    color: #555;
    cursor: pointer;
    transition: all 0.3s;
    font-size: 16px;
}

.board-tab.active {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}

.board-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 25px;
}

.board-card {
    border: 1px solid #eee;
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    cursor: pointer;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.board-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
}

.board-thumb {
    height: 180px;
    background-color: #e9ecef;
    position: relative;
    overflow: hidden;
}

.board-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.board-card:hover .board-thumb img {
    transform: scale(1.05);
}

/* 이미지가 없을 때 아바타 스타일 */
.board-thumb > div {
    width: 100%;
    height: 100%;
}

.board-tag {
    position: absolute;
    top: 15px;
    left: 15px;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
}

.board-info {
    padding: 20px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.board-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.4;
    color: #333;
}

.board-desc {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 15px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.board-meta {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #999;
    border-top: 1px solid #f1f1f1;
    padding-top: 15px;
}

.board-rating {
    color: #ffc107;
}

.board-pagination {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-top: 50px;
}

.page-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #eee;
    background: white;
    color: #555;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-btn.active {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
    font-weight: 700;
}

.page-btn:hover:not(.active) {
    background: #f1f3f5;
}

@media (max-width: 768px) {
    .sub-page-hero {
        padding: 40px 0 60px;
    }

    .sub-page-hero h2 {
        font-size: 1.8rem;
    }

    .board-content-area {
        padding: 20px;
        margin-top: 0;
        border-radius: 0;
        box-shadow: none;
        margin-bottom: 0;
    }

    .board-grid {
        grid-template-columns: 1fr;
    }

    .board-thumb {
        height: 200px;
    }
}

/* ==========================================================================
   [추가] 비교함 보기 버튼 & 토글 스위치 스타일
   ========================================================================== */
#view-compare-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    font-weight: 700;
    color: #1e293b;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    transition: all 0.2s ease;
    font-size: 14px;
}

#view-compare-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08);
    border-color: #cbd5e1;
}

#view-compare-btn i {
    color: #64748b;
    font-size: 16px;
}

#compare-count-badge {
    background: var(--primary-color);
    color: white;
    border-radius: 999px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    font-weight: 800;
    margin-left: 4px;
    box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3);
}

.toggle-switch-wrapper {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.toggle-switch-wrapper input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #cbd5e1;
    transition: .3s;
    border-radius: 34px;
}

.toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.toggle-switch-wrapper input:checked+.toggle-slider {
    background-color: var(--primary-color);
}

.toggle-switch-wrapper input:checked+.toggle-slider:before {
    transform: translateX(20px);
}

.cmp-plan-select {
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.cmp-select-label {
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
    cursor: pointer;
}

/* ==================================================
   [긴급 수정] 모달 사라짐 및 뿌연 화면 해결 코드
   ================================================== */

/* 1. 오버레이(배경) 우선순위 최상위로 강제 설정 */
.modal-overlay {
    z-index: 99999 !important;
    /* 다른 모든 요소(하단 바 포함)보다 위로 */
    background-color: rgba(0, 0, 0, 0.5) !important;
    /* 배경색 확실하게 지정 */
    backdrop-filter: blur(5px);
    /* 배경 블러 효과 (선택사항) */

    /* 플렉스 정렬 강제 */
    display: none;
    align-items: center !important;
    justify-content: center !important;

    /* 위치 고정 */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* 2. 활성화 상태 강제 표시 */
.modal-overlay.active {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* 3. 모달 본문(흰색 박스) 스타일 재정의 */
.modal-content {
    /* 애니메이션 제거 (사라짐 원인 차단) */
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;

    /* 위치 및 크기 강제 */
    position: relative !important;
    background-color: #fff !important;
    z-index: 100000 !important;
    /* 오버레이보다 더 위로 */
    display: block !important;
    margin: 0 auto !important;

    /* 스타일 복구 */
    width: 90% !important;
    max-width: 500px !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3) !important;
    padding: 30px !important;
}

/* 큰 모달 (상세보기용) */
.modal-content.large {
    max-width: 700px !important;
}

/* 4. 하단 스티키 바가 모달을 가리지 않도록 설정 */
.summary-sticky-bar {
    z-index: 9000 !important;
    /* 모달(99999)보다 낮게 설정 */
}