@charset "UTF-8";
/*****************************************************************

Copyright C 위브온 테마 All rights reserved.
weevon@naver.com & master@weevon.com
본 페이지는 유료콘텐츠 위브온 테마 CSS입니다. 불법복제시 법적인 제제를 받으실 수 있습니다.
라이센스를 삭제하지 마세요. 라이센스 삭제시 불법 사용으로 간주될 수 있습니다.

******************************************************************/

/* ==============================================
   ▼▼▼ 푸터 로고 크기 조절 변수 ▼▼▼
   아래 --footer-logo-max-width의 200px 값을
   원하시는 크기로 변경하시면 됩니다. (예: 250px)
============================================== */
:root {
    --footer-logo-max-width: 150px;
}
/* ==============================================
   ▲▲▲ 푸터 로고 크기 조절 변수 ▲▲▲
============================================== */


#ft {width:100vw;position:relative;background: var(--main-color);}
#ft_wr {margin:0 auto;padding: 40px 10px 60px;position:relative;width:1500px;}

/* [수정] 푸터 로고 스타일을 변수를 사용하도록 변경 */
#ft #ft-logo {
    width: 100%;
    max-width: var(--footer-logo-max-width); /* 변수를 사용하여 최대 너비 지정 */
}
#ft #ft-logo img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* 수정됨: SNS 아이콘이 새 레이아웃에서도 보이도록 .ft-top 클래스 선택자를 삭제했습니다. */
#ft .wv-sns-container > li > a{display:block;width: 45px;height: 45px;border-radius: 100%;background: #33353C;color:rgba(255,255,255,1);transition: all .3s;}
#ft .kakao{width: 27px;height: 26px;opacity: 0.5;transition: all .3s;}
#ft .wv-sns-container > li > a:hover{background: #fff;color:#33353C;}
#ft .wv-sns-container > li > a:hover .kakao {mix-blend-mode: difference;}

/* 참고: 아래는 원본 스타일이며, 대부분 새로운 3단 레이아웃 스타일로 대체되었습니다. */
#ft .ft-bottom {border-top:1px solid rgba(255,255,255, 0.5);color:rgba(255, 255, 255, 1);font-size: 14px;}
#ft_company h2 {margin-bottom: 12px;color: #fff;font-size: 16px;}
#ft .wv-btn03 {padding: 6px 9px;display: inline-block;border-radius:5px;color: var(--main-color);font-size: 12px;background: #fff;border: none;margin-bottom: 5px;margin-left: 5px;}
#ft_link a:hover{color: #fff;}

/* family site */
#ft .family-site-container{position:relative; width:210px; text-align:left;}
#ft .family-site-container > button{padding:10px;color:#fff;border-bottom:3px solid #fff;width:100%;text-align:left;}
#ft .family-site-list{position:absolute; bottom:100%; left:0px; width:100%;  padding:10px 0;  z-index:11;background: #fff; display:none;}
#ft .family-site-list > li > a{display:block; padding:10px; color:#333; font-size:12px;font-family: 'NanumSquareNeoBold', sans-serif;}
#ft .family-site-list > li > a:hover{color:#000;}
#ft .wv-arrow{transition:all 0.3s;}
#ft .wv-arrow.on{transform: rotate(180deg);}

