@charset "utf-8";

/**
 * @author  : 김민성
 * @date    : 2026-06-18
 * @desc    : 서브 페이지 컨텐츠 스타일
 */



/* ==========================================================================
   서브 메인 section 공통 스타일
   ========================================================================== */

.main-section {
   display: flex;
   justify-content: center;
   padding: 160px 0px;
}

.section-sub {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
}

.mo-br {
   display: none;
}

.pc-visible {
   display: inline;
}

.stages-slider-controls {
   display: none;
}

/* ==========================================================================
   서브 비주얼 (visual) 스타일(서브 페이지 공통)
   ========================================================================== */

/* 서브 페이지 별 비주얼 배경 */
#sub-implant .main-section.main-visual {background: #f2f2f2 url('../images/sub/01-implant/bg-visual.jpg') no-repeat center / cover} /* 임플란트 */
#sub-wisdom .main-section.main-visual {background: #f2f2f2 url('../images/sub/02-wisdom/bg-visual.jpg') no-repeat center / cover} /* 사랑니발치 */
#sub-cavities .main-section.main-visual {background: #f2f2f2 url('../images/sub/03-cavities/bg-visual.jpg') no-repeat center / cover} /* 충치치료 */
#sub-treatment .main-section.main-visual {background: #f2f2f2 url('../images/sub/04-treatment/bg-visual.jpg') no-repeat center / cover} /* 스케일링 */
#sub-whitening .main-section.main-visual {background: #f2f2f2 url('../images/sub/05-whitening/bg-visual.jpg') no-repeat center / cover} /* 미백 */
#sub-dentistry .main-section.main-visual {background: #f2f2f2 url('../images/sub/06-dentistry/bg-visual.jpg') no-repeat center / cover} /* 소아치료 */
#sub-senior-dentures .main-section.main-visual {background: #f2f2f2 url('../images/sub/07-senior-dentures/bg-visual.jpg') no-repeat center / cover} /* 틀니 */
#sub-clinic-tour .main-section.main-visual {background: #f2f2f2 url('../images/sub/08-clinic-tour/bg-visual.jpg') no-repeat center / cover} /* 치과둘러보기 */
#sub-doctor-about .main-section.main-visual {background: #f2f2f2 url('../images/sub/09-doctor-about/bg-visual.jpg') no-repeat center / cover} /* 원장소개 */
#sub-location .main-section.main-visual {background: #f2f2f2 url('../images/sub/12-location/bg-visual.jpg') no-repeat center / cover} /* 원장소개 */

.main-section.main-visual {
   padding: 80px 0 0 0;
}

.visual-container {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   width: 100%;
   max-width: 1300px;
   height: 540px;
   padding: 90px 0 78px 0;
}

.visual-container.sub-title--on {
   padding: 56px 0 78px 0;
}

.visual-title {
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 45px;
   line-height: 64px;
   color: #111;
   letter-spacing: 3%;
}

.visual-title strong {
   display: inline-block;
   padding-top: 21px;
   font-weight: 600;
   font-size: 58px;
   line-height: 58px;;
}

.visual-desc {
   margin-top: 38px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

.visual-tags {
   margin-top: auto;
   display: flex;
   gap: 20px;
}

.tag-item {
   padding: 9px 18px;
   border-radius: 30px;
   background-color: rgba(51, 51, 51, 0.5);
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 13px;
   line-height: 13px;
   color: #fff;
}

/* ==========================================================================
   서브 체크 형식(main-check) 스타일(서브 페이지 공통)
   ========================================================================== */
   
.main-section.main-check {
   background: #fff url('../images/sub/bg_sub_con1.png') no-repeat center top / cover;
}

.check-container {
   width: 100%;
   max-width: 1300px;
}

.main-check .section-header {
   margin-bottom: 91px;
   text-align: center;
}

.main-check .section-header .section-title {
   margin-top: 21px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 3%;
}

.main-check .section-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

.main-check .section-header .section-notice {
   margin-top: 18px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

.check-content .check-item {
   display: flex;
   justify-content: center;
   gap: 110px;
   margin-bottom: 100px;
}

.check-content .check-item:nth-of-type(3) {
   margin-bottom: 0px;
}

.check-content .item-text {
   width: 100%;
   max-width: 600px;
}

/* 이미지가 오른쪽일 때 텍스트 박스 패딩 */
.check-item.img-right .item-text {
   padding-left: 50px;
}

.check-content .item-text .item-num {
   display: block;
   margin: 27px 0 45px 0;
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 21px;
   line-height: 21px;
   color: #b2b2b2;
}

.check-content .item-text .item-title {
   margin-bottom: 21px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
}

.check-content .item-text .item-desc {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}

.check-content .item-text .item-highlight {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 17px;
   line-height: 44px;
   color: #50AB99;
}

/* ==========================================================================
   서브 재료 및 방법 (main-matmaterial) 스타일(서브 페이지 01, 03, 04 사용)
   ========================================================================== */

.main-section.main-material {
   background: #f6f6f6;
}

.material-container {
   width: 100%;
   max-width: 1300px;
}

.material-container .section-title {
   margin-top: 21px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 3%;
}

.material-container .section-title .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

.material-container .section-title .section-title--bold.underline {
   background: url('../images/sub/01-implant/bg_material_underline.png') no-repeat left calc(50% - 20px) bottom;
}

.material-container .section-notice {
   margin-top: 18px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

.material-cards {
   display: flex;
   gap: 20px;
   margin-top: 91px;
}

.material-card {
   position: relative;
   width: calc((100% - 40px) / 3);
   height: 375px;
   padding: 0px 30px;
   border-radius: 18px;
   background: #fff;
   box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.02);
}

.material-card .card-badge {
   position: absolute;
   top: 0;
   left: 0;
   display: block;
   padding: 12px 20px;
   border-top-left-radius: 18px;
   border-bottom-right-radius: 18px;
   background: linear-gradient(to left, #D9D56B 0%, #B1D68B 32%, #6BD9C3 100%);
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 16px;
   line-height: 21px;
   color: #fff;
}

.material-card .card-name {
   padding-top: 90px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
}

.material-card .card-sub-desc {
   padding-bottom: 22px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #777;
}

.material-card .card-features {
   padding-top: 32px;
   border-top: 1px solid #d9d9d9;
}

.material-card .card-features li {
   padding-left: 15px;
   background: url('../images/sub/bg-list-circle.png') no-repeat left center;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #111;
}

.material-bottom-banner {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   width: 100%;
   height: 234px;
   margin-top: 60px;
   border-radius: 18px;
   background: url('../images/sub/01-implant/bg-material-banner.png') no-repeat center / cover;
}

.material-bottom-banner .banner-text {
   padding-bottom: 17px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 48px;
   line-height: 48px;
   color: #fff;
}

.material-bottom-banner .banner-sub {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
}

/* 충치 치료 별도 스타일 */
.section-header.text-align--center {
   text-align: center;
}

#sub-cavities .material-bottom-banner {
   background: url('../images/sub/03-cavities/bg-material-banner.png') no-repeat center / cover;
}

/* 틀니 적응 하단 문구 */
.material-footer-banner {
   margin-top: 95px;
   text-align: center;
}

.footer-banner-notice {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 26px;
   line-height: 36px;
   color: #555;
}

.footer-banner-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 36px;
   line-height: 52px;
   color: #111;
}


/* ==========================================================================
   서브 faq 형식(main-faq) 스타일(서브 페이지 공통)
   ========================================================================== */
   
.main-section.main-faq {
   background: #fff;
}

.faq-container {
   width: 100%;
   max-width: 1300px;
}

.main-faq .section-header {
   margin-bottom: 91px;
   text-align: center;
}

.main-faq .section-header .section-title {
   margin-top: 21px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 3%;
}

.main-faq .section-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

.main-faq .section-header .section-desc {
   margin-top: 18px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

.faq-accordion-list {
   border-top: 1px solid #d3d3d3;
   border-bottom: 1px solid #d3d3d3;
}

.faq-accordion-list .accordion-item {
   border-bottom: 1px solid #d3d3d3;
   background: url('../images/sub/bg-qa-arrow.png') no-repeat right 52px top 44px;
}

.faq-accordion-list .accordion-item[open] {
   border-bottom: none;
   background: url('../images/sub/bg-qa-arrow-open.png') no-repeat right 52px top 44px;
}

.faq-accordion-list .accordion-item:last-child {
   border-bottom: none;
}

.faq-accordion-list .accordion-question {
   display: flex;
   gap: 20px;
   justify-content: flex-start;
   align-items: center;
   height: 96px;
   padding-left: 40px;
}

.faq-accordion-list .icon-q {
   padding: 6px 10px;
   border-radius: 20px;
   background: linear-gradient(to right, #6BD9C3, #D9D56B);
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 22px;
   line-height: 22px;
   color: #fff;
}

.faq-accordion-list h3 {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
}

.faq-accordion-list .accordion-answer {
   padding: 32px 39px;
   border-radius: 18px;
   background: #f8f8f8;
}

.faq-accordion-list .accordion-answer p {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}

.faq-accordion-list .accordion-answer p .accordion-answer--bold {
   font-weight: 500;
   color: #222;
}

/* ==========================================================================
 임플란트 타이밍 (main-timing) 섹션 스타일
 ========================================================================== */

/* 섹션 공통 컨테이너 */
.timing-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

/* 상단 레이아웃 (이미지 + 텍스트) */
.timing-top-layout {
   display: flex;
   gap: 60px;
   margin-bottom: 160px;
}

.timing-visual {
   width: 630px;
   height: 805px;
   border-radius: 44px;
   overflow: hidden;
   flex-shrink: 0;
}

.timing-visual img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.timing-info {
   display: flex;
   flex-direction: column;
   width: 612px;
}

/* 타이틀 스타일 */
.timing-info .section-title {
   margin-top: 21px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
}

.timing-info .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

/* 타이밍 단계 리스트 */
.timing-steps {
   display: flex;
   flex-direction: column;
   gap: 20px;
   margin-top: auto;
}

.step-box {
   position: relative;
   padding: 35px 40px;
   border-radius: 18px;
   background-color: #f8f8f8;
}

.step-box:not(:last-child)::after {
   content: '';
   position: absolute;
   bottom: -16px;
   left: 50%;
   transform: translateX(-50%);
   width: 13px;
   height: 13px;
   background: url('../images/sub/bg-arrow-down-gray.png') no-repeat center;
}

.step-box h3 {
   display: flex;
   align-items: center;
   margin-bottom: 15px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
}

.step-num {
   display: inline-block;
   width: 22px;
   height: 22px;
   margin-right: 10px;
   border-radius: 50%;
   background: linear-gradient(to right, #6BD9C3, #D9D56B);
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 14px;
   line-height: 23px;
   color: #fff;
   text-align: center;
}

.step-box p {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
   word-break: keep-all;
}

/* 서브 페이지 - 스케일링 부분 */
.main-section.main-timing.treatment-timing {
   background: #f6f6f6;
}

.treatment-timing .timing-visual {
   height: 1001px;
}

.treatment-timing .step-box {
   height: 175px;
   background-color: #fff;
   box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.05);
}

/* --------------------------------------------------------------------------
 "지금 확인이 필요한 신호" (5컬럼 그리드) 섹션
 -------------------------------------------------------------------------- */
.timing-check-layout {
   text-align: center;
}

.timing-check-layout .section-sub {
   display: block;
   margin-bottom: 15px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 16px;
   color: #6BD9C3;
}

.timing-check-layout .section-title {
   margin-bottom: 60px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
}

.timing-check-layout .section-title--bold {
   font-size: 42px;
   font-weight: 600;
   line-height: 69px;
}

/* 5개 그리드 레이아웃 */
.check-grid-5 {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 20px;
   max-width: 1300px;
   margin: 0 auto;
}

.check-grid-5 .grid-item {
   position: relative;
   height: 247px;
   background: #fff;
   border: none;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   box-sizing: border-box;
   overflow: hidden;
}

/* 이미지 박스 */
.check-grid-5 .thumb-img {
   width: 100%;
   height: 140px;
   margin: 0;
   background-color: transparent;
   border-radius: 18px 18px 0 0;
   box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.02);
   overflow: hidden;
}

.check-grid-5 .thumb-img img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.check-grid-5 .grid-item p {
   margin-top: 25px;
   padding: 0 15px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 18px;
   line-height: 28px;
   color: #111;
   text-align: center;
   word-break: keep-all;
}

/* 그리드 6개 */
.check-grid-5.check-grid-6 {
   grid-template-columns: repeat(3, 2fr);
}

.check-grid-5.check-grid-6 .grid-item {
   height: 237px;
}

/* 하단 주의사항 */
.grid-footnote {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 10px;
   line-height: 10px;
   color: #a3a3a3;
   text-align: center;
}

/* ==========================================================================
   치료 사례 (main-cases section) 스타일
   ========================================================================== */

.main-section.main-cases {
   background: #000 url('../images/bg-cases.jpg') no-repeat center / cover;
}

.main-section__box.main-cases__box {
   position: relative;
   width: 100%;
   max-width: 1300px;
}

.main-cases__subtitle {
   margin: 30px 0px 46px 0px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 42px;
   line-height: 42px;
   color: #fff;
}

.main-cases__subtitle--bold {
   font-weight: 600;
}

.main-cases__notice {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 20px;
   line-height: 20px;
   color: #fff;
}

/* 케이스 탭 스타일 */
.main-cases__tab-list {
   margin-top: 100px;
}

.main-cases__tab-item {
   display: none;
   opacity: 0;
   padding: 0px 50px;
   border-radius: 15px;
   background: linear-gradient(to bottom right, #070707, #2a2a2a);
}

.main-cases__tab-item.is-active {
   display: block;
   opacity: 1;
}

.main-cases__tab-header {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   position: relative;
   padding: 84px 0px 0px 0px;
}

.main-cases__case-num {
   position: absolute;
   top: 0;
   left: -50px;
   padding: 18px 26px;
   border-radius: 15px 0 15px 0;
   background-color: rgba(60, 60, 60, 0.4);
   font-family: 'maruburi';
   font-weight: 600;
   font-size: 17px;
   line-height: 17px;
}

.main-cases__case-num .gradation-text {
   background: linear-gradient(to left, #6BD9C3, #D9D56B); 
   background-clip: text;
   -webkit-text-fill-color: transparent;
}

.main-cases__case-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 58px;
   line-height: 74px;
   color: #fff;
}

.main-cases__patient-list {
   display: flex;
   gap: 10px;
}

.main-cases__patient-info {
   padding: 9px 16px;
   border: 1px solid #B5B5B5;
   border-radius: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 13px;
   line-height: 13px;
   color: #B5B5B5;
}

.main-cases__patient-info--strong {
   border: 1px solid #6BD9C3;
   color: #6BD9C3;
}

.main-cases__image-list {
   display: flex;
   justify-content: center;
   margin: 58px 0 51px 0;
}

.main-cases__image-item {
   position: relative;
   flex: 1 1 50%;
   max-width: 600px;
}

.main-cases__image-item:last-child {
   border-left: 1px solid #fff;
}

.main-cases__image-status {
   position: absolute;
   top: 20px;
   left: 20px;
   padding: 8px 16px;
   border-radius: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 13px;
   line-height: 13px;
   color: #fff;
   background-color: #111;
   z-index: 2;
}

.main-cases__image-status--before {
   color: rgba(255, 255, 255, 0.4);
}

.main-cases__image-status--after {
   background: linear-gradient(to right, #D9D56B, #6BD9C3);
   font-weight: 700;
   color: #000;
}

.main-cases__img {
   display: block;
   width: 100%;
   height: auto;
   max-width: 600px;
   aspect-ratio: 600 / 440;
   object-fit: cover;
   object-position: center;
}

.main-cases__image-desc {
   position: absolute;
   bottom: 24px;
   left: 50%;
   transform: translateX(-50%);
   width: max-content;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 17px;
   line-height: 17px;
   color: #ccc;
   text-align: center;
   z-index: 2;
}

/* 로그인 블러 처리 스타일 */
/* 블러 및 검은색 투명 레이어 */
.blur-overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   
   /* 반투명 검은색 배경 (마지막 0.5가 투명도입니다) */
   background-color: rgba(0, 0, 0, 0.05); 
   
   /* 뒤에 있는 이미지에만 블러 효과 적용 */
   backdrop-filter: blur(5px);
   -webkit-backdrop-filter: blur(5px); /* 사파리 브라우저 지원 호환성 */
   
   /* 내부 텍스트를 정중앙에 정렬하기 위한 Flexbox */
   display: flex;
   justify-content: center;
   align-items: center;
   
   z-index: 1;
}

.blur-text {
   background: url('../images/icon-cases-login.png') no-repeat left top;
   padding: 2px 0 0 28px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 20px;
   line-height: 20px;
   color: #ffffff;
   text-align: center;
}

.main-cases__review-text {
   padding-bottom: 71px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 32px;
   line-height: 48px;
   color: #ffffff;
   text-align: center;
}

/* 하단 영역 (인디케이터 + 컨트롤러) 스타일 */
.main-cases__bottom-bar {
   display: flex;
   align-items: center;
   position: absolute;
   top: 120px;
   right: 0px;
}

/* 게이지 바 정렬 래퍼 */
.main-cases__indicator {
   display: flex;
   align-items: center;
   gap: 6px; /* 숫자와 바 사이의 간격 */
   flex: 1;
   margin-right: 27px;
}

/* 숫자 공통 스타일 */
.main-cases__counter-num {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 13px;
   line-height: 13px;
   color: #fff;
   white-space: nowrap;
}

/* [중요] 전체 게이지 라인이 양쪽 숫자 사이 공간을 다 채우도록 설정 */
.main-cases__progress-bar {
   position: relative;
   width: 77px;
   height: 2px;
   background-color: #525252;
   border-radius: 2px;
   overflow: hidden;
}

/* 움직이는 실제 게이지 선 */
.main-cases__progress-fill {
   position: absolute;
   left: 0;
   top: 0;
   height: 100%;
   background-color: #fff;
   border-radius: 2px;
   transition: width 0.3s ease;
}

/* 이전/다음 버튼 스타일 */
.main-cases__controls {
   display: flex;
   gap: 5px;
}

.main-cases__btn {
   width: 40px;
   height: 40px;
   margin: 0px;
   padding: 0px;
   font-size: 0px;
   line-height: 0px;
}

.main-cases__btn--prev {
   background: url('../images/btn-prev-gray.png');
}

.main-cases__btn--next {
   background: url('../images/btn-next-blue.png');
}

.main-cases__legal-notice {
   padding-top: 21px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 10px;
   line-height: 14px;
   color: #a3a3a3;
   text-align: center;
}

.main-cases__more-btn {
   display: block;
   width: fit-content;
   margin: 60px auto 0px auto;
   padding: 31px 51px;
   border-radius: 100px;
   background: #6BD9C3;
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 17px;
   line-height: 17px;
   color: #fff;
   text-decoration: none;
   letter-spacing: 4%;
}

/* ==========================================================================
   사랑니 발치 실제 진료 케이스 (main-con2 section) 스타일
   ========================================================================== */

.main-section.main-con2 {
   background: #000 url('../images/bg-cases.jpg') no-repeat center / cover;
}

.con2-container {
   position: relative;
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.main-con2 .section-sub {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
}

.main-con2 .section-title {
   margin: 30px 0px 46px 0px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 42px;
   line-height: 58px;
   color: #fff;
}

.main-con2 .section-title--bold {
   font-weight: 600;
}

.main-con2 .section-desc {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 20px;
   line-height: 20px;
   color: #fff;
}

/* 슬라이더 컨트롤러 및 인디케이터 */
.main-con2 .slider-controls {
   display: flex;
   align-items: center;
   position: absolute;
   top: 120px;
   right: 0px;
}

.slider-fraction {
   display: flex;
   align-items: center;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 13px;
   color: #fff;
   margin-right: 27px;
   white-space: nowrap;
}

.slider-fraction .current {
   font-weight: 700;
   color: #fff;
}

.slider-fraction .total {
   font-weight: 700;
   color: #fff;
}

.main-con2 .btn-prev, .main-con2 .btn-next {
   width: 40px;
   height: 40px;
   border: none;
   cursor: pointer;
}

.main-con2 .btn-prev {
   background: url('../images/btn-prev-gray.png') no-repeat center / cover;
   margin-right: 5px;
}

.main-con2 .btn-next {
   background: url('../images/btn-next-blue.png') no-repeat center / cover;
}

/* 케이스 카드 메인 컨테이너 */
.case-viewport {
   margin-top: 100px;
}

.case-box {
   position: relative;
   padding: 84px 50px 71px 50px;
   border-radius: 15px;
   background: linear-gradient(to bottom right, #070707, #2a2a2a);
   box-sizing: border-box;
}

.case-header {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
}

.case-badge {
   position: absolute;
   top: 0;
   left: 0;
   padding: 18px 26px;
   border-radius: 15px 0 15px 0;
   background-color: rgba(60, 60, 60, 0.4);
   font-family: 'maruburi';
   font-weight: 600;
   font-size: 17px;
   line-height: 17px;
}

.case-badge .gradation-text {
   background: linear-gradient(to left, #6BD9C3, #D9D56B); 
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
}

.case-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 58px;
   line-height: 74px;
   color: #fff;
}

.case-tags {
   display: flex;
   gap: 10px;
   margin-top: 25px;
}

.case-tags span {
   padding: 9px 16px;
   border: 1px solid #B5B5B5;
   border-radius: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 13px;
   line-height: 13px;
   color: #B5B5B5;
}

/* 케이스 내용 그리드 */
.case-content-grid {
   display: flex;
   gap: 50px;
   margin: 58px 0 0 0;
}

.case-img-area {
   position: relative;
   width: 600px;
   height: 440px;
   overflow: hidden;
   flex-shrink: 0;
}

.case-img-area .time-badge {
   position: absolute;
   top: 20px;
   left: 20px;
   padding: 8px 16px;
   border-radius: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 13px;
   line-height: 13px;
   color: #111;
   background: linear-gradient(to left, #D9D56B 0%, #B1D68B 32%, #6BD9C3);
   z-index: 2;
}

.case-img-area .image-wrapper {
   width: 100%;
   height: 100%;
}

.case-img-area .image-wrapper img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.case-text-area {
   flex-grow: 1;
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   padding-top: 30px;
}

.case-text-area .info-title {
   margin-bottom: 21px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #6BD9C3;
}

.case-text-area .info-desc {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
   margin-bottom: 20px;
}

.case-text-area .info-summary {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
}

.case-text-area .info-summary strong {
   font-weight: 700;
   color: #fff;
}

/* 케이스 푸터 */
.case-footer {
   padding-top: 50px;
}

.case-footer .summary-highlight {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 32px;
   line-height: 48px;
   color: #ffffff;
   text-align: center;
}

/* 더보기 버튼 */
.btn-more-cases {
   display: block;
   width: fit-content;
   margin: 60px auto 0px auto;
   padding: 31px 51px;
   border-radius: 100px;
   background: #6BD9C3;
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 17px;
   line-height: 17px;
   color: #fff;
   text-decoration: none;
   letter-spacing: 4%;
}

/* ==========================================================================
   진료 프로세스 (main-process) 섹션 스타일
   ========================================================================== */

.main-section.main-process {
   background: #fff url('../images/sub/bg-process.jpg') no-repeat center top / cover;
}

.process-container {
   width: 100%;
   max-width: 1300px;
}

.main-process .section-header {
   margin-bottom: 57px;
   text-align: left;
}

.main-process .section-header .section-title {
   margin-top: 22px;
   font-family: 'maruburi';
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 3%;
}

.main-process .section-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

.main-process .section-header .section-desc {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

.process-step-cards {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 20px;
   margin-top: 90px;
}

.process-card {
   position: relative;
   height: 375px;
   padding: 47px 38px;
   border-radius: 18px;
   background: rgba(255, 255, 255, 0.8);
   box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.02);
   box-sizing: border-box;
}

.process-card .card-num {
   display: block;
   margin-bottom: 23px;
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 21px;
   line-height: 21px;
   color: #b2b2b2;
}

.process-card .card-title {
   margin-bottom: 15px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
   letter-spacing: 0.0469px;
}

.process-card .card-desc {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}

.process-card .card-tag {
   position: absolute;
   right: 30px;
   bottom: 30px;
   display: flex;
   align-items: center;
   justify-content: center;
   height: 30px;
   padding: 0 20px;
   border-radius: 15px;
   background: linear-gradient(to left, #d9d56b 0%, #b1d68b 32%, #6bd9c3 100%);
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 16px;
   line-height: 21px;
   color: #fff;
   white-space: nowrap;
}

/* ==========================================================================
   질환 4단계 분류 공통 스타일 (충치/잇몸질환 디자인 통합)
   ========================================================================== */

.main-section.main-stages {
   background: #000 url('../images/bg-cases.jpg') no-repeat center / cover;
   padding: 160px 0;
}

.stages-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.main-stages .section-header {
   margin-bottom: 100px;
   text-align: left;
}

.main-stages .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18.67px;
   line-height: 18.67px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.main-stages .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #fff;
   letter-spacing: 0.03em;
}

.main-stages .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69.33px;
}

.main-stages .section-desc {
   margin-top: 44px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 20px;
   line-height: 34px;
   color: #fff;
}

.stages-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
}

.stage-card {
   position: relative;
   height: 375px;
   padding: 47px 38px 45px 38px;
   border-radius: 18px;
   background: linear-gradient(120.4deg, rgb(7, 7, 7) 7.17%, rgb(42, 42, 42) 92.83%);
   opacity: 0.90;
   box-sizing: border-box;
   box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.02);
}

.stage-card .stage-num {
   display: block;
   margin-bottom: 33px;
   font-family: 'maruburi', serif;
   font-weight: 700;
   font-size: 21px;
   line-height: 21px;
   color: #b2b2b2;
}

.stage-card .stage-title {
   margin-bottom: 6px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #fff;
   letter-spacing: 0.0469px;
}

.stage-card .stage-sub-desc {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 24px;
   color: rgba(255, 255, 255, 0.6);
   margin-bottom: 21px;
}

/* 기존 card-info 스타일을 ul/li 구조인 stage-features에 그대로 이식 */
.stage-card .stage-features {
   padding-top: 33px;
   border-top: 1px solid rgba(255, 255, 255, 0.1);
   list-style: none; /* 브라우저 기본 dot 제거 */
   padding-left: 0;
   margin: 0;
}

.stage-card .stage-features li {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
}

.stage-card .stage-badge {
   position: absolute;
   right: 30px;
   bottom: 30px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   height: 30px;
   padding: 0 18px;
   border-radius: 15px;
   background: linear-gradient(to left, #d9d56b 0%, #b1d68b 32%, #6bd9c3 100%);
   font-family: 'maruburi', serif;
   font-weight: 700;
   font-size: 14px;
   color: #111;
   white-space: nowrap;
}

.stages-indicator {
   display: none;
}

/* ==========================================================================
   충치치료 - 신경치료 (main-con3-5) 스타일 (Figma Node 210:1599 반영)
   ========================================================================== */

#sub-cavities .main-section.main-con3-5 {
   background: #fff url('../images/sub/03-cavities/bg-treatment-last.jpg') no-repeat center top / cover;
   padding: 160px 0;
}

#sub-cavities .con3-5-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

#sub-cavities .main-con3-5 .section-header {
   margin-bottom: 87px;
   text-align: left;
}

#sub-cavities .main-con3-5 .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

#sub-cavities .main-con3-5 .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

#sub-cavities .main-con3-5 .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

#sub-cavities .main-con3-5 .section-desc {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #333;
}

#sub-cavities .treatment-last-cards {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
}

