#n_primary {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 100px 0 0 0;
}

/* ----------------------------------------------------
   🔥 추가: 하단 의미 없는 흰색 여백(기본 테마 여백) 강제 삭제
---------------------------------------------------- */
/*.site-content,
.site-main,
#primary,*/
#n_primary {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ========================================================
   New Simple Header Design
======================================================== */
.n-site-header {
    width: 100%;
    background-color: #fff;
    border-bottom: 1px solid #eaeaea;
    position: sticky;
    top: 0;
    z-index: 9999;
    padding: 0;
}

.n-header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px; 
    
    /* 🔥 수정: 좌우 여백을 넓게 100% 다 쓰도록 변경 */
    max-width: 100%;
    padding: 0 40px; 
}

/* 1. 로고 */
.n-logo a { display: flex; align-items: center; text-decoration: none !important; }
.n-logo img { height: 35px; width: auto; }

/* 2. 메인 네비게이션 */
.n-main-nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.n-nav-list {
    display: flex;
    
    /* 🔥 수정: 간격을 40px -> 25px로 줄여서 9개 메뉴가 1줄에 들어오게 함 */
    gap: 25px; 
    margin: 0;
    padding: 0;
    list-style: none;
}

/* 1차 메뉴 (1st Depth) */
.n-nav-list > li {
    position: relative;
    display: flex;
    align-items: center;
    height: 80px;
}

.n-nav-list > li > a {
    /* 🔥 추가: 메뉴 글씨가 절대 두 줄로 쪼개지지 않도록 강제 */
    white-space: nowrap; 
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.5px;
    color: #111;
    text-decoration: none;
    transition: color 0.3s ease;
}

.n-nav-list > li:hover > a {
    color: #F5CD4F;
}

/* 2차 드롭다운 메뉴 (2nd Depth) */
.n-nav-list > li > ul.sub-menu {
    display: none;
    position: absolute;
    top: 80px; /* 헤더 높이 바로 아래 */
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff;
    min-width: 220px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    border-radius: 8px;
    padding: 15px 0;
    margin: 0;
    list-style: none;
}

/* 마우스 올리면 드롭다운 나타남 */
.n-nav-list > li:hover > ul.sub-menu {
    display: block;
}

.n-nav-list > li > ul.sub-menu > li {
    padding: 0;
    margin: 0;
}

.n-nav-list > li > ul.sub-menu > li > a {
    display: block;
    padding: 10px 25px;
    font-size: 14px;
    font-weight: 500;
    color: #444;
    text-decoration: none;
    text-align: center;
    transition: all 0.2s;
}

.n-nav-list > li > ul.sub-menu > li > a:hover {
    background-color: #f9f9f9;
    color: #111;
    font-weight: 700;
}

/* 3. 우측 도구 영역 (검색 & 다국어) */
.n-header-tools {
    display: flex;
    align-items: center;
    gap: 30px;
}

/* 검색창 디자인 */
.n-search-wrap {
    display: flex;
    align-items: center;
    background-color: #f5f5f5;
    border-radius: 30px;
    padding: 5px 15px;
}

.n-search-field {
    border: none;
    background: transparent;
    font-size: 14px;
    width: 150px;
    padding: 5px;
    outline: none;
}

.n-search-submit {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

/* 다국어 선택기 (앞서 짠 코드 이식) */
.vos-simple-lang { position: relative; cursor: pointer; }
.vos-simple-lang .lang-current { display: flex; align-items: center; font-size: 15px; font-weight: 700; color: #111; gap: 5px; }
.vos-simple-lang .arrow { transition: transform 0.3s; display: flex; }
.vos-simple-lang .lang-dropdown { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: #fff; min-width: 60px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-radius: 5px; padding: 5px 0; margin-top: 15px; list-style: none; }
.vos-simple-lang:hover .lang-dropdown { display: block; }
.vos-simple-lang:hover .arrow { transform: rotate(180deg); }
.vos-simple-lang .lang-dropdown li a { display: block; padding: 8px 10px; font-size: 13px; font-weight: 600; color: #333; text-align: center; text-decoration: none; }
.vos-simple-lang .lang-dropdown li a:hover, .vos-simple-lang .lang-dropdown li a.active { background: #F5CD4F; color: #111; }

/* ========================================================
   다국어 드롭다운 마우스 이탈(끊김) 방지용 투명 다리
======================================================== */
.vos-simple-lang .lang-dropdown::before {
    content: "";
    position: absolute;
    top: -15px; /* 기존 margin-top 간격만큼 위로 올림 */
    left: 0;
    width: 100%;
    height: 15px; /* 빈 공간을 채워주는 투명 영역 */
    background: transparent;
}



/* ========================================================
   Mobile Header & Menu Design (반응형 완벽 수정본)
======================================================== */
/* 🔥 1. PC 기본 상태: '새로운 헤더' 전용 모바일 요소만 숨김 (기존 테마 보호) */
.n-site-header .mobile-only { display: none !important; }
.n-mobile-menu-wrap { display: none !important; } 

/* 🔥 2. 태블릿 & 모바일 (1024px 이하) 작동 설정 */
@media (max-width: 1024px) {
    .n-logo img { height: 31px!important; }
    /* 🚨 기존 테마 충돌 방지: .n-site-header 안에서만 작동하게 격리 */
    .n-site-header .desktop-only { display: none !important; }
    .n-site-header .n-mobile-toggle { display: flex !important; }
    
    .n-header-inner { padding: 0 20px; height: 60px; } 

    /* 햄버거 버튼 디자인 */
    .n-mobile-toggle {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 24px;
        height: 18px;
        cursor: pointer;
        margin-left: 15px;
    }
    .n-mobile-toggle span {
        display: block;
        width: 100%;
        height: 2px;
        background-color: #111;
        border-radius: 2px;
    }

    /* 모바일 슬라이드 메뉴 래퍼 */
    .n-mobile-menu-wrap {
        display: block !important; /* 모바일에서는 렌더링 켬 */
        position: fixed;
        top: 0; left: 0;
        width: 100%; height: 100vh;
        z-index: 10000;
        visibility: hidden;
        opacity: 0;
        transition: visibility 0.3s, opacity 0.3s;
    }
    
    /* JS로 .active 클래스가 붙으면 화면에 나타남 */
    .n-mobile-menu-wrap.active {
        visibility: visible;
        opacity: 1;
    }

    /* 반투명 검은색 배경 */
    .n-mobile-overlay {
        position: absolute;
        top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(0,0,0,0.6);
    }

    /* 오른쪽에서 슬라이드 되어 나오는 하얀색 메뉴 패널 */
    .n-mobile-menu-inner {
        position: absolute;
        top: 0; right: -100%; /* 처음엔 화면 밖 우측에 숨김 */
        width: 80%; max-width: 350px;
        height: 100%;
        background-color: #fff;
        transition: right 0.4s ease;
        display: flex;
        flex-direction: column;
        z-index: 10001;
    }
    .n-mobile-menu-wrap.active .n-mobile-menu-inner {
        right: 0; /* 슬라이드 인 */
    }

    /* 모바일 패널 상단 (로고 & 닫기 버튼) */
    .n-mobile-header {
        display: flex; justify-content: space-between; align-items: center;
        padding: 20px; border-bottom: 1px solid #eee;
    }
    .n-mobile-close {
        background: none; border: none; font-size: 32px; color: #111;
        cursor: pointer; padding: 0; line-height: 1;
    }

    /* 모바일 아코디언 메뉴 스타일 */
    .n-mobile-nav { padding: 20px; overflow-y: auto; height: calc(100vh - 70px); }
    .n-mobile-nav-list { list-style: none; padding: 0; margin: 0; }
    .n-mobile-nav-list > li { border-bottom: 1px solid #f5f5f5; }
    .n-mobile-nav-list > li > a {
        display: flex; justify-content: space-between; align-items: center;
        padding: 15px 0; font-size: 16px; font-weight: 700; color: #111; text-decoration: none;
    }
    
    /* 하위 메뉴가 있는 경우 화살표 아이콘 */
    .n-mobile-nav-list > li.menu-item-has-children > a::after {
        content: "▼"; font-size: 10px; color: #999; transition: transform 0.3s;
    }
    .n-mobile-nav-list > li.menu-item-has-children.open > a::after {
        transform: rotate(180deg); color: #F5CD4F;
    }

    /* 모바일 2차 메뉴 (숨김 처리) */
    .n-mobile-nav-list > li > ul.sub-menu { display: none; list-style: none; padding: 0 0 15px 15px; margin: 0; }
    .n-mobile-nav-list > li.open > ul.sub-menu { display: block; }
    .n-mobile-nav-list > li > ul.sub-menu > li > a { display: block; padding: 10px 0; font-size: 14px; font-weight: 500; color: #555; text-decoration: none; }
}


/*************************************
   New Site Footer (PHP 소스코드 완벽 매칭본)
*************************************/
.n_site-footer {
    width: 100%;
    float: left;
    margin-top: 0 !important; 
    padding-top: 100px !important; 
    background-image: url('n_images/footer_bg1.jpg'); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* 1. PC: 넓은 1800px 와이드 컨테이너 */
.n_site-footer .inner {
    width: 100%;
    max-width: 1800px !important; /* 좌우로 시원하게 확장 */
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
}

/* 푸터 로고 */
.n_site-footer .inner .n_footer-top {
    width: 100%;
    float: left;
    margin: 0 0 40px 0 !important;
}
.n_site-footer .inner .n_footer-top .site-title {
    margin: 0;
}
.n_site-footer .inner .n_footer-top .site-title img {
    width: auto;
    height: 35px;
    display: block;
}

/* 2. 푸터 정보 영역 (배경 박스 삭제, 좌우 간격 확보) */
.n_site-footer .inner .n_footer-middle {
    width: 100%;
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 80px !important;
}

/* 박스 배경 투명화 및 50:50 분할 */
.n_site-footer .inner .n_footer-middle .clinic-info,
.n_site-footer .inner .n_footer-middle .cs-info {
    width: 48% !important; 
    background-color: transparent !important; 
    padding: 0 !important;
    margin: 0 !important;
}

.n_site-footer .inner .n_footer-middle ul {
    width: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
}

/* 리스트 한 줄 디자인 (PC: 가로 정렬) */
.n_site-footer .inner .n_footer-middle > div > ul > li {
    width: 100%;
    display: flex !important;
    align-items: flex-start !important;
    font-size: 15px !important;
    color: #111 !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
}

/* 항목 제목 (대표자, 상호명 등) */
.n_site-footer .inner .n_footer-middle > div > ul > li > strong {
    width: 140px !important; 
    flex-shrink: 0;
    font-weight: 700 !important;
}

/* 항목 내용 */
.n_site-footer .inner .n_footer-middle > div > ul > li > span {
    flex: 1 !important; 
    text-align: left !important; 
}

.n_site-footer .inner .n_footer-middle a {
    text-decoration: none !important;
    color: #111 !important;
}

/* 진료시간 세부 목록 (월/화/목 등) */
.n_site-footer .inner .n_footer-middle ul.cs-info-time {
    flex: 1 !important;
}
.n_site-footer .inner .n_footer-middle ul.cs-info-time li {
    display: flex !important;
    width: 100% !important;
    margin-bottom: 8px !important;
}
.n_site-footer .inner .n_footer-middle ul.cs-info-time li strong {
    width: 120px !important;
    flex-shrink: 0;
    font-weight: 600 !important;
}
html[lang="zh-CN"] .n_site-footer .inner .n_footer-middle .cs-info > ul > li.kakaotalk {
    display: none !important;
}

/* 🔥 3. 푸터 하단 (저작권, 약관, SNS) 오류 완벽 수정판 */
.n_site-footer .inner .n_footer-bottom {
    width: 100%;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important; 
    border-top: 1px solid rgba(0,0,0,0.1) !important;
    padding: 30px 0 !important;
    margin-top: 60px !important;
}

/* 저작권 (가장 왼쪽 고정) */
.n_site-footer .inner .n_footer-bottom p.copyright {
    margin: 0 !important;
    font-size: 14px !important;
    color: #333 !important;
    order: 1; 
}

/* 🔥 약관 텍스트 메뉴 (.n_footer-navigation 적용) */
.n_site-footer .inner .n_footer-bottom .n_footer-navigation {
    margin-left: auto !important; /* 남은 공간을 밀어서 오른쪽으로 딱 붙임 */
    order: 2;
}
.n_site-footer .inner .n_footer-bottom .n_footer-navigation ul {
    display: flex !important;
    flex-direction: row !important; /* 무조건 가로로 나열! */
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    gap: 20px !important;
}
.n_site-footer .inner .n_footer-bottom .n_footer-navigation ul li { 
    margin: 0 !important;
    padding: 0 !important;
}
.n_site-footer .inner .n_footer-bottom .n_footer-navigation ul li a { 
    color: #111 !important; /* 파란색 링크 덮어쓰기 (검정) */
    text-decoration: none !important; 
    font-weight: 600 !important; 
    font-size: 14px !important;
}

/* SNS 아이콘 메뉴 (가장 우측) */
.n_site-footer .inner .n_footer-bottom .social-navigation {
    order: 3;
    margin-left: 30px !important;
}
.n_site-footer .inner .n_footer-bottom .social-navigation ul {
    display: flex !important;
    flex-direction: row !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    gap: 12px !important;
}
.n_site-footer .inner .n_footer-bottom .social-navigation ul li {
    width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    background-size: cover !important;
    background-position: center !important;
}

/* 워드프레스가 출력하는 불필요한 SNS 텍스트 완벽 숨김 */
.n_site-footer .inner .n_footer-bottom .social-navigation ul li a { 
    display: block !important; 
    width: 100% !important; 
    height: 100% !important; 
    text-indent: -9999px !important;
    font-size: 0 !important;
    color: transparent !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.n_site-footer .inner .n_footer-bottom .social-navigation ul li.social-youtube { background-image: url('images/icons/icon-sns-youtube.png'); }
.n_site-footer .inner .n_footer-bottom .social-navigation ul li.social-instagram { background-image: url('images/icons/icon-sns-instagram.png'); }
.n_site-footer .inner .n_footer-bottom .social-navigation ul li.social-kakao { background-image: url('images/icons/icon-sns-kakaotalk.png'); }
.n_site-footer .inner .n_footer-bottom .social-navigation ul li.social-facebook { background-image: url('images/icons/icon-sns-facebook.png'); }


/* ========================================================
   푸터 모바일/태블릿 반응형 
======================================================== */
@media (max-width: 1024px) {
    .n_site-footer .inner { padding: 0 30px !important; }
    .n_site-footer .inner .n_footer-middle { gap: 40px !important; }
}

@media (max-width: 768px) {
    .n_site-footer {
        padding-top: 60px !important;
    }
    .n_site-footer .inner {
        padding: 0 20px !important;
    }
    
    /* 모바일 핵심 1: 반투명 박스 적용 */
    .n_site-footer .inner .n_footer-middle {
        flex-direction: column !important; 
        gap: 20px !important; 
    }
    .n_site-footer .inner .n_footer-middle .clinic-info,
    .n_site-footer .inner .n_footer-middle .cs-info {
        width: 100% !important;
        background-color: rgba(255, 255, 255, 0.45) !important; 
        padding: 25px 20px !important;
        border-radius: 12px !important;
    }
    
    /* 모바일 핵심 2: 제목은 왼쪽, 내용은 오른쪽 정렬 */
    .n_site-footer .inner .n_footer-middle > div > ul > li {
        flex-direction: row !important; 
        align-items: flex-start !important;
        justify-content: space-between !important; 
        margin-bottom: 12px !important;
    }
    .n_site-footer .inner .n_footer-middle > div > ul > li > strong {
        width: auto !important; 
        flex-shrink: 0 !important;
        margin-right: 15px !important; 
        font-size: 13px !important; 
    }
    .n_site-footer .inner .n_footer-middle > div > ul > li > span {
        width: auto !important;
        text-align: right !important; 
        font-size: 13px !important;
        word-break: keep-all !important; 
    }

    /* 모바일 핵심 3: 진료시간 요일(위) / 시간(아래) 분리 */
    .n_site-footer .inner .n_footer-middle ul.cs-info-time li {
        flex-direction: column !important; 
        justify-content: flex-end !important; 
        align-items: flex-end !important; 
        margin-bottom: 15px !important;
    }
    .n_site-footer .inner .n_footer-middle ul.cs-info-time li strong {
        width: auto !important;
        margin-right: 0 !important; 
        margin-bottom: 3px !important; 
        font-size: 13px !important;
        text-align: right !important;
    }
    .n_site-footer .inner .n_footer-middle ul.cs-info-time li span {
        text-align: right !important;
    }
    .n_site-footer .inner .n_footer-middle ul.cs-info-time li span p {
        text-align: right !important; 
        margin: 0 !important;
    }

    /* 🔥 모바일 핵심 4: 하단 메뉴 완벽 정렬 */
    .n_site-footer .inner .n_footer-bottom {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding-bottom: 120px !important; 
        gap: 20px !important;
    }
    
    .n_site-footer .inner .n_footer-bottom .social-navigation {
        order: 1 !important; 
        margin: 0 !important;
    }
    
    .n_site-footer .inner .n_footer-bottom .n_footer-navigation {
        order: 2 !important; 
        margin: 0 !important; 
    }
    .n_site-footer .inner .n_footer-bottom .n_footer-navigation ul {
        flex-wrap: wrap !important; 
        gap: 15px !important;
    }

    .n_site-footer .inner .n_footer-bottom p.copyright {
        order: 3 !important; 
        margin-top: 10px !important;
    }
}



/* Layout */
.n_inner { max-width: 1200px; margin: 0 auto; padding: 80px 20px; }

/* Section 1: Hero Video */
/* Section 1: Full Width & Custom Ratio */
.n_hero_video {
    width: 100%;
    position: relative;
    background: transparent url('n_images/home_video_bg1.jpg') no-repeat center / cover !important;
    overflow: hidden;
}

.n_video_ratio_container {
    position: relative;
    width: 100%;
    /* 1712 / 4096 = 0.41796... (약 41.8%) */
    padding-top: 41.8%; 
}

.n_video_ratio_container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 영상이 컨테이너를 꽉 채우도록 설정 */
    object-fit: cover;
    /* 비메오 레터박스 강제 제거를 위해 살짝 스케일업 */
    transform: scale(1.02); 
}
/* 1. 컨테이너: 화면 전체 높이와 너비를 꽉 채우고 넘치는 부분은 숨김 */
.nn_hero_video {
    width: 100%;
    height: 100vh; /* 화면 꽉 차게 */
    overflow: hidden;
    position: relative;
    background: transparent; /* 영상 로딩 전 검은색 배경 */
}

/* 2. 비디오 박스: 중앙 정렬 및 절대 위치 */
.nn_video_ratio_container {
    position: absolute;
    top: 0%;
    left: 0%;
    width: 100vw;
    height: 56.25vw; /* 16:9 비율 유지 (100 / 16 * 9) */
    min-height: 100vh;
    min-width: 177.77vh; /* 16:9 비율 유지 (100 / 9 * 16) */
    transform: translate(-50%, -50%);
}

/* 3. iframe: UI를 가리기 위해 약간 더 크게 설정 */
.nn_video_ratio_container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* UI를 화면 밖으로 밀어내고 싶다면 아래 scale 주석 해제 */
    /* transform: scale(1.15); */
    pointer-events: none;
}

/* Section 2 */
/* Layout & Slider */
.n_features_slider { width: 100%; overflow: hidden; padding: 60px 0 0 0; background: #fff; }
.n_slide_item { outline: none; }
/* 모든 슬라이드: 왼쪽 이미지, 오른쪽 텍스트 고정 */
.n_feature_item { display: flex !important; align-items: center; gap: 100px; padding: 0 5%; min-height: 750px; flex-direction: row !important; }

/* =======================================
   수정된 이미지 & 텍스트 레이아웃 영역
======================================= */

/* 이미지 영역 (flex: 1 로 유연하게 변경) */
.n_feat_img { 
    flex: 1; 
    opacity: 0; 
    transform: translateX(-100px); 
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1); 
    text-align: center; /* 이미지를 영역 중앙에 배치 */
}

/* 🔥 이미지 자체 크기 축소 (100% -> 60~65% 수준으로 줄임) */
.n_feat_img img { 
    width: 100%; /* 2/3 수준으로 축소 */
    max-width: 580px; /* 너무 커지는 것 방지 */
    margin: 0 auto; 
    display: inline-block;
    border-radius: 0 0 180px 0; 
    box-shadow: 20px 20px 50px rgba(0,0,0,0.05); 
}

/* 텍스트 스타일 */
/* 텍스트 영역 (flex: 1 로 유연하게 변경) */
.n_feat_text { 
    flex: 1; 
}
.n_feat_title { font-size: 80px; line-height: 1.1; margin-bottom: 25px; font-family: 'Pretendard', sans-serif; text-transform: uppercase; }
.n_feat_title span { display: block; }
.n_feat_title .w_800 { font-weight: 800; color: #111;letter-spacing:-1px; }
.n_feat_title .w_400 { font-weight: 300; color: #444;letter-spacing:-1px; }

.n_feat_sub { font-size: 26px; font-weight: 500; color: #222; margin-bottom: 40px; border: none; padding: 0; }

/* --- 키워드 써클 그룹 --- */
.n_circle_group { 
    display: flex; 
    align-items: center; 
    margin: 50px 0; 
    position: relative;
    padding-left: 10px; /* 전체 위치 살짝 조정 */
}

.n_circle { 
    width: 160px; 
    height: 160px; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center;
    text-align: center; 
    font-size: 15px; 
    font-weight: 600; 
    color: #fff; 
    line-height: 1.4;
    box-shadow: 10px 10px 30px rgba(0,0,0,0.08); 
    position: relative;
    word-break: keep-all; /* 단어 단위 줄바꿈으로 가독성 향상 */
    transition: 0.3s;
}

/* [수정] 원의 겹침 정도 조절: 
   기존 -40px에서 -20px로 변경하여 겹치는 면적을 줄였습니다. 
   글씨가 여전히 가려진다면 이 값을 더 줄여보세요(예: -10px). */
.n_circle + .n_circle { 
    margin-left: -20px; 
}

/* 양 옆의 원 (회색 계열) */
.c_side { 
    background: rgba(160, 160, 160, 0.85); 
    z-index: 1; 
}

/* [수정] 가운데 원: 요청하신 컬러(#f5cd4fb8) 적용 및 레이어 최상단 고정 */
.c_mid { 
    background: #f5cd4fb8; 
    z-index: 10; /* 가장 위로 올림 */
    transform: scale(1.05); /* 살짝 키워서 강조하되 글씨가 안 가려지도록 조절 */
    color: #fff; /* 노란 배경에는 어두운 글씨가 더 잘 보일 수 있습니다. 흰색이 좋으시면 #fff로 유지하세요. */
}

/* 원 안의 텍스트 여백 추가 (글씨 가독성) */
.n_circle span {
    padding: 0 15px;
    display: block;
}

.n_feat_extra { font-size: 20px; color: #555; border-left: 4px solid #b4a064; padding-left: 15px; margin-top: 30px; }

/* 모든 텍스트: 오른쪽에서 등장 고정 */
.n_ani_right { opacity: 0; transform: translateX(100px); transition: all 1s cubic-bezier(0.25, 1, 0.5, 1); }


/* 🔥 스크롤 도달(.active) + 슬라이더 동작(.slick-active) 동시 충족 시에만 애니메이션 실행 */
.n_features_slider.active .slick-active .n_feat_img { 
    opacity: 1; 
    transform: translateX(0); 
}
.n_features_slider.active .slick-active .n_ani_right { 
    opacity: 1; 
    transform: translateX(0); 
}

.delay_1 { transition-delay: 0.2s; }
.delay_2 { transition-delay: 0.4s; }
.delay_3 { transition-delay: 0.6s; }
.delay_4 { transition-delay: 0.8s; }

/* Slick Dots 커스텀 */
.slick-dots { bottom: -50px; }
.slick-dots li button:before { font-size: 12px; color: #b4a064; }

/* 데이터 기준 날짜 텍스트 스타일 */
.n_feat_dates {
    font-size: 15px;
    color: #888;
    line-height: 1.6;
    margin-top: 20px;
    padding-left: 10px;
}
/* ========================================================
   Section 3 (VOS Signature) - 카드형 흐르는 슬라이더
======================================================== */
.n_signature_section {
    padding: 120px 0;
    background: #fafafa;
    overflow: hidden;
}

.n_sig_header {
    text-align: center;
    margin-bottom: 60px;
}

.n_sig_main_title {
    font-size: 45px;
    font-weight: 800;
    color: #111;
    letter-spacing: -0.5px;
}

/* 슬라이더 래퍼 (양옆 여백 살짝 줌) */
.n_sig_slider_wrap {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

/* 개별 카드 스타일 */
.n_sig_card {
    padding: 0 10px; /* 카드 사이 간격(Gap) 20px 생성 */
    outline: none;
}

/* ========================================================
   [수정] 카드 내부 정렬 및 그라데이션 오버레이
======================================================== */
.n_sig_card_inner {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; 
    background-size: cover;
    background-position: center;
    border-radius: 0; 
    display: flex;
    align-items: flex-end; 
    justify-content: center;
    padding-bottom: 40px; 
    overflow: hidden;
    cursor: pointer;
    text-decoration: none; /* 🔥 추가: 링크 밑줄 생김 방지 */
}

/* 🔥 배경 이미지 위 막 (텍스트 가독성을 위한 하단 그라데이션) */
.n_sig_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 위쪽 40%는 투명하고, 아래로 갈수록 점점 70% 농도의 검은색이 됨 */
    background: linear-gradient(to bottom, rgba(0,0,0,0) 40%, rgba(0,0,0,0.5) 100%);
    transition: background 0.3s ease;
}

/* 마우스 올렸을 때 살짝 더 어두워지는 효과 */
.n_sig_card_inner:hover .n_sig_overlay {
    background: linear-gradient(to bottom, rgba(0,0,0,0) 20%, rgba(0,0,0,0.8) 100%);
}

/* 카드 위 텍스트 */
.n_sig_card_title {
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 32px;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
    letter-spacing: -1px;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_sig_main_title { font-size: 32px; }
    .n_sig_card_title { font-size: 24px; }
}




/* --- Section 4: 배경 및 여백 --- */
.n_ba_section { 
    padding: 100px 0; 
    background-color: #e3e3e3; 
    width: 100%; 
}

/* --- 최상단 타이틀 --- */
.n_ba_top_header {
    text-align: center;
    margin-bottom: 60px;
}
.n_ba_main_title { 
    font-size: 54px; 
    font-weight: 300; 
    color: #111; 
    letter-spacing: -1px; 
}
.n_ba_main_title strong { 
    font-weight: 800; 
}

/* --- 3열 레이아웃 래퍼 --- */
.n_ba_3col_wrapper {
    display: flex;
    justify-content: center;
    gap: 40px; /* 슬라이더 사이 간격 */
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 40px;
}

/* 개별 슬라이더 아이템 */
.n_ba_item {
    flex: 1; /* 3개가 동일한 너비 점유 */
    max-width: 400px; /* 너무 커지지 않게 제한 */
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

/* 비포애프터 컨테이너 */
.custom_ba_slider {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5; /* 3개일 때 세로로 길쭉하게 보이는 비율 설정 */
    overflow: hidden;
    cursor: ew-resize; /* 좌우 화살표 커서 */
}

.custom_ba_slider img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 정보 박스 스타일 유지 */
.n_ba_info_box {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 85%;
    background: rgba(255, 255, 255, 0.45); 
    backdrop-filter: blur(10px);
    padding: 20px;
    border-radius: 15px;
    text-align: center;
    z-index: 20;
    pointer-events: none; /* 드래그 방해 방지 */
}
.n_ba_info_box h4 { font-size: 18px; font-weight: 700; color: #fff; margin-bottom: 5px; text-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.n_ba_info_box p { font-size: 14px; color: #fff; }

/* --- 드래그 핸들 디자인 --- */
.n_ba_handle {
    position: absolute; top: 0; bottom: 0; width: 4px; background: #fff;
    left: 50%; transform: translateX(-50%); z-index: 10; pointer-events: none;
}
.n_ba_handle span {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 45px; height: 45px; background: #f5cd4f; border: 3px solid #fff; border-radius: 50%;
    box-shadow: 0 0 10px rgba(0,0,0,0.2);
    display: flex; justify-content: center; align-items: center;
}
.n_ba_handle span::before {
    content: '◀ ▶'; font-size: 10px; color: #fff; letter-spacing: -1px;
}


/* Section 5 Layout */
.n_rules_section { 
    padding: 60px 0 120px 0; 
    background: #fff; 
    width: 100%;
    position: relative;
    clear: both; /* 이전 섹션의 float 영향 차단 */
}

/* 상단 타이틀 영역 */
.n_rules_header { 
    text-align: center; 
    margin-bottom: 80px; 
    width: 100%;
}

.n_rules_main_title { 
    font-size: 50px; 
    color: #111; 
    letter-spacing: -1px;
}
.n_rules_main_title .w_800 { font-weight: 800; margin-right: 10px; }
.n_rules_main_title .w_300 { font-weight: 300; }

/* ========================================================
   Section 5 (VOS 3대 원칙) - 디자인 리뉴얼 반영
======================================================== */
.n_rules_container {
    display: flex;
    justify-content: center;
    align-items: center;
    /* 🔥 카드 사이의 간격을 대폭 줄였습니다 (원하시면 20px, 40px 등으로 조절 가능) */
    gap: 30px; 
    max-width: 1400px; /* 전체 1800px보다 살짝 좁게 잡아서 오밀조밀한 느낌 강조 */
    margin: 0 auto;
}

.n_rule_card {
    flex: 1;
    max-width: 400px; /* 카드가 무한정 커지지 않도록 최대치 고정 */
}

/* 이미지와 텍스트를 담는 기준점 */
.n_rule_img_wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    /* 시안처럼 정사각형 비율을 원하시면 아래 주석을 풀어주세요 */
    /* aspect-ratio: 1 / 1; */ 
}

.n_rule_img_wrap img {
    width: 100%;
    display: block;
    height: auto;
    object-fit: cover;
}

/* 🔥 기존 흰색 띠를 지우고 자연스러운 그라데이션 막으로 교체 */
.n_rule_title_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; /* 이미지를 전체적으로 덮도록 설정 */
    /* 위쪽 50%는 투명하고, 아래로 갈수록 점점 75% 농도의 검은색이 됨 */
    background: linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,0.75) 100%);
    display: flex;
    align-items: flex-end; /* 글씨를 하단으로 배치 */
    justify-content: center;
    padding-bottom: 25px; /* 바닥에서 살짝 띄워주는 여백 */
}

.n_rule_title_overlay h3 {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    color: #fff; /* 🔥 어두운 그라데이션 배경에 맞춰 흰색 글씨로 변경 */
    letter-spacing: -1px;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3); /* 글씨가 더 또렷하게 보이도록 약한 그림자 추가 */
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_rules_container { flex-direction: column; gap: 40px; }
    .n_rule_card { max-width: 80%; } /* 모바일에서는 살짝 더 크게 */
}

/* --- 등장 애니메이션 초기 상태 --- */
.n_reveal_up {
    opacity: 0;
    transform: translateY(50px);
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1); /* 더 부드러운 등장 */
    will-change: transform, opacity;
}

/* --- 활성화 시 상태 (JS에서 .active 클래스 부여) --- */
.n_reveal_up.active {
    opacity: 1;
    transform: translateY(0);
}

/* --- [중요] 순차적 Delay 설정 --- */
/* 타이틀은 즉시 등장 */
.n_rules_header.n_reveal_up.active { transition-delay: 0s; }

/* 이미지 카드들은 왼쪽부터 순서대로 */
.delay_1 { transition-delay: 0.2s; } /* 첫 번째 이미지 */
.delay_2 { transition-delay: 0.4s; } /* 두 번째 이미지 */
.delay_3 { transition-delay: 0.6s; } /* 세 번째 이미지 */

/* 레이아웃 유지 코드 */
.n_rules_container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 40px;
}
.n_rule_card { flex: 1; min-width: 0; text-align: center; }



/* ========================================================
   Section View (병원 인테리어 - 가로형 3개 슬라이더)
======================================================== */
.n_view_section {
    padding: 120px 0;
    background: #fafafa; /* 흰색 배경들과 구분되도록 아주 연한 회색 배경 적용 */
    overflow: hidden;
}

.n_view_header {
    text-align: center;
    margin-bottom: 60px;
}

.n_view_main_title {
    font-size: 40px;
    font-weight: 800;
    color: #111;
    line-height: 1.2;
    margin-bottom: 25px;
    letter-spacing: -0.5px;
}

/* 슬라이더 전체 영역 제한 없이 풀와이드에 가깝게 설정 */
.n_view_slider_wrap {
    width: 100%;
    margin: 0 auto;
}

/* 개별 카드 간격 조절 */
.n_view_card {
    padding: 0 15px; /* 카드 사이 간격(Gap) 30px */
    outline: none;
}

.n_view_card_inner {
    position: relative;
    width: 100%;
    /* 🔥 1024x656 비율(약 1.56:1)을 완벽하게 유지 */
    aspect-ratio: 1024 / 656; 
    background-size: cover;
    background-position: center;
    border-radius: 10px; /* 살짝 둥글게 (각진게 좋으시면 0으로 변경) */
    display: flex;
    align-items: flex-end; /* 글씨 하단 정렬 */
    justify-content: center;
    padding-bottom: 35px; /* 바닥 여백 */
    overflow: hidden;
    cursor: grab; /* 슬라이드 잡는 커서 모양 */
}

.n_view_card_inner:active { cursor: grabbing; }

/* 🔥 하단 그라데이션 막 */
.n_view_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 위쪽 50%는 투명, 아래로 갈수록 점점 어두워짐 */
    background: linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,0.7) 100%);
    transition: background 0.3s ease;
}

.n_view_card_inner:hover .n_view_overlay {
    background: linear-gradient(to bottom, rgba(0,0,0,0) 30%, rgba(0,0,0,0.85) 100%);
}

/* 카드 텍스트 */
.n_view_card_title {
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    margin: 0;
    letter-spacing: -0.5px;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    /*.n_view_main_title { font-size: 32px; }*/
    .n_view_card_title { font-size: 20px; }
}



/* ========================================================
   Section Point (VOS Dermatology Point - 설명 포함 흐르는 카드)
======================================================== */
.n_point_section {
    padding: 120px 0;
    background: #fff;
    overflow: hidden;
}

.n_point_header {
    text-align: center;
    margin-bottom: 60px;
}

.n_point_main_title {
     font-size: 40px;
    font-weight: 800;
    color: #111;
    line-height: 1.2;
    margin-bottom: 25px;
    letter-spacing: -0.5px;
}

/* 슬라이더 전체 영역 제한 없이 와이드하게 설정 */
.n_point_slider_wrap {
    width: 100%;
    margin: 0 auto;
}

/* 개별 카드 간격 조절 */
.n_point_card {
    padding: 0 15px; /* 카드 사이 간격(Gap) 30px */
    outline: none;
}

.n_point_card_inner {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; /* 정사각형 비율 */
    background-size: cover;
    background-position: center;
    border-radius: 0; /* 둥근 모서리를 원하시면 15px 정도로 변경 */
    display: flex;
    align-items: flex-end; /* 텍스트 하단 정렬 */
    justify-content: center;
    padding-bottom: 35px; /* 하단 여백 넉넉하게 */
    overflow: hidden;
    cursor: pointer;
}

/* 🔥 글씨가 두 줄이므로 그라데이션이 조금 더 위에서부터 짙게 깔리도록 설정 */
.n_point_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 30%, rgba(0,0,0,0.85) 100%);
    transition: background 0.3s ease;
}

.n_point_card_inner:hover .n_point_overlay {
    background: linear-gradient(to bottom, rgba(0,0,0,0) 10%, rgba(0,0,0,0.9) 100%);
}

/* 텍스트 컨테이너 */
.n_point_text {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 20px; /* 좌우 여백을 주어 글씨가 가장자리에 붙지 않게 함 */
}

/* 타이틀 */
.n_point_text h3 {
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 12px 0; /* 타이틀과 설명 사이 간격 */
    letter-spacing: -0.5px;
    word-break: keep-all; /* 단어 단위로 줄바꿈 */
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

/* 설명문 */
.n_point_text p {
    font-size: 16px;
    font-weight: 400;
    color: #eaeaea; /* 완전 흰색보다 살짝 톤을 낮춰 타이틀을 강조 */
    margin: 0;
    line-height: 1.4;
    word-break: keep-all;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    /*.n_point_main_title { font-size: 32px; }*/
    .n_point_text h3 { font-size: 20px; margin-bottom: 8px; }
    .n_point_text p { font-size: 14px; }
}


/* ========================================================
   Section 6 (VOSTV 유튜브 레이아웃 전체)
======================================================== */
.n_youtube_section { 
    background: #f4f4f4; 
    width: 100%; 
    padding-bottom: 120px; 
    position: relative;
}

/* --- 상단 타이틀 & 버튼 래퍼 --- */
.n_yt_header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    margin-bottom: 50px; 
    padding-right: 5%; 
}

/* 왼쪽 화이트 탭 (라운드 디자인) */
.n_yt_title_box { 
    background: #fff; 
    padding: 30px 60px 30px 40px; 
    border-radius: 0 0 60px 0; 
    display: flex; 
    align-items: baseline; 
    gap: 30px;
    position: relative; 
}

/* 왼쪽 끝까지 흰색 배경 채우기 (Bleed 효과) */
.n_yt_title_box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%; 
    width: 100vw; 
    height: 100%;
    background: #fff; 
}

.n_yt_main_title { 
    font-size: 55px; 
    color: #111; 
    letter-spacing: -1px; 
    line-height: 1;
}
.n_yt_main_title .w_800 { font-weight: 800; }
.n_yt_main_title .w_300 { font-weight: 300; margin-left: 5px; }

.n_yt_sub_count { 
    font-size: 20px; 
    color: #666; 
    font-weight: 500; 
}

/* 우측 유튜브 채널 버튼 */
.n_yt_channel_btn { 
    display: inline-flex; 
    align-items: center; 
    background: #000; 
    color: #ffffff !important; 
    padding: 12px 35px; 
    border-radius: 50px; 
    font-size: 18px; 
    font-weight: 600; 
    text-decoration: none !important; 
    gap: 12px;
    transition: all 0.3s ease;
}

.n_yt_channel_btn:hover,
.n_yt_channel_btn:focus,
.n_yt_channel_btn:active,
.n_yt_channel_btn:visited { 
    background: #222; 
    color: #ffffff !important; 
    transform: translateY(-3px); 
}

/* 유튜브 빨간색 플레이 아이콘 구현 */
.yt_icon { 
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #f00; 
    color: #fff; 
    width: 30px; 
    height: 22px; 
    border-radius: 6px; 
    font-size: 12px;
    padding-left: 2px; 
}

/* --- 영상 콘텐츠 영역 (좌측 6 : 우측 4 비율) --- */
.n_yt_content { 
    display: flex; 
    gap: 40px; 
    max-width: 1600px; 
    margin: 0 auto; 
    padding: 0 40px; 
}

/* 메인 영상 (왼쪽) */
.n_yt_main_video { 
    flex: 0 0 58%; 
    border-radius: 20px; 
    overflow: hidden; 
}
.n_yt_main_video img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    display: block; 
    transition: transform 0.4s ease;
}
.n_yt_main_video:hover img { transform: scale(1.03); }