/* 퀵버튼 */
.ft-quick-container{position:fixed;bottom:15px;right:40px;z-index: 100;}
.ft-quick-container > li {margin-bottom: 10px;display:flex;align-items:center;place-content:center;width: calc((100vw - (100vw - 143px)) / 2);height: calc((100vw - (100vw - 143px)) / 2);box-shadow: 0px 4px 10px rgba(0,0,0,.15);border-radius: 100%;border:none;background:#fff;font-size: 14px;transition: all .3s;}
.ft-quick-container > li:last-child{margin-bottom:0;background: #333;border-left: none;}
.ft-quick-container .tnb_darkmode {flex-direction: column;gap: 5px;color: #666;cursor: pointer;transition: all .3s;}
.ft-quick-container .tnb_darkmode:hover{color: var(--main-color);}
.ft-quick-container .tnb_admin > a {display: flex;flex-direction: column;align-items: center;gap: 5px;color: #666;transition: all .3s;}
.ft-quick-container .tnb_admin > a:hover{color: var(--main-color);}
#wv-top_btn {display: flex;flex-direction: column;gap: 5px;align-items: center;place-content:center;width:100%;height:100%;border-radius:100%;color: #fff;font-family: "Play", sans-serif;font-weight: 700;text-transform: uppercase;z-index:90;transition: all .3s;}
#wv-top_btn > i{color: #fff;}
.ft-quick-container > li:last-child:hover {background: var(--main-color);}

/* --- 추가된 퀵메뉴 버튼 스타일 --- */
.ft-quick-container .quick-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #333;
    font-family: "Noto Sans KR", sans-serif;
    font-weight: 500;
    gap: 0; /* [수정] 아이콘과 텍스트 간격을 0으로 줄여 더 밀착시킴 */
    transition: all 0.2s;
}
.ft-quick-container .quick-link:hover {
    color: var(--main-color);
}

.ft-quick-container .quick-link img {
    width: 28px;
    height: auto;
    margin-bottom: 3px;
}

/* [수정] 두 줄 텍스트를 위한 줄 간격(line-height) 추가 */
.ft-quick-container .quick-link span {
    font-size: clamp(11px, 2.8vw, 14px);
    line-height: 1.25; /* 줄 간격을 좁게 설정 */
    text-align: center; /* 텍스트 중앙 정렬 */
}


/* 다크모드 */
body.dark-mode #ft{background: #111;}
body.dark-mode #ft_wr{background: #111;color: #fff;}
body.dark-mode #ft_link a{color: #fff;}
body.dark-mode #ft .wv-btn03{background: #333;color: #fff;}


/* -------------------- 푸터 3단 레이아웃 (최종 수정본) -------------------- */
#ft_wr {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
}

/* 모든 컬럼의 공통 속성 */
.ft_column {
    color: #fff;
    padding: 10px 0;
}

/* 왼쪽 컬럼 */
.ft_left {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-right: 40px; /* 넓게 설정했던 값을 40px 정도로 다시 줄입니다. */
}
.ft_left .ft_info {
    margin: 30px 0;
}
.ft_left .ft_info > p > span {
    display: block; /* span을 블록 요소로 변경하여 줄바꿈 효과 */
    padding-bottom: 10px; /* 각 항목 사이의 세로 간격을 조절합니다. */
}
.ft_left .ft_info > p > span:last-child {
    padding-bottom: 0; /* 마지막 항목에는 아래쪽 간격을 주지 않습니다. */
}
.ft_left #ft_copy {
    margin-top: auto; /* 저작권 문구를 하단으로 밀착 */
}

/* 중앙 컬럼 (대표전화, 진료시간) */
.ft_center {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    padding-left: 30px;  /* 넓게 설정했던 값을 40px 정도로 다시 줄입니다. */
    padding-right: 30px; /* 넓게 설정했던 값을 40px 정도로 다시 줄입니다. */
    flex-shrink: 0; 
    width: 320px;
}
.ft_center .title {
    font-size: 16px;
    font-weight: 600;
}
.ft_center .title i {
    font-size: 1.2em;
    vertical-align: middle;
    margin-right: 8px;
}
.ft_center .phone-number {
    font-size: 2.2em;
    font-weight: 700;
    margin: 10px 0 0 0;
}
.ft_center .ft-contact-info {
    margin-bottom: 30px;
}
.ft_center .hours-list {
    list-style: none;
    padding: 0;
    margin: 15px 0 0 0;
    font-size: 14px;
    line-height: 1.8;
}

/* 오른쪽 컬럼 */
.ft_right {
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* 컨텐츠를 오른쪽으로 정렬 */
    text-align: right;
}
.ft_right .family-site-container {
    margin: 25px 0;
}
.ft_right #ft_link {
    margin-top: auto; /* 하단 링크들을 아래로 밀착 */
    display: flex;
}