#sub-cavities .treatment-last-card {
   position: relative;
   height: 254px;
   padding: 40px;
   border-radius: 18px;
   background-color: #f8f8f8;
   box-sizing: border-box;
   box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.02);
}

#sub-cavities .treatment-last-card .card-icon {
   width: 32px;
   height: 32px;
   margin-bottom: 25px;
}

#sub-cavities .treatment-last-card .card-icon img {
   width: 100%;
   height: 100%;
   object-fit: contain;
}

#sub-cavities .treatment-last-card .card-title {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
   margin-bottom: 14px;
}

#sub-cavities .treatment-last-card .card-desc {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}


/* ==========================================================================
   충치치료 - 치료 타이밍 (main-con4) 스타일
   ========================================================================== */

#sub-cavities .main-section.main-con4 {
   background: #f6f6f6;
   padding: 160px 0;
}

#sub-cavities .con4-container {
   width: 100%;
   max-width: 1300px;
}

#sub-cavities .main-con4 .section-header {
   margin-bottom: 80px;
}

#sub-cavities .main-con4 .section-header .section-sub {
   display: block;
   margin-bottom: 15px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 16px;
   color: #6BD9C3;
}

#sub-cavities .main-con4 .section-header .section-title {
   margin-bottom: 20px;
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
}

#sub-cavities .main-con4 .section-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

#sub-cavities .main-con4 .section-header .section-desc {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 28px;
   color: #444;
}

/* 비교 테이블 스타일 */
#sub-cavities .compare-table-wrapper {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto 160px auto;
}

#sub-cavities .compare-column-header {
   display: grid;
   grid-template-columns: 130px 1fr 1fr;
   gap: 20px;
   height: 70px;
   margin-bottom: 20px;
}

#sub-cavities .compare-column-header .head-col {
   display: flex;
   align-items: center;
   justify-content: center;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   color: #fff;
   border-radius: 18px;
}

#sub-cavities .compare-column-header .head-col.blank {
   background: transparent;
}

#sub-cavities .compare-column-header .head-col.active-case {
   background: linear-gradient(to right, #6BD9C3 0%, #B1D68B 32%, #D9D56B 100%);
}

#sub-cavities .compare-column-header .head-col.delay-case {
   background: #d8d8d8;
   color: rgba(17, 17, 17, 0.5); /* opacity 50% */
}

#sub-cavities .compare-columns {
   display: grid;
   grid-template-columns: 130px 1fr 1fr;
   gap: 20px;
}

#sub-cavities .compare-column {
   display: flex;
   flex-direction: column;
   height: 426px;
   border-radius: 18px;
   box-sizing: border-box;
   overflow: hidden;
}

#sub-cavities .compare-column.col-labels {
   background: rgba(255, 255, 255, 0.4);
   border: 1px solid #d9d9d9;
   box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.02);
}

#sub-cavities .compare-column.col-active {
   background: #fff;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
}

#sub-cavities .compare-column.col-delay {
   background: #fff;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
}

#sub-cavities .compare-column .row-cell {
   display: flex;
   align-items: center;
   justify-content: center;
   height: 71px;
   padding: 10px 15px;
   box-sizing: border-box;
   text-align: center;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-size: 20px;
   color: #333;
}

#sub-cavities .compare-column .row-cell:not(:last-child) {
   border-bottom: 1px solid #d9d9d9;
}

#sub-cavities .compare-column.col-labels .row-cell {
   font-weight: 300; /* KoPubWorldDotum:Light */
   color: #333;
}

#sub-cavities .compare-column.col-active .row-cell {
   font-weight: 700; /* KoPubWorldDotum:Bold */
   color: #111;
}

#sub-cavities .compare-column.col-delay .row-cell {
   font-weight: 500; /* KoPubWorldDotum:Medium */
   color: #555;
}

#sub-cavities .table-footnote {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 10px;
   line-height: 10.667px;
   color: #a3a3a3;
   word-break: keep-all;
   text-align: center;
}

/* 지금 확인이 필요한 신호 레이아웃 */
#sub-cavities .signal-layout {
   text-align: center;
}

#sub-cavities .signal-layout .section-sub {
   display: block;
   margin-bottom: 15px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
}

#sub-cavities .signal-layout .section-title {
   margin-bottom: 60px;
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
}

#sub-cavities .signal-layout .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69px;
}

#sub-cavities .grid-item {
   position: relative;
   height: 247px;
   background: #fff;
   border: none;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   box-sizing: border-box;
   overflow: hidden;
}

#sub-cavities .grid-item p {
   margin-top: 25px;
   padding: 0 15px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 28px;
   color: #111;
   text-align: center;
   word-break: keep-all;
}

#sub-cavities .grid-footnote {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 10px;
   line-height: 10.667px;
   color: #a3a3a3;
   text-align: center;
}

/* ==========================================================================
   틀니 / 미백 - 관리 및 오해 (main-care-management) 공통 스타일 (Figma 반영)
   ========================================================================== */

.main-section.main-care-management {
   background-color: #fff;
   padding: 160px 0;
}

.main-section.main-care-management.linear-black {
   background: linear-gradient(to bottom, #fff, #f6f6f6);
}

.care-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.care-header {
   margin-bottom: 80px;
   text-align: left;
}

.care-header .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.care-header .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

.care-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
}

.care-header .section-desc {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

/* 1. 관리 체크리스트 블록 (상단) */
.care-block-checklist {
   display: flex;
   gap: 60px;
   margin-bottom: 150px;
   align-items: flex-start;
}

.care-block-checklist .care-img-box {
   width: 630px;
   height: 591px;
   border-radius: 44px;
   overflow: hidden;
   flex-shrink: 0;
}

.care-img-box img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.care-info-box {
   width: 612px;
   display: flex;
   flex-direction: column;
}

.care-block-title {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 58px;
   line-height: 74px;
   color: #111;
   margin-bottom: 69px;
}

.care-checklist {
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.checklist-item {
   display: flex;
   align-items: center;
   position: relative;
   padding: 0 0 0 40px;
   height: 99px;
   border-radius: 18px;
   background-color: #fff;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   box-sizing: border-box;
}

.checklist-item:not(:last-child)::after {
   content: '';
   position: absolute;
   bottom: -16px;
   left: 50%;
   transform: translateX(-50%);
   width: 13px;
   height: 13px;
   background: url('../images/sub/bg-arrow-down-gray.png') no-repeat center;
}

.checklist-num {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 22px;
   height: 22px;
   border-radius: 50%;
   background: linear-gradient(to right, #6BD9C3, #D9D56B);
   font-family: 'MaruBuri', serif;
   font-weight: 700;
   font-size: 14px;
   color: #fff;
   margin-right: 15px;
}

.checklist-text {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 24px;
   color: #111;
}

.checklist-arrow {
   display: flex;
   justify-content: center;
   align-items: center;
   margin: -5px 0;
}

/* 2. 자주 묻는 오해 블록 (하단) */
.care-block-misconceptions {
   display: flex;
   /*gap: 60px;*/
   justify-content: space-between;
   align-items: flex-start;
}

.care-block-misconceptions .care-img-box {
   width: 630px;
   height: 607px;
   border-radius: 44px;
   overflow: hidden;
   flex-shrink: 0;
}

.misconception-list {
   display: flex;
   flex-direction: column;
}

.misconception-card {
   margin-bottom: 20px;
   padding: 40px 40px 32px 40px;
   border-radius: 18px;
   background-color: #fff;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
}

.misconception-card:last-child {
   margin-bottom: 0px;
}

.misconception-card .card-question {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #50ab99;
   margin-bottom: 12px;
}

.misconception-card .card-answer {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}


/* ==========================================================================
   스케일링 보험 (main-insurance) 섹션 스타일 (Figma Node 211:1999 반영)
   ========================================================================== */

.main-section.main-insurance {
   background: #fff;
   padding: 160px 0;
}

.insurance-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.main-insurance .section-header {
   margin-bottom: 95px;
   text-align: left;
}

.main-insurance .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.main-insurance .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

.main-insurance .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69.33px;
}

.main-insurance .section-desc {
   margin-top: 20px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #333;
}

/* 4개 그리드 레이아웃 */
.insurance-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
}

.insurance-grid .grid-item {
   position: relative;
   height: 249px;
   background: #fff;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   box-sizing: border-box;
   overflow: hidden;
   text-align: center;
}

.insurance-grid .thumb-img {
   width: 100%;
   height: 140px;
   overflow: hidden;
   border-radius: 18px 18px 0 0;
}

.insurance-grid .thumb-img img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.insurance-grid .grid-item h3 {
   margin-top: 25px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 24px;
   color: #111;
}

.insurance-grid .grid-item p {
   margin-top: 4px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 13px;
   line-height: 24px;
   color: #111;
}

/* 하단 배너 영역 */
#sub-treatment .insurance-bottom-banner {
   text-align: center;
   margin-top: 95px;
}

#sub-treatment .insurance-bottom-banner .banner-text {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 26px;
   line-height: 38px;
   color: #555;
   margin-bottom: 12px;
}

#sub-treatment .insurance-bottom-banner .banner-highlight {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 36px;
   line-height: 52px;
   color: #111;
}

.insurance-wide-banner {
   display: flex;
   align-items: center;
   width: 100%;
   height: 234px;
   margin-top: 60px;
   background: url('../images/sub/07-senior-dentures/img-insurance-banner.png') no-repeat center / cover;
}

.insurance-wide-banner .banner-text-content {
   width: 100%;
   text-align: center;
}

.insurance-wide-banner .banner-title {
   margin-bottom: 17px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 48px;
   line-height: 48px;
   color: #fff;
}

.insurance-wide-banner .banner-desc {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
}

/* ==========================================================================
   미백 - 미백 vs 다른 선택지 (main-whitening-case) 스타일
   ========================================================================== */

.main-section.main-whitening-case {
   background-color: #f8f8f8;
   padding: 160px 0;
}

.whitening-case-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.main-whitening-case .section-header {
   margin-bottom: 80px;
   text-align: center;
}

.main-whitening-case .section-header .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18.67px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.main-whitening-case .section-header .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

.main-whitening-case .section-header .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69.33px;
}

.main-whitening-case .section-header .section-desc {
   margin-top: 40px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 21px;
   line-height: 34.67px;
   color: #444;
   letter-spacing: 0.53px;
}

/* 2열 비교 테이블 */
.whitening-case-grid.type-comparison {
   display: flex;
   gap: 20px;
   justify-content: center;
   margin-top: 80px;
}