/* 서브 영상 리스트 (오른쪽) */
.n_yt_sub_list { 
    flex: 1; 
    display: flex; 
    flex-direction: column; 
    justify-content: space-between; 
}

/* 🔥 파란색 기본 링크 밑줄 안 생기게 강제 방어 */
.n_yt_sub_item { 
    display: flex; 
    gap: 25px; 
    align-items: center; 
    text-decoration: none !important; 
    transition: transform 0.3s ease;
}
.n_yt_sub_item:hover { transform: translateX(-10px); }

/* 서브 영상 썸네일 */
.n_yt_sub_img { 
    flex: 0 0 35%; 
    border-radius: 12px; 
    overflow: hidden; 
}
.n_yt_sub_img img { 
    width: 100%; 
    aspect-ratio: 16 / 9; 
    object-fit: cover; 
    display: block; 
}

/* 서브 영상 텍스트 */
.n_yt_sub_text { flex: 1; }

.n_yt_sub_text h4 { 
    font-size: 22px; 
    font-weight: 700; 
    color: #111 !important; /* 파란색 링크 덮어쓰기 */
    margin: 0 0 8px 0; 
    line-height: 1.3;
    word-break: keep-all; 
}
.n_yt_sub_text p { 
    font-size: 16px; 
    color: #666 !important; 
    margin: 0;
    line-height: 1.5; 
    word-break: keep-all;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_yt_header { flex-direction: column; align-items: flex-start; gap: 20px; padding-right: 0; }
    .n_yt_title_box { padding: 20px 40px 20px 20px; border-radius: 0 0 40px 0; }
    .n_yt_content { flex-direction: column; padding: 0 20px; }
    .n_yt_main_video { flex: none; width: 100%; margin-bottom: 30px; }
    .n_yt_sub_list { gap: 20px; }
}


/* ========================================================
   Section History (1/4 텍스트 + 3/4 슬라이더 레이아웃)
======================================================== */
.n_history_section {
    padding: 120px 0;
    background: #fff;
    overflow: hidden;
}

/* 좌우 분할 레이아웃 컨테이너 */
.n_history_layout {
    display: flex;
    align-items: center; /* 세로 중앙 정렬 */
    justify-content: space-between;
    width: 100%;
    flex-wrap: nowrap; /* 절대 밑으로 떨어지지 않게 강제 고정 */
}

/* --- 왼쪽 영역 (1/4 텍스트 파트) --- */
.n_history_left {
    width: 25%; /* 정확히 25% 할당 */
    padding-right: 60px; /* gap 대신 padding으로 간격 부여 */
    box-sizing: border-box;
}

/* 누락되었던 텍스트 스타일 추가! */
.n_history_main_title {
    font-size: 40px;
    font-weight: 800;
    color: #111;
    line-height: 1.2;
    margin-bottom: 25px;
    letter-spacing: -0.5px;
}

.n_history_sub_text {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 40px;
    word-break: keep-all;
}

.n_history_more {
    font-size: 15px;
    color: #333;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s;
}

.n_history_more:hover {
    color: #b4a064;
}

/* --- 오른쪽 슬라이더 영역 (3/4 갤러리 파트) --- */
.n_history_right {
    width: 75%; /* 정확히 75% 할당 */
    min-width: 0; /* 🔥 Flexbox 내 슬라이더 폭주 방지 */
}

/* 개별 카드 디자인 */
.n_history_card {
    padding: 0 15px; 
    box-sizing: border-box; 
    outline: none;
}

/* 이미지 영역 */
.n_history_img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin-bottom: 15px;
    background: #f5f5f5;
    border-radius: 5px; 
}

.n_history_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.n_history_card:hover .n_history_img img {
    transform: scale(1.05);
}

/* 하단 텍스트 */
.n_history_card_title {
    font-size: 18px;
    font-weight: 700;
    color: #222;
    text-align: left; 
    margin: 0;
    line-height: 1.4;
    word-break: keep-all;
}

/* 슬라이더 하단 점(Dots) 위치 조정 */
.n_history_slider .slick-dots {
    bottom: -40px;
    text-align: left; 
    padding-left: 15px;
}

/* --- 모바일/태블릿 반응형 (누락 방지) --- */
@media (max-width: 1024px) {
    .n_history_layout {
        flex-direction: column; /* 모바일에서는 위아래 배치로 변경 */
    }
    .n_history_left {
        width: 100%;
        padding-right: 0;
        margin-bottom: 40px;
        text-align: center; /* 모바일에선 가운데 정렬이 깔끔함 */
    }
    .n_history_right {
        width: 100%;
    }
}


/* --- Section 7: 배경 영역 --- */
.n_info_section {
    width: 100%;
    padding: 120px 0; /* 상하 여백으로 배경 이미지가 충분히 보이게 함 */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

/* 내부 1800px 컨테이너 */
.n_info_section .n_inner_1800 {
    display: flex;
    align-items: center; /* 박스를 수직 중앙에 배치 */
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px;
}

/* --- 왼쪽 화이트 정보 박스 --- */
.n_info_box {
    width: 100%;
    max-width: 480px; /* 박스 가로 폭 제한 */
    background: rgba(255, 255, 255, 0.6); /* 살짝 투명한 흰색 배경 */
    backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 0, 0, 0.15); /* 시안의 얇은 테두리 */
    padding: 60px 50px;
    box-shadow: 10px 20px 40px rgba(0, 0, 0, 0.1);
}

/* 로고 및 구분선 */
.n_info_logo {
    margin-bottom: 30px;
}
.n_info_logo img {
    max-width: 200px;
    height: auto;
    display: block;
}

.n_info_divider {
    border: 0;
    height: 1px;
    background: #ccc; /* 로고 아래 회색 선 */
    margin-bottom: 30px;
}

/* 텍스트 디테일 */
.info_row {
    margin-bottom: 25px;
}
.info_row h4 {
    font-size: 18px;
    font-weight: 800;
    color: #111;
    margin-bottom: 8px;
}
.info_row p {
    font-size: 18px;
    color: #333;
    word-break: keep-all;
}
.info_row p.phone_num {
    font-size: 42px; /* 전화번호 크게 강조 */
    font-weight: 800;
    color: #111;
    letter-spacing: -1px;
}

/* --- 하단 버튼 (노랑 / 회색) --- */
.n_info_btns {
    display: flex;
    gap: 15px;
    margin-top: 40px;
}

.n_info_btns a {
    flex: 1;
    text-align: center;
    padding: 16px 0;
    border-radius: 50px; /* 둥근 알약 형태 */
    font-size: 17px;
    font-weight: 700;
    text-decoration: none !important; /* 밑줄 방지 */
    transition: all 0.3s ease;
}

.btn_yellow {
    background: #fbd65b !important; /* 배경색 강제 적용 */
    color: #111 !important; /* 텍스트 색상 강제 적용 (검은색) */
}
.btn_yellow:hover {
    background: #e5c048 !important;
}