/* 하단 링크 스타일 */
#ft_link a {
    padding: 0 14px; /* 각 링크의 좌우에 일정한 여백을 줍니다. */
    position: relative; /* :before 유사요소의 위치 기준점이 됩니다. */
    color: #fff;
    font-family:"NotoKr_M", sans-serif;
}
/* 첫 번째 링크를 제외한 나머지 링크의 앞에만 구분선을 추가합니다. */
#ft_link a:not(:first-child):before {
    content: '|';
    position: absolute;
    left: 0;
    top: 52%; /* 글자와 수직 중앙을 맞추기 위해 미세 조정 */
    transform: translateY(-50%);
    color: rgba(255,255,255,0.5); /* 구분선 색상 */
}


/* -------------------- 반응형: 모바일 (768px 이하) -------------------- */
@media (max-width: 768px) {

    /* 푸터 컨테이너를 세로 정렬로 변경 */
    #ft_wr {
        flex-direction: column;
        align-items: flex-start; /* 모든 내용을 왼쪽으로 정렬 */
        padding: 40px 20px; /* 모바일용 상하좌우 여백 조정 */
    }

    /* 모든 컬럼(섹션)의 스타일을 모바일에 맞게 조정 */
    .ft_column {
        width: 100%;
        border-right: none !important; /* 데스크탑에서 적용된 세로 구분선 제거 */
        padding: 0 !important; /* 데스크탑에서 적용된 좌우 패딩 모두 제거 */
        margin-bottom: 40px; /* 각 섹션 사이의 수직 간격 추가 */
    }

    /* 마지막 섹션에는 하단 마진을 주지 않아 깔끔하게 처리 */
    .ft_column:last-child {
        margin-bottom: 0;
    }

    /* 중앙 컬럼의 고정 너비를 해제하여 전체 너비를 사용하도록 함 */
    .ft_center {
        width: auto;
    }

    /* 오른쪽 컬럼의 내용들을 왼쪽으로 정렬 */
    .ft_right {
        align-items: flex-start;
        text-align: left;
    }

    /* 하단 링크의 패딩을 모바일에 맞게 재조정 */
    #ft_link a {
        padding: 0 12px 0 0; /* 오른쪽 여백만 주어 간격 설정 */
    }

    /* 구분선 위치를 링크 앞쪽으로 재조정 */
    #ft_link a:not(:first-child):before {
        content: '|';
        position: relative; /* absolute 해제 */
        top: 0;
        transform: none; /* transform 해제 */
        margin-right: 12px; /* 링크 텍스트와의 간격 */
    }
}


/* --- 하단 고정 상담 레이어 스타일 --- */
#fixed-counsel-layer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}

/* 내부 콘텐츠 영역 스타일 변경 */
#fixed-counsel-layer .counsel-content {
    background-color: #003777;
    backdrop-filter: blur(5px);
    padding: 15px 20px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);
    border-top: 1px solid #08517c;
    font-family: Pretendard, sans-serif;
    max-height: 500px;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, padding 0.4s ease-in-out, opacity 0.3s ease-in-out;
}

/* 컨테이너 레이아웃 변경 (타이틀 추가로 인한 flex 적용) */
#fixed-counsel-layer .container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: flex-start; /* 상단 기준으로 정렬 */
    gap: 30px; /* 타이틀과 폼 사이 간격 */
}

/* 간편상담신청 타이틀 스타일 */
.counsel-layer-title {
    flex-shrink: 0;
    background-color: #fff; /* 흰색 배경 */
    color: #003777; /* 레이어 배경색과 동일한 남색 글씨 */
    padding: 10px 25px;
    border-radius: 30px; /* 둥근 사각형 모양 */
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    margin-top: 4px; /* 입력창과 세로 중앙을 맞추기 위한 미세 조정 */
}

#fixed-counsel-layer form {
    width: 100%;
    max-width: 800px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#fixed-counsel-layer .form-row-1 {
    display: flex;
    gap: 10px;
    width: 100%;
}

/* 입력창 스타일 변경 */
#fixed-counsel-layer .counsel-input {
    flex: 1;
    padding: 12px;
    border: 1px solid #3a4d70; /* [색상변경] */
    background-color: #111d35; /* [색상변경] */
    color: #fff;
    border-radius: 4px;
    font-size: 15px;
}
#fixed-counsel-layer .counsel-input::placeholder {
    color: #a0a8b8;
}

/* 상담신청 버튼 스타일 변경 */
#fixed-counsel-layer .submit-btn {
    flex-shrink: 0;
    width: 120px;
    background-color: #f38814;
    color: #fff; 
    border: 0;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s;
}