.comparison-group {
   width: 640px;
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.comparison-group .group-header {
   height: 70px;
   border-radius: 18px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 18px;
   letter-spacing: 0.0469px;
   box-sizing: border-box;
}

.comparison-group.case-yes .group-header {
   background: linear-gradient(to right, #6BD9C3 0%, #B1D68B 32%, #D9D56B 100%);
   color: #fff;
}

.comparison-group.case-no .group-header {
   background: #d8d8d8;
   color: rgba(17, 17, 17, 0.5);
}

.comparison-group .group-list {
   background-color: #fff;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   overflow: hidden;
   padding: 0;
   margin: 0;
   list-style: none;
}

.comparison-group .group-list li {
   height: 71px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-bottom: 1px solid #d9d9d9;
   box-sizing: border-box;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-size: 20px;
   line-height: 18px;
   letter-spacing: 0.0391px;
}

.comparison-group .group-list li:last-child {
   border-bottom: none;
}

.comparison-group.case-yes .group-list li {
   font-weight: 700; /* KoPubWorldDotum:Bold */
   color: #111;
}

.comparison-group.case-no .group-list li {
   font-weight: 500; /* KoPubWorldDotum:Medium */
   color: #555;
}

.whitening-case-footnote {
   margin-top: 20px;
   text-align: center;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300; /* KoPubWorldDotum:Light */
   font-size: 10px;
   line-height: 10.67px;
   color: #a3a3a3;
}

/* ==========================================================================
   소아 청소년 보험 진료 || 서브페이지 06 (pediatric-insurance) 스타일
   ========================================================================== */

.pediatric-insurance__container {
   width: 100%;
   max-width: 1300px;
}

.pediatric-insurance__header {
   margin-bottom: 100px;
   text-align: center;
}

.pediatric-insurance__subtitle {
   display: block;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.pediatric-insurance__title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

.pediatric-insurance__title--bold {
   font-weight: 600;
   font-size: 42px;
}

.pediatric-insurance__description {
   margin-top: 28px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
}

/* 3개 그리드 레이아웃 */
.pediatric-insurance__cards {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 20px;
}

.pediatric-insurance__card {
   position: relative;
   height: 280px;
   background: #fff;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   box-sizing: border-box;
   overflow: hidden;
   text-align: center;
}

.pediatric-insurance__img-wrap {
   width: 100%;
   height: 165px;
   overflow: hidden;
   border-radius: 18px 18px 0 0;
}

.pediatric-insurance__img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.pediatric-insurance__tag {
   margin-top: 28px;
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 16px;
   line-height: 21px;
   color: #50AB99;
}

.pediatric-insurance__card-title {
   margin-top: 5px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 24px;
   color: #111;
}

/* ==========================================================================
   틀니 - 틀니의 종류 (main-denture-types) 스타일 (Figma Node 220:1444 반영)
   ========================================================================== */

.main-section.main-denture-types {
   background: #000 url('../images/bg-cases.jpg') no-repeat center / cover;
}

.types-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.main-denture-types .section-header {
   margin-bottom: 100px;
   text-align: left;
}

.main-denture-types .section-sub {
   display: block;
   margin-bottom: 21px;
}

.main-denture-types .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #fff;
   letter-spacing: 0.03em;
}

.main-denture-types .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69.33px;
}

.main-denture-types .section-desc {
   margin-top: 44px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 20px;
   line-height: 34px;
   color: #fff;
   max-width: 419px;
}

.types-grid-quad {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
}

.type-quad-card {
   position: relative;
   height: 339px;
   padding: 51px 40px;
   border-radius: 18px;
   background: linear-gradient(120.4deg, rgb(7, 7, 7) 7.17%, rgb(42, 42, 42) 92.83%);
   opacity: 0.90;
   box-sizing: border-box;
   box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.02);
}

.quad-title {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #fff;
   letter-spacing: 0.0469px;
}

.quad-condition {
   margin-top: 10px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 17px;
   color: rgba(255, 255, 255, 0.6);
}

.quad-divider {
   border: none;
   height: 1px;
   background-color: rgba(255, 255, 255, 0.1);
   margin: 25px 0;
}

.quad-tags-list {
   display: flex;
   flex-direction: column;
   gap: 15px;
}

.tag-row {
   display: flex;
   align-items: center;
   gap: 13px;
}

.main-denture-types .badge {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 68px;
   height: 30px;
   border-radius: 15px;
   font-family: 'maruburi', serif;
   font-weight: 700;
   font-size: 16px;
   color: #111;
   background: linear-gradient(to right, #6BD9C3, #D9D56B);
   text-align: center;
   flex-shrink: 0;
}

.type-quad-card .tag-text {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #fff;
}

.type-quad-card .tag-row:last-child .tag-text {
   font-weight: 700;
}

/* 모바일 슬라이드 숫자 바 인디케이터 - PC/태블릿 기본 숨김 (모바일에서만 노출) */
.types-slide-nav {
   display: none;
}

/* ==========================================================================
   리얼후기 (sub-review) 스타일
   ========================================================================== */

#sub-review .main-section.main-visual {
   background: #f2f2f2 url('../images/sub/10.jpg') no-repeat center / cover;
}

#sub-review .main-review-board {
   background-color: #fff;
   padding: 160px 0;
}

#sub-review .board-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

/* 게시판 상단 컨트롤러 */
#sub-review .board-top-bar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding-bottom: 40px;
   border-bottom: 1px solid #d9d9d9;
   margin-bottom: 80px;
}

#sub-review .total-count {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #111;
   line-height: 32px;
}

#sub-review .total-count .count-num {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   color: #50ab99;
}

#sub-review .board-controls-group {
   display: flex;
   gap: 20px;
   align-items: center;
}

#sub-review .filter-select-wrap {
   position: relative;
   width: 122px;
   height: 54px;
   background-color: #f8f8f8;
   border-radius: 32px;
}

#sub-review .filter-select-wrap select {
   width: 100%;
   height: 100%;
   padding: 0 40px 0 24px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #767676;
   background: transparent;
   border: none;
   outline: none;
   appearance: none;
   -webkit-appearance: none;
   cursor: pointer;
}

#sub-review .filter-select-wrap::after {
   content: '';
   position: absolute;
   top: 50%;
   right: 20px;
   transform: translateY(-50%);
   width: 12px;
   height: 7px;
   background: url('../images/sub/bg-category-arrow.png') no-repeat center / contain;
   pointer-events: none;
}

#sub-review .search-input-wrap {
   position: relative;
   width: 392px;
   height: 54px;
   background-color: #f8f8f8;
   border-radius: 32px;
}

#sub-review .search-form {
   display: flex;
   align-items: center;
   width: 100%;
   height: 100%;
}

#sub-review .control-input {
   width: 100%;
   height: 100%;
   padding: 0 54px 0 24px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #111;
   background: transparent;
   border: none;
   outline: none;
}

#sub-review .control-input::placeholder {
   color: #767676;
}

#sub-review .btn-search {
   position: absolute;
   top: 50%;
   right: 24px;
   transform: translateY(-50%);
   background: none;
   border: none;
   color: #111;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 0;
}

/* 후기 카드 그리드 */
#sub-review .review-cards-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 60px 20px;
}

#sub-review .review-card-item {
   position: relative;
   width: 420px;
   height: 503px;
   background-color: #fff;
   border-radius: 18px;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   display: flex;
   flex-direction: column;
   overflow: hidden;
   position: relative;
   box-sizing: border-box;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#sub-review .review-card-item:hover {
   transform: translateY(-5px);
   box-shadow: 4px 8px 24px 0px rgba(0, 0, 0, 0.1);
}

#sub-review .card-image-area {
   position: relative;
   width: 100%;
   height: 250px;
   overflow: hidden;
}

#sub-review .card-image-area img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

#sub-review .category-badge {
   position: absolute;
   top: 0;
   left: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 110px;
   height: 46px;
   border-top-left-radius: 18px;
   border-bottom-right-radius: 18px;
   background: linear-gradient(to left, #d9d56b 0%, #b1d68b 32%, #6bd9c3 100%);
   font-family: 'MaruBuri';
   font-weight: 700;
   font-size: 16px;
   color: #fff;
   z-index: 2;
}

#sub-review .card-text-area {
   flex: 1;
   display: flex;
   flex-direction: column;
   padding: 34px 30px 30px 30px;
}

#sub-review .card-review-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 34px;
   color: #111;
   margin-bottom: 12px;
   
   /* Multi-line ellipsis */
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
   height: 68px; /* 34px * 2 */
}

#sub-review .card-review-title a {
   text-decoration: none;
}

#sub-review .card-review-title a::after {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   z-index: 1; /* 카드 전체를 덮도록 설정 */
}

#sub-review .card-review-excerpt {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
   margin-bottom: 24px;
   
   /* Multi-line ellipsis */
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
   height: 64px; /* 32px * 2 */
}

#sub-review .card-review-meta {
   display: flex;
   align-items: center;
   justify-content: flex-end;
   gap: 10px;
   margin-top: auto;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 11px;
   color: #999;
}

#sub-review .card-review-meta span {
   display: flex;
   align-items: center;
}

#sub-review .card-review-meta span:not(:last-child)::after {
   content: '';
   display: inline-block;
   width: 1px;
   height: 8px;
   background-color: #d9d9d9;
   margin-left: 10px;
   margin-right: 2px;
}

/* 하단 페이지네이션 */
#sub-review .board-pagination {
   display: flex;
   justify-content: center;
   align-items: center;
   margin-top: 80px;
}

#sub-review .page-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   border-radius: 50%;
   border: 1px solid #d9d9d9;
   background-color: #fff;
   color: #999;
   cursor: pointer;
   transition: all 0.3s ease;
   padding: 0;
}

#sub-review .page-btn svg {
   width: 16px;
   height: 16px;
}

#sub-review .page-btn:hover:not(:disabled) {
   border-color: #6BD9C3;
   color: #6BD9C3;
}

#sub-review .page-btn:disabled {
   opacity: 0.4;
   cursor: not-allowed;
}

#sub-review .page-numbers {
   display: flex;
   gap: 10px;
   align-items: center;
   margin: 0 15px;
}

#sub-review .page-num {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #999;
   text-decoration: none;
   border-radius: 50%;
   transition: all 0.3s ease;
}

#sub-review .page-num:hover:not(.active) {
   color: #111;
   background-color: #f1f1f1;
}

#sub-review .page-num.active {
   background-color: #6BD9C3;
   color: #fff;
   font-weight: 700;
}

/* ==========================================================================
   리얼후기 상세 (sub-review-detail) 스타일
   ========================================================================== */

#sub-review-detail .main-section.main-visual {
   background: #f2f2f2 url('../images/sub/10.jpg') no-repeat center / cover;
}

#sub-review-detail .main-review-detail {
   background-color: #fff;
   padding: 160px 0;
}

#sub-review-detail .review-detail-container {
   width: 100%;
   max-width: 740px;
   margin: 0 auto;
}

#sub-review-detail .review-detail-header {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
}

#sub-review-detail .review-detail-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 58px;
   line-height: 74px;
   color: #111;
   letter-spacing: -1px;
   word-break: keep-all;
}

#sub-review-detail .review-detail-subtitle {
   margin-top: 26px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 21px;
   line-height: 34px;
   color: #444;
   word-break: keep-all;
}

#sub-review-detail .review-detail-meta {
   display: flex;
   align-items: center;
   margin-top: 26px;
}

#sub-review-detail .review-detail-category {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 13px;
   line-height: 32px;
   background: linear-gradient(to left, #d9d56b 0%, #b1d68b 24%, #6bd9c3 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
}

#sub-review-detail .review-detail-divider {
   width: 1px;
   height: 8px;
   background-color: #d9d9d9;
   margin: 0 10px;
}

#sub-review-detail .review-detail-date {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 13px;
   line-height: 32px;
   color: #999;
}

#sub-review-detail .review-detail-divider-line {
   height: 1px;
   background-color: #d9d9d9;
   margin: 49px 0 53px 0;
   width: 100%;
}

#sub-review-detail .review-detail-body {
   display: flex;
   flex-direction: column;
}

#sub-review-detail .review-detail-paragraph {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #111;
   word-break: keep-all;
}

#sub-review-detail .review-detail-paragraph p {
   margin-bottom: 0px;
}

#sub-review-detail .review-detail-paragraph p.space-paragraph {
   min-height: 32px;
}

#sub-review-detail .review-detail-image {
   width: 100%;
   height: 350px;
   border-radius: 18px;
   overflow: hidden;
   margin: 125px 0 69px 0;
}

#sub-review-detail .review-detail-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

#sub-review-detail .review-detail-subheader {
   margin-bottom: 31px;
}

#sub-review-detail .review-detail-subheader h3 {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
   letter-spacing: 0.0469px;
}

#sub-review-detail .review-detail-footer {
   display: flex;
   justify-content: center;
   margin-top: 80px;
}

#sub-review-detail .btn-back-to-list {
   display: block;
   width: fit-content;
   padding: 18px 50px;
   border-radius: 100px;
   background: #6BD9C3;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 16px;
   line-height: 16px;
   color: #fff;
   text-decoration: none;
   letter-spacing: 2%;
   transition: background-color 0.3s ease;
}

#sub-review-detail .btn-back-to-list:hover {
   background-color: #50ab99;
}

/* ==========================================================================
   공지사항 (sub-notice) 스타일
   ========================================================================== */

#sub-notice .main-section.main-visual {
   background: #f2f2f2 url('../images/sub/11.jpg') no-repeat center / cover;
}

#sub-notice .main-notice-board {
   background-color: #fff;
   padding: 160px 0;
}

#sub-notice .board-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

/* 게시판 상단 컨트롤러 */
#sub-notice .board-top-bar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 50px;
}

#sub-notice .total-count {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #111;
   line-height: 32px;
}

#sub-notice .total-count .count-num {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   color: #50ab99;
}

#sub-notice .board-controls-group {
   display: flex;
   gap: 20px;
   align-items: center;
}

#sub-notice .filter-select-wrap {
   position: relative;
   width: 122px;
   height: 54px;
   background-color: #f6f6f6;
   border-radius: 27px;
}

#sub-notice .filter-select-wrap select {
   width: 100%;
   height: 100%;
   padding: 0 35px 0 25px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #767676;
   background: transparent;
   border: none;
   outline: none;
   appearance: none;
   -webkit-appearance: none;
   cursor: pointer;
}

#sub-notice .filter-select-wrap::after {
   content: '';
   position: absolute;
   top: 50%;
   right: 20px;
   transform: translateY(-50%);
   width: 12px;
   height: 7px;
   background: url('../images/sub/bg-category-arrow.png') no-repeat center / contain;
   pointer-events: none;
}

#sub-notice .search-input-wrap {
   position: relative;
   width: 392px;
   height: 54px;
   background-color: #f6f6f6;
   border-radius: 27px;
}

#sub-notice .search-form {
   display: flex;
   align-items: center;
   width: 100%;
   height: 100%;
}

#sub-notice .control-input {
   width: 100%;
   height: 100%;
   padding: 0 54px 0 25px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #111;
   background: transparent;
   border: none;
   outline: none;
}

#sub-notice .control-input::placeholder {
   color: #767676;
}

#sub-notice .btn-search {
   position: absolute;
   top: 50%;
   right: 24px;
   transform: translateY(-50%);
   background: none;
   border: none;
   color: #111;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 0;
}

/* 공지사항 테이블 */
#sub-notice .notice-table-wrap {
   border-top: 2px solid #111;
}

#sub-notice .notice-list-table {
   width: 100%;
   border-collapse: collapse;
}

#sub-notice .notice-list-table th {
   height: 64px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 16px;
   color: #111;
   border-bottom: 1px solid #d9d9d9;
   vertical-align: middle;
   text-align: center;
}

#sub-notice .th-no, #sub-notice .td-no { width: 140px; }
#sub-notice .th-category, #sub-notice .td-category { width: 180px; }
#sub-notice .th-title, #sub-notice .td-title { width: auto; }
#sub-notice .th-date, #sub-notice .td-date { width: 160px; }
#sub-notice .th-views, #sub-notice .td-views { width: 120px; }

#sub-notice .notice-list-table td {
   height: 61px;
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 16px;
   color: #777;
   border-bottom: 1px solid #d9d9d9;
   vertical-align: middle;
   text-align: center;
}

#sub-notice .notice-list-table tbody tr:hover {
   background-color: #fafafa;
}

#sub-notice .notice-list-table td.td-title {
   text-align: left;
   padding-left: 50px;
   padding-right: 20px;
}

#sub-notice .notice-list-table td.td-title a {
   font-family: 'KoPubWorldDotum';
   font-weight: 500;
   font-size: 16px;
   color: #111;
   text-decoration: none;
   transition: color 0.3s ease;
}

#sub-notice .notice-list-table td.td-title a:hover {
   color: #50ab99;
}

/* 중요 공지 speaker 아이콘 */
#sub-notice .icon-speaker {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   color: #6BD9C3;
}

#sub-notice .icon-speaker svg {
   stroke: currentColor;
   fill: none;
}

/* 카테고리 배지 */
#sub-notice .category-badge {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 110px;
   height: 40px;
   border-radius: 20px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 15px;
   color: #fff;
   text-align: center;
}

#sub-notice .category-badge.badge-event {
   background: linear-gradient(to right, #8BD68C, #D9D56B);
}

#sub-notice .category-badge.badge-guide {
   background: #6BD9C3;
}

#sub-notice .category-badge.badge-schedule {
   background: #D9CC6B;
}

/* 하단 페이지네이션 */
#sub-notice .board-pagination {
   display: flex;
   justify-content: center;
   align-items: center;
   margin-top: 80px;
}

#sub-notice .page-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   border-radius: 50%;
   border: 1px solid #d9d9d9;
   background-color: #fff;
   color: #999;
   cursor: pointer;
   transition: all 0.3s ease;
   padding: 0;
}

#sub-notice .page-btn svg {
   width: 16px;
   height: 16px;
}

#sub-notice .page-btn:hover:not(:disabled) {
   border-color: #6BD9C3;
   color: #6BD9C3;
}

#sub-notice .page-btn:disabled {
   opacity: 0.4;
   cursor: not-allowed;
}

#sub-notice .page-numbers {
   display: flex;
   gap: 10px;
   align-items: center;
   margin: 0 15px;
}

#sub-notice .page-num {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 15px;
   color: #999;
   text-decoration: none;
   border-radius: 50%;
   transition: all 0.3s ease;
}

#sub-notice .page-num:hover:not(.active) {
   color: #111;
   background-color: #f1f1f1;
}

#sub-notice .page-num.active {
   background-color: #6BD9C3;
   color: #fff;
   font-weight: 700;
}

/* ==========================================================================
   치과 둘러보기 (sub-clinic-tour) 스타일
   ========================================================================== */

#sub-clinic-tour .main-section.main-facility-gallery {
   background: #fff url('../images/sub/08-clinic-tour/bg-facility.jpg') no-repeat center top / cover;
   padding: 160px 0;
}

#sub-clinic-tour .gallery-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

#sub-clinic-tour .main-facility-gallery .section-header {
   text-align: center;
   margin-bottom: 91px;
}

#sub-clinic-tour .main-facility-gallery .section-sub {
   display: block;
   margin-bottom: 21px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
}

#sub-clinic-tour .main-facility-gallery .section-title {
   font-family: 'maruburi', serif;
   font-weight: 400;
   font-size: 37px;
   line-height: 64px;
   color: #111;
   letter-spacing: 0.03em;
}

#sub-clinic-tour .main-facility-gallery .section-title--bold {
   font-weight: 600;
   font-size: 42px;
   line-height: 69.333px;
}

/* 갤러리 레이아웃 */
#sub-clinic-tour .facility-slider-wrapper {
   width: 100%;
   max-width: 980px; /* 메인 이미지 크기에 맞춰 컨테이너 제한 (필요시 조정) */
   margin: 0 auto;
}

/* 좌측 메인 이미지 (썸네일이 없어졌으므로 가로 전체 차지 가능) */
#sub-clinic-tour .slider-main-view {
   position: relative;
   width: 100%; /* 980px 고정 대신 반응형 또는 100% 권장 */
   height: 580px;
   border-radius: 13px;
   overflow: hidden;
}

#sub-clinic-tour .slider-main-view img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: 13px;
}

/* 메인 이미지 위 뱃지 */
#sub-clinic-tour .slider-main-view .view-badge {
   position: absolute;
   top: 30px;
   left: 30px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   height: 52px;
   padding: 0 24px;
   border-radius: 30px;
   background: linear-gradient(to right, #6BD9C3 0%, #B1D68B 32%, #D9D56B 100%);
   font-family: 'maruburi', serif;
   font-weight: 700;
   font-size: 21px;
   color: #fff;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
   z-index: 2;
}

/* 하단 정보 & 컨트롤 그룹 */
#sub-clinic-tour .slider-bottom-controls {
   margin-top: 34px;
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   padding: 0 10px;
}