.btn_gray {
    background: #7a7a7a !important; /* 배경색 강제 적용 */
    color: #fff !important; /* 텍스트 색상 강제 적용 (흰색) */
}
.btn_gray:hover {
    background: #666 !important;
}

/* --- 모바일 대응 --- */
@media (max-width: 768px) {
    .n_info_section { padding: 60px 0; }
    .n_info_box { max-width: 100%; padding: 40px 30px; }
    .info_row p.phone_num { font-size: 32px; }
    .n_info_btns { flex-direction: column; }
}


/* ========================================================
   HOME 화면 - 이미지 사이즈 최적화 (축소)
======================================================== */

/* Section 2 (특장점 슬라이더 이미지) */
.n_feat_img {
    max-width: 55%; /* 기존 80%에서 2/3 수준으로 대폭 축소 */
    margin: 0 auto; /* 해당 영역(왼쪽 50% 공간) 안에서 중앙 정렬 유지 */
}

/* Section 3 (시그니처 시술 이미지) */
.n_sig_img {
    max-width: 85%; 
    margin: 0 auto;
}

/* Section 4 (Before & After 이미지) */
.n_ba_item {
    max-width: 90%; /* B&A 썸네일 박스 크기 살짝 축소 */
    margin: 0 auto;
}

/* Section 5 (3대 원칙 원형 이미지) */
.n_rule_img {
    max-width: 75%; /* 과도하게 컸던 원칙 이미지를 아담하게 축소 */
    margin: 0 auto 30px;
}

/* Section 6 (유튜브 영상 썸네일) */
.n_yt_main_video {
    max-width: 90%; /* 메인 영상 크기 축소 */
    margin: 0 auto;
}
.n_yt_sub_img {
    max-width: 150px; /* 우측 서브 썸네일 최대 너비 고정 */
}


/* ========================================================
   흐르는 텍스트 (Marquee - Right) 효과
======================================================== */
.n_marquee_section {
    width: 100%;
    overflow: hidden; /* 화면 밖으로 나가는 글씨를 깔끔하게 숨김 */
    background: #fff; /* 배경색 (필요시 변경) */
    padding: 60px 0; /* 위아래 여백 */
    display: flex;
}

.n_marquee_track {
    display: flex;
    white-space: nowrap; /* 글씨가 줄바꿈되지 않고 한 줄로 쭉 이어지게 함 */
    /* 40초 동안 일정한 속도(linear)로 무한(infinite) 반복 */
    animation: marqueeLeft 120s linear infinite; 
}

.n_marquee_text {
    font-size: 130px; /* 글씨 크기 (시원하게 큼직하게) */
    font-weight: 800; /* 글씨 굵기 */
    color: #fed201; /* 요청하신 VOS 노란색 */
    padding-right: 20px; /* 반복되는 텍스트 사이의 추가 여백 */
    font-family: 'Pretendard', sans-serif;
    
    /* 💡 시안의 글씨처럼 배경에 은은하게 깔리길 원하시면 아래 투명도를 활성화하세요! */
    /* opacity: 0.3; */ 
}

/* 오른쪽으로 흐르는 애니메이션 키프레임 */
@keyframes marqueeLeft {
    0%   { transform: translateX(0%); }    /* 제자리에서 시작 */
    100% { transform: translateX(-50%); }  /* 왼쪽으로 절반만큼 이동하며 무한 루프 */
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_marquee_text { font-size: 60px; }
    .n_marquee_section { padding: 40px 0; }
}




/* ========================================================
   About VOS 페이지 스타일
======================================================== */

/* --- Section 1: Hero 타이틀 --- */
/* --- Section 1: Hero 타이틀 및 배경 Fade-in --- */
.n_about_hero {
    width: 100%;
    height: 790px; /* 수정하신 높이 반영 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
    
    /* [추가된 부분] 배경 Fade-in 애니메이션 */
    opacity: 0; /* 처음엔 숨김 */
    animation: heroBgFade 1.5s ease-in-out forwards;
}

/* 배경 Fade-in 키프레임 (스르륵 나타나기) */
@keyframes heroBgFade {
    0% { 
        opacity: 0; 
        /* 원하신다면 여기에 background-size: 110%; 를 넣고 
           100%에 background-size: 100%; 를 넣으면 살짝 축소되면서 등장하는 고급 효과도 가능합니다! */
    }
    100% { 
        opacity: 1; 
    }
}

/* 1800px 컨테이너 유지 */
.n_about_hero .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px;
}

/* 텍스트 스타일 */
.n_about_main_title {
    font-size: 70px; /* 큼직한 타이틀 */
    font-weight: 800;
    letter-spacing: -1px;
    margin: 0;
}

.n_about_main_title .t_white {
    color: #fff;
    margin-right: 15px;
}

.n_about_main_title .t_yellow {
    color: #fbd65b; /* VOS 노란색 포인트 */
}

/* --- Hero 다이나믹 애니메이션 (교차 등장) --- */

/* 1. 래퍼 자체의 투명도/이동은 제거 (개별 글자가 움직이도록 세팅) */
.n_hero_fade_in {
    display: block; 
}

/* 2. 개별 글자(span)에 기본 트랜지션 속성 부여 */
.n_about_main_title span {
    display: inline-block; 
    opacity: 0;
    /* 공통 트랜지션 (transform과 opacity만 설정) */
    transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 1.2s ease;
    will-change: transform, opacity, color;
}

/* 3. 초기 위치 및 색상 설정 */
/* About (하단에서 대기) */
.n_about_main_title .t_white {
    transform: translateY(100px);
    color: #ffffff; /* 확실하게 흰색 지정 */
}

/* VOS (상단에서 대기) */
.n_about_main_title .t_yellow {
    transform: translateY(-100px);
    color: #ffffff; /* 🔥 핵심 1: 대기 상태일 때는 VOS도 무조건 흰색! */
}

/* 4. 활성화(active) 시 제자리로 이동 및 최종 색상 지정 */
.n_hero_fade_in.active .t_white {
    opacity: 1;
    transform: translateY(0);
}

.n_hero_fade_in.active .t_yellow {
    opacity: 1;
    transform: translateY(0);
    color: #fdd000; /* 🔥 핵심 2: 도착했을 때 노란색이 되도록 목표 색상 지정 */
}

/* 5. VOS의 시차(Delay) 및 색상 페이드인 타이밍 세밀 조정 */
.n_hero_fade_in.active .t_yellow {
    /* 🔥 핵심 3: 속성별로 딜레이 시간을 다르게 설정!
       - transform/opacity(이동/등장): 0.15초 뒤에 1.2초 동안 통통 튕기며 등장
       - color(색상 변화): 이동이 거의 끝날 때쯤인 '1.2초 뒤'에 시작해서 0.8초 동안 노란색으로 물듦 */
    transition: 
        transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s,
        opacity 1.2s ease 0.15s,
        color 0.8s ease 1.2s; 
}

/* 모바일 대응 */
@media (max-width: 768px) {
    .n_about_hero { height: 400px; background-position: 65% center!important;}
    .n_about_main_title { font-size: 45px; }
}



/* --- Section 2: Layout --- */
.n_about_sec2 { 
    padding: 150px 0; 
    background: #fff; 
    overflow: hidden; /* 이미지가 오른쪽 밖에서 들어올 때 가로 스크롤 방지 */
}