#fixed-counsel-layer .submit-btn:hover {
    background-color: #eef2f9;
}

#fixed-counsel-layer .form-row-2 {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

#fixed-counsel-layer .privacy-open {
    background: none;
    border: none;
    color: #a0a8b8;
    text-decoration: underline;
    cursor: pointer;
    font-size: 12px;
    padding: 0;
}

/* 커스텀 체크박스 스타일 */
#fixed-counsel-layer .css-checkbox { display: none; }
#fixed-counsel-layer .css-label {
    position: relative;
    padding-left: 22px;
    font-size: 13px;
    color: #fff;
    cursor: pointer;
}
#fixed-counsel-layer .css-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    background-color: #003777;
    border: 1px solid #fff;
    border-radius: 2px;
}
/* 체크박스 체크 표시 색상 변경 */
#fixed-counsel-layer .css-checkbox:checked + .css-label::after {
    content: '✔';
    position: absolute;
    left: 3px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #ffffff; /* [색상변경] */
}


/* --- 닫기/열기 토글 버튼 --- */
/* 토글 버튼 배경색 변경 */
#counsel-toggle-btn {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -100%);
    width: 100px;
    height: 30px;
    background-color: #003777;
    border: 1px solid #08517c;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
}
/* 토글 버튼 화살표 색상 변경 */
#counsel-toggle-btn .arrow {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #ffffff; /* [색상변경] */
    transition: transform 0.3s;
}

/* --- 레이어 닫힘 상태 스타일 --- */
#fixed-counsel-layer.closed .counsel-content {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-top-color: transparent;
    opacity: 0;
}
#fixed-counsel-layer.closed #counsel-toggle-btn .arrow {
    transform: rotate(180deg);
}
.tail_open_modal {color:#fff}
/* --- 반응형 스타일 (모바일) --- */
@media (max-width: 991px) { /* 반응형 범위 조정 */
    #fixed-counsel-layer .container {
        flex-direction: column; /* 세로로 쌓기 */
        gap: 15px;
        align-items: center;
    }
    .counsel-layer-title {
        font-size: 16px;
        margin-bottom: 0;
    }
    #fixed-counsel-layer form {
        gap: 12px;
    }
    #fixed-counsel-layer .form-row-1 {
        flex-direction: column;
    }
    #fixed-counsel-layer .submit-btn {
        width: 100%;
        padding: 12px 0;
    }
    #fixed-counsel-layer .css-label {
        font-size: 12px;
    }
}
/* --- 퀵메뉴 토글 기능 스타일 (수정됨) --- */

/* 토글 버튼 자체의 스타일 */
#quick-menu-toggle-btn {
    width: 100%;
    height: 100%;
    background: transparent; /* 버튼 배경은 투명하게 */
    border: none; /* 버튼 테두리 제거 */
    color: #333;
    font-size: 22px; /* 화살표 아이콘 크기 */
    cursor: pointer;
    transition: transform 0.3s ease-in-out, color 0.2s;

    /* 화살표를 버튼 중앙에 위치시키기 위한 코드 */
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0;
}

/* 토글 버튼이 있는 li에 마우스 오버 시 스타일 */
.ft-quick-container > li:first-child:hover {
    background: var(--main-color);
}
.ft-quick-container > li:first-child:hover #quick-menu-toggle-btn {
    color: #fff;
}

/* 퀵메뉴가 숨겨진 상태일 때의 스타일 */
.ft-quick-container.quick-menu-hidden li:not(:first-child) {
    opacity: 0;
    visibility: hidden;
    transform: translateX(20px);
    height: 0;
    margin-bottom: 0;
}

/* 퀵메뉴 아이템에 transition 효과 추가 */
.ft-quick-container > li:not(:first-child) {
    transition: all 0.3s ease-in-out;
}

/* 1. 모바일에서 푸터 중앙 컬럼의 세로 구분선 숨기기 */
@media (max-width: 768px) {
    .ft_center {
        border-left: none;
        border-right: none;
    }
}

/* 2. 사이트맵 링크 하단 SNS 아이콘과의 간격 추가 */
.ft_right .wv-sns-container {
    margin-top: 25px;
}