/* 좌측 정보 텍스트 */
#sub-clinic-tour .facility-info-text {
   display: flex;
   align-items: flex-start;
   gap: 26px;
   min-height: 68px;
}

#sub-clinic-tour .facility-info-text .info-title {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111;
   margin-top: 4px;
   letter-spacing: 0.0469px;
}

#sub-clinic-tour .facility-info-text .info-desc-group {
   display: flex;
   flex-direction: column;
}

#sub-clinic-tour .facility-info-text .desc-line {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444;
}

/* 우측 컨트롤 그룹 */
#sub-clinic-tour .slider-nav-group {
   display: flex;
   align-items: center;
   gap: 27px;
}

/* 슬라이더 게이지네비게이션 */
#sub-clinic-tour .slider-pagination {
   display: flex;
   align-items: center;
   gap: 12px;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 13px;
   color: #111;
}

#sub-clinic-tour .slider-pagination .current-num,
#sub-clinic-tour .slider-pagination .total-num {
   font-weight: 700;
   color: #111;
}

#sub-clinic-tour .slider-pagination .divider {
   display: inline-block;
   vertical-align: middle;
   position: relative;
   width: 77px;
   height: 2px;
   background-color: #d8d8d8;
   border-radius: 2px;
   font-size: 0;
   line-height: 0;
   color: transparent;
}

#sub-clinic-tour .slider-pagination .divider::after {
   content: '';
   position: absolute;
   left: 0;
   top: 0;
   height: 100%;
   width: 14.3%; 
   background-color: #111;
   border-radius: 2px;
   transition: width 0.3s ease;
}

/* 버튼셋 */
#sub-clinic-tour .slider-buttons {
   display: flex;
   gap: 10px;
}

#sub-clinic-tour .btn-nav {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   border-radius: 50%;
   border: none;
   cursor: pointer;
   transition: all 0.3s ease;
   background-color: #111;
   color: #fff;
}

#sub-clinic-tour .btn-nav:hover {
   background-color: #333;
}

#sub-clinic-tour .btn-nav:disabled {
   background-color: #f1f1f1;
   color: #b5b5b5;
   cursor: not-allowed;
}

#sub-clinic-tour .btn-nav svg {
   width: 24px;
   height: 24px;
   stroke: currentColor;
}

/* ==========================================================================
   원장 소개 - 인사말 (doctor-greeting) 섹션 스타일
   ========================================================================== */
.doctor-greeting {
   position: relative;
   width: 100%;
   background: #fff;
   padding: 0;
   box-sizing: border-box;
}

.doctor-greeting .greeting-container {
   position: relative;
   width: 100%;
   max-width: 1300px;
   height: 100%;
   margin: 0 auto;
   padding: 0 20px;
}

.greeting-box {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 100px 0;
   gap: 5%;
}

.greeting-doctor__image-container {
   width: 45%;
   max-width: 580px;
   background-color: #E9ECEF;
   border-radius: 18px;
   flex-shrink: 1;
}

.greeting-doctor__image-container img {
   display: block;
   width: 100%;
   height: auto;
   border-radius: 18px;
}

.doctor-greeting .greeting-logo-banner {
   width: 100%;
   height: auto;
   margin-top: 80px;
   border-radius: 18px;
}

.doctor-greeting .greeting-logo-banner img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.doctor-greeting .greeting-message-wrap {
   width: 50%;
   max-width: 650px;
   text-align: center;
   flex-shrink: 1;
}

.doctor-greeting .msg-paragraph {
   font-family: 'KoPubWorldDotum';
   font-weight: 300; /* Light */
   font-size: 17px;
   line-height: 32px;
   color: #111;
   margin-bottom: 0;
}

.doctor-greeting .msg-paragraph.font-medium {
   font-weight: 500; /* Medium */
   margin-top: 24px;
}

.doctor-greeting .msg-highlight-box {
   margin-top: 24px;
}

.doctor-greeting .highlight-sub-text {
   font-family: 'KoPubWorldDotum';
   font-weight: 300; /* Light */
   font-size: 17px;
   line-height: 32px;
   color: #111;
   margin-bottom: 0;
}

.doctor-greeting .highlight-main-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700; /* Bold */
   font-size: 24px;
   line-height: 36px;
   color: #111;
   margin-top: 6px;
   margin-bottom: 0;
}

.doctor-greeting .highlight-main-title .normal-weight {
   font-weight: 300; /* Light */
   font-size: 17px;
}

.doctor-greeting .doctor-signature-area {
   margin-top: 30px;
   display: flex;
   justify-content: center;
   align-items: center;
}

.doctor-greeting .doctor-signature-area .position-text,
.doctor-greeting .doctor-signature-area .doctor-name {
   display: none; /* Hide visual text elements because the signature image contains the handwritten name and title */
}

.doctor-greeting .signature-svg-wrap {
   width: 257px;
   height: 83px;
}

.doctor-greeting .signature-svg-wrap img {
   width: 100%;
   height: 100%;
   object-fit: contain;
}

/* ==========================================================================
   원장 소개 - 자격과 경력 (doctor-credentials) 섹션 스타일
   ========================================================================== */

.doctor-credentials {
   background-color: #f6f6f6;
}

.credentials-container {
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.doctor-credentials .section-header {
   text-align: left;
   margin-bottom: 95px;
}

.doctor-credentials .section-sub {
   display: block;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #6BD9C3;
   margin-bottom: 21px;
}

.doctor-credentials .section-title {
   font-family: 'maruburi';
   font-weight: 600; /* SemiBold */
   font-size: 42px;
   line-height: 69px;
   color: #111;
   letter-spacing: 1.6px;
}

.credentials-grid-quad {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
}

.credential-card {
   position: relative;
   height: 273px;
   border-radius: 18px;
   background: #fff;
   box-shadow: 4px 4px 16px 0px rgba(0, 0, 0, 0.05);
   padding: 50px 30px 45px 30px;
   box-sizing: border-box;
}

.credential-card .card-title-wrap {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-bottom: 28px;
}

.credential-card .card-icon {
   display: inline-block;
   width: 24px;
   height: 24px;
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   flex-shrink: 0;
}

.credential-card .card-icon.icon-official {
   background-image: url('../images/sub/09-doctor-about/ico-credentials-official.png');
}

.credential-card .card-icon.icon-clinical {
   background-image: url('../images/sub/09-doctor-about/ico-credentials-clinical.png');
}

.credential-card .card-icon.icon-research {
   background-image: url('../images/sub/09-doctor-about/ico-credentials-research.png');
}

.credential-card .card-icon.icon-specialty {
   background-image: url('../images/sub/09-doctor-about/ico-credentials-specialty.png');
}

.credential-card .card-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700; /* Bold */
   font-size: 24px;
   line-height: 24px;
   color: #111;
   letter-spacing: 0.0469px;
}

.credential-card .card-divider {
   border: none;
   border-top: 1px solid #d9d9d9;
   margin: 0 0 32px 0;
}

.credential-card .card-bullet-list {
   list-style: none;
   padding: 0;
   margin: 0;
}

.credential-card .card-bullet-list li {
   position: relative;
   padding-left: 15px;
   font-family: 'KoPubWorldDotum';
   font-weight: 300; /* Light */
   font-size: 17px;
   line-height: 32px;
   color: #111;
}

.credential-card .card-bullet-list li::before {
   content: '';
   position: absolute;
   left: 0;
   top: 13.5px; /* (32px / 2) - (5px / 2) = 13.5px */
   width: 5px;
   height: 5px;
   border-radius: 50%;
   background-color: #d9d9d9;
}

.credentials-indicator {
   display: none;
}


/* ==========================================================================
   오시는 길 (sub-location) 스타일
   ========================================================================== */

#sub-location .main-section.main-visual {
   position: relative;
   overflow: hidden;
}

.visual-sub {
   font-family: 'maruburi';
   font-weight: 700;
   font-size: 18px;
   line-height: 18px;
   color: #888;
   margin-bottom: 38px;
}

.direction-visual .visual-container {
   position: relative;
   z-index: 2;
}

.direction-visual .visual-bg-image {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: 1;
}

.direction-visual .visual-bg-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.main-section.main-direction-info {
   display: block;
   width: 100%;
   padding: 160px 0px 160px 0px;
   background-color: #ffffff;
}

.direction-container {
   width: 100%;
}

.map-viewport-wrapper {
   position: relative;
   width: 100%;
   max-width: 1300px;
   height: 560px;
   margin: 0 auto;
}

.map-api-area {
   overflow: hidden;
   width: 100%;
   height: 560px;
   border-radius: 18px;
}

.map-api-area iframe {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.map-floating-links {
   position: absolute;
   bottom: 60px;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   gap: 20px;
   z-index: 10;
}

.btn-map-link {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 206px;
   height: 57px;
   background-color: #ffffff;
   border: 1px solid #d9d9d9;
   border-radius: 100px;
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 16px;
   color: #111111;
   text-decoration: none;
   transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.btn-map-link:hover {
   background-color: #f8f8f8;
   box-shadow: 0px 6px 15px rgba(0, 0, 0, 0.15);
}

.btn-map-link .map-link__text {
   display: inline-block;
   width: 26px;
   height: 26px;
   margin-right: 10px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: contain;
}

.btn-naver-map .icon-naver {
   background-image: url('../images/sub/12-location/icon-naver-map.png');
}

.btn-kakao-map .icon-kakao {
   background-image: url('../images/sub/12-location/icon-kakao-map.png');
}

.transport-guide-wrap {
   margin-top: 146px;
   text-align: center;
}

.transport-guide-wrap .section-header {
   margin-bottom: 86px;
}

.transport-guide-wrap .section-title {
   font-family: 'maruburi';
   font-weight: 600;
   font-size: 42px;
   line-height: 69px;
   color: #111111;
   letter-spacing: 1.5996px;
}

.transport-grid-quad {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
   width: 100%;
   max-width: 1300px;
   margin: 0 auto;
}

.transport-card {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   align-items: flex-start;
   width: 640px;
   height: 233px;
   padding: 49px 40px 40px 40px;
   border-radius: 18px;
   background-color: #f8f8f8;
   box-sizing: border-box;
   text-align: left;
}

.transport-icon {
   display: block;
   width: 24px;
   height: 24px;
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   margin-bottom: 31px;
}

.icon-subway {
   background-image: url('../images/sub/12-location/icon-subway.png');
}

.icon-bus {
   background-image: url('../images/sub/12-location/icon-bus.png');
}

.icon-car {
   background-image: url('../images/sub/12-location/icon-car.png');
}

.icon-parking {
   background-image: url('../images/sub/12-location/icon-parking.png');
}

.card-guide-title {
   font-family: 'KoPubWorldDotum';
   font-weight: 700;
   font-size: 24px;
   line-height: 24px;
   color: #111111;
   letter-spacing: 0.0469px;
   margin-bottom: 10px;
}

.card-guide-desc {
   font-family: 'KoPubWorldDotum';
   font-weight: 300;
   font-size: 17px;
   line-height: 32px;
   color: #444444;
   word-break: keep-all;
}


/* ==========================================================================
   회원가입약관 및 개인정보 수집 및 이용 (sub-signup-terms) 스타일
   ========================================================================== */

#sub-signup-terms .main-section.terms-section {
    background-color: #fff;
    padding: 170px 0 160px 0;
}

.terms-container {
    width: 740px;
    margin: 0 auto;
}

.terms-main-title {
    font-family: 'KoPubWorldDotum';
    font-weight: 700;
    font-size: 32px;
    line-height: 50px;
    color: #111;
    text-align: center;
    margin-bottom: 48px;
}

.terms-main-title strong {
    font-family: 'KoPubWorldDotum';
    font-weight: 700;
    font-size: 32px;
    line-height: 50px;
}

.terms-box-panel {
    position: relative;
    width: 740px;
    border: 1px solid #e1e1e1;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
    margin-bottom: 30px;
}

.panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 78px;
    padding: 0 30px;
    border-bottom: 1px solid #d9d9d9;
    box-sizing: border-box;
}

.panel-title {
    font-family: 'KoPubWorldDotum';
    font-weight: 500;
    font-size: 18px;
    color: #333;
}

.check-label-custom {
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

.custom-checkbox-icon {
   display: inline-block;
   width: 24px;
   height: 24px;
   border: 2px solid #d9d9d9;
   border-radius: 4px;
   background-color: #fff;
   position: relative;
   transition: all 0.2s ease;
    
   /* [추가] 방법 2를 위한 설정 (둥근 모서리 그라데이션) */
   border: 2px solid transparent; 
   background-origin: border-box;
   background-clip: padding-box, border-box;
   /* 기본 상태는 그라데이션 대신 회색 테두리처럼 보이도록 설정 */
   background-image: linear-gradient(#fff, #fff), linear-gradient(to left, #b2b2b2 0%, #b2b2b2 100%);
}

.custom-checkbox-icon::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 1px;
    width: 6px;
    height: 11px;
    border: solid #b2b2b2;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    transition: all 0.2s ease;
}

/* 체크박스 선택 시 상태 */
.check-label-custom input:checked + .custom-checkbox-icon {
   background-image: linear-gradient(#fff, #fff),linear-gradient(to left, #d9d56b 0%, #b1d68b 32%, #6bd9c3 100%);
   background-color: transparent;
   background-color: #fff;
}

.check-label-custom input:checked + .custom-checkbox-icon::after {
    border-color: #6BD9C3;
}

.terms-scroll-viewer {
    height: 139px;
    padding: 25px 30px;
    overflow-y: auto;
    box-sizing: border-box;
    font-family: 'KoPubWorldDotum';
    font-weight: 400;
    font-size: 13px;
    line-height: 24px;
    color: #666;
    text-align: left;
}

.terms-scroll-viewer p {
    margin-bottom: 10px;
}

/* 스크롤바 커스텀 */
.terms-scroll-viewer::-webkit-scrollbar {
    width: 6px;
}

.terms-scroll-viewer::-webkit-scrollbar-track {
    background: transparent;
}

.terms-scroll-viewer::-webkit-scrollbar-thumb {
    background: #555555;
    border-radius: 3px;
}

.terms-table-wrap {
    padding: 30px;
    box-sizing: border-box;
}

.privacy-data-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #d9d9d9;
    background: #fff;
}

.privacy-data-table th,
.privacy-data-table td {
    border: 1px solid #d9d9d9;
    text-align: center;
    vertical-align: middle;
    font-family: 'KoPubWorldDotum';
    color: #333;
}

.privacy-data-table th {
    height: 51px;
    background-color: #f5f5f5;
    font-weight: 500;
    font-size: 16px;
}

.privacy-data-table td {
    height: 51px;
    font-weight: 500;
    font-size: 12px;
    line-height: 18px;
    padding: 10px;
    box-sizing: border-box;
}

.privacy-data-table td.font-medium {
    font-weight: 500;
}

.all-agree-banner {
    width: 740px;
    height: 60px;
    background-color: #111;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 40px;
    box-sizing: border-box;
}

.all-check-trigger {
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    user-select: none;
}

.all-agree-text {
    font-family: 'KoPubWorldDotum';
    font-weight: 500;
    font-size: 18px;
    color: #fff;
}

.custom-checkbox-icon-gold {
   display: inline-block;
   width: 24px;
   height: 24px;
   border: 2px solid #555;
   border-radius: 4px;
   background-color: transparent;
   position: relative;
   transition: all 0.2s ease;
    
   /* [추가] 방법 2를 위한 설정 (둥근 모서리 그라데이션) */
   border: 2px solid transparent; 
   background-origin: border-box;
   background-clip: padding-box, border-box;
   /* 기본 상태는 그라데이션 대신 회색 테두리처럼 보이도록 설정 */
   background-image: linear-gradient(#111, #111), linear-gradient(to left, #555 0%, #555 100%);
}

.custom-checkbox-icon-gold::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 1px;
    width: 6px;
    height: 11px;
    border: solid #555;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    transition: all 0.2s ease;
}

/* 전체 동의 체크박스 활성화 상태 */
.all-check-trigger input:checked + .custom-checkbox-icon-gold {
   background-image: linear-gradient(#111, #111),linear-gradient(to left, #d9d56b 0%, #b1d68b 32%, #6bd9c3 100%);
   background-color: transparent;
}

.all-check-trigger input:checked + .custom-checkbox-icon-gold::after {
    border-color: #6BD9C3;
}

.terms-action-buttons {
    display: flex;
    gap: 20px;
    width: 740px;
    box-sizing: border-box;
}

.btn-terms-action {
    width: 360px;
    height: 80px;
    border: none;
    border-radius: 6px;
    font-family: 'KoPubWorldDotum';
    font-weight: 700;
    font-size: 22px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.2s ease;
}

.btn-terms-action:hover {
    opacity: 0.9;
}

.btn-cancel {
    background-color: #f4f4f4;
    color: #111;
    text-decoration: none;
}

.btn-submit-signup {
    background: linear-gradient(to left, #d9d56b 8.18%, #b1d68b 24.57%, #6bd9c3 93.51%);
    color: #fff;
}

/* 화면 보이지 않는 요소(스크린 리더용) 정의 */
.screen-out {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}


/* ==========================================================================
   로그인 (sub-login) 스타일
   ========================================================================== */

#sub-login .main-section.login-section {
    background: #f6f6f6 url('../images/sub/bg_login.jpg') no-repeat center / cover;
    padding: 240px 0 272px 0;
    min-height: 959px;
    box-sizing: border-box;
}

.login-container {
    width: 740px;
    margin: 0 auto;
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    box-sizing: border-box;
    text-align: center;
}

.login-header {
    margin-bottom: 50px;
}

.login-title {
    font-family: 'KoPubWorldDotum', sans-serif;
    font-weight: 700;
    font-size: 46px;
    line-height: 74.67px;
    color: #111111;
    letter-spacing: -0.02em;
}

.login-form-wrap {
    width: 100%;
}

.login-form {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.login-form .input-group {
    position: relative;
    width: 100%;
    margin-bottom: 20px;
}

.login-form .input-group:nth-of-type(2) {
    margin-bottom: 40px;
}

.login-form .input-icon {
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    color: #b2b2b2;
    transition: color 0.25s ease;
    pointer-events: none;
}

.login-form .input-icon svg {
    display: block;
    width: 20px;
    height: 20px;
}

.login-form .login-input {
    width: 100%;
    height: 80px;
    padding: 0 30px 0 65px;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    font-family: 'KoPubWorldDotum', sans-serif;
    font-weight: 300;
    font-size: 18px;
    color: #111111;
    background-color: #ffffff;
    box-sizing: border-box;
    transition: all 0.25s ease;
}

.login-form .login-input::placeholder {
    color: #b2b2b2;
    font-weight: 300;
}

.login-form .login-input:focus {
    border-color: #6BD9C3;
    outline: none;
    box-shadow: 0 0 0 3px rgba(107, 217, 195, 0.12);
}

.login-form .input-group:focus-within .input-icon {
    color: #6BD9C3;
}

.btn-submit-wrap {
    margin-top: 0;
}

.btn-login-submit {
    width: 100%;
    height: 80px;
    border: none;
    border-radius: 6px;
    background: linear-gradient(to left, #d9d56b 8.18%, #b1d68b 24.57%, #6bd9c3 93.51%);
    font-family: 'KoPubWorldDotum', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: #ffffff;
    cursor: pointer;
    box-sizing: border-box;
    transition: all 0.25s ease;
    box-shadow: 0px 4px 10px rgba(107, 217, 195, 0.15);
}

.btn-login-submit:hover {
    opacity: 0.95;
    box-shadow: 0px 6px 15px rgba(107, 217, 195, 0.25);
    transform: translateY(-1px);
}

.btn-login-submit:active {
    transform: translateY(0);
}

.login-footer-links {
    margin-top: 22px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'KoPubWorldDotum', sans-serif;
    font-size: 16px;
    line-height: 32px;
}

.login-footer-links .link-item {
    color: #999999;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.login-footer-links .link-item:hover {
    color: #6BD9C3;
}

.login-footer-links .link-divider {
    color: #d9d9d9;
    margin: 0 20px;
    font-size: 12px;
    user-select: none;
}


/* ==========================================================================
   404 에러 스타일
   ========================================================================== */

.error-container {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 95px;
   width: 100%;
   padding: 200px 0px 300px 0px;
}

.error-code {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 150px;
   line-height: 150px;
   color: #111;
}

.error-desc {
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 500;
   font-size: 18px;
   line-height: 32px;
   color: #333;
   text-align: center;
}

.btn-error-home {
   display: inline-block;
   padding: 24px 128px;
   border-radius: 6px;
   background-color: #f4f4f4;
   font-family: 'KoPubWorldDotum', sans-serif;
   font-weight: 700;
   font-size: 22px;
   line-height: 32px;
   color: #111;
   text-decoration: none;
}



/* PC 기본 레이아웃 이하 대응 */
@media (max-width: 1400px) {
   /* 서브 공통 스타일 시작 */
   .main-section {
      padding-inline: 20px;
   }
   
   .main-section.main-visual {
      padding-inline: 20px;
   }
   
   .main-section.main-stages {
      padding-inline: 20px;
   }
   
   #sub-cavities .main-section.main-con3-5 {
      padding-inline: 20px;
   }
   
   #sub-cavities .main-section.main-con4 {
      padding-inline: 20px;
   }
   
   .main-section.main-insurance {
      padding-inline: 20px;
   }
   
   .main-section.main-care-management {
      padding-inline: 20px;
   }
   /* 서브 공통 스타일 끝 */
   
   /* 서브 체크 스타일 시작 */
   .check-content .check-item {
      gap: 70px;
   }
   
   .check-item.img-right .item-text {
      padding-left: 0;
   }
   /* 서브 체크 스타일 끝 */
   
   /* [리얼후기 게시판(main-review-board) 섹션] 태블릿 스타일 시작 */
   #sub-review .board-container {
      padding: 0 40px;
   }
   
   /* 고정 420px 카드 → 그리드 유동 폭으로 3열 넘침 방지 */
   #sub-review .review-card-item {
      width: auto;
      height: auto;
      min-height: 503px;
   }
   
   #sub-review .review-cards-grid {
      gap: 40px 20px;
   }
   
   /* 검색창이 화면을 넘지 않도록 유동 폭 처리 */
   #sub-review .search-input-wrap {
      width: 100%;
      max-width: 392px;
   }
   /* [리얼후기 게시판(main-review-board) 섹션] 태블릿 스타일 끝 */
   
   /* 오시는 길 스타일 시작 */
   .direction-container {
      padding-inline: 20px;
   }
   
   .map-api-area {
      overflow: hidden;
      border-radius: 8px;
   }
   
   .transport-card {
      width: 100%;
   }
   /* 오시는 길 스타일 끝 */
   
   .main-section.main-whitening-case {
      padding-inline: 20px;
   }
}