/* 상단 타이틀 */
.n_sec2_top { text-align: center; margin-bottom: 100px; }
.n_sec2_title { font-size: 55px; font-weight: 800; color: #222; margin-bottom: 20px; line-height: 1.2; letter-spacing: 1px; }
.n_sec2_sub { font-size: 22px; color: #555; font-weight: 400; }

/* --- 본문 레이아웃 (1800px로 확장) --- */
.n_sec2_content { 
    display: flex; 
    align-items: center; 
    width: 100%; /* 부모(n_inner_1800)의 너비를 꽉 채움 */
    gap: 60px;   /* 텍스트와 이미지 사이의 간격을 60px로 통일 */
}
.n_sec2_text_wrap { flex: 1;  } /* 텍스트가 너무 퍼지지 않게 폭 유지 */
.n_sec2_img_wrap { flex: 1; } /* 이미지 크기를 조금 더 여유롭게 확보 */
.n_sec2_img_wrap img { width: 100%; height: auto; display: block; }

/* 텍스트 디테일 등은 기존과 동일 */
.n_sec2_text_wrap h3 { font-size: 34px; font-weight: 400; color: #111; margin-bottom: 40px; letter-spacing: -1px; }
.n_sec2_text_wrap h3 strong { font-weight: 800; }
.n_sec2_text_wrap p { font-size: 18px; color: #444; line-height: 1.8; margin-bottom: 25px; word-break: keep-all; }
.n_sec2_text_wrap p.n_highlight { font-size: 24px; font-weight: 800; color: #fdd000; margin: 50px 0 30px; }


/* =======================================
   ✨ 애니메이션 효과 (무한 루프 스와프 적용)
======================================= */

.n_text_swap { 
    position: relative; 
    display: inline-block; 
    min-width: 140px; 
    text-align: left; 
}

.t_you, .t_vos { 
    display: inline-block; 
    /* transition은 키프레임에서 제어하므로 삭제 */
}

.t_vos { 
    position: absolute; 
    left: 0; 
    top: 0; 
    opacity: 0; 
    color: #fdd000; 
}

/* 스크롤 감지 시 4초 주기로 무한 반복(infinite) 시작 */
.n_reveal_fade.active .n_text_swap .t_you { 
    animation: loopYou 4s infinite; 
}
.n_reveal_fade.active .n_text_swap .t_vos { 
    animation: loopVos 4s infinite; 
}

/* YOU 무한 반복 키프레임 */
@keyframes loopYou {
    0%, 35%   { opacity: 1; transform: translateY(0); }         /* 정중앙 유지 */
    40%, 45%  { opacity: 0; transform: translateY(-20px); }     /* 위로 사라짐 */
    46%, 85%  { opacity: 0; transform: translateY(20px); }      /* 아래로 몰래 이동해 대기 */
    90%, 100% { opacity: 1; transform: translateY(0); }         /* 다시 아래에서 올라옴 */
}

/* VOS 무한 반복 키프레임 */
@keyframes loopVos {
    0%, 35%   { opacity: 0; transform: translateY(20px); }      /* 아래에서 대기 */
    40%, 85%  { opacity: 1; transform: translateY(0); }         /* 올라와서 정중앙 유지 */
    90%, 100% { opacity: 0; transform: translateY(-20px); }     /* 위로 사라짐 */
}

/* =======================================
   ✨ 범용 스크롤 애니메이션 툴킷
======================================= */

/* 1. 제자리에서 부드럽게 밝아짐 */
.n_reveal_fade { 
    opacity: 0; 
    transform: translateY(30px); /* 아주 살짝만 아래서 올라옴 */
    transition: all 1s ease-out; 
}
.n_reveal_fade.active { opacity: 1; transform: translateY(0); }

/* 2. 오른쪽에서 왼쪽으로 미끄러져 들어옴 */
.n_reveal_slide_right { 
    opacity: 0; 
    transform: translateX(100px); 
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1); 
}
.n_reveal_slide_right.active { opacity: 1; transform: translateX(0); }

/* 3. [추가] 왼쪽에서 오른쪽으로 미끄러져 들어옴 */
.n_reveal_slide_left { 
    opacity: 0; 
    transform: translateX(-100px); 
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1); 
}
.n_reveal_slide_left.active { opacity: 1; transform: translateX(0); }

/* 4. [추가] 아래에서 위로 쑥 올라옴 (더 역동적) */
.n_reveal_up { 
    opacity: 0; 
    transform: translateY(80px); 
    transition: all 1s cubic-bezier(0.25, 1, 0.5, 1); 
}
.n_reveal_up.active { opacity: 1; transform: translateY(0); }

/* --- 시차(Delay) 클래스 모음 (요소들을 순차적으로 등장시킬 때 사용) --- */
.delay_1 { transition-delay: 0.2s; }
.delay_2 { transition-delay: 0.4s; }
.delay_3 { transition-delay: 0.6s; }
.delay_4 { transition-delay: 0.8s; }


/* --- 1800px 이너 컨테이너 (공통 설정이 없다면 추가) --- */
.n_inner_1800 {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 40px; /* 브라우저 창이 좁아질 때를 대비한 최소 여백 */
    width: 100%;
    box-sizing: border-box;
}

/* ========================================================
   About VOS - Section 3 (반반 분할 레이아웃)
======================================================== */
.n_about_sec3 {
    display: flex;
    width: 100%;
    background-color: #e5e5e5; /* 오른쪽 텍스트 영역의 연한 회색 배경 */
    min-height: 750px; /* 섹션 최소 높이 보장 */
}

/* --- 왼쪽 이미지 영역 (화면의 정확히 절반을 차지하며 가장자리까지 채움) --- */
.n_sec3_left {
    width: 50%;
    background-size: cover;
    background-position: center right; /* 원장님 얼굴이 잘리지 않도록 우측 기준 정렬 */
    background-repeat: no-repeat;
}

/* --- 오른쪽 텍스트 부모 영역 --- */
.n_sec3_right {
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: flex-start; /* 1800px 가이드의 중앙부터 시작되도록 설정 */
}

/* --- 핵심! 텍스트 제한 영역 (1800px의 절반인 900px로 제한) --- */
.n_sec3_text_inner {
    width: 100%;
    max-width: 900px; 
    padding: 80px 80px 80px 60px; /* 상우하좌 패딩 (이미지와의 간격 확보) */
}

/* --- 텍스트 스타일링 --- */
.n_sec3_title {
    font-size: 40px;
    font-weight: 800;
    color: #222;
    margin-bottom: 15px;
    letter-spacing: -1.5px;
    word-break: keep-all;
}

.n_sec3_sub {
    font-size: 22px;
    font-weight: 500;
    color: #333;
    margin-bottom: 50px;
    letter-spacing: -0.5px;
    word-break: keep-all;
}

.n_sec3_desc p {
    font-size: 18px;
    color: #444;
    line-height: 1.8;
    margin-bottom: 30px;
    word-break: keep-all;
}

.n_sec3_desc p:last-child {
    margin-bottom: 0;
}

.n_sec3_desc strong {
    font-weight: 800;
    color: #111;
}

/* --- 반응형 (모바일/태블릿에서는 위아래로 떨어지게 처리) --- */
@media (max-width: 1024px) {
    .n_about_sec3 { flex-direction: column; }
    .n_sec3_left { width: 100%; height: 500px; }
    .n_sec3_right { width: 100%; }
    .n_sec3_text_inner { max-width: 100%; padding: 60px 30px; }
}


/* ========================================================
   About VOS - Section 4
======================================================== */
.n_about_sec4 {
    padding: 150px 0;
    background: #fff;
    width: 100%;
    overflow: hidden; /* 슬라이드 애니메이션 시 가로 스크롤 방지 */
}

/* --- 상단 메인 타이틀 --- */
.n_sec4_header {
    text-align: center;
    margin-bottom: 90px;
}
.n_sec4_header h2 {
    font-size: 42px;
    font-weight: 800;
    color: #222;
    letter-spacing: -1px;
}

/* --- 중간 텍스트/이미지 반반 레이아웃 (수정됨) --- */
.n_sec4_middle {
    display: flex;
    align-items: center;
    width: 100%; /* 부모(n_inner_1800)의 너비를 꽉 채움 */
    gap: 60px;   /* Section 2와 동일한 간격 적용 */
    margin-bottom: 120px;
}

/* 왼쪽 텍스트 */
.n_sec4_text {
    flex: 1;
    /* padding-right: 80px; 삭제 -> gap으로 대체 */
    width: auto; /* width: 50% 삭제 (flex: 1 이 비율을 맞춤) */
}

/* 오른쪽 이미지 */
.n_sec4_img {
    flex: 1;
    width: auto; /* width: 50% 삭제 */
    overflow: hidden;
}

.n_sec4_img img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* 중간 텍스트 디테일 */
.n_sec4_text h3 {
    font-size: 34px;
    font-weight: 800;
    color: #111;
    margin-bottom: 40px;
    line-height: 1.3;
    letter-spacing: -1px;
}
.n_sec4_text p {
    font-size: 18px;
    color: #555;
    line-height: 1.7;
    margin-bottom: 30px;
    word-break: keep-all;
}
.n_sec4_text p:last-child {
    margin-bottom: 0;
}

/* --- 하단 서브타이틀 및 아이콘 영역 --- */
.n_sec4_bottom {
    text-align: center;
}
.n_sec4_bot_title {
    font-size: 26px;
    font-weight: 700;
    color: #333;
    margin-bottom: 60px;
}

/* 원형 아이콘 그리드 */
.n_sec4_icons_wrap {
    display: flex;
    justify-content: center;
    gap: 40px;
}

/* 개별 원형 아이템 */
.n_sec4_icon_item {
    width: 380px; /* 시안처럼 큼직한 원형 */
    height: 380px;
    border-radius: 50%;
    background-color: #6a6a6a; /* 시안의 짙은 회색 */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px;
    box-shadow: 0 15px 30px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}

.n_sec4_icon_item:hover {
    transform: translateY(-10px); /* 마우스 올렸을 때 살짝 뜨는 효과 추가 */
}

/* 아이콘 이미지 */
.n_icon_img {
    margin-bottom: 25px;
    height: 70px; /* 아이콘들이 균일한 높이를 가지도록 고정 */
    display: flex;
    align-items: center;
    justify-content: center;
}
.n_icon_img img {
    max-height: 100%;
    width: auto;
}

/* 아이콘 텍스트 */
.n_icon_title {
    font-size: 24px;
    font-weight: 700;
    color: #fdd000; /* VOS 노란색 */
    margin-bottom: 15px;
    letter-spacing: -0.5px;
}
.n_icon_desc {
    font-size: 16px;
    color: #fff;
    line-height: 1.5;
    word-break: keep-all;
    margin: 0;
}

/* --- 모바일/태블릿 대응 --- */
@media (max-width: 1024px) {
    .n_sec4_middle { flex-direction: column; gap: 40px; }
    .n_sec4_icons_wrap { flex-direction: column; align-items: center; }
    .n_sec4_icon_item { width: 300px; height: 300px; }
    .n_icon_title { font-size: 20px; }
    .n_icon_desc { font-size: 14px; }
}


/* ========================================================
   About VOS - Section 5 (6:4 아코디언 레이아웃)
======================================================== */
.n_about_sec5 {
    padding: 150px 0;
    background-color: #e6e6e6; /* 시안의 연한 회색 배경 */
    width: 100%;
    overflow: hidden;
}

.n_sec5_wrap {
    display: flex;
    justify-content: space-between;
    align-items: stretch; /* 좌우 높이를 맞춤 */
}

/* --- 왼쪽 아코디언 영역 (60% 비율) --- */
.n_sec5_left {
    width: 55%; /* 약간의 여백을 위해 55%로 설정 */
}

.n_sec5_header {
    margin-bottom: 60px;
}

.n_sec5_header h2 {
    font-size: 42px;
    font-weight: 800;
    color: #111;
    line-height: 1.3;
    letter-spacing: -1px;
    margin-bottom: 15px;
}

.n_sec5_header p {
    font-size: 20px;
    color: #555;
    font-weight: 400;
}

/* 아코디언 리스트 스타일 */
.n_sec5_accordion {
    border-top: 1px solid #ccc;
    list-style: none;
    padding: 0;
    margin: 0;
}

.n_acc_item {
    border-bottom: 1px solid #ccc;
}

.n_acc_head {
    padding: 30px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.n_acc_head h3 {
    font-size: 24px;
    font-weight: 500;
    color: #333;
    margin: 0;
    transition: font-weight 0.3s ease, color 0.3s ease;
}

.n_acc_icon {
    font-size: 16px;
    color: #777;
    transition: all 0.3s ease;
}

/* 아코디언 활성화(Active) 상태 */
.n_acc_item.active .n_acc_head h3 {
    font-weight: 800;
    color: #111;
}

.n_acc_item.active .n_acc_icon {
    display: none; /* 시안처럼 열린 탭은 화살표 숨김 */
}

/* 열리는 내용 부분 */
.n_acc_body {
    padding: 0 0 30px 0;
}

.n_acc_body p {
    font-size: 18px;
    color: #555;
    line-height: 1.6;
    margin: 0;
}

/* --- 오른쪽 이미지 영역 (단일 고정 이미지) --- */
.n_sec5_right {
    width: 38%; 
    display: flex;
    align-items: center;
}

.n_sec5_img_wrap {
    width: 100%;
    aspect-ratio: 4 / 5; /* 세로형 비율 고정 */
    overflow: hidden;
    background: #ccc;
    border-radius: 10px; /* 시안에 맞춰 살짝 둥글게 원하시면 추가 (옵션) */
}

/* 고정된 한 장의 이미지 */
.n_static_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}



/* --- 모바일/태블릿 대응 --- */
@media (max-width: 1024px) {
    .n_sec5_wrap { flex-direction: column; gap: 50px; }
    .n_sec5_left { width: 100%; }
    .n_sec5_right { width: 100%; }
    .n_sec5_img_wrap { aspect-ratio: 16 / 9; }
}


/* ========================================================
   About VOS - Section 6 (장비 소개 - 디자인 수정반영)
======================================================== */
.n_about_sec6 {
    padding: 150px 0;
    background: #fff;
    width: 100%;
    overflow: hidden;
}

/* --- 상단 메인 타이틀 (굵기 분할) --- */
.n_sec6_header {
    text-align: center;
    margin-bottom: 80px;
}
.n_sec6_header h2 {
    font-size: 45px;
    color: #222;
    letter-spacing: -1px;
}
.n_sec6_header h2 .w_300 { font-weight: 300; } /* 얇은 글씨 */
.n_sec6_header h2 .w_800 { font-weight: 800; } /* 두꺼운 글씨 */

/* --- 50:50 좌우 레이아웃 --- */
.n_sec6_content {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 60px; 
}

.n_sec6_left {
    flex: 1;
    display: flex;
    justify-content: center;
}
.n_sec6_left img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* 오른쪽 텍스트 및 아이콘 영역 */
.n_sec6_right {
    flex: 1;
}

.n_sec6_text_wrap {
    margin-bottom: 40px;
}
.n_sec6_text_wrap h3 {
    font-size: 30px; /* 기존보다 살짝 줄임 */
    font-weight: 700; /* 800 -> 700으로 덜 두껍게 */
    color: #111;
    margin-bottom: 12px;
    letter-spacing: -1px;
}
.n_sec6_sub_desc {
    font-size: 18px;
    font-weight: 400; /* 얇고 깔끔하게 */
    color: #666;
    word-break: keep-all;
}

/* --- 아이콘 리스트 --- */
.n_sec6_icon_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 35px; 
}

.n_sec6_item {
    display: flex;
    align-items: center; 
    gap: 25px; 
}

/* ✨ 아이콘 이미지 (회색 원형 배경 추가) */
.n_sec6_icon {
    flex-shrink: 0; 
    width: 85px; /* 시안 비율에 맞춰 살짝 조절 */
    height: 85px;
    background-color: #6a6a6a; /* 짙은 회색 배경 */
    border-radius: 50%; /* 완벽한 원형 */
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px; /* 원 안에서 아이콘이 차지하는 여백 */
}
.n_sec6_icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* 개별 아이콘 텍스트 */
.n_sec6_item_text h4 {
    font-size: 22px;
    font-weight: 600; /* 700 -> 600으로 살짝 부드럽게 */
    color: #222;
    margin-bottom: 5px;
    letter-spacing: -0.5px;
}
.n_sec6_item_text p {
    font-size: 16px;
    color: #666;
    line-height: 1.5;
    margin: 0;
    word-break: keep-all;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_sec6_content { flex-direction: column; gap: 50px; }
    .n_sec6_header h2 { font-size: 32px; }
    .n_sec6_text_wrap h3 { font-size: 24px; }
    .n_sec6_item { align-items: flex-start; }
    .n_sec6_icon { width: 70px; height: 70px; padding: 15px; }
}


/* ========================================================
   About VOS - Section 7 (병원 층별 안내)
======================================================== */
.n_about_sec7 {
    width: 100%;
    min-height: 800px; /* 시원한 전경을 보여주기 위한 최소 높이 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center; /* 세로 중앙 정렬 */
    position: relative;
}

/* 1800px 내에서 오른쪽으로 밀어버리는 래퍼 */
.n_sec7_wrap {
    display: flex;
    justify-content: flex-end; /* 오른쪽 정렬 */
    width: 100%;
}

/* ✨ 반투명 유리창 효과 (Glassmorphism) 박스 */
.n_sec7_box {
    width: 100%;
    max-width: 650px; /* 1800px의 우측 절반(900) 안에 여유롭게 들어감 */
    background: rgba(255, 255, 255, 0.65); /* 흰색 반투명 */
    backdrop-filter: blur(15px); /* 배경을 뿌옇게 블러 처리 */
    -webkit-backdrop-filter: blur(15px); /* 사파리 호환성 */
    border-radius: 30px; /* 시안처럼 둥근 모서리 */
    padding: 60px 70px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

/* 영문 타이틀 */
.n_sec7_title {
    font-size: 26px;
    font-weight: 800;
    color: #111;
    letter-spacing: 0px;
    margin: 0;
}

/* 타이틀 아래 얇은 선 */
.n_sec7_divider {
    border: none;
    border-bottom: 1px solid rgba(0,0,0,0.2);
    margin: 25px 0 40px;
}

/* 층별 리스트 */
.n_sec7_floor_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 35px; /* 각 층별 간격 */
}

.n_sec7_floor_list li {
    display: flex;
    align-items: center; /* 숫자와 텍스트 세로 중앙 정렬 */
    gap: 30px; /* 숫자와 텍스트 사이 간격 */
}

/* 층 숫자 디자인 */
.n_sec7_floor_list .f_num {
    font-size: 55px; /* 숫자를 크고 돋보이게 */
    font-weight: 800;
    color: #222;
    line-height: 1;
    min-width: 40px; /* 숫자가 두 자리 이상이어도 정렬 유지 */
    text-align: center;
}

/* 층 설명 텍스트 */
.n_sec7_floor_list .f_desc {
    font-size: 22px;
    font-weight: 500;
    color: #333;
    letter-spacing: -0.5px;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_about_sec7 { padding: 100px 0; min-height: 600px; }
    .n_sec7_wrap { justify-content: center; } /* 모바일에서는 중앙 배치 */
    .n_sec7_box { max-width: 90%; padding: 40px 30px; border-radius: 20px; }
    .n_sec7_title { font-size: 22px; }
    .n_sec7_floor_list { gap: 25px; }
    .n_sec7_floor_list .f_num { font-size: 40px; }
    .n_sec7_floor_list .f_desc { font-size: 18px; }
}


/* ========================================================
   About VOS - Section 8 (마지막 약속 섹션)
======================================================== */
.n_about_sec8 {
    width: 100%;
    min-height: 800px; /* 마지막 섹션의 시원한 높이 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center; /* 세로 중앙 정렬 */
    position: relative;
}

/* (옵션) 텍스트 가독성을 높이기 위해 배경 위에 어두운 막을 씌울 경우 사용 */
/* 배경 이미지가 너무 밝을 경우 주석을 풀고 사용하세요 */
/*
.n_about_sec8::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.3); 
    z-index: 1;
}
*/

/* 1800px 컨테이너 안에서 텍스트 위로 올리기 */
.n_about_sec8 .n_inner_1800 {
    position: relative;
    z-index: 2; /* 오버레이보다 위에 오도록 설정 */
}

/* --- 왼쪽 정렬 텍스트 영역 --- */
.n_sec8_text_box {
    max-width: 800px; /* 텍스트가 가로로 너무 길어지지 않도록 제한 */
}

.n_sec8_title {
    font-size: 50px;
    font-weight: 800;
    color: #fff; /* 배경 이미지에 맞춰 색상 변경 (흰색 or 검은색) */
    line-height: 1.3;
    letter-spacing: -1.5px;
    margin-bottom: 30px;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); /* 글씨 가독성을 위한 은은한 그림자 */
}

.n_sec8_desc {
    font-size: 20px;
    color: #f1f1f1;
    font-weight: 400;
    line-height: 1.8;
    margin-bottom: 50px;
    word-break: keep-all;
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* (선택) 하단 예약 버튼 스타일 */
.n_sec8_btn {
    display: inline-block;
    padding: 18px 50px;
    background-color: #fdd000; /* VOS 노란색 */
    color: #111;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 5px;
    transition: all 0.3s ease;
}

.n_sec8_btn:hover {
    background-color: #111;
    color: #fff;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .n_about_sec8 { min-height: 500px; padding: 80px 0; }
    .n_sec8_title { font-size: 35px; }
    .n_sec8_desc { font-size: 16px; }
}


/* ========================================================
   About VOS 페이지 모바일 최적화 (768px 이하 전용)
======================================================== */
@media (max-width: 768px) {
    
    /* ----------------------------------------------------
       1. Hero 섹션 타이틀 크기 축소 (70px -> 32px)
    ---------------------------------------------------- */
    .n_about_main_title { 
        font-size: 32px !important; 
    }

    /* ----------------------------------------------------
       2 & 3. Section 2 (FOR ONE & ONLY) & Section 4 모바일 레이아웃
       (HTML 수정 없이 이미지를 위로, 텍스트를 아래로 1단 배치)
    ---------------------------------------------------- */
    .n_sec2_content,
    .n_sec4_middle {
        /* 🔥 핵심: column-reverse를 쓰면 2번째 요소(이미지)가 위로 올라옵니다! */
        flex-direction: column-reverse !important; 
        gap: 40px !important;
    }
    .n_sec2_img_wrap,
    .n_sec4_img {
        max-width: 100% !important;
        width: 100% !important;
    }
	/* ----------------------------------------------------
       7. FOR ONE & ONLY - YOU / VOS 글자 중앙 정렬 완벽 해결
    ---------------------------------------------------- */
    .n_text_swap {
        display: block !important; /* 모바일에서는 무조건 아랫줄로 떨어지게 하여 어중간한 줄바꿈 방지 */
        width: 100% !important;
        text-align: center !important; /* 상자 안의 글씨를 무조건 가운데로 */
        margin-top: 5px; /* 윗글씨(FOR ONE & ONLY)와의 간격 */
    }
    .n_text_swap .t_vos {
        width: 100% !important; /* 애니메이션 글자도 100% 크기를 차지하게 한 뒤 */
        left: 0 !important;
        text-align: center !important; /* 정중앙에 배치 */
    }

    /* ----------------------------------------------------
       4. Section 3 (전문의 진단) 왼쪽 원장님 이미지 높이 축소
    ---------------------------------------------------- */
    .n_sec3_left {
        height: 320px !important; /* 500px -> 320px 로 변경하여 시원하게 노출 */
    }

    /* ----------------------------------------------------
       5 & 6. 전 섹션 타이틀 32px / 서브타이틀 26px 완벽 통일
    ---------------------------------------------------- */
    
    /* 🎯 메인 타이틀 32px 통일 (각 섹션의 가장 큰 제목) */
    .n_sec2_title,
    .n_sec3_title,
    .n_sec4_header h2,
    .n_sec5_header h2,
    .n_sec6_header h2,
    .n_sec8_title {
        font-size: 32px !important;
        line-height: 1.3 !important;
        word-break: keep-all;
        letter-spacing: -1px;
    }

    /* 🎯 서브 타이틀 26px 통일 (메인 타이틀 아래 부가 설명 제목) */
    .n_sec2_sub,
    .n_sec2_text_wrap h3,
    .n_sec3_sub,
    .n_sec4_text h3,
    .n_sec4_bot_title,
    .n_sec6_text_wrap h3,
    .n_sec7_title {
        font-size: 26px !important;
        line-height: 1.3 !important;
        word-break: keep-all;
        margin-bottom: 20px !important;
    }

    /* 🎯 아코디언 타이틀 밸런스 조정 */
    /* 메인이 32px이므로, 아코디언 탭 항목 제목은 20px로 조절해 위계질서를 맞춥니다 */
    .n_acc_head h3 {
        font-size: 20px !important;
    }
    
    /* ----------------------------------------------------
       기타 여백 최적화 (모바일에서 화면 밖으로 밀리는 현상 방지)
    ---------------------------------------------------- */
    .n_about_sec2, .n_about_sec4, .n_about_sec5, .n_about_sec6 {
        padding: 80px 0 !important;
    }
    .n_sec3_text_inner {
        padding: 50px 20px !important;
    }
}




/* ========================================================
   의료진 소개 (Dr. Kim) 페이지 스타일
======================================================== */

/* --- Section 1: Hero 타이틀 및 배경 Fade-in --- */
.dr_hero_section {
    width: 100%;
    height: 790px; /* 병원 소개와 동일한 높이 유지 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
    
    /* 배경 Fade-in 애니메이션 */
    opacity: 0; 
    animation: drHeroBgFade 1.5s ease-in-out forwards;
}

/* 배경 Fade-in 키프레임 */
@keyframes drHeroBgFade {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}

/* 1800px 컨테이너 (시안처럼 좌측 텍스트 정렬을 위해 padding 조절) */
.dr_hero_section .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px; 
}

/* 텍스트 컨테이너 */
.dr_hero_content {
    width: 100%;
    padding-left: 2%; /* 시안처럼 텍스트를 약간 안쪽으로 */
}

/* 타이틀 스타일 */
.dr_hero_main_title {
    font-size: 75px; 
    font-weight: 800;
    letter-spacing: -1px;
    margin: 0;
}

.dr_hero_main_title .t_white {
    color: #fff;
    margin-right: 15px;
}

.dr_hero_main_title .t_yellow {
    color: #fdd000;
}

/* --- Hero 다이나믹 애니메이션 (교차 등장 및 페이드인) --- */
.dr_hero_fade_in {
    display: block; 
}

.dr_hero_fade_in span {
    display: inline-block; 
    opacity: 0;
    transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 1.2s ease;
    will-change: transform, opacity, color;
}

/* 초기 대기 상태 (모두 흰색) */
.dr_hero_main_title .t_white {
    transform: translateY(100px);
    color: #ffffff; 
}

.dr_hero_main_title .t_yellow {
    transform: translateY(-100px);
    color: #ffffff; 
}

/* 활성화(active) 시 동작 */
.dr_hero_fade_in.active .t_white {
    opacity: 1;
    transform: translateY(0);
}

.dr_hero_fade_in.active .t_yellow {
    opacity: 1;
    transform: translateY(0);
    color: #fdd000; /* 최종 노란색 */
    /* 이동: 0.15초 뒤, 색상변화: 1.2초 뒤 시작 */
    transition: 
        transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s,
        opacity 1.2s ease 0.15s,
        color 0.8s ease 1.2s; 
}

/* 모바일 대응 */
@media (max-width: 768px) {
    .dr_hero_section { height: 400px;background-position: 65% center!important; }
    .dr_hero_main_title { font-size: 45px; }
    .dr_hero_content { padding-left: 5%; }
}


/* ========================================================
   [추가] 새로운 1400px 이너 컨테이너 (공통 영역에 추가)
======================================================== */
.n_inner_1400 {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    width: 100%;
    box-sizing: border-box;
}



/* ========================================================
   Dr Section 2 - 피부를 가장 잘 아는 사람 (좌 이미지 / 우 텍스트)
======================================================== */
.dr_sec2_wrap { 
    padding: 150px 0; 
    background: #fff; 
    overflow: hidden; 
}

/* 상단 타이틀 */
.dr_sec2_top { 
    text-align: center; 
    margin-bottom: 80px; 
}
.dr_sec2_title { 
    font-size: 45px; 
    font-weight: 800; 
    color: #111; 
    margin-bottom: 20px; 
    letter-spacing: -1px; 
}
.dr_sec2_sub { 
    font-size: 22px; 
    color: #555; 
    font-weight: 500; 
}

/* 본문 레이아웃 (Flex) */
.dr_sec2_content { 
    display: flex; 
    align-items: center; 
    width: 100%; 
    gap: 80px; 
}

/* 🔥 왼쪽 이미지 (기존 50% -> 35% 로 2/3 수준 축소) */
.dr_sec2_img_wrap { 
    flex: 0 0 45%; 
    max-width: 45%; 
}
.dr_sec2_img_wrap img { 
    width: 100%; 
    height: auto; 
    display: block; 
    background: #f4f4f4; 
}

/* 🔥 오른쪽 텍스트 컨테이너 (남은 공간을 모두 사용하도록 확장) */
.dr_sec2_text_wrap { 
    flex: 1; 
    padding: 20px 0;
}

/* --- 통계 박스 영역 (2% / 100%) --- */
.dr_stats_box {
    display: flex;
    /* 🔥 핵심 수정: 높이가 달라도 '무조건 맨 위(숫자)'를 기준으로 줄을 딱 맞춥니다 */
    align-items: flex-start; 
    justify-content: center; 
    margin-top: 60px; /* 🔥 요청하신 상단 여백(빨간 박스 1) 추가 */
    margin-bottom: 40px;
}

.dr_stat_item {
    flex: 0 0 auto; 
    width: 260px; /* 영어가 너무 세로로 길어지지 않게 가로폭을 조금 더 넓혀줍니다 */
    text-align: center;
}

.stat_num {
    display: block;
    font-size: 75px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 15px;
    letter-spacing: -2px;
}
.stat_num.c_yellow { color: #fdd000; } /* 2% 노란색 */
.stat_num.c_navy { color: #214081; }   /* 100% 네이비색 */

.stat_title {
    font-size: 24px;
    font-weight: 800;
    color: #222;
    margin-bottom: 15px;
}

.stat_desc {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
    word-break: keep-all;
    margin: 0;
}

/* 통계 사이 세로 구분선 */
.dr_stat_divider {
    width: 1px;
    height: 130px; /* 텍스트가 길어지는 걸 대비해 선 길이를 살짝 연장 */
    background-color: #ddd;
    margin: 15px 40px 0 40px; /* 선 위치를 숫자 중간쯤으로 자연스럽게 내리고 간격 확보 */
}

/* --- 하단 본문 설명 영역 --- */
.dr_desc_box {
    text-align: center; 
    margin-top: 70px; /* 🔥 요청하신 하단 여백(빨간 박스 2) 대폭 추가 */
}

.dr_desc_box p { 
    font-size: 18px; 
    color: #444; 
    line-height: 1.8; 
    margin-bottom: 25px; 
    word-break: keep-all; 
}
.dr_desc_box p strong { 
    font-weight: 800; 
    color: #111; 
} 

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .dr_sec2_content { flex-direction: column; gap: 50px; }
    .dr_sec2_img_wrap { max-width: 80%; margin: 0 auto; }
    .dr_stats_box { flex-direction: column; gap: 30px; }
    .dr_stat_divider { width: 100%; height: 1px; margin: 20px 0; }
}
@media (max-width: 768px) {
    .dr_sec2_title { font-size: 32px; }
    .dr_sec2_sub { font-size: 18px; }
    .dr_sec2_img_wrap { max-width: 100%; }
    .stat_num { font-size: 60px; }
}



/* ========================================================
   Dr Section 3 - 원장님 인사말 (풀배경 + 텍스트)
======================================================== */
.dr_sec3_wrap {
    width: 100%;
    /* 높이를 화면에 꽉 차게 100vh로 설정하되, 모니터가 작아도 최소 800px은 유지하도록 보장 */
    min-height: 800px;
    height: 100vh;
    background-size: cover;
    /* 인물이 우측에 있으므로 창을 줄일 때 인물이 잘리지 않게 우측 중앙 기준 정렬 */
    background-position: center right; 
    background-repeat: no-repeat;
    display: flex;
    align-items: center; /* 텍스트 수직 중앙 정렬 */
    position: relative;
}

/* 1800px 이너 컨테이너를 활용해 좌우 여백 확보 */
.dr_sec3_wrap .n_inner_1800 {
    width: 100%;
    display: flex;
    justify-content: flex-start; /* 텍스트 박스를 왼쪽으로 정렬 */
}

/* 텍스트 컨테이너 */
.dr_sec3_text_box {
    max-width: 650px; /* 텍스트가 이미지 영역을 너무 침범하지 않게 폭 제한 */
    padding-left: 20px;
}

/* 타이틀 */
.dr_sec3_title {
    font-size: 42px;
    font-weight: 400;
    color: #111;
    line-height: 1.3;
    margin-bottom: 40px;
    letter-spacing: -1px;
}
.dr_sec3_title strong {
    font-weight: 800;
}

/* 본문 단락 */
.dr_sec3_desc p {
    font-size: 18px;
    color: #222;
    line-height: 1.8;
    margin-bottom: 25px;
    word-break: keep-all; /* 단어 단위로 깔끔하게 떨어지게 설정 */
    font-weight: 500;
}
.dr_sec3_desc p:last-child {
    margin-bottom: 0;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .dr_sec3_wrap {
        min-height: auto;
        height: auto;
        padding: 120px 0;
        background-position: 80% center !important;
    }
    
    /* 🔥 모바일에선 글씨가 안 보일 수 있으니 유리 같은 반투명 박스 적용 */
    .dr_sec3_text_box {
        max-width: 100%;
        background: rgba(255, 255, 255, 0.7); 
        padding: 40px;
        border-radius: 20px;
        backdrop-filter: blur(5px);
    }
    .dr_sec3_title { font-size: 32px; }
    .dr_sec3_desc p { font-size: 16px; }
}
@media (max-width: 768px) {
    .dr_sec3_text_box { padding: 30px 20px; }
}


/* ========================================================
   Dr Section 4 - 탭 메뉴 및 컨텐츠 영역
======================================================== */
.dr_sec4_wrap {
    padding: 100px 0 100px 0; /* 🔥 하단 패딩 제거, 상단만 유지 */
    background: #ffffff; /* 🔥 탭 상단 배경을 흰색으로 변경 */
    overflow: hidden; /* 100vw 배경이 가로 스크롤을 만들지 않도록 방지 */
}

/* 탭 네비게이션 */
.dr_tab_nav {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0; /* 🔥 하단 배경과 딱 붙이기 위해 기존 margin-bottom 50px 제거 */
    justify-content: center;
    gap: 10px;
}

.dr_tab_nav li {
    flex: 1;
    max-width: 250px;
}

.dr_tab_nav li a {
    display: block;
    padding: 20px 0;
    text-align: center;
    background: #999; 
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.dr_tab_nav li.ui-tabs-active a {
    background: #fdd000; 
    color: #111;
}

/* 탭 컨텐츠 영역 */
.dr_tab_content {
    position: relative;
    padding: 80px 0 100px; /* 🔥 탭 버튼과 컨텐츠 사이의 간격을 패딩으로 이동 */
    z-index: 1;
}

/* 🔥 핵심: 탭 컨텐츠 영역 뒤에만 화면 꽉 차는 회색(f4f4f4) 배경 깔기 */
.dr_tab_content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: #f4f4f4;
    z-index: -1;
}

/* --- 약력 (Tab 1) 레이아웃 --- */
.career_lists {
    display: flex;
    gap: 40px;
}

.career_col {
    flex: 1;
}

.career_col h3 {
    font-size: 24px;
    color: #111;
    border-bottom: 2px solid #111;
    padding-bottom: 15px;
    margin-bottom: 25px;
}

.career_col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.career_col li {
    font-size: 16px;
    color: #444;
    line-height: 1.8;
    margin-bottom: 10px;
}

/* ========================================================
   [수정] 탭 2: 발표 및 강연 (자동 무한 롤링 타임라인)
======================================================== */

/* --- 무한 롤링 래퍼 및 애니메이션 --- */
.marquee_wrap {
    width: 100%;
    overflow: hidden; /* 넘치는 부분 무조건 숨김 */
    padding: 20px 0;
    position: relative;
}

/* 트랙 전체를 감싸는 영역 */
.marquee_track {
    display: flex;
    width: fit-content; /* 내부 컨텐츠 길이만큼 알아서 늘어남 */
    /* 🔥 애니메이션 설정: 40초 동안, 일정한 속도(linear)로, 무한 반복(infinite) */
    animation: marqueeScroll 400s linear infinite; 
}

/* 마우스 올리면 애니메이션 일시 정지 (사용성 강화) */
.marquee_wrap:hover .marquee_track {
    animation-play-state: paused;
}

/* 원본과 복제본 세트 */
.marquee_set {
    display: flex;
    flex-shrink: 0;
    margin-right: 60px; /* 세트 사이 간격 (선이 자연스럽게 이어지게 맞춤) */
}

/* 스크롤 애니메이션 키프레임 */
@keyframes marqueeScroll {
    0%   { transform: translateX(0); }
    /* 🔥 절반(한 세트의 길이)만큼만 왼쪽으로 밀면, 그 뒤에 오는 두 번째 세트가 처음 위치에 딱 맞게 됨 */
    100% { transform: translateX(-50%); } 
}

/* --- 타임라인 연도 & 선 디자인 (기존과 거의 동일) --- */
.timeline_year_group {
    display: flex;
    flex-direction: column;
    flex-shrink: 0; 
    margin-right: 60px; 
}

.timeline_header { position: relative; margin-bottom: 30px; }

.year_text {
    font-size: 26px;
    font-weight: 800;
    color: #999;
    display: inline-block;
    margin-bottom: 15px;
    padding-left: 5px; 
}

.timeline_year_group:first-child .year_text { color: #111; }

.timeline_line {
    position: relative;
    height: 1px;
    background: #ccc;
    width: calc(100% + 60px); 
}

.timeline_year_group:last-child .timeline_line { width: 100%; }

.timeline_line .dot {
    position: absolute;
    left: 0;
    top: -4px;
    width: 9px;
    height: 9px;
    background: #555;
    border-radius: 50%;
}

/* --- 2줄 배치 갤러리 디자인 (기존 동일) --- */
.timeline_posts {
    display: grid;
    grid-template-rows: repeat(2, auto); 
    grid-auto-flow: column; 
    gap: 30px 20px; 
}

.timeline_item { width: 230px; }
.timeline_item .img_box {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin-bottom: 15px;
    background: #e0e0e0;
}
.timeline_item .img_box img { width: 100%; height: 100%; object-fit: cover; }
.timeline_item .title {
    font-size: 15px; color: #111; font-weight: 600; line-height: 1.4; margin: 0; word-break: keep-all;
}

/* --- 갤러리 그리드 공통 (Tab 3, 4) --- */
.gallery_grid {
    display: grid;
    gap: 40px 30px;
}

.gallery_grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.gallery_grid.cols-4 { grid-template-columns: repeat(4, 1fr); }

.gallery_item {
    background: transparent;
}

.gallery_img {
    width: 100%;
    margin-bottom: 20px;
    overflow: hidden;
}

.gallery_img img {
    width: 100%;
    height: auto;
    display: block;
    background: #eaeaea;
}

.book_img {
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* 책/논문 이미지 그림자 */
}

.gallery_info h4 {
    font-size: 20px;
    font-weight: 700;
    color: #111;
    margin: 0 0 10px 0;
}

.gallery_info p {
    font-size: 15px;
    color: #666;
    margin: 0;
}

/* 모바일 반응형 */
@media (max-width: 1024px) {
    .career_lists { flex-direction: column; }
    .gallery_grid.cols-3, .gallery_grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}

/* ========================================================
   [추가] 탭 2: 발표 및 강연 타임라인 모바일 반응형
======================================================== */
/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
    .timeline_year_group { margin-right: 30px; }
    .year_text { font-size: 22px; }
    .timeline_posts { gap: 20px 15px; }
    .timeline_item { width: 180px; }
    .timeline_item .title { font-size: 14px; }
    /* 모바일에서는 속도를 조금 더 빠르게 조절 가능 */
    .marquee_track { animation-duration: 30s; }
}

@media (max-width: 768px) {
    .dr_tab_nav { flex-wrap: wrap; }
    .dr_tab_nav li { min-width: 45%; }
    .gallery_grid.cols-3, .gallery_grid.cols-4 { grid-template-columns: 1fr; }
}


/* ========================================================
   Brand Advisory Board (브랜드 자문위원 풀와이드 무한 롤링)
======================================================== */
.dr_brand_wrap {
    padding: 100px 0;
    background: #fff;
    overflow: hidden;
}

.dr_brand_title {
    font-size: 32px;
    font-weight: 800;
    color: #111;
    margin-bottom: 50px;
    letter-spacing: -1px;
}

/* 롤링 배너 전체 감싸개 (화면 꽉 차게) */
.brand_marquee_wrap {
    width: 100%;
    overflow: hidden; 
    position: relative;
    /* 위아래 선이 필요하시다면 아래 테두리를 켜주세요 (선택사항) */
    /* border-top: 1px solid #eee; border-bottom: 1px solid #eee; padding: 20px 0; */
}

/* 움직이는 트랙 */
.brand_marquee_track {
    display: flex;
    width: fit-content;
    animation: brandScroll 45s linear infinite; 
}

.brand_marquee_wrap:hover .brand_marquee_track {
    animation-play-state: paused;
}

/* 🔥 하나의 로고 세트 (화면 꽉 차게 100vw로 설정) */
.brand_marquee_set {
    display: flex;
    flex-shrink: 0;
    width: 100vw; /* 1개의 세트가 브라우저 창 너비와 1:1로 일치하게 됨 */
}

/* 개별 로고 아이템 (세트 너비의 정확히 1/6 사이즈로 분할) */
.brand_item {
    flex: 0 0 calc(100% / 6); 
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 20px; 
}

.brand_item img {
    max-width: 100%;
    height: auto;
    max-height: 70px; 
    object-fit: contain;
}

@keyframes brandScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    /* 태블릿: 세트 너비를 화면의 1.5배로 늘려 한 화면에 약 4개 보임 */
    .brand_marquee_set { width: 150vw; } 
}

@media (max-width: 768px) {
    .dr_brand_title { font-size: 26px; margin-bottom: 30px; }
    /* 모바일: 세트 너비를 화면의 2.5배로 늘려 한 화면에 약 2.5개 보임 */
    .brand_marquee_set { width: 250vw; } 
    .brand_item img { max-height: 50px; }
    .brand_marquee_track { animation-duration: 20s; }
}

/* ========================================================
   [수정] Dr Section 5 - 배경 전체 이미지 + 좌측 텍스트
======================================================== */
.dr_sec5_wrap {
    width: 100%;
    min-height: 800px; /* 원장님 사진이 충분히 보일 수 있도록 최소 높이 지정 */
    background-size: cover; /* 🔥 빈틈없이 화면을 꽉 채우기 */
    background-position: center right; /* 원장님이 오른쪽에 있으므로 우측 중앙 기준 정렬 */
    background-repeat: no-repeat;
    display: flex;
    align-items: center; /* 텍스트 수직 중앙 정렬 */
}

.dr_sec5_text {
    width: 100%;
    max-width: 600px; /* 글씨가 길어져서 원장님 얼굴을 가리지 않게 제한 */
}

/* 상단 텍스트 (한국어) */
.dr_sec5_text .title_top {
    font-size: 40px;
    color: #222;
    line-height: 1.5;
    margin-bottom: 45px;
    font-weight: 400; 
    letter-spacing: -1px;
}

/* 하단 텍스트 (영어) */
.dr_sec5_text .title_bottom {
    font-size: 30px;
    color: #333;
    line-height: 1.5;
    margin: 0;
    font-weight: 400; 
    letter-spacing: -0.5px;
}

/* 텍스트 굵기 강조 처리 */
.dr_sec5_text strong {
    font-weight: 800; 
    color: #111;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .dr_sec5_wrap {
        background-position: 70% center; /* 태블릿에선 살짝 왼쪽으로 당겨 밸런스 맞춤 */
    }
    .dr_sec5_text .title_top { font-size: 32px; margin-bottom: 30px; }
    .dr_sec5_text .title_bottom { font-size: 24px; }
}

