@charset "utf-8";

/* ==========================================================================
   1. 타이틀 섹션 및 서브 페이지 공통
   ========================================================================== */
.wv-title-container { padding: 80px 20px; text-align: center; }
.wv-title-container .wv-title { font-size: 36px; font-weight: 700; color: #000; letter-spacing: -0.05em; }
.wv-title-container .wv-sub-title { font-size: 16px; font-weight: 500; color: #333; margin-top: 10px; letter-spacing: -0.02em; }
.wv-title-container .wv-title-line { width: 100px; height: 3px; background-color: #102476; margin: 30px auto; }
.wv-title-container .wv-title-desc { font-size: 18px; color: #555; line-height: 1.6; word-break: keep-all; }

#sub-page-container { width: 100%; overflow: hidden; }
.sub-visual { height: 400px; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; }
.sub-visual .en-title { font-size: 18px; font-weight: 300; letter-spacing: 2px; margin-bottom: 10px; opacity: 0.9; }
.sub-visual .main-title { font-size: 42px; font-weight: 700; letter-spacing: -1px; }

/* 콘텐츠 상단 제목 영역 */
.content-header { padding: 80px 0 50px; text-align: center; }
.content-header .page-title { font-size: 36px; font-weight: 700; color: #333; margin-bottom: 15px; }
.content-header .title-underline { width: 40px; height: 3px; background: #102476; margin: 0 auto; }

/* ==========================================================================
   2. 서브 탭 메뉴 (좌우 드래그 및 부드러운 스크롤 최적화)
   ========================================================================== */
.sub-tab-nav { border-bottom: 1px solid #e2e2e2; background: #fff; width: 100%; position: relative; overflow: hidden; }

.tab-list { 
    display: flex; 
    justify-content: flex-start; /* 드래그 시작을 위해 좌측 정렬 */
    max-width: 1200px; 
    margin: 0 auto; 
    list-style: none; 
    padding: 0; 
    overflow-x: auto; /* 가로 스크롤 허용 */
    white-space: nowrap; /* 메뉴 줄바꿈 방지 */
    -webkit-overflow-scrolling: touch; /* iOS 부드러운 스크롤 */
    scrollbar-width: none; /* 파이어폭스 스크롤바 숨김 */
    -ms-overflow-style: none; /* IE 스크롤바 숨김 */
}

/* 크롬, 사파리 스크롤바 숨기기 */
.tab-list::-webkit-scrollbar { display: none; }

.tab-list li { flex: 0 0 auto; width: 180px; text-align: center; }
.tab-list li a { display: block; padding: 25px 15px; font-size: 18px; color: #999; text-decoration: none; position: relative; transition: 0.3s; }
.tab-list li a.active { color: #102476; font-weight: 700; }
.tab-list li a.active::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100%; height: 3px; background: #102476; }

/* ==========================================================================
   3. 진료 안내 섹션 공통 스타일 (배경 교차 및 정의 영역)
   ========================================================================== */
.clinic-content-section { padding: 0; background: #fff; } /* 정의 영역은 기본 흰색 */
.inner-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }

/* 배경색 교차 적용 (상세 영역용) */
.bg-gray-section { background: #f8f8f8; padding: 100px 0; border-top: 1px solid #f2f2f2; border-bottom: 1px solid #f2f2f2; }

/* 섹션 상단 넘버링 헤더 */
.section-top-header { text-align: center; margin-bottom: 40px; padding-top: 100px; }
.sub-numbering { font-size: 24px; font-weight: 800; color: #102476; display: block; margin-bottom: 5px; font-family: 'Outfit', sans-serif; }
.section-title-h3 { font-size: 32px; color: #222; font-weight: 400; }
.section-title-h3 strong { font-weight: 700; }
.title-line-short { width: 30px; height: 2px; background: #102476; margin: 20px auto 0; }

/* 상단 정의 영역 (텍스트 양옆 굵은 대괄호) */
.definition-container { margin-bottom: 100px; text-align: center; padding: 0; }
.def-img-wrap { margin-bottom: 50px; }
.def-img-wrap img { max-width: 550px; width: 100%; height: auto; }

.definition-bracket-box { display: inline-block; position: relative; padding: 20px 80px; }
.definition-bracket-box::before, .definition-bracket-box::after {
    content: ''; position: absolute; top: 0; bottom: 0; width: 30px; border-color: #ddd; border-style: solid;
}
.definition-bracket-box::before {left: 0; border-width: 10px 0 10px 10px;}
.definition-bracket-box::after {right: 0; border-width: 10px 10px 10px 0;}

.def-txt { font-size: 24px; color: #444; line-height: 1.6; font-weight: 500; word-break: keep-all; }
.def-sub-txt { display: block; margin-top: 15px; font-size: 18px; color: #666; font-weight: 400; }
.color-blue { color: #102476; }

/* 섹션 타이틀 */
.section-title-wrap { text-align: center; margin-bottom: 60px; }
.section-main-title { font-size: 32px; color: #222; font-weight: 400; }
.section-main-title strong { font-weight: 700; }
.title-underline-short { width: 40px; height: 2px; background: #102476; margin: 25px auto 0; }

/* ==========================================================================
   4. 상세 카드 디자인 (충치 및 잇몸)
   ========================================================================== */
.step-card-grid-custom { display: flex; gap: 15px; justify-content: center; align-items: stretch; }
.step-card-item { 
    flex: 1; background: #fff; border: 1px solid #eef1f7; border-radius: 25px; 
    overflow: hidden; display: flex; flex-direction: column; 
    box-shadow: 0 15px 40px rgba(0,0,0,0.04); 
}
.card-img-area { background: #fff; padding: 30px 20px; text-align: center; }
.card-img-area img { width: 100%; max-width: 220px; height: auto; }
.card-info-area { padding: 0 25px 40px; flex: 1; text-align: center; }
.step-num-tag { display: inline-block; background: #102476; color: #fff; padding: 6px 25px; border-radius: 20px; font-size: 13px; font-weight: 600; margin-bottom: 25px; }
.step-explanation { font-size: 16px; color: #666; line-height: 1.6; word-break: keep-all; }

/* 카드 하단 화살표 정렬 */
.step-link-footer { 
    background: #102476; color: #fff; padding: 25px 10px; 
    text-align: center; min-height: 100px; display: flex; align-items: center; justify-content: center;
}
.arrow-txt { display: inline-block; text-align: center; font-size: 14px; font-weight: 500; line-height: 1.5; word-break: keep-all; }

/* 잇몸치료 비교 카드 그리드 */
.gum-treatment-bg { background: #fff; border-top: 1px solid #f2f5f9; }
.gum-compare-grid { display: flex; gap: 30px; justify-content: center; max-width: 1000px; margin: 0 auto; }
.gum-card { 
    flex: 1; background: #fff; border: 1px solid #eef1f7; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.03); 
    display: flex; flex-direction: column; overflow: hidden;
}
.gum-card-head { background: #102476; color: #fff; text-align: center; padding: 15px 0; font-size: 18px; font-weight: 600; }
.gum-card-img { padding: 30px 20px; background: #f9fbff; text-align: center; }
.gum-card-img img { max-width: 100%; height: auto; }
.gum-card-info { padding: 40px 30px; text-align: center; flex: 1; display: flex; flex-direction: column; justify-content: flex-start; }
.info-status { font-size: 18px; color: #102476; font-weight: 600; line-height: 1.5; margin-bottom: 25px; word-break: keep-all; }
.dot-line { width: 100%; height: 1px; border-top: 1px dashed #ddd; margin-bottom: 25px; }
.info-guide { font-size: 16px; color: #666; line-height: 1.6; word-break: keep-all; }

/* ==========================================================================
   5. 턱관절 치료 방법 (세로 1열 리스트)
   ========================================================================== */
.tmj-method-list-column { display: flex; flex-direction: column; gap: 15px; max-width: 800px; margin: 0 auto; }
.tmj-method-item { background: #fff; padding: 25px 35px; border-radius: 15px; display: flex; align-items: center; gap: 30px; box-shadow: 0 10px 25px rgba(0,0,0,0.04); border: 1px solid #eee; }
.tmj-img img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; border: 5px solid #f8f8f8; flex-shrink: 0; }
.tmj-tag { display: inline-block; background: #102476; color: #fff; padding: 5px 18px; border-radius: 20px; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.tmj-text p { font-size: 17px; color: #555; line-height: 1.5; word-break: keep-all; }

/* ==========================================================================
   6. 특장점 섹션 (원형 이미지 레이아웃)
   ========================================================================== */
.clinic-features-container { width: 100%; }
.feature-section { padding: 80px 0; background: #ffffff; }
.feature-section.bg-gray { background: #f8f8f8; }
.feature-row { display: flex; align-items: center; justify-content: center; gap: 70px; }
.feature-row.reverse { flex-direction: row-reverse; }
.feature-img { flex: 0 0 350px; text-align: center; }
.feature-img img { width: 100%; max-width: 350px; border-radius: 50%; box-shadow: 0 15px 30px rgba(0,0,0,0.06); background: #fff; }
.feature-text { flex: 1; max-width: 500px; }
.feature-text .num { font-size: 26px; font-weight: 900; color: #102476; display: block; margin-bottom: 5px; }
.feature-text h4 { font-size: 34px; font-weight: bold; color: #102476; margin-bottom: 20px; letter-spacing: -1px; }
.feature-text p { font-size: 20px; font-weight: 500; color: #444; line-height: 1.7; word-break: keep-all; }

/* ==========================================================================
   7. 반응형 모바일 최적화
   ========================================================================== */
@media screen and (max-width: 991px) {
    .sub-visual { height: 250px; }
    .sub-visual .main-title { font-size: 30px; }
    
    .tab-list li { width: 140px; }
    .tab-list li a { font-size: 15px; padding: 18px 0; }

    .step-card-grid-custom { flex-wrap: wrap; }
    .step-card-item { flex: 0 0 calc(50% - 10px); margin-bottom: 20px; }
    .def-txt { font-size: 19px; }
    .definition-bracket-box { padding: 10px 40px; }

    .gum-compare-grid { flex-direction: column; align-items: center; }
    .gum-card { width: 100%; max-width: 480px; }
    .info-status { font-size: 16px; }
    .info-guide { font-size: 14px; }
    .bg-gray-section { padding: 60px 0; }
    .section-top-header, .definition-container { padding-top: 60px; }

    .tmj-method-item { flex-direction: column; text-align: center; padding: 30px 20px; gap: 15px; }
    .tmj-img img { width: 100px; height: 100px; }
    .tmj-text p { font-size: 15px; }

    .feature-section { padding: 60px 0; }
    .feature-row, .feature-row.reverse { flex-direction: column; text-align: center; gap: 30px; }
    .feature-img { flex: 0 0 auto; width: 280px; }
    .feature-text h4 { font-size: 24px; }
    .feature-text p { font-size: 16px; }
}

@media screen and (max-width: 550px) {
    .step-card-item { flex: 0 0 100%; }
}


/* ==========================================================================
   8. 틀니 치료 비교 테이블 (최종 정밀 교정본)
   ========================================================================== */

/* 전체 영역 배경 (그라데이션 복구) 및 상하 공백 추가 */
.bg-gradient-denture {
    background: linear-gradient(to bottom, #f8f8f8 0%, #e9f1ff 100%) !important;
    padding: 120px 0 !important; /* 위아래 공백 추가 */
    border-top: 1px solid #e2eaf5;
    border-bottom: 1px solid #e2eaf5;
}

.denture-title-fix { margin-bottom: 60px; text-align: center; }

.denture-compare-table { 
    max-width: 1100px; margin: 0 auto; 
    background: transparent; /* 테이블 자체 배경 제거 */
    display: flex; align-items: stretch;
}

.denture-column { display: flex; flex-direction: column; }
.content-col { flex: 1; background: #fff; } /* 좌우 콘텐츠 박스만 흰색 배경 */

/* 가운데 기둥 설정 */
.label-col { flex: 0 0 120px; z-index: 10; }

.cell { 
    display: flex; align-items: center; justify-content: center; 
    text-align: center; word-break: keep-all; box-sizing: border-box;
}

/* 1층: 이미지 영역 및 투명 처리 */
.img-cell { height: 240px; padding: 20px; border-bottom: 1px solid #eee; background: #fff; }
.img-cell img { max-width: 95%; max-height: 180px; object-fit: contain; }
.item-img-space.transparent { height: 240px; background: transparent !important; } /* 이미지 사이 투명화 */

/* 2층: 제목 & '종류' 레이블 */
.title-cell { height: 75px; background: #102476; color: #fff; font-weight: 700; font-size: 20px; }
.item-title.grey-bg { height: 75px; background: #666 !important; color: #fff; font-weight: 700; font-size: 18px; }

/* 3~5층: 설명 영역 및 회색 레이블 */
.text-cell { height: 140px; padding: 25px; font-size: 16px; color: #666; line-height: 1.6; background: #fff; border-bottom: 1px solid #eee; }
.label-item.grey-bg:not(.item-title) { 
    height: 140px; background: #666 !important; color: #fff; 
    font-weight: 700; font-size: 18px; 
    border-bottom: 1px solid rgba(255,255,255,0.1); 
}

/* 둥근 테두리 처리 (각 열의 끝부분) */
.col-left { border-radius: 20px 0 0 20px; overflow: hidden; box-shadow: -10px 10px 30px rgba(0,0,0,0.03); }
.col-right { border-radius: 0 20px 20px 0; overflow: hidden; box-shadow: 10px 10px 30px rgba(0,0,0,0.03); }
.denture-column .cell:last-child { border-bottom: none; }

/* 모바일 대응 */
@media screen and (max-width: 991px) {
    .bg-gradient-denture { padding: 60px 0 !important; }
    .denture-compare-table { flex-direction: column; gap: 20px; }
    .label-col { display: none; } /* 모바일에서는 가독성을 위해 레이블 열 숨김 */
    .content-col { border-radius: 15px; overflow: hidden; }
    .img-cell { height: auto; padding: 30px; }
    .text-cell { height: auto; }
}