/* 반응형 대응 */
@media (max-width: 1024px) {
   /* 서브 체크 스타일 시작 */
   .check-content .check-item {
      flex-direction: column;
      gap: 50px;
   }
   
   .check-content .check-item.img-right {
      flex-direction: column-reverse;
   }
   
   .check-item .item-img img {
      width: 100%;
   }
   /* 서브 체크 스타일 끝 */
   
   /* 마테리얼 스타일 시작 */
   .material-card {
      padding-inline: 15px;
   }
   
   .material-card .card-features li {
      font-size: 1.5vw;
   }
   /* 마테리얼 스타일 끝 */
   
   /* [임플란트 전·후] 태블릿 스타일 시작 */
   .main-cases__subtitle {
      font-size: 32px;
      line-height: 42px;
      margin-bottom: 30px;
   }
   
   .main-cases__case-num {
      left: -30px;
   }

   .main-cases__notice {
      font-size: 18px;
   }

   .main-cases__tab-item {
      padding: 0px 30px;
   }

   .main-cases__case-title {
      font-size: 42px;
      line-height: 56px;
   }

   .main-cases__review-text {
      font-size: 24px;
      line-height: 38px;
      padding-bottom: 50px;
   }
   
   .main-cases__image-desc {
      width: 96%;
   }
   
   .main-cases__bottom-bar {
      top: 160px;
   }

   .main-cases__more-btn {
      padding: 22px 42px;
      font-size: 15px;
   }
   /* [임플란트 전·후] 태블릿 스타일 끝 */
   
    .timing-top-layout,
    .text-image-split {
        flex-direction: column;
        gap: 50px;
        padding: 0 20px;
    }
    
    .timing-visual, .timing-info {
        width: 100%;
    }
    
    .timing-visual {
      width: 80%;
      height: 450px;
      margin-inline: auto;
    }
    
    .timing-steps {
      margin-top: 20px;
    }
    
    .step-box:not(:last-child)::after {
      display: none;
    }
    
    .check-grid-5 {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 20px;
    }
    
    .check-grid-5 .grid-item {
        height: auto;
        padding-bottom: 30px;
    }
    
    .main-con2 .slider-controls {
        position: static;
        margin-top: 30px;
        justify-content: center;
    }

    .case-box {
        padding: 50px 20px 40px 20px;
    }

    .case-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        padding-top: 60px;
    }

    .case-title {
        font-size: 32px;
        line-height: 44px;
    }

    .case-tags {
        flex-wrap: wrap;
        gap: 8px;
    }

    .case-content-grid {
        flex-direction: column;
        gap: 30px;
        margin: 30px 0;
    }

    .case-img-area {
        width: 100%;
        height: 300px;
    }

    .case-footer .summary-highlight {
        font-size: 20px;
        line-height: 30px;
    }
    
    .process-container {
        padding: 0 20px;
    }
    
    .process-step-cards {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .process-card {
        height: auto;
        padding: 40px 30px 80px 30px;
    }

    /* ==========================================================================
       충치치료 - 반응형 대응 (max-width: 1024px)
       ========================================================================== */
    #sub-cavities .main-section.main-con2,
    #sub-cavities .main-section.main-con3,
    #sub-cavities .main-section.main-con3-5,
    #sub-cavities .main-section.main-con4,
    #sub-cavities .main-section.main-con5 {
        padding: 100px 20px;
    }
    #sub-cavities .main-con2 .section-header,
    #sub-cavities .main-con3 .section-header,
    #sub-cavities .main-con3-5 .section-header,
    #sub-cavities .main-con5 .section-header {
        margin-bottom: 50px;
        padding: 0 20px;
    }
    #sub-cavities .main-con2 .section-title,
    #sub-cavities .main-con3 .section-title,
    #sub-cavities .main-con3-5 .section-title,
    #sub-cavities .main-con4 .section-header .section-title,
    #sub-cavities .main-con5 .section-title {
        font-size: 32px;
        line-height: 46px;
    }
    #sub-cavities .main-con2 .section-title--bold {
        font-size: 36px;
        line-height: 50px;
    }
    #sub-cavities .main-con2 .section-desc,
    #sub-cavities .main-con3 .section-desc,
    #sub-cavities .main-con3-5 .section-desc {
        font-size: 17px;
        line-height: 28px;
    }
    #sub-cavities .step-grid-4 {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 20px;
    }
    #sub-cavities .step-card {
        height: auto;
        padding: 40px 30px 90px 30px;
    }
    #sub-cavities .step-card .card-sub {
        margin-bottom: 25px;
    }
    #sub-cavities .step-card .card-badge {
        position: absolute;
        bottom: 30px;
        left: 30px;
        right: auto;
    }
    #sub-cavities .treatment-cards {
        flex-direction: column;
        gap: 20px;
        padding: 0 20px;
    }
    #sub-cavities .treatment-banner {
        height: auto;
        padding: 40px 20px;
        margin: 40px 20px 0 20px;
    }
    #sub-cavities .treatment-banner .banner-text h3 {
        font-size: 22px;
        line-height: 28px;
    }
    #sub-cavities .treatment-banner .banner-text p {
        font-size: 15px;
        line-height: 22px;
    }
    #sub-cavities .treatment-last-cards {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 20px;
    }
    #sub-cavities .treatment-last-card {
        height: auto;
        padding: 40px 30px;
    }
    #sub-cavities .compare-table-wrapper {
        padding: 0 20px;
        margin-bottom: 80px;
        overflow: hidden;
        -webkit-overflow-scrolling: touch;
    }
    #sub-cavities .compare-column-header,
    #sub-cavities .compare-columns {
        grid-template-columns: 100px 1fr 1fr;
    }
    #sub-cavities .compare-column-header .head-col {
        font-size: 16px;
    }
    #sub-cavities .compare-column {
        height: auto;
    }
    #sub-cavities .compare-column .row-cell {
        font-size: 14px;
        padding: 10px 5px;
        height: 60px;
    }

    /* ==========================================================================
       틀니 / 미백 - 관리 및 오해 (main-care-management) 반응형 대응 (max-width: 1024px)
       ========================================================================== */
    .main-section.main-care-management {
        padding: 100px 0;
    }
    .care-header {
        margin-bottom: 50px;
        padding: 0 20px;
    }
    .care-header .section-title {
        font-size: 32px;
        line-height: 46px;
    }
    .care-header .section-title--bold {
        font-size: 36px;
    }
    .care-header .section-desc {
        font-size: 17px;
        line-height: 28px;
    }
    .care-block-checklist,
    .care-block-misconceptions {
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
        margin-bottom: 80px;
        align-items: center;
    }
    .care-block-misconceptions {
        flex-direction: column-reverse;
        margin-bottom: 0;
    }
    .care-block-checklist .care-img-box,
    .care-block-misconceptions .care-img-box {
        width: 100%;
        max-width: 630px;
        height: auto;
        aspect-ratio: 630 / 591;
    }
    .care-block-misconceptions .care-img-box {
        aspect-ratio: 630 / 607;
    }
    .care-info-box {
        width: 100%;
        max-width: 612px;
    }
    .care-block-title {
        font-size: 36px;
        line-height: 48px;
        margin-bottom: 25px;
        text-align: center;
    }
    .checklist-item {
        padding: 0 20px;
        height: auto;
        min-height: 80px;
        padding-top: 15px;
        padding-bottom: 15px;
    }
    .checklist-text {
        font-size: 18px;
        line-height: 26px;
    }
    .misconception-card {
        padding: 25px;
        height: auto;
    }
    .misconception-card .card-question {
        font-size: 18px;
        line-height: 24px;
        margin-bottom: 10px;
    }
    .misconception-card .card-answer {
        font-size: 15px;
        line-height: 24px;
    }

    /* 로그인 반응형 대응 */
    #sub-login .main-section.login-section {
        padding: 120px 20px;
        min-height: auto;
    }
    .login-container {
        width: 100%;
        max-width: 740px;
        padding: 0;
    }
    .login-title {
        font-size: 32px;
        line-height: 44px;
        margin-bottom: 20px;
    }
    .login-form .login-input,
    .btn-login-submit {
        height: 60px;
        font-size: 16px;
    }
    .login-form .login-input {
        padding: 0 20px 0 54px;
    }
    .login-form .input-icon {
        left: 20px;
    }
    .login-footer-links {
        font-size: 14px;
    }
    .login-footer-links .link-divider {
        margin: 0 15px;
    }

    /* ==========================================================================
       리얼후기 상세 (sub-review-detail) 반응형 대응 (max-width: 1024px)
       ========================================================================== */
    #sub-review-detail .main-section.main-visual {
        padding: 100px 0 0 0;
    }
    #sub-review-detail .main-review-detail {
        padding: 100px 0;
    }
    #sub-review-detail .review-detail-container {
        padding: 0 20px;
    }
    #sub-review-detail .review-detail-title {
        font-size: 36px;
        line-height: 48px;
    }
    #sub-review-detail .review-detail-subtitle {
        font-size: 18px;
        line-height: 28px;
        margin-top: 20px;
    }
    #sub-review-detail .review-detail-meta {
        margin-top: 20px;
    }
    #sub-review-detail .review-detail-divider-line {
        margin: 35px 0;
    }
    #sub-review-detail .review-detail-image {
        height: auto;
        aspect-ratio: 740 / 350;
        margin: 60px 0 40px 0;
    }
    #sub-review-detail .review-detail-paragraph {
        font-size: 15px;
        line-height: 28px;
    }
    #sub-review-detail .review-detail-subheader h3 {
        font-size: 20px;
        line-height: 24px;
    }
    #sub-review-detail .review-detail-footer {
        margin-top: 60px;
    }

    /* [틀니 종류(main-denture-types)] 태블릿 스타일 시작 */
    .main-section.main-denture-types {
        padding: 100px 0;
    }
    .main-denture-types .section-header {
        margin-bottom: 50px;
        padding: 0 20px;
    }
    .main-denture-types .section-title {
        font-size: 32px;
        line-height: 46px;
    }
    .main-denture-types .section-title--bold {
        font-size: 36px;
        line-height: 50px;
    }
    .main-denture-types .section-desc {
        font-size: 17px;
        line-height: 28px;
    }
    .types-grid-quad {
        gap: 16px;
        padding: 0 20px;
    }
    .type-quad-card {
        height: auto;
        min-height: 339px;
        padding: 40px 30px;
    }
    /* [틀니 종류(main-denture-types)] 태블릿 스타일 끝 */

    /* [소아·청소년 보험 진료(pediatric-insurance) 섹션] 태블릿 스타일 시작 */
    .pediatric-insurance__container {
        padding: 0 40px;
        box-sizing: border-box;
    }

    .pediatric-insurance__header {
        margin-bottom: 60px;
    }

    .pediatric-insurance__title {
        font-size: 32px;
        line-height: 50px;
    }

    .pediatric-insurance__title--bold {
        font-size: 36px;
    }

    .pediatric-insurance__description {
        font-size: 18px;
        line-height: 30px;
        margin-top: 20px;
    }

    .pediatric-insurance__cards {
        gap: 16px;
    }

    .pediatric-insurance__card {
        height: auto;
        padding-bottom: 25px;
    }

    .pediatric-insurance__img-wrap {
        height: 150px;
    }

    .pediatric-insurance__tag {
        margin-top: 20px;
        font-size: 14px;
    }

    .pediatric-insurance__card-title {
        font-size: 16px;
    }
    /* [소아·청소년 보험 진료(pediatric-insurance) 섹션] 태블릿 스타일 끝 */

    /* [오시는 길(sub-location) 섹션] 태블릿 스타일 시작 */
    .main-section.main-direction-info {
        padding: 100px 0;
    }

    .map-viewport-wrapper {
        max-width: 100%;
        height: 480px;
        padding: 0 24px;
        box-sizing: border-box;
    }

    .transport-guide-wrap {
        margin-top: 100px;
        padding: 0 24px;
        box-sizing: border-box;
    }

    .transport-guide-wrap .section-header {
        margin-bottom: 50px;
    }

    .transport-guide-wrap .section-title {
        font-size: 32px;
        line-height: 48px;
    }

    .transport-grid-quad {
        max-width: 100%;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .transport-card {
        width: 100%;
        height: auto;
        min-height: 210px;
        padding: 40px 30px;
    }

    .card-guide-title {
        font-size: 20px;
        line-height: 28px;
    }

    .card-guide-desc {
        font-size: 15px;
        line-height: 24px;
    }
    /* [오시는 길(sub-location) 섹션] 태블릿 스타일 끝 */

    /* [공지사항 게시판(main-notice-board) 섹션] 태블릿 스타일 시작 */
    #sub-notice .main-notice-board {
        padding: 120px 0;
    }
    #sub-notice .board-container {
        padding: 0 40px;
    }
    #sub-notice .board-top-bar {
        margin-bottom: 40px;
    }
    /* 검색창이 화면을 넘지 않도록 유동 폭 처리 */
    #sub-notice .search-input-wrap {
        width: 100%;
        max-width: 392px;
    }
    /* 고정 열폭 축소 + 제목 들여쓰기 완화로 가로 넘침 방지 */
    #sub-notice .th-no, #sub-notice .td-no { width: 90px; }
    #sub-notice .th-category, #sub-notice .td-category { width: 140px; }
    #sub-notice .th-date, #sub-notice .td-date { width: 130px; }
    #sub-notice .th-views, #sub-notice .td-views { width: 90px; }
    #sub-notice .notice-list-table td.td-title {
        padding-left: 24px;
        padding-right: 16px;
    }
    /* [공지사항 게시판(main-notice-board) 섹션] 태블릿 스타일 끝 */
   
   /* 치과 둘러보기 태블릿 스타일 시작 */
   #sub-clinic-tour .facility-slider-wrapper {
      padding-inline: 16px;
   }
   /* 치과 둘러보기 태블릿 스타일 끝 */
   
   /* 원장님 소개 태블릿 스타일 시작 */
   .greeting-box {
        flex-direction: column; /* 세로 배치로 전환 */
        gap: 40px; /* 이미지와 텍스트 사이 간격 */
        padding: 60px 20px; /* 좌우 여백 추가로 화면 선 넘지 않게 조절 */
    }

    .greeting-doctor__image-container {
        max-width: 500px; /* 태블릿에서는 중앙에 적당한 크기로 배치 */
        width: 100%;
    }

    .doctor-greeting .greeting-message-wrap {
        width: 100%; /* 가로 전체를 쓰도록 변경 */
        max-width: 100%;
    }
    
    .doctor-greeting .greeting-logo-banner {
        margin-top: 40px; /* 간격 최적화 */
    }
   /* 원장님 소개 태블릿 스타일 끝 */
}