@media (max-width: 768px) {
    .dr_sec5_wrap {
        min-height: auto;
        /* 모바일에선 글씨 아래로 원장님 얼굴이 보여야 하므로 하단 패딩(350px)을 크게 줍니다 */
        padding: 80px 20px 350px 20px; 
        background-position: bottom right; /* 하단 우측 기준 정렬 */
        background-size: 150%; /* 모바일에서 인물이 작아지지 않게 확대 */
        align-items: flex-start;
    }
    
    /* 🔥 모바일에선 옷이나 배경에 글씨가 묻히지 않게 반투명 박스 적용 */
    .dr_sec5_text {
        background: rgba(255, 255, 255, 0.7); 
        padding: 30px;
        border-radius: 15px;
        backdrop-filter: blur(5px);
    }
    .dr_sec5_text .title_top { font-size: 28px; margin-bottom: 20px; }
    .dr_sec5_text .title_bottom { font-size: 20px; }
}


/* ========================================================
   의료진 소개 (Dr. Kim) 모바일 최적화 수정본 (768px 이하 전용)
   (기존 CSS의 가장 마지막에 추가해 주세요)
======================================================== */
@media (max-width: 768px) {

    /* ----------------------------------------------------
       1. Section 2: 통계(2%, 100%) 왼쪽 치우침 해결
       (가로 방향이 아닌 세로 방향의 중앙 정렬을 위해 center 적용)
    ---------------------------------------------------- */
    .dr_stats_box {
        align-items: center !important; 
    }
    .dr_stat_item {
        width: 100% !important; /* 좁은 박스를 풀어주어 완벽한 중앙 정렬 */
    }

    /* ----------------------------------------------------
       2. Section 2: 텍스트 띄어쓰기(줄바꿈) 어색함 해결
       (모바일에서는 억지 줄바꿈을 유발하는 <br> 태그를 숨겨 자연스럽게 흐르도록 함)
    ---------------------------------------------------- */
    .dr_desc_box p {
        padding: 0 10px;
    }
    .dr_desc_box p br {
        display: none; 
    }

    /* ----------------------------------------------------
       3. Section 3: 원장님 사진 가려짐 해결 (사진 위, 글씨 아래 분리 효과)
    ---------------------------------------------------- */
    .dr_sec3_wrap {
        /* 위쪽 여백을 350px 이상 주어 원장님 얼굴이 먼저 시원하게 보이도록 함 */
        padding: 350px 20px 50px 20px !important; 
        background-position: top center !important; /* 이미지를 상단 중앙으로 맞춤 */
        background-size: 130% !important; /* 모바일 화면에 맞게 인물 살짝 확대 */
        align-items: flex-end !important; /* 텍스트 박스를 아래쪽으로 밀어냄 */
    }
    .dr_sec3_text_box {
        background: rgba(255, 255, 255, 0.85) !important; /* 가독성을 위해 불투명도 향상 */
        padding: 30px !important;
        border-radius: 15px !important;
    }
    /* 모바일에서는 본문의 인위적인 줄바꿈(<br>)을 없애서 텍스트 뭉개짐 방지 */
    .dr_sec3_desc p br {
        display: none;
    }

    /* ----------------------------------------------------
       4. Section 4: 탭 버튼 글자 크기 축소 (20px -> 15px)
    ---------------------------------------------------- */
    .dr_tab_nav li a {
        font-size: 15px !important;
        padding: 12px 0 !important;
    }

    /* ----------------------------------------------------
       5. Section 4: 발표 및 강연 롤링 슬라이드 속도 조절 (너무 빠름 해결)
    ---------------------------------------------------- */
    .marquee_track {
        /* 기존 30s에서 120s로 대폭 늘려 아주 천천히 읽을 수 있게 늦춤 */
        animation-duration: 240s !important; 
    }

    /* ----------------------------------------------------
       6. 브랜드 자문위원: 로고 크기 대폭 확대 (완결판)
    ---------------------------------------------------- */
    .brand_marquee_set {
        /* 기존 180vw -> 300vw 로 확장 
           (화면 너비의 3배! 즉, 6개 로고가 한 화면에 2개씩만 큼직하게 꽉 차서 보입니다) */
        width: 300vw !important; 
    }
    .brand_item {
        padding: 0 15px !important;
    }
    .brand_item img {
        /* 기존 70px 높이 제한을 120px로 확 풀어서 제약 없이 커지게 함 */
        max-height: 120px !important; 
        max-width: 90% !important;
        object-fit: contain !important;
    }

    /* ----------------------------------------------------
       7. Section 5 (마지막 프로필): 텍스트 왼쪽 치우침 해결
    ---------------------------------------------------- */
    .dr_sec5_text {
        text-align: center !important; /* 중앙 정렬 강제 적용 */
        margin: 0 auto !important; /* 박스 자체를 중앙으로 배치 */
    }
    .dr_sec5_text p {
        text-align: center !important;
    }
}


/* ========================================================
   Contact / Online Reservation - Hero Section 1
======================================================== */
.reserve_hero_wrap {
    width: 100%;
    height: 82vh;
    min-height: 800px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
}

/* 🔥 [추가] 1800px 이너 컨테이너 강제 고정 */
.reserve_hero_wrap .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px; /* 좌우 화면 끝에 딱 붙지 않게 여백 */
    box-sizing: border-box; 
}

/* 텍스트 컨테이너 */
.reserve_hero_text_box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

/* --- 메인 타이틀 (ONLINE RESERVATION) --- */
.reserve_main_title {
    font-size: 70px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin: 0 0 15px 0;
    display: flex;
    gap: 20px; /* 두 단어 사이 간격 */
    overflow: hidden; /* 글씨가 밖에서 안으로 들어오는 효과를 극대화 */
}

/* ONLINE (아래에서 위로) */
.reserve_main_title .word_up {
    display: inline-block;
    opacity: 0;
    animation: heroSlideUp 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* RESERVATION (위에서 아래로) */
.reserve_main_title .word_down {
    display: inline-block;
    opacity: 0;
    animation: heroSlideDown 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* --- 서브 타이틀 (온라인 예약) --- */
.reserve_sub_title {
    font-size: 28px;
    font-weight: 500;
    margin: 0;
    color: #fff; /* 기본 흰색 시작 */
    opacity: 0;
    /* 총 2.5초 동안 대기 -> 등장 -> 색상 변경을 순차적으로 수행 */
    animation: subSlideAndColor 2.5s forwards;
}

/* ========================================================
   Keyframes (애니메이션 세팅)
======================================================== */

/* 메인 타이틀 1: 아래에서 위로 */
@keyframes heroSlideUp {
    0% { transform: translateY(100%); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}

/* 메인 타이틀 2: 위에서 아래로 */
@keyframes heroSlideDown {
    0% { transform: translateY(-100%); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}

/* 서브 타이틀: 대기 -> 좌측 슬라이드인 -> 노란색 변경 */
@keyframes subSlideAndColor {
    /* 0% ~ 40% (약 1초간) : 메인 타이틀이 합쳐질 때까지 투명한 상태로 대기 */
    0%, 40% { 
        transform: translateX(-50px); 
        opacity: 0; 
        color: #ffffff; 
    }
    /* 40% ~ 70% (약 1초~1.75초) : 왼쪽에서 제자리로 스르륵 등장 (흰색 유지) */
    70% { 
        transform: translateX(0); 
        opacity: 1; 
        color: #ffffff; 
    }
    /* 70% ~ 100% (약 1.75초~2.5초) : 스무스하게 노란색으로 변신! */
    100% { 
        transform: translateX(0); 
        opacity: 1; 
        color: #fdd000; /* 시안에 맞는 노란색 코드로 변경 가능 */
    }
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .reserve_main_title { font-size: 55px; }
    .reserve_sub_title { font-size: 24px; }
}

@media (max-width: 768px) {
    .reserve_main_title { 
        font-size: 40px; 
        flex-direction: column; /* 모바일에선 가로 공간이 부족하니 세로로 배치 */
        gap: 5px;
    }
    .reserve_sub_title { font-size: 20px; }
    
    /* 모바일에선 세로 배치이므로 위아래 애니메이션 대신 양옆 애니메이션으로 변경해도 예쁩니다 (현재는 위아래 유지) */
}


/* ========================================================
   Contact - Reservation Step Section (네이버 예약 절차)
======================================================== */
/* --- 1. Section 2 전체 감싸개 (하단 흰색 여백 제거) --- */
.reserve_step_wrap {
    width: 100%;
    /* 기존 padding: 100px 0; 에서 하단 패딩(0)을 없애서 회색박스가 바닥에 붙게 만듭니다 */
    padding: 100px 0 0 0; 
    background: #fff;
}

/* --- 상단 타이틀 영역 --- */
.reserve_step_header {
    margin-bottom: 40px;
}

/* 🔥 글씨 두께 확실한 대비 주기 */
.step_main_title {
    font-size: 45px;
    color: #111;
    margin: 0 0 15px 0;
    letter-spacing: -1.5px;
}
.step_main_title .fw_light {
    font-weight: 500; /* 얇은/중간 굵기 */
}
.step_main_title .fw_bold {
    font-weight: 800; /* 아주 두꺼운 굵기 */
}

.step_sub_desc {
    font-size: 20px;
    color: #333;
    font-weight: 400;
    margin: 0;
}

/* --- 2. 풀와이드 회색 박스로 교체 (기존 .reserve_step_box 대신 사용) --- */
.reserve_step_box_full {
    width: 100%;
    background: #e9e9e9;
    padding: 60px 0; /* 회색 박스 위아래 여백 */
    /* border-radius 제거됨 */
}

/* 회색 박스 안쪽 컨텐츠 정렬 */
.reserve_step_box_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

/* 좌측 프로세스 아이콘 영역 */
.step_flow {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    flex: 1; /* 남은 공간 차지 */
}

.step_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 120px; /* 각 단계 넓이 균일하게 */
}

.icon_circle {
    width: 120px;
    height: 120px;
    background: #b5b5b5; /* 기본 회색 배경 */
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
    transition: transform 0.3s ease;
}

.icon_circle:hover {
    transform: translateY(-5px);
}

.icon_circle img {
    width: 60px; /* 아이콘 크기 조절 */
    height: auto;
    object-fit: contain;
}

/* 🔥 마지막 단계 노란색 강조 */
.icon_circle.active {
    background: #fdd000;
}

.step_item p {
    font-size: 16px;
    color: #111;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
}

/* 화살표 모양 그리기 (CSS) */
.step_arrow {
    width: 15px;
    height: 15px;
    border-top: 2px solid #666;
    border-right: 2px solid #666;
    transform: rotate(45deg);
    margin-top: 52px; /* 원의 중앙 위치에 맞게 조절 */
}

/* --- 우측 설명 및 버튼 영역 --- */
.step_info {
    flex: 0 0 400px; /* 우측 영역 넓이 고정 */
}

.step_info h3 {
    font-size: 30px;
    font-weight: 800;
    color: #222;
    margin: 0 0 15px 0;
}

.step_info p {
    font-size: 15px;
    color: #444;
    line-height: 1.6;
    margin: 0 0 30px 0;
    word-break: keep-all;
}

/* 네이버 예약 둥근 버튼 */
.btn_naver_booking {
    display: inline-block;
    background: #03c75a; /* 네이버 공식 그린 색상 */
    color: #fff !important;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 35px;
    border-radius: 8px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.btn_naver_booking:hover {
    background: #02b350;
    box-shadow: 0 5px 15px rgba(3, 199, 90, 0.3);
    transform: translateY(-2px);
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1200px) {
    .reserve_step_box { flex-direction: column; align-items: flex-start; padding: 50px; }
    .step_info { flex: none; width: 100%; margin-top: 20px; }
}

/* 모바일 반응형 시 구조 변경 */
@media (max-width: 1200px) {
    .reserve_step_box_inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 768px) {
    .reserve_step_wrap { padding: 60px 0; }
    .step_main_title { font-size: 32px; }
    .step_sub_desc { font-size: 16px; }
    
    .reserve_step_box { padding: 30px 20px; }
    
    /* 모바일에선 가로 공간이 좁아 화살표 제거하고 아이콘 간격을 좁힙니다 */
    .step_flow { gap: 10px; justify-content: space-between; width: 100%; }
    .step_arrow { display: none; }
    .icon_circle { width: 70px; height: 70px; margin-bottom: 15px; }
    .icon_circle img { width: 35px; }
    .step_item { width: 24%; }
    .step_item p { font-size: 12px; }
    
    .step_info h3 { font-size: 24px; }
    .step_info p { font-size: 14px; }
    .btn_naver_booking { width: 100%; text-align: center; }
}

/* ========================================================
   3. Contact - Calendar & Form Section (끌어올리기)
======================================================== */
.reserve_form_wrap {
    width: 100%;
    /* 🔥 상단 패딩을 기존 100px -> 60px 로 확 줄여서 위로 바짝 끌어올림 */
    padding: 60px 0 150px 0; 
    background: #fff;
}

/* 2단 분할 컨테이너 (1400 안에서 간격 좁힘) */
.reserve_form_container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 60px; /* 🔥 기존 80px에서 60px로 간격 줄임 */
}

/* 좌측 달력 영역 (1/3 비율) */
.reserve_left_cal {
    flex: 1; /* 🔥 비율 1 */
    width: 100%;
}

/* (이 부분은 달력이 부모를 넘어가지 않게 방어하는 코드이므로 그대로 둡니다) */
.reserve_left_cal > div, 
.reserve_left_cal table,
.reserve_left_cal iframe {
    width: 100% !important;
    max-width: 100% !important;
}

/* 우측 폼 영역 (2/3 비율) */
.reserve_right_form {
    flex: 2; /* 🔥 비율 2 */
    width: 100%;
    max-width: none; /* 🔥 이전에 걸어두었던 550px 제한을 풀어서 2/3 영역을 시원하게 다 쓰게 합니다 */
}

/* --- 폼 타이틀 영역 (글씨 + 가로선) --- */
.form_title_wrap {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
}

.form_title_wrap h3 {
    font-size: 24px;
    font-weight: 800;
    color: #111;
    margin: 0;
    white-space: nowrap; /* 글씨가 줄바꿈되지 않도록 방지 */
}

.form_title_wrap .title_line {
    flex: 1; /* 남은 빈 공간을 선으로 꽉 채움 */
    height: 1px;
    background: #dcdcdc; /* 시안과 같은 연한 회색 선 */
}

/* --- 시안 맞춤형 제출 버튼 덮어쓰기 --- */
/* (이전에 만든 vos_submit_btn 클래스보다 우선 적용되어 시안처럼 꽉 차게 만듭니다) */
.reserve_right_form .vos_submit_btn input[type="submit"] {
    width: 100%; /* 버튼을 가로로 꽉 차게 */
    background: #333333; /* 시안처럼 다크 그레이 색상 */
    border-radius: 6px; /* 살짝 둥근 모서리 */
    padding: 20px 0;
    margin-top: 20px;
}

.reserve_right_form .vos_submit_btn input[type="submit"]:hover {
    background: #111111;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    /* 화면이 좁아지면 달력과 폼을 위아래로 떨어뜨림 */
    .reserve_form_container {
        flex-direction: column;
        gap: 80px;
    }
    .reserve_left_cal,
    .reserve_right_form {
        max-width: 100%;
        width: 100%;
    }
}

@media (max-width: 768px) {
    .reserve_form_wrap { padding: 60px 0 100px 0; }
    .form_title_wrap h3 { font-size: 20px; }
}


/* ========================================================
   Contact - Consultation Channels (상담 채널 안내 - 가운데 정렬 버전)
======================================================== */
.reserve_channel_full {
    width: 100%;
    background: #f2f2f2; 
    padding: 80px 0 100px 0;
}

/* 메인 타이틀 */
.channel_main_title {
    font-size: 32px;
    font-weight: 800;
    color: #222;
    margin-bottom: 50px;
    letter-spacing: -1px;
}

/* 3단 그리드 래퍼 */
.channel_grid_wrap {
    display: flex;
    justify-content: space-between;
    align-items: stretch; 
}

/* 각 항목 박스 */
.channel_item {
    flex: 1;
    display: flex;
    justify-content: center; 
    position: relative;
    padding: 20px 40px;
}

/* 세로 구분선 */
.channel_item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 10%; 
    height: 80%;
    width: 1px;
    background: #ccc; 
}

/* 🔥 안쪽 컨텐츠 가운데 정렬 (시안 반영) */
.channel_inner {
    display: flex;
    flex-direction: column;
    align-items: center; /* 가운데 정렬로 변경 */
    text-align: center; /* 텍스트도 가운데 정렬 */
}

/* 채널별 타이틀 (아이콘 + 텍스트) */
.channel_tit {
    display: flex;
    align-items: center;
    justify-content: center; /* 아이콘과 글자 그룹도 가운데 정렬 */
    gap: 12px;
    margin-bottom: 25px;
}

.channel_tit img {
    height: 30px; 
    width: auto;
}

.channel_tit span {
    font-size: 24px;
    font-weight: 700;
    color: #111;
    letter-spacing: -0.5px;
}

/* --- 개별 콘텐츠 스타일 --- */
.channel_cont {
    width: 100%;
}

/* 전화번호 */
.phone_num {
    font-size: 42px;
    font-weight: 800;
    color: #222;
    padding-top: 10px; 
    letter-spacing: -1px;
    text-align: center; /* 전화번호 가운데 정렬 */
}

/* QR 영역 */
.qr_cont {
    display: flex;
    flex-direction: column;
    align-items: center; /* QR코드 가운데 정렬 */
}

.qr_img {
    width: 140px;
    height: 140px;
    border: 1px solid #111; 
    margin-bottom: 15px;
    object-fit: contain;
}

.qr_text {
    font-size: 15px;
    color: #666;
    line-height: 1.5;
    margin: 0;
    word-break: keep-all;
    text-align: center; /* QR 설명글 가운데 정렬 */
}

.qr_text strong {
    color: #444; 
    font-weight: 700;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .channel_tit span { font-size: 20px; }
    .phone_num { font-size: 32px; }
    .channel_item { padding: 20px 20px; }
    .qr_img { width: 120px; height: 120px; }
}

@media (max-width: 768px) {
    .channel_grid_wrap {
        flex-direction: column;
        gap: 50px; 
    }
    
    .channel_item {
        padding: 0;
        justify-content: center; /* 모바일에서도 가운데 정렬 유지 */
    }
    
    .channel_item:not(:last-child)::after {
        display: none; 
    }
    
    .channel_item:not(:last-child) {
        border-bottom: 1px solid #ddd;
        padding-bottom: 40px;
    }
}

/* ========================================================
   Contact - Location & Hours Map Section (지도 & 운영시간)
======================================================== */
.map_section_wrap {
    position: relative;
    width: 100%;
    /* 시안처럼 지도가 넓게 깔리도록 높이를 넉넉하게 750px로 잡습니다 */
    height: 750px; 
}

/* 풀와이드 지도 배경 (절대위치로 바닥에 깔기) */
.map_full_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* 운영시간 카드를 감싸는 오버레이 영역 */
.map_overlay_content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    display: flex;
    align-items: center; /* 카드를 세로 중앙에 배치 */
    
    /* 🔥 핵심: 오버레이 영역이 지도의 클릭/드래그를 방해하지 않게 투명인간 처리 */
    pointer-events: none; 
}

.map_overlay_content .n_inner_1800 {
    width: 100%; 
}

/* 하얀색 운영시간 카드 디자인 */
.hours_card {
    background: #fff;
    width: 440px;
    padding: 60px 50px;
    box-shadow: 5px 15px 40px rgba(0,0,0,0.15); /* 지도 위에서 눈에 띄게 그림자 부여 */
    
    /* 카드 영역은 다시 마우스 클릭이나 드래그 텍스트 선택이 가능하도록 복구 */
    pointer-events: auto; 
}

/* 로고 영역 */
.hc_logo {
    margin-bottom: 40px;
}
.hc_logo img {
    height: 35px; /* 로고 높이 */
    width: auto;
}

/* 타이틀 & 우측 선 */
.hc_title {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}
.hc_title h3 {
    font-size: 22px;
    font-weight: 800;
    color: #111;
    margin: 0;
    white-space: nowrap;
}
.hc_line {
    flex: 1;
    height: 1px;
    background: #555; /* 진한 회색 선 */
}

/* 시간표 리스트 */
.hc_schedule {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
    border-bottom: 1px solid #ccc; /* 하단 얇은 선 */
    padding-bottom: 25px;
}
.hc_schedule li {
    display: flex;
    justify-content: space-between;
    margin-bottom: 18px;
    font-size: 16px;
    color: #111;
}
.hc_schedule li:last-child {
    margin-bottom: 0;
}
.hc_schedule li span {
    font-weight: 500;
}
.hc_schedule li strong {
    font-weight: 700;
}

/* 하단 안내 텍스트 (휴진안내 등) */
.hc_notes {
    margin-bottom: 40px;
}
.hc_notes p {
    font-size: 14px;
    color: #666;
    margin: 0 0 8px 0;
    line-height: 1.4;
}

/* 대표전화 */
.hc_phone p {
    font-size: 18px;
    font-weight: 700;
    color: #111;
    margin: 0 0 5px 0;
}
.hc_phone strong {
    font-size: 40px;
    font-weight: 800;
    color: #111;
    letter-spacing: -1px;
}

/* ========================================================
   모바일/태블릿 반응형 처리
======================================================== */
@media (max-width: 1024px) {
    .hours_card { width: 380px; padding: 40px; }
    .hc_phone strong { font-size: 32px; }
}

@media (max-width: 768px) {
    .map_section_wrap {
        height: auto;
        display: flex;
        /* 모바일에선 카드가 먼저 나오고 그 밑에 지도가 깔리게 뒤집음 */
        flex-direction: column-reverse; 
    }
    
    .map_full_bg {
        position: relative;
        height: 400px; /* 모바일 지도 높이 */
    }
    
    .map_overlay_content {
        position: relative;
        padding: 40px 20px;
        background: #fff; /* 모바일에선 겹치지 않고 분리 */
        pointer-events: auto;
    }
    
    .hours_card {
        width: 100%;
        padding: 0;
        box-shadow: none;
    }
}


/* ========================================================
   Location - Hero Section 1 (진료시간 / 오시는길)
======================================================== */
.location_hero_wrap {
    width: 100%;
    height: 82vh;
    min-height: 800px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
}

/* 1800px 이너 컨테이너 강제 고정 */
.location_hero_wrap .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box; 
}