/* 반응형 대응 */
@media (max-width: 768px) {
   /* 서브 페이지 별 비주얼 배경 */
   #sub-implant .main-section.main-visual {background: #f2f2f2 url('../images/sub/01-implant/bg-visual-mo.webp') no-repeat center / cover} /* 임플란트 */
   #sub-wisdom .main-section.main-visual {background: #f2f2f2 url('../images/sub/02-wisdom/bg-visual-mo.webp') no-repeat center / cover} /* 사랑니발치 */
   #sub-cavities .main-section.main-visual {background: #f2f2f2 url('../images/sub/03-cavities/bg-visual-mo.webp') no-repeat center / cover} /* 충치치료 */
   #sub-treatment .main-section.main-visual {background: #f2f2f2 url('../images/sub/04-treatment/bg-visual-mo.webp') no-repeat center / cover} /* 스케일링 */
   #sub-whitening .main-section.main-visual {background: #f2f2f2 url('../images/sub/05-whitening/bg-visual-mo.webp') no-repeat center / cover} /* 미백 */
   #sub-dentistry .main-section.main-visual {background: #f2f2f2 url('../images/sub/06-dentistry/bg-visual-mo.webp') no-repeat center / cover} /* 소아치료 */
   #sub-senior-dentures .main-section.main-visual {background: #f2f2f2 url('../images/sub/07-senior-dentures/bg-visual-mo.webp') no-repeat center / cover} /* 틀니 */
   #sub-clinic-tour .main-section.main-visual {background: #f2f2f2 url('../images/sub/08-clinic-tour/bg-visual-mo.webp') no-repeat center / cover} /* 치과둘러보기 */
   #sub-doctor-about .main-section.main-visual {background: #f2f2f2 url('../images/sub/09-doctor-about/bg-visual-mo.webp') no-repeat center / cover} /* 원장소개 */
   #sub-location .main-section.main-visual {background: #f2f2f2 url('../images/sub/12-location/bg-visual-mo.webp') no-repeat center / cover} /* 원장소개 */
   #sub-review .main-section.main-visual {background: #f2f2f2 url('../images/sub/10-mo.webp') no-repeat center / cover} /* 리얼리뷰 */
   
   /* 서브 공통 스타일 모바일 시작 */
   .main-section {
      padding: 80px 0;
   }
   
   .main-section.main-con3 {
      padding-inline: 20px;
   }
   
   .mo-br {
      display: block;
   }
   
   .mo-text--center {
      text-align: center;
   }
   
   .pc-visible {
      display: none;
   }
   /* 서브 공통 스타일 모바일 시작 */
   
   /* [비주얼 섹션] 모바일 스타일 시작 */
   .main-section.main-visual {
      padding: 60px 0 0 0;
   }
   .visual-container {
      height: 590px;
      padding: 79px 20px 60px 20px;
   }
   .visual-container.sub-title--on {
      padding: 40px 20px 60px 20px;
   }
   .visual-title {
      font-size: 24px;
      line-height: 40px;
   }
   .visual-title strong {
      padding-top: 8px;
      font-size: 30px;
      line-height: 40px;
   }
   .visual-desc {
      margin-top: 24px;
      font-size: 16px;
      line-height: 26px;
   }
   .visual-tags {
      margin-top: 77px;
      flex-wrap: wrap;
      gap: 16px;
   }
   .tag-item {
      padding: 8px 16px;
      font-size: 13px;
   }
   /* [비주얼 섹션 섹션] 모바일 스타일 끝 */

   /* [체크 형식(main-check) 섹션] 모바일 스타일 시작 */
   .main-section.main-check {
      padding: 80px 0;
   }
   .check-container {
      padding: 0 16px;
   }
   .main-check .section-header {
      margin-bottom: 40px;
   }
   .main-check .section-sub {
      font-size: 12px;
      line-height: 18px;
   }
   .main-check .section-header .section-title {
      margin-top: 12px;
      font-size: 20px;
      line-height: 34px;
   }
   .main-check .section-header .section-title--bold {
      font-size: 26px;
   }
   /* 좌우 배치 → 세로 스택(이미지 상단 + 텍스트 하단) */
   .check-content .check-item {
      flex-direction: column;
      gap: 20px;
      margin-bottom: 48px;
   }
   .check-content .check-item.img-right {
      flex-direction: column-reverse;
   }
   .check-item.img-right .item-text {
      padding-left: 0;
   }
   .check-content .item-text {
      max-width: 100%;
   }
   .check-content .item-img img {
      display: block;
      width: 100%;
      aspect-ratio: 343 / 226;
      object-fit: cover;
      border-radius: 13px;
   }
   .check-content .item-text .item-num {
      margin: 0 0 12px 0;
      font-size: 14px;
      line-height: 21px;
   }
   .check-content .item-text .item-title {
      margin-bottom: 12px;
      font-size: 20px;
      line-height: 28px;
   }
   .check-content .item-text .item-desc {
      font-size: 14px;
      line-height: 24px;
   }
   .check-content .item-text .item-highlight {
      margin-top: 8px;
      font-size: 14px;
      line-height: 28px;
   }
   /* [체크 형식(main-check) 섹션] 모바일 스타일 끝 */

   /* [충치 4단계(main-stages) 섹션] 모바일 스타일 시작 */
   .main-section.main-stages {
      padding: 80px 0;
   }
   .stages-container {
      padding: 0;
   }
   .main-stages .section-header {
      margin-bottom: 40px;
      padding: 0 25px;
      text-align: left;
   }
   .main-stages .section-sub {
      font-size: 12px;
      line-height: 18.67px;
      margin-bottom: 12px;
   }
   .main-stages .section-title {
      font-size: 20px;
      line-height: 34px;
   }
   .main-stages .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }
   .main-stages .section-desc {
      margin-top: 24px;
      font-size: 15px;
      line-height: 26px;
   }
   .stages-grid {
      display: flex;
      gap: 15px;
      margin-top: 40px;
      padding: 10px 25px 20px 25px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scroll-padding-left: 15px;
   }
   .stages-grid::-webkit-scrollbar {
      display: none;
   }
   .stage-card {
      flex-shrink: 0;
      width: 267px;
      height: 283px;
      padding: 20px;
      scroll-snap-align: start;
   }
   .stage-card .stage-num {
      font-size: 14px;
      line-height: 21.33px;
      margin-bottom: 17px;
   }
   .stage-card .stage-title {
      font-size: 16px;
      line-height: 20px;
      margin-bottom: 8px;
   }
   .stage-card .stage-sub-desc {
      font-size: 13px;
      line-height: 19px;
      margin-bottom: 16px;
   }
   .stage-card .stage-features {
      padding-top: 20px;
   }
   .stage-card .stage-features li {
      font-size: 14px;
      line-height: 25px;
   }
   .stage-card .stage-badge {
      right: 20px;
      bottom: 20px;
      padding: 0 16px;
      font-size: 14px;
   }
   
   /* 숫자 바 인디케이터 스타일 */
   .stages-indicator {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 13px;
      margin-top: 30px;
   }
   .stages-indicator .indicator-num {
      font-family: 'KoPubWorldDotum', sans-serif;
      font-weight: 700;
      font-size: 13px;
      line-height: 16px;
      color: #fff;
   }
   .stages-indicator .indicator-bar {
      position: relative;
      width: 60px;
      height: 2px;
      background-color: rgba(255, 255, 255, 0.2);
   }
   .stages-indicator .indicator-bar .indicator-bar-active {
      position: absolute;
      left: 0;
      top: 0;
      width: 15px; /* 첫 번째 슬라이드 활성화 상태 */
      height: 100%;
      background-color: #fff;
      transition: width 0.3s ease, left 0.3s ease;
   }
   /* [충치 4단계(main-stages) 섹션] 모바일 스타일 끝 */

   /* [자주 묻는 질문(main-faq) 섹션] 모바일 스타일 시작 */
   .main-faq .faq-container {
      padding: 0 25px;
   }
   .main-faq .section-header {
      margin-bottom: 40px;
   }
   .main-faq .section-sub {
      font-size: 12px;
      line-height: 18px;
   }
   .main-faq .section-header .section-title {
      margin-top: 14px;
      font-size: 20px;
      line-height: 34px;
   }
   .main-faq .section-header .section-title--bold {
      font-size: 26px;
   }
   .main-faq .section-header .section-desc {
      margin-top: 12px;
      font-size: 15px;
      line-height: 26px;
      color: #333;
   }
   /* 아코디언 화살표(배경 이미지) 위치·크기 모바일 대응 */
   .faq-accordion-list .accordion-item,
   .faq-accordion-list .accordion-item[open] {
      background-position: right 10px top 24px;
      background-size: 14px auto;
   }
   .faq-accordion-list .accordion-question {
      gap: 9px;
      height: 56px;
      padding-left: 10px;
   }
   /* Q 아이콘: PC 알약형 → 모바일 18px 원형 */
   .faq-accordion-list .icon-q {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      padding: 0;
      border-radius: 50%;
      font-size: 11px;
      line-height: 1;
   }
   .faq-accordion-list h3 {
      padding-right: 25px;
      font-size: 14px;
      line-height: 20px;
   }
   .faq-accordion-list .accordion-answer {
      padding: 16px 15px;
      border-radius: 12px;
   }
   .faq-accordion-list .accordion-answer p {
      font-size: 12px;
      line-height: 24px;
   }
   /* [자주 묻는 질문(main-faq) 섹션] 모바일 스타일 끝 */

   /* [재료 설명(main-material) 섹션] 모바일 스타일 시작 */
   .main-section.main-material {
      padding: 80px 0;
   }
   .material-container {
      padding: 0 0;
   }
   .material-container .section-header {
      padding: 0 20px;
   }
   .material-container .section-sub {
      font-size: 12px;
      line-height: 18px;
   }
   .material-container .section-title {
      margin-top: 12px;
      font-size: 20px;
      line-height: 34px;
   }
   .material-container .section-title .section-title--bold {
      font-size: 26px;
   }
   .material-container .section-title .section-title--bold.underline {
      background-size: auto 10px;
      background-position: left calc(50% - 12px) bottom 2px;
   }
   .material-container .section-notice {
      margin-top: 14px;
      font-size: 15px;
      line-height: 26px;
   }
   .material-cards {
      display: flex;
      gap: 15px;
      margin-top: 40px;
      padding: 10px 20px 20px 20px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-left: 20px;
      -webkit-overflow-scrolling: touch;
   }
   .material-cards::-webkit-scrollbar {
      display: none;
   }
   .material-card {
      flex-shrink: 0;
      width: 267px;
      height: auto;
      min-height: 238px;
      padding: 0px 24px 24px 24px;
      border-radius: 13px;
      scroll-snap-align: start;
   }
   .material-card .card-badge {
      padding: 8px 15px;
      border-top-left-radius: 13px;
      border-bottom-right-radius: 13px;
      font-size: 11px;
      line-height: 16px;
   }
   .material-card .card-name {
      padding-top: 57px;
      font-size: 16px;
      line-height: 20px;
   }
   .material-card .card-sub-desc {
      padding-bottom: 15px;
      font-size: 13px;
      line-height: 18px;
   }
   .material-card .card-features {
      padding-top: 15px;
   }
   .material-card .card-features li {
      padding-left: 10px;
      font-size: 13px;
      line-height: 24px;
      background-size: 3px 3px;
   }
   .material-bottom-banner {
      height: 160px;
      margin: 40px 0 0 0;
      width: 100%;
      border-radius: 0px;
      background: url("../images/sub/01-implant/bg-material-banner-mo.webp") no-repeat center / cover;
   }
   .material-bottom-banner .banner-text {
      padding-bottom: 10px;
      font-size: 24px;
      line-height: 40px;
   }
   .material-bottom-banner .banner-sub {
      font-size: 12px;
      line-height: 32px;
   }
   /* [재료 설명(main-material) 섹션] 모바일 스타일 끝 */

   /* [충치치료 - 신경치료(main-con3-5) 섹션] 모바일 스타일 시작 */
   #sub-cavities .main-section.main-con3-5 {
      background: #fff;
      padding: 76px 0 80px 0;
   }
   #sub-cavities .con3-5-container {
      padding: 0;
   }
   #sub-cavities .main-con3-5 .section-header {
      margin-bottom: 30px;
      padding: 0 25px;
   }
   #sub-cavities .main-con3-5 .section-sub {
      font-size: 12px;
      line-height: 18px;
      margin-bottom: 12px;
   }
   #sub-cavities .main-con3-5 .section-title {
      font-size: 20px;
      line-height: 34px;
   }
   #sub-cavities .main-con3-5 .section-title--bold {
      font-size: 26px;
      line-height: 38px;
      margin-top: 5px;
      display: block;
   }
   #sub-cavities .main-con3-5 .section-desc {
      font-size: 14px;
      line-height: 22px;
      margin-top: 15px;
   }
   #sub-cavities .treatment-last-cards {
      grid-template-columns: 1fr;
      gap: 15px;
      padding: 0 25px;
   }
   #sub-cavities .treatment-last-card {
      height: 200px;
      padding: 30px 20px 30px 24px;
      background-color: #f8f8f8;
   }
   #sub-cavities .treatment-last-card .card-icon {
      width: 23px;
      height: 23px;
      margin-bottom: 15px;
   }
   #sub-cavities .treatment-last-card .card-title {
      font-size: 14px;
      line-height: 20px;
      margin-bottom: 7px;
   }
   #sub-cavities .treatment-last-card .card-desc {
      font-size: 13px;
      line-height: 25px;
   }
   #sub-cavities .treatment-last-card .card-desc br {
      display: none;
   }
   /* [충치치료 - 신경치료(main-con3-5) 섹션] 모바일 스타일 끝 */

   /* [충치치료 - 치료 타이밍(main-con4) 섹션] 모바일 스타일 시작 */
   #sub-cavities .main-section.main-con4 {
      padding: 76px 0 80px 0;
   }
   #sub-cavities .con4-container {
      padding: 0;
   }
   #sub-cavities .main-con4 .section-header {
      margin-bottom: 30px;
      padding: 0 25px;
   }
   #sub-cavities .main-con4 .section-header .section-sub {
      font-size: 12px;
      line-height: 18px;
      margin-bottom: 12px;
   }
   #sub-cavities .main-con4 .section-header .section-title {
      font-size: 20px;
      line-height: 34px;
   }
   #sub-cavities .main-con4 .section-header .section-title--bold {
      font-size: 26px;
      line-height: 38px;
      margin-top: 5px;
      display: block;
   }
   #sub-cavities .main-con4 .section-header .section-desc {
      font-size: 14px;
      line-height: 22px;
      margin-top: 15px;
   }
   
   /* 비교 테이블 반응형 */
   #sub-cavities .compare-table-wrapper {
      padding: 0 25px;
      margin-bottom: 80px;
      overflow-x: visible;
   }
   #sub-cavities .compare-column-header,
   #sub-cavities .compare-columns {
      grid-template-columns: 80px 1fr 1fr;
      width: 100%;
      gap: 11px;
   }
   #sub-cavities .compare-column-header {
      height: 50px;
      margin-bottom: 11px;
   }
   #sub-cavities .compare-column-header .head-col {
      font-size: 14px;
      border-radius: 18px;
   }
   #sub-cavities .compare-column-header .head-col.blank {
      background: transparent;
   }
   #sub-cavities .compare-column {
      height: 307px;
      border-radius: 18px;
   }
   #sub-cavities .compare-column .row-cell {
      height: 51.16px; /* 307px / 6 */
      font-size: 14px;
      padding: 5px;
      line-height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   #sub-cavities .compare-column.col-labels .row-cell {
      font-weight: 300;
   }
   #sub-cavities .compare-column.col-active .row-cell {
      font-weight: 700;
   }
   #sub-cavities .compare-column.col-delay .row-cell {
      font-weight: 500;
   }
   #sub-cavities .table-footnote {
      margin-top: 15px;
      font-size: 11px;
      line-height: 18px;
      text-align: left;
      word-break: keep-all;
   }

   /* 지금 확인이 필요한 신호 반응형 */
   #sub-cavities .signal-layout {
      padding: 0 25px;
      text-align: left;
   }
   #sub-cavities .signal-layout .section-sub {
      font-size: 12px;
      line-height: 18px;
      margin-bottom: 12px;
      text-align: center;
   }
   #sub-cavities .signal-layout .section-title {
      margin-bottom: 40px;
      font-size: 20px;
      line-height: 34px;
      text-align: center;
   }
   #sub-cavities .signal-layout .section-title--bold {
      font-size: 26px;
      line-height: 38px;
      margin-top: 5px;
      display: block;
   }
   
   #sub-cavities .check-grid-5 {
      grid-template-columns: repeat(2, 1fr);
      gap: 11px;
      padding: 0;
   }
   #sub-cavities .check-grid-5 .grid-item {
      height: 148px;
      border-radius: 18px;
      box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.02);
   }
   #sub-cavities .check-grid-5 .thumb-img {
      height: 75px;
      border-radius: 18px 18px 0 0;
   }
   #sub-cavities .check-grid-5 .grid-item p {
      margin-top: 12px;
      padding: 0 10px;
      font-size: 14px;
      line-height: 20px;
      text-align: center;
   }
   #sub-cavities .grid-footnote {
      margin-top: 20px;
      font-size: 11px;
      line-height: 18px;
      text-align: left;
      word-break: keep-all;
   }
   /* [충치치료 - 치료 타이밍(main-con4) 섹션] 모바일 스타일 끝 */
   
   /* 충치치료 하단 인디케이터 바 모바일 스타일 시작 */
   .stages-slider-controls {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 20px;
   }

   .stages-slider-controls .slider-fraction {
      display: flex;
      align-items: center;
      font-family: 'KoPubWorldDotum';
      font-weight: 700;
      font-size: 13px;
      color: #fff;
      margin-right: 0;
   }

   .stages-slider-controls .slider-fraction .current {
      font-weight: 700;
      color: #fff;
   }

   .stages-slider-controls .slider-fraction .total {
      font-weight: 700;
      color: #fff;
   }

   .stages-slider-controls .slider-fraction .bar {
      position: relative;
      display: inline-block;
      width: 60px;
      height: 2px;
      background-color: #525252;
      margin: 0 13px;
   }

   .stages-slider-controls .slider-fraction .bar .bar-fill {
      position: absolute;
      left: 0;
      top: 0;
      width: 12px;
      height: 100%;
      background-color: #fff;
      transition: width 0.3s ease, left 0.3s ease;
   }
   /* 충치치료 하단 인디케이터 바 모바일 스타일 끝 */
   
   /* [임플란트 전·후] 모바일 스타일 시작 */
   .pc-only {
      display: none !important;
   }

   .mo-hidden {
      display: none !important;
   }

   .mo-only {
      display: inline !important;
   }

   .main-section.main-cases {
      padding: 80px 16px;
   }

   .main-cases__subtitle {
      font-size: 26px;
      line-height: 42px;
      margin: 20px 0 35px 0;
   }

   .main-cases__notice {
      font-size: 15px;
      line-height: 26px;
   }

   .main-cases__tab-list {
      margin-top: 50px;
   }

   .main-cases__tab-item {
      padding: 0 20px;
      border-radius: 14px;
      background: #1a1a1a;
   }

   .main-cases__tab-header {
      flex-direction: column;
      align-items: flex-start;
      padding: 50px 0 0 0;
   }

   .main-cases__case-num {
      left: -20px;
      padding: 8px 16px;
      border-radius: 14px 0 14px 0;
      font-size: 11px;
      line-height: 18px;
   }

   .main-cases__case-title {
      font-size: 28px;
      line-height: 40px;
      margin-top: 15px;
   }

   .main-cases__patient-list {
      margin-top: 15px;
      width: 100%;
   }

   .main-cases__patient-info {
      padding: 4px 12px;
      font-size: 10px;
      line-height: 13.33px;
   }

   .main-cases__image-list {
      margin: 25px 0;
   }

   .main-cases__image-item {
      width: 50%;
   }

   .blur-text {
      font-size: 12px;
      line-height: 30px;
      padding: 0 0 0 16px;
      background-size: 10px auto;
   }

   .main-cases__review-text {
      font-size: 19px;
      line-height: 30px;
      padding-bottom: 40px;
   }

   .main-cases__bottom-bar {
      position: static;
      justify-content: center;
      margin-top: 25px;
   }

   .main-cases__indicator {
      margin-right: 0;
      flex: none;
   }
   
   .main-cases__legal-notice {
      display: none;
   }

   .main-cases__more-btn {
      margin-top: 25px;
      padding: 15px 30px;
      font-size: 14px;
      line-height: 18px;
   }
   /* [임플란트 전·후] 모바일 스타일 끝 */

   /* [사랑니 발치 실제 진료 케이스 / main-con2] 모바일 스타일 시작 */
   .main-section.main-con2 {
      padding: 80px 0 60px 0;
   }

   .main-con2 .con2-container {
      padding: 0 25px;
   }

   .main-con2 .section-sub {
      font-size: 12px;
      line-height: 18.667px;
   }

   .main-con2 .section-title {
      font-size: 20px;
      line-height: 32px;
      margin: 10px 0 20px 0;
   }

   .main-con2 .section-title--bold {
      font-size: 26px;
      line-height: 36px;
   }

   .main-con2 .section-desc {
      font-size: 15px;
      line-height: 26px;
   }

   .main-con2 .case-viewport {
      margin-top: 40px;
   }

   .main-con2 .case-box {
      padding: 40px 20px 40px 20px;
   }
   
   .main-con2 .case-header {
      padding-top: 0;
   }

   .main-con2 .case-badge {
      padding: 7px 15px;
      font-size: 11px;
      line-height: 17px;
   }

   .main-con2 .case-title {
      font-size: 28px;
      line-height: 40px;
      margin-top: 20px;
   }

   .main-con2 .case-tags {
      margin-top: 20px;
   }

   .main-con2 .case-tags span {
      padding: 3px 10px;
      font-size: 10px;
      line-height: 14px;
   }

   .main-con2 .case-img-area {
      height: auto;
      aspect-ratio: 303 / 160;
   }

   .main-con2 .case-img-area .time-badge {
      top: auto;
      left: auto;
      bottom: 10px;
      right: 10px;
      padding: 4px 10px;
      font-size: 10px;
      line-height: 12px;
   }

   .main-con2 .case-text-area {
      padding-top: 0;
   }

   .main-con2 .case-text-area .info-title {
      font-size: 16px;
      line-height: 24px;
      margin-bottom: 12px;
   }

   .main-con2 .case-text-area .info-desc {
      font-size: 14px;
      line-height: 24px;
      margin-bottom: 15px;
   }

   .main-con2 .case-text-area .info-summary {
      font-size: 14px;
      line-height: 24px;
   }

   .main-con2 .case-footer {
      padding-top: 30px;
   }

   .main-con2 .case-footer .summary-highlight {
      font-size: 19px;
      line-height: 30px;
   }

   .main-con2 .main-cases__bottom-bar {
      position: relative;
      top: auto;
      right: auto;
      display: flex;
      justify-content: center;
      margin-top: 30px;
   }

   .main-con2 .main-cases__controls {
      display: none !important;
   }

   .main-con2 .main-cases__indicator {
      margin-right: 0;
      justify-content: center;
   }

   .main-con2 .main-cases__progress-bar {
      width: 60px;
   }

   .main-con2 .btn-more-cases {
      width: 220px;
      height: auto;
      margin: 35px auto 0 auto;
      padding: 16px 0;
      font-size: 14px;
      line-height: 18px;
      text-align: center;
      border-radius: 100px;
   }
   /* [사랑니 발치 실제 진료 케이스 / main-con2] 모바일 스타일 끝 */

   /* [진료 프로세스(main-process) 섹션] 모바일 스타일 시작 */
   .main-section.main-process {
      padding: 80px 0;
      background: #fff url('../images/sub/bg-process.jpg') no-repeat center top / cover;
   }

   .process-container {
      padding: 0;
   }

   .main-process .section-header {
      padding: 0 25px;
      margin-bottom: 40px;
   }

   .main-process .section-header .section-sub {
      font-size: 12px;
      line-height: 18.667px;
      color: #6bd9c3;
   }

   .main-process .section-header .section-title {
      margin-top: 14px;
      font-size: 20px;
      line-height: 32px;
   }

   .main-process .section-header .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }

   .main-process .section-header .section-desc {
      margin-top: 20px;
      font-size: 15px;
      line-height: 26px;
      color: #333;
   }

   .process-step-cards {
      display: flex;
      gap: 10px;
      margin-top: 40px;
      padding: 10px 25px 25px 25px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      scroll-padding-left: 20px;
   }

   .process-step-cards::-webkit-scrollbar {
      display: none;
   }

   .process-card {
      flex-shrink: 0;
      width: 267px;
      height: 248px;
      padding: 20px 19px;
      border-radius: 13px;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
      scroll-snap-align: start;
   }

   .process-card .card-num {
      margin-bottom: 18px;
      font-size: 14px;
      line-height: 21.33px;
   }

   .process-card .card-title {
      margin-bottom: 13px;
      font-size: 16px;
      line-height: 20px;
   }

   .process-card .card-desc {
      font-size: 13px;
      line-height: 19px;
   }

   .process-card .card-tag {
      right: 19px;
      bottom: 20px;
      height: 30px;
      padding: 0 15px;
      border-radius: 15px;
      font-size: 14px;
      line-height: 21.33px;
   }

   /* 모바일 슬라이드 하단 인디케이터 */
   .process-slider-controls {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 20px;
   }

   .process-slider-controls .slider-fraction {
      display: flex;
      align-items: center;
      font-family: 'KoPubWorldDotum';
      font-weight: 700;
      font-size: 13px;
      color: #111;
      margin-right: 0;
   }

   .process-slider-controls .slider-fraction .current {
      font-weight: 700;
      color: #111;
   }

   .process-slider-controls .slider-fraction .total {
      font-weight: 700;
      color: #111;
   }

   .process-slider-controls .slider-fraction .bar {
      position: relative;
      display: inline-block;
      width: 60px;
      height: 2px;
      background-color: #e0e0e0;
      margin: 0 13px;
   }

   .process-slider-controls .slider-fraction .bar .bar-fill {
      position: absolute;
      left: 0;
      top: 0;
      width: 12px;
      height: 100%;
      background-color: #111;
      transition: width 0.3s ease, left 0.3s ease;
   }
   /* [진료 프로세스(main-process) 섹션] 모바일 스타일 끝 */

   /* [임플란트 타이밍(main-timing) 섹션] 모바일 스타일 시작 */
   .main-section.main-timing {
       padding: 80px 20px;
   }
   
   .timing-container {
      /*padding: 0 20px;*/
   }
   
   .timing-top-layout {
       flex-direction: column;
       gap: 0;
       margin-bottom: 80px;
       padding: 0;
   }
   
   .timing-visual {
       display: none !important;
   }
   
   .timing-info {
       width: 100%;
   }
   
   .timing-info .section-sub {
       display: block;
       font-family: 'KoPubWorldDotum';
       font-weight: 700;
       font-size: 12px;
       line-height: 18px;
       color: #6BD9C3;
       margin-bottom: 12px;
   }
   
   .timing-info .section-title {
       margin-top: 0;
       margin-bottom: 40px;
       font-family: 'maruburi';
       font-weight: 400;
       font-size: 20px;
       line-height: 34px;
       color: #111;
   }
   
   .timing-info .section-title--bold {
       font-size: 26px;
       font-weight: 600;
       line-height: 42px;
   }
   
   .timing-steps {
       gap: 15px;
       margin-top: 0;
   }
   
   .step-box {
       padding: 24px 20px;
   }
   
   .step-box h3 {
       margin-bottom: 8px;
       font-size: 14px;
       line-height: 20px;
   }
   
   .step-num {
       width: 18px;
       height: 18px;
       font-size: 11px;
       line-height: 18px;
       margin-right: 8px;
   }
   
   .step-box p {
       font-size: 12px;
       line-height: 22px;
   }
   
   .step-box:not(:last-child)::after {
       bottom: -14px;
       width: 11px;
       height: 11px;
       background-size: contain;
   }
   
   .treatment-timing .step-box {
       height: auto;
       min-height: auto;
   }
   
   /* 지금 확인이 필요한 신호 */
   .timing-check-layout {
       padding-top: 0;
   }
   
   .timing-check-layout .section-sub {
       font-size: 12px;
       line-height: 18px;
       margin-bottom: 12px;
   }
   
   .timing-check-layout .section-title {
       margin-bottom: 40px;
       font-size: 20px;
       line-height: 34px;
   }
   
   .timing-check-layout .section-title--bold {
       font-size: 26px;
       line-height: 42px;
   }
   
   .check-grid-5 {
       grid-template-columns: repeat(2, 1fr);
       gap: 10px;
       padding: 0;
   }
   
   .check-grid-5 .grid-item {
       height: 148px;
       border-radius: 18px;
   }
   
   .check-grid-5 .thumb-img {
       height: 75px;
       border-radius: 18px 18px 0 0;
   }
   
   .check-grid-5 .grid-item p {
       margin-top: 12px;
       padding: 0 10px;
       font-size: 14px;
       line-height: 20px;
   }
   
   .grid-footnote {
       margin-top: 30px;
       font-size: 11px;
       line-height: 18px;
       word-break: keep-all;
   }
   
   .check-grid-5.check-grid-6 {
      grid-template-columns: repeat(2, 1fr);
   }
   
   .check-grid-5.check-grid-6 .grid-item {
      height: 148px;
   }
   /* [임플란트 타이밍(main-timing) 섹션] 모바일 스타일 끝 */

   /* [틀니 종류(main-denture-types) 섹션] 모바일 스타일 시작 */
   .main-section.main-denture-types {
      padding: 80px 0;
   }
   .types-container {
      padding: 0;
   }
   .main-denture-types .section-header {
      margin-bottom: 40px;
      padding: 0 25px;
   }
   .main-denture-types .section-sub {
      margin-bottom: 12px;
      font-size: 12px;
      line-height: 18.667px;
   }
   .main-denture-types .section-title {
      font-size: 20px;
      line-height: 32px;
   }
   .main-denture-types .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }
   .main-denture-types .section-desc {
      margin-top: 20px;
      max-width: 100%;
      font-size: 15px;
      line-height: 26px;
   }

   /* 카드: PC 2단 그리드 → 모바일 가로 스크롤 스냅 캐러셀 */
   .types-grid-quad {
      display: flex;
      grid-template-columns: none;
      gap: 15px;
      margin-top: 40px;
      padding: 10px 25px 5px 25px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scroll-padding-left: 15px;
      scrollbar-width: none;
      -ms-overflow-style: none;
   }
   .types-grid-quad::-webkit-scrollbar {
      display: none;
   }
   .type-quad-card {
      flex-shrink: 0;
      width: 87%;
      height: auto;
      min-height: 304px;
      padding: 35px 20px;
      scroll-snap-align: start;
   }
   .quad-title {
      font-size: 16px;
      line-height: 20px;
   }
   .quad-condition {
      margin-top: 8px;
      font-size: 13px;
      line-height: 19px;
   }
   .quad-divider {
      margin: 20px 0;
   }
   .main-denture-types .badge {
      width: 64px;
      font-size: 14px;
   }
   .type-quad-card .tag-text {
      font-size: 14px;
      line-height: 25px;
   }

   /* 슬라이드 하단 숫자 바 인디케이터 노출 */
   .types-slide-nav {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 13px;
      margin-top: 30px;
   }
   .slide-nav-num {
      font-family: 'KoPubWorldDotum';
      font-weight: 700;
      font-size: 13px;
      line-height: 16px;
      color: #fff;
   }
   .slide-nav-bar {
      position: relative;
      display: inline-block;
      width: 60px;
      height: 2px;
      background-color: rgba(255, 255, 255, 0.3);
   }
   .slide-nav-bar-fill {
      position: absolute;
      left: 0;
      top: 0;
      width: 15px;
      height: 100%;
      background-color: #fff;
      transition: width 0.3s ease, left 0.3s ease;
   }
   /* [틀니 종류(main-denture-types) 섹션] 모바일 스타일 끝 */

   /* [스케일링 보험(main-insurance) 섹션] 모바일 스타일 시작 */
   .main-section.main-insurance {
      padding: 80px 25px;
   }

   .main-insurance .section-header {
      margin-bottom: 40px;
   }

   .main-insurance .section-sub {
      font-size: 12px;
      line-height: 18px;
      margin-bottom: 12px;
   }

   .main-insurance .section-title {
      font-size: 20px;
      line-height: 32px;
   }

   .main-insurance .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }

   .main-insurance .section-desc {
      margin-top: 15px;
      font-size: 15px;
      line-height: 26px;
   }

   .insurance-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 10px 11px;
   }

   .insurance-grid .grid-item {
      height: 148px;
      box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.02);
   }

   .insurance-grid .thumb-img {
      height: 75px;
   }

   .insurance-grid .grid-item h3 {
      margin-top: 15px;
      font-size: 14px;
      line-height: 20px;
   }

   .insurance-grid .grid-item p {
      margin-top: 2px;
      font-size: 13px;
      line-height: 20px;
   }

   #sub-treatment .insurance-bottom-banner {
      margin-top: 50px;
   }

   #sub-treatment .insurance-bottom-banner .banner-text {
      font-size: 18px;
      line-height: 28px;
      margin-bottom: 15px;
   }

   #sub-treatment .insurance-bottom-banner .banner-highlight {
      font-size: 23px;
      line-height: 32px;
   }
   /* [스케일링 보험(main-insurance) 섹션] 모바일 스타일 끝 */

   /* [미백 비교(main-whitening-case) 섹션] 모바일 스타일 시작 */
   .main-section.main-whitening-case {
      padding: 80px 0;
   }

   .main-whitening-case .section-header {
      margin-bottom: 40px;
      padding: 0 25px;
   }

   .main-whitening-case .section-header .section-sub {
      font-size: 12px;
      line-height: 18.67px;
      margin-bottom: 12px;
   }

   .main-whitening-case .section-header .section-title {
      font-size: 20px;
      line-height: 34px;
   }

   .main-whitening-case .section-header .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }

   .main-whitening-case .section-header .section-desc {
      margin-top: 20px;
      font-size: 15px;
      line-height: 26px;
      color: #333;
   }

   .whitening-case-grid.type-comparison {
      display: flex;
      flex-direction: row;
      gap: 19px;
      justify-content: center;
      margin-top: 40px;
      padding: 0 25px;
   }

   .comparison-group {
      gap: 10px;
   }

   .comparison-group .group-header {
      height: 50px;
      border-radius: 18px;
      font-size: 14px;
      line-height: 18px;
   }

   .comparison-group .group-list {
      border-radius: 18px;
   }

   .comparison-group .group-list li {
      height: 51px;
      font-size: 14px;
      line-height: 18px;
      padding: 0 10px;
      text-align: center;
      word-break: keep-all;
   }

   .whitening-case-footnote {
      margin-top: 12px;
      font-size: 11px;
      line-height: 18px;
   }
   /* [미백 비교(main-whitening-case) 섹션] 모바일 스타일 끝 */

   /* [소아·청소년 보험 진료(pediatric-insurance) 섹션] 모바일 스타일 시작 */
   .pediatric-insurance {
      padding: 80px 0;
   }

   .pediatric-insurance__container {
      padding: 0;
      width: 100%;
   }

   .pediatric-insurance__header {
      margin-bottom: 43px;
      padding: 0 25px;
      text-align: center;
   }

   .pediatric-insurance__subtitle {
      font-size: 12px;
      line-height: 18.67px;
      margin-bottom: 12px;
   }

   .pediatric-insurance__title {
      font-size: 20px;
      line-height: 34px;
   }

   .pediatric-insurance__title--bold {
      font-size: 26px;
      line-height: 42px;
      letter-spacing: 0.99px;
   }

   .pediatric-insurance__description {
      margin-top: 20px;
      font-size: 15px;
      line-height: 26px;
      color: #333;
   }

   .pediatric-insurance__cards {
      display: flex;
      flex-wrap: nowrap;
      overflow-x: auto;
      gap: 11px;
      padding: 5px 25px 20px 25px;
      margin: 0;
      scrollbar-width: none;
      -ms-overflow-style: none;
   }

   .pediatric-insurance__cards::-webkit-scrollbar {
      display: none;
   }

   .pediatric-insurance__card {
      flex: 0 0 267px;
      height: 212px;
      box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.02);
   }

   .pediatric-insurance__img-wrap {
      height: 130px;
   }

   .pediatric-insurance__tag {
      margin-top: 20px;
      font-size: 12px;
      line-height: 21.33px;
   }

   .pediatric-insurance__card-title {
      margin-top: 1px;
      font-size: 14px;
      line-height: 20px;
   }
   /* [소아·청소년 보험 진료(pediatric-insurance) 섹션] 모바일 스타일 끝 */
   
   /* 노인 틀니 보험 모바일 스타일 시작 */
   .insurance-wide-banner {
      width: calc(100% + 50px);
      height: 160px;
      margin-inline: -25px;
   }
   
   .insurance-wide-banner .banner-title {
      margin-bottom: 11px;
      font-size: 24px;
   }
   
   .insurance-wide-banner .banner-desc {
      font-size: 12px;
      line-height: 20px;
   }
   
   .material-footer-banner {
      margin-top: 45px;
   }
   
   .footer-banner-notice {
      font-size: 18px;
      line-height: 28px;
   }
   
   .footer-banner-title {
      font-size: 23px;
      line-height: 38px;
   }
   
   .checklist-item:not(:last-child)::after {
      display: none;
   }
   /* 노인 틀니 보험 모바일 스타일 끝 */
   
   /* 404 에러 모바일 스타일 시작 */
   .error-container {
      gap: 40px;
      padding: 100px 0px 80px 0px;
   }

   .error-code {
      font-size: 80px;
      line-height: 80px;
   }

   .error-desc {
      font-size: 16px;
      line-height: 26px;
   }

   .btn-error-home {
      padding: 9px 34px;
      border-radius: 6px;
      font-size: 20px;
      line-height: 32px;
   }
   /* 404 에러 모바일 스타일 끝 */

   /* [회원가입약관 및 개인정보 동의(terms-section) 섹션] 모바일 스타일 시작 */
   #sub-signup-terms .main-section.terms-section {
       padding: 80px 0;
   }

   .terms-container {
       width: 100%;
       padding: 0 25px;
       box-sizing: border-box;
   }

   .terms-main-title {
       font-size: 32px;
       line-height: 50px;
       margin-bottom: 40px;
   }

   .terms-main-title strong {
       font-size: 32px;
       line-height: 50px;
   }

   .terms-box-panel {
       width: 100%;
       margin-bottom: 30px;
   }

   .panel-header {
       height: 55px;
       padding: 0 15px;
   }

   .panel-title {
       font-size: 16px;
   }

   .terms-scroll-viewer {
       height: 136px;
       padding: 21px 15px;
       font-size: 11px;
       line-height: 32px;
   }

   .terms-table-wrap {
       padding: 31px 15px;
   }

   .privacy-data-table th {
       height: 35px;
       font-size: 14px;
       line-height: 32px;
   }

   .privacy-data-table td {
       height: auto;
       font-size: 11px;
       line-height: 16px;
       padding: 8px 10px;
   }

   .all-agree-banner {
       width: 100%;
       height: 50px;
       margin-bottom: 40px;
   }

   .all-agree-text {
       font-size: 16px;
       line-height: 32px;
   }

   .terms-action-buttons {
       width: 100%;
       gap: 19px;
   }

   .btn-terms-action {
       flex: 1;
       height: 50px;
       font-size: 20px;
       line-height: 32px;
   }
   /* [회원가입약관 및 개인정보 동의(terms-section) 섹션] 모바일 스타일 끝 */

    /* [오시는 길(sub-location) 섹션] 모바일 스타일 시작 */
    .main-section.main-direction-info {
        padding: 60px 24px 80px 24px;
    }

    .direction-container {
        margin: 0 auto;
        padding-inline: 0;
    }

    .map-viewport-wrapper {
        height: auto;
        padding: 0;
    }

    .map-api-area {
        height: 226px;
        border-radius: 13px;
        overflow: hidden;
    }

    .map-floating-links {
        position: static;
        transform: none;
        left: auto;
        display: flex;
        gap: 19px;
        margin-top: 30px;
    }

    .btn-map-link {
        flex: 1;
        width: 100%;
        height: 46px;
        font-size: 16px;
    }

    .btn-map-link .map-link__text {
        width: 26px;
        height: 26px;
        margin-right: 10px;
    }

    .transport-guide-wrap {
        margin-top: 72px;
        padding: 0;
    }

    .transport-guide-wrap .section-header {
        margin-bottom: 30px;
    }

    .transport-guide-wrap .section-title {
        font-size: 26px;
        line-height: 42px;
        letter-spacing: 0.99px;
    }

    .transport-grid-quad {
        grid-template-columns: repeat(2, 1fr);
        gap: 11px;
    }

    .transport-card {
        width: 100%;
        height: 163px;
        min-height: auto;
        padding: 24px 20px 20px 20px;
        border-radius: 13px;
    }

    .transport-icon {
        width: 24px;
        height: 24px;
        margin-bottom: 14px;
    }

    .card-guide-title {
        font-size: 14px;
        line-height: 20px;
        letter-spacing: -0.14px;
        margin-bottom: 6px;
    }

    .card-guide-desc {
        font-size: 12px;
        line-height: 24px;
    }
    /* [오시는 길(sub-location) 섹션] 모바일 스타일 끝 */

   /* [공지사항 게시판(main-notice-board) 섹션] 모바일 스타일 시작 */
   #sub-notice .main-notice-board {
      padding: 80px 0;
   }
   #sub-notice .board-container {
      padding: 0 25px;
   }

   /* 상단 바: 컨트롤(전체+검색) 상단 / 카운트 하단으로 세로 재배치 */
   #sub-notice .board-top-bar {
      flex-direction: column-reverse;
      align-items: stretch;
      gap: 16px;
      margin-bottom: 24px;
   }
   #sub-notice .total-count {
      font-size: 14px;
   }
   #sub-notice .board-controls-group {
      gap: 11px;
   }
   #sub-notice .filter-select-wrap {
      flex: 0 0 89px;
      width: 89px;
      height: 45px;
      border-radius: 23px;
   }
   #sub-notice .filter-select-wrap select {
      padding: 0 28px 0 15px;
      font-size: 13px;
   }
   #sub-notice .filter-select-wrap::after {
      right: 15px;
   }
   #sub-notice .search-input-wrap {
      flex: 1 1 auto;
      width: auto;
      height: 45px;
      border-radius: 23px;
   }
   #sub-notice .control-input {
      padding: 0 45px 0 17px;
      font-size: 13px;
   }
   #sub-notice .btn-search {
      right: 17px;
   }

   /* 테이블 → 카드형 리플로우 */
   #sub-notice .notice-list-table,
   #sub-notice .notice-list-table thead,
   #sub-notice .notice-list-table tbody,
   #sub-notice .notice-list-table tr,
   #sub-notice .notice-list-table th,
   #sub-notice .notice-list-table td {
      display: block;
      width: auto;
      height: auto;
   }
   /* 헤더: 제목/날짜만 노출, NO·분류·조회수 숨김 */
   #sub-notice .notice-list-table thead tr {
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: 42px;
   }
   #sub-notice .notice-list-table thead .th-no,
   #sub-notice .notice-list-table thead .th-category,
   #sub-notice .notice-list-table thead .th-views {
      display: none;
   }
   #sub-notice .notice-list-table thead .th-title,
   #sub-notice .notice-list-table thead .th-date {
      font-size: 14px;
      line-height: 42px;
   }
   #sub-notice .notice-list-table thead .th-title {
      width: 100%;
   }
   #sub-notice .notice-list-table thead .th-date {
      width: 90px;
   }
   /* 본문: 각 행을 카드처럼 세로 스택 */
   #sub-notice .notice-list-table tbody tr {
      position: relative;
      padding: 17px 0;
      border-bottom: 1px solid #e5e5e5;
      text-align: left;
   }
   #sub-notice .notice-list-table tbody tr:hover {
      background-color: transparent;
   }
   #sub-notice .notice-list-table td {
      border-bottom: none;
      text-align: left;
   }
   /* NO·조회수 열 숨김 */
   #sub-notice .notice-list-table .td-no,
   #sub-notice .notice-list-table .td-views {
      display: none;
   }
   /* 분류 배지: 75x26 축소, 상단 배치 */
   #sub-notice .td-category {
      margin-bottom: 8px;
   }
   #sub-notice .category-badge {
      width: 75px;
      height: 26px;
      border-radius: 13px;
      font-size: 13px;
   }
   /* 제목: 배지 아래, 한 줄 말줄임 (날짜 영역 확보) */
   #sub-notice .notice-list-table td.td-title {
      padding-left: 0;
      padding-right: 85px;
   }
   #sub-notice .notice-list-table td.td-title a {
      display: block;
      font-size: 14px;
      line-height: 21px;
      letter-spacing: -0.28px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
   }
   /* 날짜: 제목 라인 우측 하단 고정 */
   #sub-notice .td-date {
      position: absolute;
      right: 0;
      bottom: 17px;
      font-size: 12px;
      color: #999;
   }

   /* 하단 페이지네이션(숫자 바 인디케이터): 간격·폰트 모바일 조정 */
   #sub-notice .board-pagination {
      margin-top: 40px;
   }
   #sub-notice .page-num {
      font-size: 14px;
   }
   /* [공지사항 게시판(main-notice-board) 섹션] 모바일 스타일 끝 */

   /* [리얼후기 게시판(main-review-board) 섹션] 모바일 스타일 시작 */
   #sub-review .main-review-board {
      padding: 80px 0;
   }
   #sub-review .board-container {
      padding: 0 25px;
   }

   /* 상단 바: 컨트롤(전체+검색) 상단 / 카운트 하단으로 세로 재배치 */
   #sub-review .board-top-bar {
      flex-direction: column-reverse;
      align-items: stretch;
      gap: 16px;
      padding-bottom: 16px;
      margin-bottom: 30px;
   }
   #sub-review .total-count {
      font-size: 14px;
   }
   #sub-review .board-controls-group {
      gap: 11px;
   }
   #sub-review .filter-select-wrap {
      flex: 0 0 89px;
      width: 89px;
      height: 45px;
      border-radius: 23px;
   }
   #sub-review .filter-select-wrap select {
      padding: 0 28px 0 15px;
      font-size: 13px;
   }
   #sub-review .filter-select-wrap::after {
      right: 15px;
   }
   #sub-review .search-input-wrap {
      flex: 1 1 auto;
      width: auto;
      height: 45px;
      border-radius: 23px;
   }
   #sub-review .control-input {
      padding: 0 45px 0 17px;
      font-size: 13px;
   }
   #sub-review .btn-search {
      right: 17px;
   }

   /* 카드 그리드: 3열 → 2열, 카드 가변 폭 + 간격 11px */
   #sub-review .review-cards-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 30px 11px;
   }
   #sub-review .review-card-item {
      width: auto;
      height: auto;
      min-height: 232px;
      border-radius: 13px;
   }
   #sub-review .card-image-area {
      height: auto;
      aspect-ratio: 166 / 114;
   }
   /* 카테고리 배지: 110x46 → 80x34, 폰트 축소 */
   #sub-review .category-badge {
      width: 80px;
      height: 34px;
      font-size: 11px;
      border-top-left-radius: 13px;
      border-bottom-right-radius: 13px;
   }
   #sub-review .card-text-area {
      padding: 12px 15px 15px 15px;
   }
   /* 제목: 24px → 14px, 2줄 유지 */
   #sub-review .card-review-title {
      font-size: 14px;
      line-height: 20px;
      margin-bottom: 0;

      -webkit-line-clamp: 3; /* 반응형에서는 3줄까지 허용 */
      height: auto;
      
      /* 혹시 모를 텍스트 잘림 방지 (선택사항) */
      white-space: normal;
   }
   /* 본문 요약: 피그마 모바일 미노출(배지/제목/날짜만) */
   #sub-review .card-review-excerpt {
      display: none;
   }
   /* 메타: 작성자·조회수 숨김, 날짜만 우측 하단 노출 */
   #sub-review .card-review-meta {
      margin-top: auto;
      padding-top: 20px;
      font-size: 12px;
   }
   #sub-review .meta-author,
   #sub-review .meta-views {
      display: none !important;
   }
   /* 날짜 단독 노출 → 앞 구분선 제거 */
   #sub-review .card-review-meta span:not(:last-child)::after {
      display: none;
   }

   /* 하단 페이지네이션(숫자 바 인디케이터): 간격·폰트 모바일 조정 */
   #sub-review .board-pagination {
      margin-top: 40px;
   }
   #sub-review .page-num {
      font-size: 14px;
   }
   /* [리얼후기 게시판(main-review-board) 섹션] 모바일 스타일 끝 */

   /* [원장 소개 - 인사말 모바일 스타일 시작] */
   .doctor-greeting {
      height: auto;
      padding: 60px 0;
   }
   
   .doctor-greeting .greeting-container {
      width: 100%;
      padding: 0 16px;
      box-sizing: border-box;
   }
   
   .doctor-greeting .greeting-logo-banner {
      position: relative;
      top: 0;
      left: 0;
      transform: none;
      width: 100%;
      height: auto;
      aspect-ratio: 343 / 140;
      border-radius: 12px;
      margin-bottom: 24px;
   }
   
   .doctor-greeting .greeting-logo-banner::after {
      border-radius: 12px;
   }
   
   .doctor-greeting .greeting-message-wrap {
      position: relative;
      top: 0;
      left: 0;
      transform: none;
      width: 100%;
   }
   
   .doctor-greeting .msg-paragraph {
      font-size: 15px;
      line-height: 24px;
   }
   
   .doctor-greeting .msg-paragraph.font-medium {
      margin-top: 16px;
   }
   
   .doctor-greeting .msg-highlight-box {
      margin-top: 20px;
   }
   
   .doctor-greeting .highlight-sub-text {
      font-size: 15px;
      line-height: 24px;
   }
   
   .doctor-greeting .highlight-main-title {
      font-size: 20px;
      line-height: 24px;
      margin-top: 8px;
   }
   
   .doctor-greeting .highlight-main-title .normal-weight {
      display: block;
      font-size: 15px;
      line-height: 24px;
      margin-top: 8px;
   }
   
   .doctor-greeting .doctor-signature-area {
      margin-top: 30px;
   }
   
   .doctor-greeting .signature-svg-wrap {
      width: 179px;
      height: 57px;
   }
   
   .greeting-box {
        padding: 40px 15px;
    }

    .doctor-greeting .msg-paragraph {
        font-size: 15px; /* 모바일 화면에 맞춘 글자 크기 축소 */
        line-height: 26px;
    }
    
    /* 줄바꿈(<br>)이 모바일에서 어색해질 수 있으므로 띄어쓰기로 대체하거나 유지 */
    .doctor-greeting .msg-paragraph br {
        display: inline; 
    }
   /* [원장 소개 - 인사말 모바일 스타일 끝] */

   /* [원장 소개 - 자격과 경력 모바일 스타일 시작] */
   .doctor-credentials {
      padding: 77px 0;
   }

   .doctor-credentials .credentials-container {
      width: 100%;
      padding: 0;
   }

   .doctor-credentials .section-header {
      padding-left: 25px;
      padding-right: 25px;
      margin-bottom: 42px;
   }

   .doctor-credentials .section-sub {
      font-size: 12px;
      line-height: 19px;
      margin-bottom: 10px;
   }

   .doctor-credentials .section-title {
      font-size: 26px;
      line-height: 42px;
      letter-spacing: 0.99px;
   }

   .credentials-grid-quad {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-left: 25px;
      scroll-padding-right: 25px;
      -webkit-overflow-scrolling: touch;
      padding-left: 25px;
      padding-right: 25px;
      gap: 10px;
   }

   .credentials-grid-quad::-webkit-scrollbar {
      display: none;
   }

   .credential-card {
      flex: 0 0 267px;
      width: 267px;
      height: 238px;
      padding: 38px 24px 30px 24px;
      scroll-snap-align: start;
   }

   .credential-card .card-title-wrap {
      margin-bottom: 20px;
   }

   .credential-card .card-title {
      font-size: 16px;
      line-height: 20px;
   }

   .credential-card .card-divider {
      margin: 0 0 20px 0;
   }

   .credential-card .card-bullet-list li {
      font-size: 13px;
      line-height: 24px;
      padding-left: 13px;
   }

   .credential-card .card-bullet-list li::before {
      top: 9.5px;
      width: 3px;
      height: 3px;
   }

   .credentials-indicator {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-top: 27px;
   }

   .credentials-indicator .indicator-num {
      font-family: 'KoPubWorldDotum';
      font-weight: 700;
      font-size: 13px;
      line-height: 16px;
      color: #111;
   }

   .credentials-indicator .indicator-bar {
      position: relative;
      width: 60px;
      height: 2px;
      background-color: #e9e9e9;
      border-radius: 2px;
      overflow: hidden;
   }

   .credentials-indicator .indicator-bar-fill {
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 25%;
      background-color: #111;
      border-radius: 2px;
   }
   /* [원장 소개 - 자격과 경력 모바일 스타일 끝] */

   /* [시설 갤러리(main-facility-gallery) 섹션] 모바일 스타일 시작 */
   #sub-clinic-tour .main-section.main-facility-gallery {
      padding: 80px 0;
   }
   #sub-clinic-tour .gallery-container {
      padding: 0 16px;
   }
   #sub-clinic-tour .main-facility-gallery .section-header {
      margin-bottom: 40px;
   }
   #sub-clinic-tour .main-facility-gallery .section-sub {
      margin-bottom: 12px;
      font-size: 12px;
      line-height: 18px;
   }
   #sub-clinic-tour .main-facility-gallery .section-title {
      font-size: 20px;
      line-height: 34px;
   }
   #sub-clinic-tour .main-facility-gallery .section-title--bold {
      font-size: 26px;
      line-height: 42px;
   }

   /* 메인 이미지 뷰어 모바일 반응형 조절 */
   #sub-clinic-tour .slider-main-view {
      width: 100%;
      height: auto;
   }
   #sub-clinic-tour .slider-main-view .view-badge {
      top: 15px;
      left: 15px;
      height: 30px;
      padding: 0 16px;
      font-size: 14px;
      border-radius: 20px;
   }

   /* 하단 컨트롤: 정보 텍스트·버튼 숨김, 숫자 바 인디케이터만 중앙 정렬 */
   #sub-clinic-tour .slider-bottom-controls {
      margin-top: 27px;
      justify-content: center;
      padding: 0;
   }

   /* 썸네일 컬럼이 없어졌으므로, 텍스트와 버튼만 깔끔하게 숨김 처리 */
   #sub-clinic-tour .facility-info-text,
   #sub-clinic-tour .slider-buttons {
      display: none;
   }

   #sub-clinic-tour .slider-nav-group {
      gap: 0;
   }
   #sub-clinic-tour .slider-pagination .divider {
      width: 60px;
   }
   /* [시설 갤러리(main-facility-gallery) 섹션] 모바일 스타일 끝 */
}




/* ==========================================================================
   [라온 리얼후기] 본문 에디터 반응형 스타일 세트
   ========================================================================== */

/* 1. 기본 본문 레이아웃 및 텍스트 설정 (기본 모바일 기준) */
.review-detail-content.entry-content {
    font-size: 15px;            /* 모바일 기본 가독성 폰트 */
    line-height: 1.75;          /* 행간 조절 */
    color: #333333;             /* 텍스트 색상 */
    word-break: break-all;      /* 영문/숫자 길어져도 영역 안깨지게 처리 */
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* 문단(Paragraph) 및 요소 간격 */
.review-detail-content.entry-content p {
    margin-top: 0;
    margin-bottom: 1.4rem;     /* 에디터 엔터(줄바꿈) 여백 */
}

/* 에디터 내 제목 태그 스타일 정의 */
.review-detail-content.entry-content h1,
.review-detail-content.entry-content h2,
.review-detail-content.entry-content h3,
.review-detail-content.entry-content h4,
.review-detail-content.entry-content h5,
.review-detail-content.entry-content h6 {
    color: #111111;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 2.2rem;
    margin-bottom: 0.8rem;
}
.review-detail-content.entry-content h1 { font-size: 1.6rem; }
.review-detail-content.entry-content h2 { font-size: 1.4rem; }
.review-detail-content.entry-content h3 { font-size: 1.25rem; }
.review-detail-content.entry-content h4 { font-size: 1.15rem; }

/* 강한 강조 및 기울임 */
.review-detail-content.entry-content strong,
.review-detail-content.entry-content b {
    font-weight: 700;
    vertical-align: baseline;
}
.review-detail-content.entry-content em,
.review-detail-content.entry-content i {
    font-style: italic;
}

/* 링크 스타일 */
.review-detail-content.entry-content a {
    color: #0073aa;
    text-decoration: underline;
    transition: color 0.2s ease;
}
.review-detail-content.entry-content a:hover {
    color: #005177;
}

/* --------------------------------------------------------------------------
   2. 에디터 리스트(목록) 및 인용구 스타일
   -------------------------------------------------------------------------- */
.review-detail-content.entry-content ul,
.review-detail-content.entry-content ol {
    margin-top: 0;
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}
.review-detail-content.entry-content ul { list-style-type: disc; }
.review-detail-content.entry-content ol { list-style-type: decimal; }
.review-detail-content.entry-content li { margin-bottom: 0.4rem; }

/* 인용구 블록(Blockquote) */
.review-detail-content.entry-content blockquote {
    margin: 1.5rem 0;
    padding: 0.8rem 1.2rem;
    border-left: 4px solid #0073aa;
    background-color: #f7f9fa;
    color: #555555;
    font-style: italic;
}
.review-detail-content.entry-content blockquote p:last-child {
    margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   3. 이미지, 영상 및 에디터 정렬(Alignment) 처리
   -------------------------------------------------------------------------- */
.review-detail-content.entry-content img,
.review-detail-content.entry-content figure {
    max-width: 100%;
    height: auto;
    margin: 1.5rem 0;
}
.review-detail-content.entry-content figcaption {
    font-size: 0.85rem;
    color: #666666;
    text-align: center;
    margin-top: 0.5rem;
}

/* 텍스트 정렬 */
.review-detail-content.entry-content .has-text-align-center { text-align: center; }
.review-detail-content.entry-content .has-text-align-left { text-align: left; }
.review-detail-content.entry-content .has-text-align-right { text-align: right; }

/* 에디터 블록 정렬 기능 (기본 모바일에서는 마진 중앙 정렬로 깨짐 방지) */
.review-detail-content.entry-content .aligncenter,
.review-detail-content.entry-content .wp-block-image.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.review-detail-content.entry-content .alignleft,
.review-detail-content.entry-content .alignright {
    display: block;
    float: none;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* 구분선 블록 (<hr>) */
.review-detail-content.entry-content hr,
.review-detail-content.entry-content .wp-block-separator {
    border: 0;
    border-top: 1px solid #e5e5e5;
    margin: 2rem 0;
}


/* ==========================================================================
   4. 반응형 미디어 쿼리 (태블릿 & PC 화면 대응)
   ========================================================================== */

/* ── 태블릿 해상도 이상 (768px ~) ── */
@media (min-width: 768px) {
    .review-detail-content.entry-content {
        font-size: 16px;        /* 화면이 넓어지면 기본 폰트 살짝 확대 */
        line-height: 1.8;
    }
    
    .review-detail-content.entry-content h1 { font-size: 1.9rem; }
    .review-detail-content.entry-content h2 { font-size: 1.6rem; }
    .review-detail-content.entry-content h3 { font-size: 1.35rem; }

    /* 태블릿 이상부터 에디터의 좌/우 흘리기(Float) 배치 활성화 */
    .review-detail-content.entry-content .alignleft {
        float: left;
        margin-right: 1.5rem;
        margin-bottom: 1.5rem;
        text-align: left;
    }
    .review-detail-content.entry-content .alignright {
        float: right;
        margin-left: 1.5rem;
        margin-bottom: 1.5rem;
        text-align: right;
    }
}

/* ── 데스크톱 PC 해상도 이상 (1024px ~) ── */
@media (min-width: 1024px) {
    .review-detail-content.entry-content {
        font-size: 16.5px;      /* PC 환경 최적화 본문 크기 */
    }
    
    /* 본문 내 컴포넌트 간 여백 살짝 조절 */
    .review-detail-content.entry-content p {
        margin-bottom: 1.6rem;
    }
    .review-detail-content.entry-content img,
    .review-detail-content.entry-content figure {
        margin: 2rem 0;
    }
}