/* 텍스트 컨테이너 */
.location_hero_text_box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

/* --- 메인 타이틀 (HOURS & LOCATION) --- */
.location_main_title {
    font-size: 70px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin: 0 0 15px 0;
    display: flex;
    gap: 20px;
    overflow: hidden;
}

/* HOURS & (아래에서 위로) */
.location_main_title .word_up {
    display: inline-block;
    opacity: 0;
    animation: heroSlideUp 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* LOCATION (위에서 아래로) */
.location_main_title .word_down {
    display: inline-block;
    opacity: 0;
    animation: heroSlideDown 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* --- 서브 타이틀 (진료시간 / 오시는길) --- */
.location_sub_title {
    font-size: 28px;
    font-weight: 500;
    margin: 0;
    color: #fff;
    opacity: 0;
    /* 예약 페이지와 동일하게 노란색으로 변하는 애니메이션 적용 */
    animation: subSlideAndColor 2.5s forwards;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .location_main_title { font-size: 55px; }
    .location_sub_title { font-size: 24px; }
}

@media (max-width: 768px) {
    .location_main_title { 
        font-size: 40px; 
        flex-direction: column; 
        gap: 5px;
    }
    .location_sub_title { font-size: 20px; }
}

/* --- 운영시간 카드 하단 버튼 영역 (오시는길 페이지 전용) --- */
.hc_buttons {
    display: flex;
    gap: 10px; /* 버튼 사이 간격 */
    margin-top: 30px;
}

.hc_buttons a {
    flex: 1; /* 두 버튼이 정확히 5:5 비율을 차지하도록 */
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 48px;
    border-radius: 24px; /* 양끝이 둥근 알약 형태 */
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

/* 왼쪽 노란색 버튼 */
.hc_buttons .btn_yellow {
    background: #fdd000;
    color: #111 !important;
}
.hc_buttons .btn_yellow:hover {
    background: #e6bd00;
    transform: translateY(-2px);
}

/* 오른쪽 진회색 버튼 */
.hc_buttons .btn_gray {
    background: #666666;
    color: #fff !important;
}
.hc_buttons .btn_gray:hover {
    background: #444444;
    transform: translateY(-2px);
}

/* 모바일 대응: 글씨가 길면 좁아지므로 약간 축소 */
@media (max-width: 480px) {
    .hc_buttons { gap: 5px; }
    .hc_buttons a { font-size: 13px; height: 42px; border-radius: 21px; }
}

/* ========================================================
   Location - Information Section (오시는 길 상세 정보)
======================================================== */
.loc_info_wrap {
    width: 100%;
    padding: 100px 0;
    background: #fff;
}

/* 2단 분할 컨테이너 */
.loc_info_container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 80px;
}

/* --- 좌측 영역 --- */
.loc_left_area {
    flex: 0 0 45%; /* 좌측 넓이 고정 */
}

.loc_main_title {
    font-size: 45px;
    color: #111;
    margin: 0 0 15px 0;
    letter-spacing: -1.5px;
}
.loc_main_title .fw_light { font-weight: 500; }
.loc_main_title .fw_bold { font-weight: 800; }

.loc_sub_desc {
    font-size: 20px;
    color: #333;
    font-weight: 400;
    margin: 0 0 60px 0;
}

/* 텍스트 박스 간격 유틸리티 */
.mt_60 { margin-top: 60px; }
.mt_40 { margin-top: 40px; }

.loc_text_box h4 {
    font-size: 20px;
    font-weight: 800;
    color: #111;
    margin: 0 0 10px 0;
}

.loc_text_box p {
    font-size: 18px;
    color: #333;
    margin: 0;
}
.loc_text_box .phone_txt {
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -1px;
}

/* --- 우측 영역 (교통편 리스트) --- */
.loc_right_area {
    flex: 1; /* 남은 공간 모두 차지 */
}

.trans_item {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    margin-bottom: 50px;
}
.trans_item:last-child {
    margin-bottom: 0;
}

/* --- 우측 아이콘 노란색 배경 및 정렬 --- */
.trans_icon {
    width: 80px;
    height: 80px;
    background-color: #fdd000; /* 보스피부과 포인트 노란색 */
    border-radius: 20px; /* 시안처럼 부드러운 둥근 모서리 */
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0; /* 화면이 좁아져도 노란 박스가 찌그러지지 않게 보호 */
}

.trans_icon img {
    width: 46px; /* 노란 박스 안쪽에 여백을 두고 예쁘게 들어가도록 크기 축소 */
    height: auto;
    object-fit: contain;
}

/* 타이틀과 가로선 정렬 */
.trans_header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.trans_header h3 {
    font-size: 22px;
    font-weight: 800;
    color: #111;
    margin: 0;
    white-space: nowrap;
}

.trans_header .title_line {
    flex: 1;
    height: 1px;
    background: #dcdcdc; /* 얇은 회색선 */
}

/* 텍스트 설명 */
.trans_desc {
    font-size: 18px;
    color: #333;
    margin: 0;
}

/* 지하철 리스트 및 뱃지(알약) 스타일 */
.subway_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.subway_list li {
    font-size: 18px;
    color: #333;
    display: flex;
    align-items: center;
    gap: 12px;
}

.badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 28px;
    padding: 0 16px;
    border-radius: 14px; /* 알약 모양 */
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

/* 호선별 고유 컬러 */
.line_3 { background: #f36e00; } /* 3호선 주황색 */
.line_suin { background: #eab700; } /* 수인분당 노란색 */
.line_7 { background: #657936; } /* 7호선 올리브색 */

/* --- 택시 리스트 스타일 (2줄 텍스트 구조 반영) --- */
.taxi_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 24px; /* 위아래 간격 넉넉하게 */
}
.taxi_list li {
    display: flex;
    align-items: center; /* 로고와 텍스트 박스를 세로 중앙 정렬 */
    gap: 20px;
}
.taxi_list li img {
    height: 38px; /* 시안처럼 로고 크기를 살짝 키움 */
    width: auto;
    flex-shrink: 0;
}

/* 택시 설명 텍스트 (위: 검색어 / 아래: 병원명) */
.taxi_txt_box {
    display: flex;
    flex-direction: column;
    gap: 4px; /* 위아래 글씨 간격 */
}
.taxi_txt_box strong {
    font-size: 16px;
    font-weight: 700;
    color: #111;
}
.taxi_txt_box span {
    font-size: 15px;
    font-weight: 400;
    color: #444;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .loc_info_container { flex-direction: column; gap: 60px; }
    .loc_left_area { width: 100%; flex: none; }
    .loc_main_title { font-size: 38px; }
    .mt_60 { margin-top: 40px; }
}

@media (max-width: 768px) {
    .trans_item { flex-direction: column; gap: 20px; }
    trans_icon { width: 65px; height: 65px; border-radius: 15px; }
    .trans_icon img { width: 36px; }
    .trans_header h3 { font-size: 20px; }
    .loc_text_box .phone_txt { font-size: 28px; }
    .subway_list li, .trans_desc, .taxi_list li { font-size: 15px; }
	.taxi_list li img { height: 30px; }
    .taxi_txt_box strong { font-size: 15px; }
    .taxi_txt_box span { font-size: 14px; }
}


/* ========================================================
   Final Contact & Schedule Section (하단 캘린더/상담)
======================================================== */
.fcs_wrap {
    width: 100%;
    padding: 100px 0;
    background: #f2f2f2; /* 연한 회색 배경 (시안 반영) */
}

.fcs_container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 80px;
}

.fcs_left { flex: 1; max-width: 45%; }
.fcs_right { flex: 1; }

/* 공통 헤더 (타이틀 + 가로선) */
.fcs_header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px;
}
.fcs_header h3 {
    font-size: 24px;
    font-weight: 800;
    color: #111;
    margin: 0;
    white-space: nowrap;
}
.fcs_header .title_line {
    flex: 1;
    height: 1px;
    background: #ccc;
}

/* --- 좌측: 텍스트 시간표 (다국어) --- */
.sch_badge_list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
}
.sch_badge_list li {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 15px;
    font-size: 18px;
    color: #111;
}
.sch_badge_list li strong {
    font-weight: 500;
}

/* 알약 형태 뱃지 */
.sch_badge_list span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 180px; /* 뱃지 넓이 고정으로 정렬 맞춤 */
    height: 40px;
    border-radius: 20px;
    font-size: 16px;
    font-weight: 700;
}
.badge_brown { background: #665e53; color: #fff; } /* 요일 뱃지 */
.badge_light { background: #e5e5e5; color: #111; } /* 점심시간 뱃지 */

/* 안내 문구 */
.sch_notes p {
    font-size: 16px;
    color: #555;
    margin: 0 0 10px 0;
    line-height: 1.5;
    word-break: keep-all;
}
/* 영문 타임존 강조 텍스트 */
.sch_notes .txt_red {
    color: #c84333; /* 붉은색 강조 */
    font-weight: 600;
}

/* --- 우측: 전화번호 (한국어 전용) --- */
.fcs_phone {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px;
}
.fcs_phone img { height: 32px; width: auto; }
.fcs_phone span { font-size: 22px; font-weight: 700; color: #111; }
.fcs_phone strong { font-size: 38px; font-weight: 800; color: #222; letter-spacing: -1px; }

/* --- 우측: QR 코드 2단 그리드 --- */
.fcs_qr_grid {
    display: flex;
    gap: 40px;
}
.fcs_qr_item {
    flex: 1;
}

.qr_title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}
.qr_title img { height: 28px; width: auto; }
.qr_title span { font-size: 20px; font-weight: 700; color: #111; }

.qr_box img {
    width: 160px;
    height: 160px;
    border: 2px solid #111; /* 시안처럼 명확한 검은 테두리 */
    object-fit: contain;
    margin-bottom: 15px;
}

.qr_desc {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.qr_desc strong {
    font-size: 15px;
    color: #444;
}
.qr_desc p {
    font-size: 14px;
    color: #777;
    margin: 0;
    line-height: 1.4;
    word-break: keep-all;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .fcs_container { flex-direction: column; gap: 60px; }
    .fcs_left, .fcs_right { max-width: 100%; }
    .fcs_qr_grid { gap: 20px; }
    .fcs_phone strong { font-size: 30px; }
}

@media (max-width: 768px) {
    .sch_badge_list span { width: 140px; font-size: 14px; }
    .sch_badge_list li { font-size: 16px; }
    .qr_box img { width: 130px; height: 130px; }
    .qr_title span { font-size: 18px; }
}
@media (max-width: 480px) {
    .fcs_qr_grid { flex-direction: column; gap: 40px; }
}



/* ========================================================
   VOS Signature - Hero Section (교차 애니메이션)
======================================================== */
.sig_hero_section {
    width: 100%;
    height: 790px; /* 의료진 소개와 동일한 시원한 높이 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
    
    /* 배경 Fade-in 애니메이션 */
    opacity: 0; 
    animation: sigHeroBgFade 1.5s ease-in-out forwards;
}

/* 텍스트 가독성을 높이는 푸른빛 반투명 오버레이 */
.sig_hero_section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(20, 30, 60, 0.4); 
    z-index: 1;
}

/* 배경 Fade-in 키프레임 */
@keyframes sigHeroBgFade {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}

/* 1800px 컨테이너 */
.sig_hero_section .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px; 
    position: relative;
    z-index: 2; /* 오버레이보다 위로 올리기 */
}

/* 텍스트 컨테이너 */
.sig_hero_content {
    width: 100%;
    padding-left: 2%; /* 시안처럼 약간 안쪽으로 */
}

/* 타이틀 스타일 */
.sig_hero_main_title {
    font-size: 75px; 
    font-weight: 800;
    letter-spacing: -1px;
    margin: 0;
}

.sig_hero_main_title .t_white {
    color: #fff;
    margin-right: 15px;
}

.sig_hero_main_title .t_yellow {
    color: #fdd000;
}

/* --- Hero 다이나믹 애니메이션 (교차 등장 및 페이드인) --- */
.sig_hero_fade_in {
    display: block; 
}

.sig_hero_fade_in span {
    display: inline-block; 
    opacity: 0;
    transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 1.2s ease;
    will-change: transform, opacity, color;
}

/* 초기 대기 상태 (모두 흰색 & 위아래 분리) */
.sig_hero_main_title .t_white {
    transform: translateY(100px);
    color: #ffffff; 
}

.sig_hero_main_title .t_yellow {
    transform: translateY(-100px);
    color: #ffffff; 
}

/* 활성화(active) 시 동작 */
.sig_hero_fade_in.active .t_white {
    opacity: 1;
    transform: translateY(0);
}

.sig_hero_fade_in.active .t_yellow {
    opacity: 1;
    transform: translateY(0);
    color: #fdd000; /* 최종 노란색 */
    /* 이동: 0.15초 뒤, 색상변화: 1.2초 뒤 시작 */
    transition: 
        transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s,
        opacity 1.2s ease 0.15s,
        color 0.8s ease 1.2s; 
}

/* 모바일 대응 */
@media (max-width: 768px) {
    .sig_hero_section { height: 400px; }
    .sig_hero_main_title { font-size: 45px; }
    .sig_hero_content { padding-left: 5%; }
}


/* ========================================================
   VOS Signature - Section 2 (프리미엄 장비 라인업)
======================================================== */
.sig_equip_section {
    padding: 140px 0;
    background-color: #fbfbfb; /* 시안처럼 아주 연한 그레이/화이트 톤 */
    width: 100%;
}

/* 상단 타이틀 영역 */
.sig_equip_top {
    text-align: center;
    margin-bottom: 90px;
}

.sig_equip_top_tit {
    font-size: 42px;
    color: #222;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.sig_equip_top_tit .fw_light {
    font-weight: 300; /* VOS (얇게) */
}

.sig_equip_top_tit .fw_bold {
    font-weight: 800; /* PREMIUM EQUIPMENTS (두껍게) */
}

.sig_equip_top_sub {
    font-size: 26px; /* 🔥 기존 20px -> 26px 로 확대 */
    color: #444;
    font-weight: 500;
    margin: 0;
    letter-spacing: -0.5px; /* 글씨가 커진 만큼 자간을 살짝 좁혀줌 */
}

/* 좌우 분할 컨테이너 */
.sig_equip_flex {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

/* 좌측 텍스트 영역 */
.sig_equip_text {
    width: 45%;
}

.sig_equip_main_tit {
    font-size: 46px;
    color: #111;
    line-height: 1.35;
    letter-spacing: -1.5px;
    margin: 0 0 35px 0;
}

.sig_equip_main_tit .t_line1 {
    display: block;
    font-weight: 300; /* 의사가 선택한 (얇게) */
    margin-bottom: 10px;
}

.sig_equip_main_tit .t_line2_bold {
    font-weight: 800; /* 하이엔드 시술 장비 (매우 두껍게) */
}

.sig_equip_main_tit .t_line2_reg {
    font-weight: 500; /* 라인업. (중간 굵기) */
}

.sig_equip_desc {
    font-size: 18px;
    color: #666;
    line-height: 1.7;
    margin: 0;
    font-weight: 400;
}

/* 우측 이미지 영역 */
.sig_equip_img {
    width: 50%;
    text-align: right;
}

.sig_equip_img img {
    max-width: 100%;
    height: auto;
    display: inline-block;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .sig_equip_section { padding: 90px 0; }
    .sig_equip_top { margin-bottom: 60px; }
    .sig_equip_top_tit { font-size: 32px; }
    
    .sig_equip_flex { flex-direction: column; text-align: center; }
    
    .sig_equip_text { width: 100%; margin-bottom: 50px; }
    .sig_equip_main_tit { font-size: 36px; }
    .sig_equip_main_tit .t_line1 { margin-bottom: 5px; }
    
    .sig_equip_img { width: 100%; text-align: center; }
}

@media (max-width: 768px) {
    .sig_equip_section { padding: 70px 0; }
    .sig_equip_top_tit { font-size: 26px; }
    .sig_equip_top_sub { font-size: 18px; } /* 🔥 기존 16px -> 18px 로 확대 */
    
    .sig_equip_main_tit { font-size: 28px; }
    .sig_equip_desc { font-size: 15px; }
}

/* ========================================================
   VOS Signature - Section 3 (장비 갤러리 및 팝업)
======================================================== */
.sig_grid_section {
    padding: 0 0 140px 0;
}

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

/* 개별 카드 디자인 */
.sig_eq_card {
    background-color: #ebebeb;
    border-radius: 15px;
    padding: 30px 20px 20px;
    cursor: pointer;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

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

.sig_eq_img {
    text-align: center;
    margin-bottom: 25px;
    height: 180px; /* 이미지 높이를 일정하게 맞춰줌 */
    display: flex;
    align-items: center;
    justify-content: center;
}

.sig_eq_img img {
    max-height: 100%;
    width: auto;
}

.sig_eq_txt strong {
    display: block;
    font-size: 20px;
    color: #222;
    font-weight: 800;
    margin-bottom: 5px;
    letter-spacing: -0.5px;
}

.sig_eq_txt span {
    display: block;
    font-size: 14px;
    color: #666;
    letter-spacing: -0.5px;
}

/* 플레이버튼(재생) 아이콘 CSS로 심플하게 그리기 */
.eq_icon_play {
    position: absolute;
    bottom: 20px;
    right: 20px;
    width: 24px;
    height: 24px;
    background-color: #999;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.eq_icon_play::after {
    content: '';
    width: 0; 
    height: 0; 
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 7px solid #fff;
    margin-left: 2px;
}
.sig_eq_card:hover .eq_icon_play {
    background-color: #fdd000; /* 호버 시 VOS 옐로우 포인트 */
}

/* ========================================================
   팝업(모달) 디자인
======================================================== */
.sig_modal_overlay {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.6);
    z-index: 9999;
    display: none; /* 평소엔 숨김 */
    align-items: center;
    justify-content: center;
}

.sig_modal_box {
    background: #fff;
    width: 900px;
    max-width: 95%;
    border-radius: 0;
    display: flex;
    position: relative;
    box-shadow: 0 15px 40px rgba(0,0,0,0.2);
}

.sig_modal_close {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 35px;
    color: #999;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 10;
}

.sig_modal_close:hover { color: #222; }

/* 팝업 좌측(이미지) */
.sig_modal_left {
    width: 45%;
    background-color: #ebebeb; /* 카드와 동일한 회색 배경 */
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sig_modal_left img {
    max-width: 100%;
    height: auto;
}

/* 팝업 우측(텍스트) */
.sig_modal_right {
    width: 55%;
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#modal_title_target {
    font-size: 26px;
    color: #111;
    font-weight: 800;
    margin: 0 0 5px 0;
}

#modal_sub_target {
    font-size: 15px;
    color: #666;
    margin: 0;
}

.sig_modal_line {
    width: 25px;
    height: 3px;
    background-color: #fdd000;
    margin: 20px 0;
}

.sig_modal_desc {
    font-size: 14px;
    color: #444;
    line-height: 1.6;
}

/* 모바일 반응형 */
@media (max-width: 1024px) {
    .sig_eq_grid { grid-template-columns: repeat(3, 1fr); }
    .sig_modal_box { flex-direction: column; width: 600px; }
    .sig_modal_left { width: 100%; height: 250px; }
    .sig_modal_right { width: 100%; padding: 30px; }
}

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

@media (max-width: 480px) {
    .sig_eq_grid { grid-template-columns: 1fr; }
}

/* ========================================================
   VOS Signature - Section 4 (엔딩 섹션)
======================================================== */
.sig_final_section {
    width: 100%;
    height: 800px; /* 요청하신 800px 높이 지정 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center; /* 텍스트 세로 중앙 정렬 */
    position: relative;
}

/* 텍스트 영역 제어 */
.sig_final_text {
    width: 100%;
    max-width: 550px; /* 텍스트가 이미지의 원장님을 가리지 않도록 최대 너비 제한 */
}

/* 타이틀 스타일 */
.sig_final_title {
    font-size: 52px;
    color: #222; /* 시안처럼 짙은 먹색 */
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -2px;
    margin: 0 0 35px 0;
}

/* 서브 텍스트 스타일 */
.sig_final_desc {
    font-size: 24px;
    color: #333;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: -1px;
    margin: 0;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .sig_final_section {
        height: 600px; 
        /* 태블릿에서는 인물 중심이 되도록 배경 위치 살짝 조정 */
        background-position: 70% center; 
    }
    .sig_final_title { font-size: 42px; margin-bottom: 25px; }
    .sig_final_desc { font-size: 20px; }
}

@media (max-width: 768px) {
    .sig_final_section {
        height: 500px; 
        /* 모바일에서는 텍스트 가독성을 위해 흰색 반투명 그라데이션 추가 (필요시) */
        background-image: linear-gradient(to right, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.4) 100%), 
                          url('n_images/signature_img4_001.jpg') !important; 
    }
    .sig_final_text { max-width: 100%; padding-right: 20px; }
    .sig_final_title { font-size: 34px; letter-spacing: -1px; }
    .sig_final_desc { font-size: 18px; }
}

/* ========================================================
   VOS Signature - 모바일 디테일 최적화 (768px 이하 전용)
======================================================== */
/* PC에서는 모바일 전용 줄바꿈을 숨김 */
.m_br { display: none; }

@media (max-width: 768px) {
    
    /* ----------------------------------------------------
       1 & 2. 메인/서브 타이틀 폰트 크기 32px로 통일
    ---------------------------------------------------- */
    .sig_equip_top_tit { 
        font-size: 32px !important; 
        letter-spacing: -1px;
    }
    .sig_equip_main_tit { 
        font-size: 32px !important; 
        letter-spacing: -1px;
    }

    /* ----------------------------------------------------
       3. 설명 17px 조정 및 모바일 전용 줄바꿈 켜기
    ---------------------------------------------------- */
    .sig_equip_desc { 
        font-size: 17px !important; 
        line-height: 1.6 !important; 
    }
    /* 모바일 화면이 되면 숨겨뒀던 줄바꿈 태그를 작동시킴 */
    .m_br { 
        display: block !important; 
    }

    /* ----------------------------------------------------
       4. 모달(팝업) 장비 이미지 위아래 넘침 완벽 해결
    ---------------------------------------------------- */
    .sig_modal_left {
        height: 280px !important; /* 모바일에서 이미지가 들어갈 공간 높이 */
        padding: 20px !important; /* 여백을 줄여 이미지가 숨 쉴 공간 확보 */
    }
    .sig_modal_left img {
        max-height: 100% !important; /* 🔥 핵심: 부모 높이(280px)를 절대 넘지 못하게 잠금 */
        width: auto !important; 
        object-fit: contain !important; /* 잘리지 않고 비율에 맞게 쏙 들어가게 함 */
    }
}

/* ========================================================
   Blog Common - Hero Section (스토리, 유튜브, 프로모션 공통)
======================================================== */
.blog_hero_wrap {
    width: 100%;
    height: 82vh;
    min-height: 800px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
}

/* 1800px 이너 컨테이너 강제 고정 */
.blog_hero_wrap .n_inner_1800 {
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box; 
}

/* 텍스트 컨테이너 */
.blog_hero_text_box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

/* ========================================================
   Blog Common Hero - 다이나믹 교차 등장 & 컬러 변환 애니메이션
======================================================== */
/* 메인 타이틀 구조 */
.blog_main_title {
    font-size: 70px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin: 0 0 15px 0;
    display: flex;
    gap: 20px;
    overflow: hidden;
}

/* 1. 공통 속성: 개별 글자(span) 대기 상태 */
.blog_main_title span {
    display: inline-block;
    opacity: 0;
    will-change: transform, opacity, color;
}

/* 2. 왼쪽 단어 (word_up: 아래에서 위로 등장) */
.blog_main_title .word_up {
    transform: translateY(100px);
    color: #ffffff;
    /* 페이지 로드 즉시 통통 튕기며 등장 */
    animation: blogSlideUp 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* 3. 오른쪽 단어 (word_down: 위에서 아래로 등장 후 노란색) */
.blog_main_title .word_down {
    transform: translateY(-100px);
    color: #ffffff;
    /* 🔥 기존 효과 완벽 구현 (다중 애니메이션)
       - 이동(Move): 0.15초 뒤에 1.2초 동안 통통 튕기며 등장
       - 색상(Color): 이동이 끝날 때쯤인 1.2초 뒤에 0.8초 동안 노란색 페이드인 */
    animation: 
        blogSlideDownMove 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s forwards,
        blogSlideDownColor 0.8s ease 1.2s forwards;
}

/* --- 4. 애니메이션 키프레임(Keyframes) 정의 --- */
@keyframes blogSlideUp {
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes blogSlideDownMove {
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes blogSlideDownColor {
    100% { color: #fdd000; /* VOS 시그니처 옐로우 */ }
}

/* --- 서브 타이틀 (밑에 작은 글씨) --- */
.blog_sub_title {
    font-size: 28px;
    font-weight: 500;
    margin: 0;
    color: #fff;
    opacity: 0;
    transform: translateY(20px);
    /* 큰 제목 애니메이션이 다 끝날 즈음(1초 뒤) 부드럽게 등장 */
    animation: subSlideUp 1s ease 1s forwards; 
}

@keyframes subSlideUp {
    100% { opacity: 1; transform: translateY(0); }
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .blog_hero_wrap { height: 60vh; min-height: 500px; }
    .blog_main_title { font-size: 55px; }
    .blog_sub_title { font-size: 24px; }
}

@media (max-width: 768px) {
    .blog_main_title { 
        font-size: 40px; 
        flex-direction: column; 
        gap: 5px;
    }
    .blog_sub_title { font-size: 20px; }
}


/* ========================================================
   Blog Common - List Section (필터, 그리드, 페이징 공통)
======================================================== */
.blog_list_wrap {
    padding: 80px 0 120px;
}

/* --- 1. 카테고리 필터 --- */
.blog_filter_wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.blog_filter_list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.blog_filter_list li a {
    display: block;
    padding: 10px 24px;
    border: 1px solid #ddd;
    border-radius: 30px;
    font-size: 16px;
    color: #666;
    font-weight: 500;
    transition: all 0.3s ease;
}

.blog_filter_list li a:hover {
    border-color: #fdd000;
    color: #222;
}

.blog_filter_list li.active a {
    background-color: #fdd000;
    border-color: #fdd000;
    color: #111;
    font-weight: 700;
}

/* --- 2. 게시물 3열 그리드 --- */
.blog_grid_wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px 30px; /* 세로 간격 50px, 가로 간격 30px */
}

/* 카드 개별 디자인 */
.blog_card_inner {
    display: block;
    text-decoration: none;
    color: inherit;
}

.blog_card_inner:hover .blog_thumb img {
    transform: scale(1.05); /* 호버 시 썸네일 살짝 확대 */
}

/* 썸네일 (16:9 비율 유지) */
.blog_thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 8px; /* 모서리 살짝 둥글게 */
    margin-bottom: 20px;
}

.blog_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

/* 텍스트 정보 영역 */
.blog_title {
    font-size: 22px;
    font-weight: 800;
    color: #222;
    margin: 0 0 10px 0;
    line-height: 1.4;
    letter-spacing: -0.5px;
    
    /* 두 줄 이상 넘어갈 경우 말줄임표(...) 처리 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blog_excerpt {
    font-size: 16px;
    color: #777;
    line-height: 1.5;
    margin-bottom: 20px;
    
    /* 두 줄 이상 넘어갈 경우 말줄임표 처리 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 하단 메타 정보 (뱃지 + 날짜) */
.blog_meta {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #555;
    font-weight: 600;
}

.meta_badge {
    background-color: #fdd000;
    color: #111;
    padding: 3px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 800;
}

.meta_divider {
    margin: 0 10px;
    color: #ccc;
    font-weight: 300;
}

/* --- 3. 페이징 (페이지네이션) 완벽 가운데 정렬 --- */
.blog_pagination {
    margin-top: 80px;
    width: 100%;
    display: flex;
    justify-content: center; /* 감싸는 래퍼를 가운데 정렬 */
}

.blog_pagination ul.page-numbers {
    display: flex;
    justify-content: center; /* 항목들을 가운데 정렬 */
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none; /* 불필요한 점 없애기 */
}

.blog_pagination ul.page-numbers li {
    display: flex;
}

.blog_pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    font-size: 16px;
    color: #666;
    border-radius: 50%;
    transition: all 0.3s ease;
    text-decoration: none;
}

.blog_pagination .page-numbers:hover {
    color: #111;
    font-weight: 700;
    background-color: #f7f7f7;
}

/* 현재 페이지 하이라이트 */
.blog_pagination .page-numbers.current {
    background-color: #111;
    color: #fff;
    font-weight: 700;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .blog_grid_wrap { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
}

@media (max-width: 768px) {
    .blog_list_wrap { padding: 50px 0 80px; }
    .blog_filter_wrap { margin-bottom: 40px; }
    .blog_filter_list li a { font-size: 14px; padding: 8px 18px; }
    
    .blog_grid_wrap { grid-template-columns: 1fr; gap: 40px 0; }
    .blog_title { font-size: 20px; }
    .blog_excerpt { font-size: 15px; }
}

/* ========================================================
   Blog Video - 유튜브 채널 헤더 (메인 영상 위)
======================================================== */
.video_channel_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 30px;
    border-bottom: 2px solid #222;
    margin-bottom: 40px;
}

.ch_title_box {
    display: flex;
    align-items: baseline;
    gap: 15px;
}

.ch_title_box h2 {
    font-size: 32px;
    font-weight: 800;
    color: #111;
    margin: 0;
    letter-spacing: -1px;
}

.ch_title_box span {
    font-size: 16px;
    color: #666;
}

.ch_btn {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: #111;
    color: #fff;
    padding: 10px 25px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none !important;
    transition: background-color 0.3s ease;
}

.ch_btn:hover {
    background-color: #fdd000;
    color: #111;
}

.ch_btn img {
    width: 24px;
    height: auto;
}

/* ========================================================
   Blog Video - 하이라이트 영상 우측 (동적 텍스트)
======================================================== */
.n_yt_highlight_text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 20px;
}

.n_yt_highlight_text h3 {
    font-size: 28px;
    font-weight: 800;
    color: #111;
    line-height: 1.4;
    margin-bottom: 20px;
    word-break: keep-all;
    
    /* 제목이 너무 길 경우 2줄에서 자르기 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.n_yt_highlight_text .hl_desc {
    font-size: 16px;
    color: #555;
    line-height: 1.6;
    word-break: keep-all;
    
    /* 내용이 길 경우 좌측 영상 높이에 맞게 약 8줄 부근에서 자르기 */
    display: -webkit-box;
    -webkit-line-clamp: 8; 
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.n_yt_highlight_text:hover h3 {
    color: #222;
    text-decoration: underline;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .video_channel_header { flex-direction: column; align-items: flex-start; gap: 20px; }
    .ch_title_box { flex-direction: column; gap: 5px; }
    .ch_title_box h2 { font-size: 26px; }
}

/* 모바일 대응 */
@media (max-width: 1024px) {
    .n_yt_highlight_text { padding-left: 0; margin-top: 20px; }
    .n_yt_highlight_text h3 { font-size: 22px; margin-bottom: 15px; }
    .n_yt_highlight_text .hl_desc { -webkit-line-clamp: 5; font-size: 15px; }
}

/* ========================================================
   Blog Event - 프로모션 전용 2열 그리드 및 카드 디자인
======================================================== */
.event_grid_wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 40px; /* 세로 60px, 가로 40px 여백 */
}

/* 카드 래퍼 */
.event_card_inner {
    display: block;
    text-decoration: none !important;
    color: inherit;
}

.event_card_inner:hover .event_thumb img {
    transform: scale(1.03); /* 호버 시 아주 살짝만 확대 */
}

/* 프로모션 썸네일 (넓은 와이드 비율) */
.event_thumb {
    width: 100%;
    aspect-ratio: 16 / 9; /* 시안에 맞게 와이드형 유지 */
    overflow: hidden;
    border-radius: 0; /* 시안을 보면 각진 모서리로 되어 있음 */
}

.event_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
}

/* 텍스트 영역 (가운데 정렬) */
.event_info {
    text-align: center;
    margin-top: 25px;
}

.event_title {
    font-size: 24px;
    font-weight: 800;
    color: #111;
    margin: 0 0 15px 0;
    line-height: 1.4;
    letter-spacing: -0.5px;
    
    /* 1줄 또는 2줄 넘어갈 경우 말줄임표 처리 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 하단 날짜 & 뱃지 래퍼 */
.event_meta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

/* 상태 뱃지 공통 스타일 */
.event_badge {
    padding: 6px 18px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}

/* 진행중 (노란색) */
.status_ongoing {
    background-color: #fdd000;
    color: #111;
}

/* 종료 (회색) */
.status_ended {
    background-color: #d8d8d8;
    color: #666;
}

/* 날짜 */
.event_date {
    font-size: 16px;
    color: #555;
    font-weight: 600;
}


/* ========================================================
   Blog Event - 최상단 하이라이트 레이아웃
======================================================== */
.event_highlight_box {
    display: flex;
    gap: 50px;
    align-items: center;
    margin-bottom: 80px; /* 하단 2열 그리드와의 간격 */
    padding-bottom: 80px;
    border-bottom: 1px solid #eaeaea; /* 시안처럼 밑줄로 구분 */
}

/* 좌측 썸네일 (비율 60%) */
.eh_img {
    flex: 0 0 60%;
    border-radius: 12px;
    overflow: hidden;
}

.eh_img img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.eh_img:hover img {
    transform: scale(1.02);
}

/* 우측 텍스트 정보 (비율 40%) */
.eh_text {
    flex: 1;
}

.eh_title {
    margin: 0 0 20px 0;
}

.eh_title a {
    font-size: 36px;
    font-weight: 800;
    color: #111;
    text-decoration: none !important;
    line-height: 1.3;
    letter-spacing: -1px;
    
    /* 너무 길면 자르기 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.eh_title a:hover {
    color: #555;
}

.eh_desc a {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
    text-decoration: none !important;
    
    /* 5줄 이상 길어지면 말줄임표 */
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- 모바일/태블릿 반응형 --- */
@media (max-width: 1024px) {
    .event_grid_wrap { gap: 50px 30px; }
    .event_title { font-size: 22px; }
}

@media (max-width: 768px) {
    .event_grid_wrap { grid-template-columns: 1fr; gap: 40px 0; }
    .event_thumb { border-radius: 8px; /* 모바일에선 살짝 둥글게 */ }
    .event_title { font-size: 20px; }
}

@media (max-width: 1024px) {
    .event_highlight_box { flex-direction: column; gap: 30px; align-items: flex-start; padding-bottom: 60px; margin-bottom: 60px; }
    .eh_img { flex: none; width: 100%; }
    .eh_title a { font-size: 28px; }
}

/* ========================================================
   학술 활동 페이지
======================================================== */
 .n_activity_section { padding-top: 80px; padding-bottom: 100px; background: #fff; }
    
    /* 탭 메뉴 스타일 */
    .n_tabs_menu { display: flex; justify-content: center; gap: 15px; margin-bottom: 60px; flex-wrap: wrap; list-style: none; padding: 0; }
    .n_tabs_menu li a { 
        display: block; padding: 12px 25px; border-radius: 30px; background: #f4f4f4; 
        color: #666; font-weight: 600; text-decoration: none; transition: 0.3s; 
    }
    .n_tabs_menu li.ui-tabs-active a { background: #111; color: #fff; }

    /* 리스트 스타일 */
    .n_activity_list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 40px; }
    .n_activity_item { 
        display: flex; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid #eee; 
        align-items: flex-start; 
    }
    .n_act_media { width: 40%; flex-shrink: 0; border-radius: 20px; overflow: hidden; position: relative; }
    .n_act_media img { width: 100%; height: auto; display: block; object-fit: cover; aspect-ratio: 4/3; }
    
    .n_act_info { width: 60%; }
    .n_act_info .date { font-size: 15px; color: #999; font-weight: 500; margin-bottom: 10px; display: block; }
    .n_act_info h3 { font-size: 24px; font-weight: 700; color: #111; margin-bottom: 20px; line-height: 1.4; word-break: keep-all; }
    .n_act_info .content_text { font-size: 16px; color: #555; line-height: 1.7; }

    @media (max-width: 991px) {
        .n_activity_item { flex-direction: column; gap: 20px; }
        .n_act_media, .n_act_info { width: 100%; }
    }




/* ========================================================
   모바일 최적화 완벽 수정본 (768px 이하 스마트폰 전용)
======================================================== */
@media (max-width: 768px) {

   /* ----------------------------------------------------
       1. Section 1: 영상 모바일 3:2 비율 강제 적용 (잘림 방지)
    ---------------------------------------------------- 
    .n_hero_video {
        height: auto !important; /* 높이를 패딩 비율에 맡김 
        min-height: 0 !important;
        position: relative;
        overflow: hidden;
    }
    .n_video_ratio_container { 
        padding-top: 42.66% !important;  🔥 3:2 비율의 핵심! (2/3 = 66.66%) 
        width: 100%;
        height: 0;
        position: relative;
    }
    .n_video_ratio_container iframe { 
        width: 100vw !important;
        height: 100% !important; 
        min-height: 0 !important; 
        min-width: 0 !important; 
        position: absolute;
        top: 0 !important;
        left: 0 !important;
        transform: scale(1.05) !important; Vimeo 검은 테두리 숨김용 미세 확대 
    }*/
.n_hero_video {
        height: auto !important; 
        min-height: 0 !important;
        position: relative;
        overflow: hidden; /* 중요: 영상이 확대되어 삐져나가는 부분을 잘라냄 */
    }

    .n_video_ratio_container { 
        /* 높이는 원하시는 대로 유지 (현재 약 85% 정도로 보입니다) */
        padding-top: 85% !important; 
        width: 100%;
        height: 0;
        position: relative;
    }

    .n_video_ratio_container iframe { 
        width: 100% !important;
        height: 100% !important; 
        position: absolute;
        top: 50% !important; /* 세로 중앙 정렬 */
        left: 50% !important; /* 가로 중앙 정렬 */
        
        /* 🔥 핵심 수정: 
           가로형 영상을 세로로 긴 그릇에 꽉 채우려면 
           단순 scale(1.05)로는 부족합니다. 
           최소 2배(2.0) 이상 키워야 여백 없이 꽉 찹니다. 
        */
        transform: translate(-50%, -50%) scale(2.2) !important; 
        
        /* 만약 object-fit이 먹히는 환경이라면 아래 속성도 도움됩니다 */
        object-fit: cover;
    }

    .n_feat_dates {
        text-align: center;
        font-size: 13px;
        padding-left: 0;
        margin-top: 15px; /* 영상이 커진 만큼 텍스트와의 간격 확보 */
    }


    /* 🔥 날짜 텍스트 모바일 중앙 정렬 추가 */
    .n_feat_dates {
        text-align: center;
        font-size: 13px;
        padding-left: 0;
    }
    /* ----------------------------------------------------
       🔥 2. Section 2: 원형 크기 반응형 조절 (화면 밖 이탈 방지)
    ---------------------------------------------------- */
    .n_circle_group { 
        justify-content: center; 
        padding-left: 0; 
        transform: none !important; /* 기존 강제 축소(scale) 제거 */
        margin: 10px 0; 
        flex-wrap: nowrap; /* 무조건 한 줄 유지 */
    }
    .n_circle {
        width: 100px !important; /* 모바일 화면에 3개가 들어가도록 절대 크기 지정 */
        height: 100px !important;
        font-size: 12px !important; /* 글씨 크기 약간 축소 */
        padding: 0 5px !important;
        flex-shrink: 0 !important;
    }
    .n_circle + .n_circle {
        margin-left: -15px !important; /* 겹치는 간격 조절 */
    }

    /* --- (기존 2번 섹션 텍스트 및 이미지 코드 유지) --- */
    .n_feature_item { flex-direction: column !important; gap: 20px; padding: 40px 20px; min-height: auto; }
    .n_feat_img { transform: translateY(20px); width: 100%; }
    .n_feat_img img { width: 100%; max-width: 380px; border-radius: 0 0 100px 0; }
    .n_feat_text { text-align: center; width: 100%; }
    .n_feat_title { font-size: 32px !important; margin-bottom: 15px; }
    .n_feat_sub { font-size: 16px; margin-bottom: 20px; word-break: keep-all; }
    .n_feat_extra { display: none !important; }

    /* ========================================================
   [모바일 최적화] Section 3 (VOS Signature) 텍스트 조정
======================================================== */
@media (max-width: 768px) {
    .n_sig_card_inner {
        /* 텍스트를 더 바닥 쪽으로 내리기 위해 하단 여백 대폭 축소 (기존 40px -> 15px) */
        padding-bottom: 15px !important; 
    }
    .n_sig_card_title {
        /* 모바일 카드 크기에 맞게 글씨 크기 축소 (기존 24px -> 17px) */
        font-size: 17px !important; 
        line-height: 1.3 !important;
    }
}

    /* ----------------------------------------------------
       🔥 추가. 유튜브(피알남) 하단 리스트: 썸네일 위, 텍스트 아래 배치
    ---------------------------------------------------- */
    .n_yt_sub_item {
        flex-direction: column !important; /* 좌우 배치를 상하 배치로 변경 */
        align-items: flex-start !important;
        gap: 15px !important;
        margin-bottom: 30px !important; /* 항목 간 간격 넉넉하게 */
    }
    .n_yt_sub_img {
        width: 100% !important; /* 썸네일 가로 100% 꽉 차게 */
        max-width: 100% !important;
    }
    .n_yt_sub_img img {
        width: 100%;
        border-radius: 12px;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }
    .n_yt_sub_text {
        width: 100% !important;
        padding-left: 0 !important;
        text-align: left; /* 글씨는 좌측 정렬 유지 (가독성) */
    }
    .n_yt_sub_text h4 {
        font-size: 18px !important;
        margin-bottom: 5px !important;
    }
    .n_yt_sub_text p {
        font-size: 14px !important;
    }

/* --- (섹션 7) --- */

	.n_info_section {
        background-position: right center !important; 
    }

    /* --- (기존 타이틀, 4번, 5번 섹션 코드 유지) --- */
    .n_rules_main_title, .n_ba_main_title, .n_yt_main_title, .n_sig_main_title { font-size: 32px !important; line-height: 1.3; letter-spacing: -1px; }
    .n_rules_header, .n_sig_header, .n_ba_top_header, .n_yt_header { margin-bottom: 40px !important; }

    .n_ba_3col_wrapper { flex-direction: column !important; gap: 30px !important; padding: 0 20px; }
    .n_ba_item { max-width: 320px !important; margin: 0 auto; width: 100%; }
    .custom_ba_slider { aspect-ratio: 1 / 1 !important; }

    .n_rules_container { flex-direction: column !important; gap: 25px !important; padding: 0 20px; }
    .n_rule_card { max-width: 280px !important; margin: 0 auto; width: 100%; }
    .n_rule_img_wrap { aspect-ratio: 1 / 1; border-radius: 15px; overflow: hidden; }
    .n_rule_title_overlay h3 { font-size: 22px; padding-bottom: 15px; }

}

/* ========================================================
   [모바일 최적화] About VOS - Section 3 (전문의 진단)
======================================================== */
@media (max-width: 768px) {
    /* 1. 최상단 타이틀 텍스트 */
    .n_sec3_title {
        font-size: 28px !important;
        margin-bottom: 12px !important; /* 글씨가 작아졌으니 간격도 살짝 좁힘 */
    }

    /* 2. 서브 타이틀 텍스트 */
    .n_sec3_sub {
        font-size: 22px !important;
        margin-bottom: 30px !important;
    }

    /* 3. 본문 내용 텍스트 */
    .n_sec3_desc p {
        font-size: 16px !important;
        line-height: 1.6 !important; /* 모바일 가독성을 위해 줄간격 최적화 */
        margin-bottom: 20px !important;
    }
}


/* ========================================================
   [모바일 최적화] 오시는 길 & 진료시간 페이지 
======================================================== */




@media (max-width: 768px) {
   /* 1. 상단 히어로 섹션 높이 최적화 (모바일 적용) */
.location_hero_wrap {
    height: 40vh !important;
    min-height: 400px !important;
}

    /* 3. 히어로 타이틀 & 서브타이틀 크기 조정 */
    .location_main_title {
        font-size: 32px !important;
        justify-content: flex-start;
        gap: 8px !important;
    }
    .location_sub_title {
        font-size: 20px !important;
        margin-top: 5px;
    }

    /* 2. 지도 배경 분리 (운영시간을 위로, 지도를 아래로!) */
    .map_section_wrap {
        display: flex;
        flex-direction: column-reverse; /* HTML 수정 없이 위아래 순서를 마법처럼 바꿉니다 */
        background: #fff;
    }
    .map_full_bg {
        position: relative !important;
        width: 100%;
        height: 400px !important; /* 모바일에서 보여줄 지도 세로 높이 */
    }
    .map_overlay_content {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        width: 100%;
        padding: 40px 0 20px 0; /* 지도 위쪽 공백 조절 */
    }
    .hours_card {
        width: 100% !important;
        box-shadow: none !important; /* 모바일에선 그림자 없이 깔끔하게 */
        padding: 0 15px !important;
    }
    /*타이틀*/
    .loc_main_title {
    font-size: 32px;}
    .loc_sub_desc {
    font-size: 16px;}

    /* 4. 진료일정 달력 표(Table/Image) 가로 꽉 차게 만들기 */
    .fcs_calendar_box {
        width: 100%;
        overflow-x: auto; /* 혹시 달력이 삐져나가면 가로 스크롤 생성 */
    }
    .fcs_calendar_box table, 
    .fcs_calendar_box img, 
    .fcs_calendar_box iframe {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /* 5. 전화상담 박스 글씨 두 줄 방지 (한 줄로 꽉 잡아주기) */
    .fcs_phone {
        display: flex !important;
        flex-wrap: nowrap !important; /* 절대 줄바꿈 하지 마! */
        align-items: center;
        justify-content: center;
        gap: 8px !important;
        white-space: nowrap; /* 텍스트 줄바꿈 강제 방지 */
        padding: 15px 10px !important;
    }
    .fcs_phone img {
        width: 20px !important; /* 아이콘 살짝 축소 */
    }
    .fcs_phone span { 
        font-size: 15px !important; 
    }
    .fcs_phone strong { 
        font-size: 22px !important; /* 번호가 돋보이게 유지 */
    }

}

/* ========================================================
   [모바일 최적화] Contact / 예약 안내 페이지
======================================================== */

@media (max-width: 768px) {
    
    /* 1. 상단 히어로 섹션 높이 최적화 (모바일에서만) */
    .reserve_hero_wrap {
        height: 40vh !important;
        min-height: 400px !important;
    }

    /* 2. 히어로 타이틀 & 서브타이틀 크기 조정 (가로로 합치기) */
    .reserve_main_title {
        font-size: 32px !important;
        /*flex-direction: row !important;  ONLINE RESERVATION 가로 나란히 */
        justify-content: flex-start;
        gap: 8px !important;
    }
    .reserve_sub_title {
        font-size: 20px !important; /* Location과 동일하게 20px 통일 */
        margin-top: 5px;
    }

    /* 3. 하단 섹션 타이틀 크기 조정 (Location 페이지 동일) */
    .step_main_title,
    .channel_main_title {
        font-size: 32px !important;text-align:center;
    }
    .step_sub_desc {
        font-size: 16px !important;
    }

    /* 4. 온라인 예약 절차 박스 간격 최적화 */
    .reserve_step_wrap {
        padding: 60px 0 !important;
    }
    .reserve_step_box_full {
        padding: 40px 0 !important;
    }
    .step_flow {
        flex-direction: row !important; /* 모바일에서 4단계 아이콘 가로로 */
        justify-content: space-between;
        gap: 10px !important;
    }
    .step_arrow {
        display: none !important; /* 좁은 모바일에선 화살표 제거 */
    }
    .icon_circle {
        width: 70px !important;
        height: 70px !important;
        margin-bottom: 15px !important;
    }
    .icon_circle img {
        width: 35px !important;
    }
    .step_item {
        width: 24% !important;
    }
    .step_item p {
        font-size: 12px !important;
        word-break: keep-all; /* 단어 끊김 방지 */
    }

    /* 5. 예약 달력 및 폼 간격 최적화 */
    .reserve_form_wrap {
        padding: 60px 0 80px 0 !important;
    }
    .reserve_form_container {
        gap: 60px !important;
    }
    
    /* 6. 진료일정 달력 표(Table/Image) 꽉 차게 */
    .reserve_left_cal {
        overflow-x: auto; /* 달력이 넘치면 스크롤 */
    }
    .reserve_left_cal table, 
    .reserve_left_cal img, 
    .reserve_left_cal iframe {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /* 7. 전화번호 가운데 정렬 및 한 줄 유지 (Location과 동일) */
    .phone_num {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center;
        justify-content: center;
        white-space: nowrap !important;
        font-size: 32px !important;
        letter-spacing: -1px;
    }

    /* 8. 지도 배경 분리 (운영시간 위, 지도 아래) */
    .map_section_wrap {
        display: flex;
        flex-direction: column-reverse; /* 역순 배치 마법 */
        height: auto !important;
        background: #fff;
    }
    .map_full_bg {
        position: relative !important;
        width: 100% !important;
        height: 400px !important;
    }
    .map_overlay_content {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        width: 100% !important;
        padding: 40px 0 20px 0 !important;
        pointer-events: auto !important; /* 모바일에선 터치 풀기 */
    }
    .hours_card {
        width: 100% !important;
        padding: 0 15px !important;
        box-shadow: none !important;
    }
}

/* ========================================================
   모바일 전용 페이지네이션 (PC 무조건 숨김, 모바일 무조건 노출)
======================================================== */
.sig_mobile_pagination { 
    display: none !important; 
}

@media (max-width: 768px) {
    .sig_mobile_pagination {
        display: flex !important; /* 모바일에서 강제 켜기 */
        justify-content: center;
        align-items: center;
        gap: 8px;
        margin-top: 40px;
        width: 100%;
    }
    .sig_page_btn {
        width: 32px; height: 32px;
        border-radius: 5px; border: 1px solid #ddd;
        background: #fff; color: #666; font-size: 14px; font-weight: 600;
        display: flex; align-items: center; justify-content: center;
        cursor: pointer; transition: 0.3s; padding: 0;
    }
    .sig_page_btn.active {
        background: #111 !important; color: #fff !important; border-color: #111 !important;
    }
}

/* ==========================================
   [NEW] 애니메이션 배너 스타일 (treatment-new-style)
========================================== */
.treatment-new-style .treatment-dynamic-banner {
    height: 780px; /* 기존 헤더와 비슷한 높이로 설정 (수정 가능) */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.treatment-dynamic-banner .banner-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 1400px; /* 보스피부과 기존 inner 사이즈 */
    margin: 0 auto;
    padding: 0 20px;
}

/* 왼쪽 텍스트 영역 */
.treatment-dynamic-banner .text-content {
    width: 55%;
    color: #101010;
}

.treatment-dynamic-banner .headline {
    font-size: 4.5rem;
    font-weight: 800;
    margin-bottom: 10px;
    line-height: 1.3;
    word-break: keep-all;
}

.treatment-dynamic-banner .subhead {
    font-size: 1.7rem;
    font-weight: 500;
    margin-bottom: 20px;
    line-height: 1.5;
    color: #333;
    word-break: keep-all;
}

/* 해시태그 */
.treatment-dynamic-banner .keyword-group span {
    display: inline-block;
    background-color: #373737; /* 기존 태그 색상에 맞게 수정 가능 */
    color: #fff;
    padding: 6px 16px;
    border-radius: 30px;
    font-size: 1.4rem;
    margin-right: 6px;
    margin-bottom: 8px;
    font-weight: 500;
}

/* 오른쪽 애니메이션 로고 영역 */
.treatment-dynamic-banner .animation-content {
    width: 40%;
    text-align: center;
}

/* ▼ 애니메이션 영역 CSS 수정 ▼ 
.treatment-dynamic-banner .fade-animation-box {
    position: relative;
    width: 100%;
    height: 100%; /* 로고 이미지 높이에 맞게 조정 
    text-align: right;
}

/*.treatment-dynamic-banner .fade-animation-box img {
    position: absolute;
    top: 0;
    right: 0;
    max-width: 180px; 
    opacity: 0; 
}*/
/* Hospital Logo 애니메이션 설정 
.treatment-dynamic-banner .fade-animation-box .logo-1 {
    animation: vosCrossFadeInOut 12s infinite ease-in-out;
}*/

/* Specialist Logo 애니메이션 설정 
.treatment-dynamic-banner .fade-animation-box .logo-2 {
    animation: vosCrossFadeInOut 12s infinite ease-in-out;
    animation-delay: 6s; 
}*/

/* ▼ 3D 플립 카드 애니메이션 전용 CSS ▼ */
.treatment-dynamic-banner .animation-content {
    width: 40%;
    height: 100%; /* 배너 높이에 맞춰 조정 */
    display: flex;
    justify-content: flex-end; /* 우측 정렬 유지 */
    align-items: center;
}

/* 350px 사이즈 고정 및 원근감 부여 */
.speedy-3d-scene {
    width: 400px;
    height: 400px;
    perspective: 1200px;
    position: relative;
    margin-left: auto; /* 오른쪽 정렬 */
    margin-right: 100px; /* 💡 이 숫자를 키울수록 로고가 왼쪽으로 이동합니다 (예: 120px, 150px) */
}

/* 두 로고의 공통 스타일 (처음엔 둘 다 숨김 처리) */
.speedy-3d-scene .face {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0; 
}

.speedy-3d-scene .face img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* 비율 찌그러짐 방지 */
}

/* 각각 독립적인 애니메이션 부여 (8초 사이클, 탄력있는 속도감) */
.speedy-3d-scene .face-1 {
    animation: vosFlip1 8s infinite cubic-bezier(0.4, 0, 0.2, 1);
}
.speedy-3d-scene .face-2 {
    animation: vosFlip2 8s infinite cubic-bezier(0.4, 0, 0.2, 1);
}


/* ------------------------------------------
   Face 1 (보스피부과) : 1 -> 사라짐 -> 1 -> 사라짐
------------------------------------------ */
@keyframes vosFlip1 {
    0%, 20% { transform: rotateY(0deg); opacity: 1; }
    
    /* 1. 가로로 휙! 사라짐 */
    25% { transform: rotateY(90deg); opacity: 0; }
    
    /* 안 보이는 동안, 다음 '세로 등장'을 위해 몰래 축 변경 */
    25.1%, 45% { transform: rotateX(-90deg); opacity: 0; }
    
    /* 2. 세로로 휙! 등장 */
    50%, 70% { transform: rotateX(0deg); opacity: 1; }
    
    /* 3. 45도 대각선으로 휙! 사라짐 */
    75% { transform: rotate3d(1, 1, 0, 90deg); opacity: 0; }
    
    /* 안 보이는 동안, 다음 '가로 등장'을 위해 축 원상복구 */
    75.1%, 95% { transform: rotateY(-90deg); opacity: 0; }
    
    /* 4. 가로로 휙! 등장하며 처음으로 리셋 */
    100% { transform: rotateY(0deg); opacity: 1; }
}

/* ------------------------------------------
   Face 2 (피부과전문의) : 대기 -> 2 -> 대기 -> 2
------------------------------------------ */
@keyframes vosFlip2 {
    /* 처음엔 '가로 등장'을 위해 90도 꺾인 채로 대기 */
    0%, 20% { transform: rotateY(-90deg); opacity: 0; }
    
    /* 1. 가로로 휙! 등장 */
    25%, 45% { transform: rotateY(0deg); opacity: 1; }
    
    /* 2. 세로로 휙! 사라짐 */
    50% { transform: rotateX(90deg); opacity: 0; }
    
    /* 안 보이는 동안, 다음 '대각선 등장'을 위해 축 변경 */
    50.1%, 70% { transform: rotate3d(1, 1, 0, -90deg); opacity: 0; }
    
    /* 3. 45도 대각선으로 휙! 등장 */
    75%, 95% { transform: rotate3d(1, 1, 0, 0deg); opacity: 1; }
    
    /* 4. 가로로 휙! 사라지며 처음으로 리셋 */
    100% { transform: rotateY(90deg); opacity: 0; }
}


/* ==========================================
   특징 체크리스트 (CSS Grid)
========================================== */
.treatment-check-section {
    background-color: #fcfcfc; /* 은은한 배경색 */
    border-top: 1px solid #e5e5e5;
    border-bottom: 1px solid #b1b1b1;
}

.treatment-check-section .inner {
    width:100%;
    max-width: 1920px;
    margin: 0 auto;
}

.check-list-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* PC: 4칸 */
    list-style: none;
    margin: 0;
    padding: 0;
}

.check-list-grid li {
    text-align: center;
    padding: 40px 20px;
    border-right: 1px solid #b1b1b1; /* 세로선 */
}

.check-list-grid li:last-child {
    border-right: none; /* 마지막 칸 세로선 제거 */
}

.check-list-grid .icon-check {
    margin-bottom: 15px;
}

.check-list-grid p {
    font-size: 1.7rem;
    color: #333;
    margin: 0;
    line-height: 1.5;
    word-break: keep-all; /* 단어 단위로 줄바꿈 (가독성 향상) */
    font-weight: 600;
}

/* ==========================================
   [PC/고해상도] 통이미지 중앙 정렬 처리
========================================== */
.treatment-new-style .full-screen ul.mobile-and-desktop li,
.treatment-new-style .full-screen ul.desktop-only li {
    width: 100%;
    display: flex;           /* 플렉스 박스 활성화 */
    justify-content: center;  /* 가로축 중앙 정렬 */
    background-color: #fff;  /* 혹시 여백이 생길 경우를 대비한 배경색 (선택사항) */
}

.treatment-new-style .full-screen ul.mobile-and-desktop li img,
.treatment-new-style .full-screen ul.desktop-only li img {
    display: block;
    margin: 0 auto;          /* 고전적인 중앙 정렬 방식 추가 */
    max-width: 100%;         /* 화면보다 이미지가 클 때는 화면에 맞춤 */
    height: auto;
}

/* ==========================================
   모바일 반응형 (화면이 작아질 때)
========================================== */
@media (max-width: 1024px) {
    .treatment-new-style .treatment-dynamic-banner {
        height: auto;
        padding: 80px 0 60px; /* 상하 여백 */
    }
    .treatment-dynamic-banner .banner-container {
        flex-direction: column;
        text-align: center;
    }
    .treatment-dynamic-banner .text-content, 
    .treatment-dynamic-banner .animation-content {
        width: 100%;
    }
    .treatment-dynamic-banner .headline {
        font-size: 3.0rem;
    }
    .treatment-dynamic-banner .subhead {
    font-size: 1.3rem;}
    .treatment-dynamic-banner .keyword-group span {font-size: 1.0rem;}

    .treatment-dynamic-banner .animation-content {
        margin-top: 40px;
    }
}

/* 모바일 반응형 (화면 작아질 때 크기 최적화) */
@media (max-width: 768px) {
    

    .speedy-3d-scene {
        width: 200px;
        height: 200px;
        margin: 20px auto 0;
    }


    .check-list-grid {
        grid-template-columns: repeat(2, 1fr); /* 모바일: 2칸 */
    }
    
    .check-list-grid li {
        padding: 30px 15px;
        border-bottom: 1px solid #e5e5e5; /* 가로선 추가 */
    }
    
    /* 짝수 번째(오른쪽) 항목은 세로선 제거 */
    .check-list-grid li:nth-child(even) {
        border-right: none;
    }
    
    /* 마지막 2개 항목은 바닥 가로선 제거 */
    .check-list-grid li:nth-last-child(1),
    .check-list-grid li:nth-last-child(2) {
        border-bottom: none;
    }
    
    .check-list-grid p {
        font-size: 0.95rem; /* 모바일 폰트 사이즈 살짝 조정 */
    }
    /* 오직 .treatment-new-style 클래스가 있는 아티클 내부의 이미지에만 적용 */
    .treatment-new-style .full-screen ul.mobile-and-desktop li,
    .treatment-new-style .full-screen ul.mobile-only li {
        width: 100%;
        overflow: hidden; 
        display: flex;
        justify-content: center;
    }

    .treatment-new-style .full-screen ul.mobile-and-desktop li img,
    .treatment-new-style .full-screen ul.mobile-only li img {
        width: 120%; /* 1.2배 확대 */
        max-width: none; 
        height: auto;
        flex-shrink: 0;
    }
    /* 체크 아이콘 크기만 모바일에서 축소 (28px~30px 권장) */
    .check-list-grid .icon-check svg {
        width: 28px !important; /* !important를 주어 HTML에 작성된 35px를 강제로 덮어씁니다 */
        height: auto;
    }
    
    /* 아이콘과 텍스트 사이 간격도 모바일에 맞게 살짝 줄임 */
    .check-list-grid .icon-check {
        margin-bottom: 10px;
    }
}

/* ==========================================
   공지사항용
========================================== */
.notice-page-layout .blog_grid_wrap {
    display: block !important; /* 공지사항 페이지에서만 그리드 해제 */
    width: 100%;
}

.notice-page-layout .notice-list-container {
    width: 100%;
    margin: 40px 0;
    border-top: 2px solid #1a1a1a;
    list-style: none;
    padding: 0;
}

.notice-page-layout .notice-item a {
    display: flex; /* 내부 요소를 한 줄로 */
    align-items: center;
    padding: 30px 20px;
    border-bottom: 1px solid #eee;
    text-decoration: none;
    transition: background 0.3s;
}

.notice-page-layout .notice-item a:hover {
    background-color: #fcfcfc;
}

/* 텍스트 정렬 및 비율 조절 */
.notice-page-layout .notice-cat {
    min-width: 100px;
    font-weight: 700;
    color: #bfa480;
    font-size: 14px;
}

.notice-page-layout .notice-title {
    flex: 1; /* 제목이 중앙 공간을 다 차지함 */
    font-size: 1.25rem;
    font-weight: 600;
    color: #1a1a1a;
    padding: 0 40px;
    margin: 0;
    text-align: left;
}

.notice-page-layout .notice-date {
    min-width: 120px;
    text-align: right;
    color: #999;
    font-size: 15px;
}

/* 모바일 전용 (모바일에서도 1열 유지가 좋겠죠?) */
@media (max-width: 768px) {
    .notice-page-layout .notice-item a {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .notice-page-layout .notice-title {
        padding: 0;
        font-size: 1.1rem;
    }
    .notice-page-layout .notice-date {
        text-align: left;
    }
}

/* 리스트 컨테이너가 중앙에 오도록 다시 설정 */
.notice-list-container {
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 50px 0; /* 상하 여백 추가 */
    border-top: 2px solid #1a1a1a;
}

/* 개별 리스트 아이템 내부 정렬 */
.notice-item a {
    display: block;
    padding: 30px 20px;
    text-decoration: none;
    border-bottom: 1px solid #eee;
}

.notice-info {
    display: flex;
    align-items: center;
    width: 100%; /* 너비 100% 확보 */
}

/* 제목이 가로 공간을 다 차지하도록 설정 */
.notice-title {
    flex: 1; /* 나머지 공간을 모두 차지 */
    font-size: 1.25rem;
    font-weight: 600;
    padding: 0 40px; /* 카테고리와 날짜 사이 간격 */
    color: #1a1a1a;
    text-align: left;
}

.notice-cat {
    min-width: 100px;
    font-weight: 700;
    color: #bfa480;
}

.notice-date {
    min-width: 120px;
    text-align: right;
    color: #999;
}



/* ========================================================
   Kboard Dedicated Template - 독립 스타일
======================================================== */

.kb_hero_list {
    width: 100%;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    position: relative;
    transition: all 0.4s ease;
}

/* 1. 리스트 뷰 높이 (기존 82vh) */
.kb_hero_list.is_list_mode {
    height: 82vh;
    min-height: 800px;
}

/* 2. 상세페이지 및 글쓰기 뷰 높이 (낮은 헤더) */
.kb_hero_list.is_low_mode {
    height: 35vh; /* 40vh보다 조금 더 낮춘 35vh */
    min-height: 300px;
}

/* 낮은 헤더일 때 폰트 크기 조정 */
.is_low_mode .blog_main_title { font-size: 45px; }
.is_low_mode .blog_sub_title { font-size: 18px; }

/* --- 게시판 영역 여백 --- */
.kb_content_body.list_mode { padding: 80px 0; }
.kb_content_body.view_mode { padding: 40px 0; }

.n_inner_1800 { max-width: 1800px; margin: 0 auto; padding: 0 40px; }
.n_inner_1400 { max-width: 1400px; margin: 0 auto; padding: 0 20px; }

/* 애니메이션 키프레임 (기존 동일) */
@keyframes blogSlideUp { 100% { opacity: 1; transform: translateY(0); } }
@keyframes blogSlideDownMove { 100% { opacity: 1; transform: translateY(0); } }
@keyframes blogSlideDownColor { 100% { color: #fdd000; } }
@keyframes subSlideUp { 100% { opacity: 1; transform: translateY(0); } }