@charset "utf-8";

/* @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&display=block'); */
/* @import url('https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700;800&display=block'); */
/* @import url('https://fonts.googleapis.com/css2?family=Mona+Sans:wght@400;500;600;700&display=swap'); */

.page_wrap { display: flex; flex-direction: column; min-height: 100vh;}
.page_wrap .container { flex: 1;}


:root {
	--hdH: 10rem; 
    --hdIn: 5rem;
 
    --subVisPd: 12rem;
    --subPd: 20rem;

    --inPd: 20px;
    --inpH: max(6rem, 50px);

    --inM: max(184rem, 1640px);
    --in:  max(164rem, 1440px);
    --in2: max(144rem, 1240px);
    --in3: max(124rem, 1040px);
    --in4: max(104rem, 940px);
    --in5: max(94rem, 840px);

    --point01: #FF5E10;
    --point02 : #32549D;
    --pointBg:#F3F6FF; /* 포인트계열 BG */

    /* Gray */
    /* --gray5: #F5F7FA;
    --gray10: #E8E8E8;
    --gray20: #CFCFCF;
    --gray30: #B5B5B5;
    --gray40: #9C9C9C;
    --gray50: #828282;
    --gray60: #696969;
    --gray70: #4F4F4F;
    --gray80: #363636;
    --gray90: #1C1C1C;
     */

    /* Cool Gray */
    --gray5: #F5F7FA;
    --gray10: #E4E7EB;
    --gray20: #CBD2D9;
    --gray30: #9AA5B1;
    --gray40: #7B8794;
    --gray50: #616E7C;
    --gray60: #52606D;
    --gray70: #3E4C59;
    --gray80: #323F4B;
    --gray90: #1F2933;

    --black:var(--gray90);
    --ivory:#F8F5F1;
    --yellow:#FDFF80;   /* 서브 공용 강조(오렌지 배경 위 제목·인용) */

    --grayBg1:#F8F8F8;
    --grayBg2:#F5F7FA;
    --grayBg3:#EFF4FE;
    --line:var(--gray20);

    --en: 'Marcellus', serif;
    --serif: "Noto Serif KR", serif;
	
    --d1:10rem; 
    --h1:6rem; 
    --h2:5.4rem; 
    --h3:4.5rem; 
    --h4:4rem; 
    --h5:3.5rem; 
    --h6:max(3rem,26px);; 
    --h7:max(2.8rem,24px); 
    --h8:max(2.5rem,22px); 

    --p1:max(2.2rem,20px); 
    --p2:max(2rem,18px);
    --p3:max(1.8rem,16px);  /* 본문 */
    --p4:max(1.6rem,14px);
    --p5:max(1.5rem,13px);
    --p6:max(1.4rem,12px);
    --p7:max(1.3rem,11px);
    --p8:max(1.2rem,11px);

    --pd:30rem;
    --pd1:25rem;
    --pd2:20rem;
    --pd3:15rem;
    --pd4:10rem;

    --contMt1: 10rem;
    --contMt2: 8rem;
    --contMt3: 6rem;
    --contMt4: 4rem;

}


/* Grid */
.in_f { position:relative; width: 100%; max-width:100%; margin:0 auto; }
.in_w { position:relative; width: 256rem; max-width:100%; padding:0 10rem; margin:0 auto; }
.in_m { position:relative; width:var(--inM); max-width:100%; padding:0 var(--inPd); margin:0 auto;}
.in   { position:relative; width:var(--in); max-width:100%; padding:0 var(--inPd); margin:0 auto; }
.in2  { position:relative; width:var(--in2); max-width:100%; padding:0 var(--inPd); margin:0 auto; }
.in3  { position:relative; width:var(--in3); max-width:100%; padding:0 var(--inPd); margin:0 auto; }
.in4  { position:relative; width:var(--in4); max-width:100%; padding:0 var(--inPd); margin:0 auto; }
.in5  { position:relative; width:var(--in5); max-width:100%; padding:0 var(--inPd); margin:0 auto; }

html.scroll_none,
body.scroll_none { overflow: hidden; }

/* body::-webkit-scrollbar { width: 5px; height: 5px; }
body::-webkit-scrollbar-thumb { height: 5px; background: #A9A9A9; border-radius: 5px; }
body::-webkit-scrollbar-track { background-color: #fff; } */

.hidden,
.sr_only { position: absolute; width: 1px;height: 1px; padding: 0; margin: -1px;overflow: hidden;  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}
.clearfix::after{content: ''; display: block; clear: both;}

.pc_only { display:block;}
.mo_only { display:none !important }
.mini_only {display: none !important;}
.phone_only { display:none !important;}
.phone_over { display:block; }
.phone_over.inline { display:inline; }
.header .hd_mo { display: none; }
.header .hd_pc { display: block; }



.page_wrap .nice-select {font-size: var(--p3); border-radius: 5px; background: var(--grayBg1); border: none; text-align: start !important;} /* 라이브러리 text-align:left !important → RTL 에서 오른쪽 정렬 */
.page_wrap .nice-select:active,
.page_wrap .nice-select.open,
.page_wrap .nice-select:focus{border: none;}
.page_wrap .nice-select:after { inset-inline: auto 2.3rem; width: 0.8em; height: 0.5em; font-size: 1em; border: 0; transform: rotate(0deg); transform-origin: center; 
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="9" viewBox="0 0 16 9" fill="none"><path d="M14.4141 1.41309L7.91406 7.41309L1.41406 1.41309" stroke="%231F2933" stroke-width="2" stroke-linecap="square"/></svg>') no-repeat center / contain; transition: transform 0.3s; border: none;}
.page_wrap .nice-select.open:after { transform: rotate(180deg); }
.page_wrap .nice-select .list {min-width: 100%; box-shadow: 0 0 0 1px var(--gray20); top: calc(100% + 2px); background-color: #fff; border-radius: 1rem; max-height: 400px; overflow-y: auto;} 
.page_wrap .nice-select .list .option {text-align: start; height: 3em; line-height: 3em; min-height: 0; padding: 0 10px; position: relative;}
.page_wrap .nice-select .list::-webkit-scrollbar{display: inherit; width: 10px;}
.page_wrap .nice-select .list::-webkit-scrollbar-thumb{background: #BFBFBF; border-right: 5px solid #fff; border-radius: 3px; border-top-right-radius: 8px 3px; border-bottom-right-radius: 8px 3px;}
.page_wrap .nice-select .list::-webkit-scrollbar-track{background: #fff;}
.page_wrap .nice-select .list::-webkit-scrollbar-button:vertical:decrement{height: 5px;}
.page_wrap .nice-select .list::-webkit-scrollbar-button:vertical:increment{height: 5px;}



/* ===== 퀵메뉴 ===== */
.quick_bar { position: fixed; inset-inline-end: calc(var(--hdIn) * 1.5); bottom: var(--hdIn);  display: flex; flex-direction: column; align-items: center; gap: 1rem; z-index: 300;}
/* ≤1640 푸터 도킹(basic.js ScrollTrigger: footer top ↔ viewport bottom): fixed 를 풀고 .footer(position:relative) 기준 absolute 로 푸터 위에 얹는다.
   bottom 은 fixed 의 bottom 값을 100% 에 그대로 더한 것 — 전환 시점(푸터 상단 = 뷰포트 하단)에 위치가 동일해 틀어지지 않는다. */
.quick_bar.is-docked { position: absolute; bottom: calc(100% + 5rem); }

.quick_bar .q_now { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 10rem; height: 10rem; border-radius: 50%; 
    border: 0; background: linear-gradient(180deg, #FF9968 0%, #FF5E10 62.98%); backdrop-filter: blur(25px); color: #fff; cursor: pointer; transition: 0.3s ease; }
.quick_bar .q_now svg { width: 2.5rem; height: 2.5rem; }
.quick_bar .q_now span { margin-top: 0.4rem; font-size: var(--p5); font-weight: 500; }

.quick_bar .q_tip { position: absolute; bottom: calc(100% + 1.3rem); inset-inline-end: 0; padding: 0.5em 1em; border-radius: 0.5rem; background-color: #666A6E; font-size: var(--p6); font-weight: 600; color: #fff; white-space: nowrap; opacity: 0; transform:translateY(1rem); transition: 0.3s ease; }
.quick_bar .q_tip:before { content:''; position: absolute; bottom: -0.8rem; inset-inline-start: 73%; width: 1rem; height: 0.8rem; background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8" fill="none"><path d="M5 8L0 0L10 0L5 8Z" fill="%23666A6E"/></svg>') no-repeat center;}

.quick_bar .q_whatsapp { display: flex; align-items: center; justify-content: center; width: 10rem; height: 10rem; border-radius: 50%; background-color: #fff;
     box-shadow: 0 0.6rem 2rem rgba(31,41,51,0.15); transition: 0.3s ease; }
.quick_bar .q_whatsapp img { width: 5.5rem; height: 5.5rem; }

.quick_bar .q_now:hover,
.quick_bar .q_whatsapp:hover{background: var(--black);}
.quick_bar .q_now:hover .q_tip{opacity: 1; transform: unset}

.quick_bar .q_top { display: flex; align-items: center; justify-content: center; width: 10rem; height: 10rem; border-radius: 50%; background-color: #fff; color: var(--black); box-shadow: 0 0.6rem 2rem rgba(31,41,51,0.15); transition: transform 0.3s ease; } /* 다른 퀵 버튼(q_now·q_whatsapp)과 같은 8rem 흰 원, 화살표는 currentColor */
.quick_bar .q_top svg { width: 4.6rem; height: 4.6rem; }
/* ≤768 하단 바 전용(inc/quick-bar.php) — 전화·YouTube 칸, CONSULT 클립보드 아이콘, TOP 글자. 그 위 폭에선 숨김 */
.quick_bar .q_mo, .quick_bar .q_now .ico_mo, .quick_bar .q_top .q_label { display: none; }
.quick_bar .q_top:hover{transform: translateY(-0.5rem);}


/* ===== 쿠키 동의 (inc/cookie-consent.php · inc/js/common.js cmsConsent · docs/conventions/cookie-consent.md) =====
   시안 안내 2974:4249(2026-10-08 문구 변경 — 카드 554, 버튼 180 고정) / 선택 허용 2992:4482 (2560 기준 px ÷ 10 = rem). 시안의 화면 딤은 쓰지 않는다(2026-10-07 결정) — 왼쪽 아래(RTL 은 오른쪽) 고정,
   선택 전까지 모든 페이지에서 따라다니고 뒤 화면은 그대로 쓸 수 있다. 흰 화면 위에서도 카드 경계가 보이도록 그림자에 얇은 테두리를 더했다.
   z-index 900 = 퀵바(300) 위, 헤더(1000)·메인 팝업·모달(9999) 아래. */
.cookie_consent { position: fixed; inset-inline-start: 10rem; bottom: 10rem; z-index: 900; max-width: calc(100vw - 4rem); }
.cookie_consent[hidden], .cookie_consent .cc_card { display: none; }
.cookie_consent[data-view="banner"] .cc_banner,
.cookie_consent[data-view="prefs"] .cc_prefs { display: flex; animation: ccCardIn 0.35s ease-out both; }
@keyframes ccCardIn { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cookie_consent .cc_card { animation: none !important; } }
@media print { .cookie_consent { display: none !important; } }
.cookie_consent .cc_card { flex-direction: column; align-items: flex-start; border-radius: 2rem; background-color: #fff; color: var(--black); }
.cookie_consent .cc_banner { width: 55.4rem; padding: 2.5rem 3.5rem 3.5rem; box-shadow: 0 0 5rem rgba(0,0,0,0.1), 0 0 0 1px rgba(31,41,51,0.06); }
.cookie_consent .cc_prefs { width: 50rem; max-height: calc(100vh - 14rem); max-height: calc(100dvh - 14rem); padding: 2.5rem 2.5rem 3.5rem; overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 0 10rem rgba(0,0,0,0.1), 0 0 0 1px rgba(31,41,51,0.06); }
.cookie_consent .cc_close { display: flex; flex-shrink: 0; align-items: center; justify-content: center; align-self: flex-end; width: 4rem; height: 4rem; margin-block: -0.8rem; margin-inline-end: -0.8rem; padding: 0; border: 0; background: none; color: var(--gray30); cursor: pointer; transition: color 0.2s; }
.cookie_consent .cc_close svg { width: max(2.4rem, 18px); height: max(2.4rem, 18px); }
.cookie_consent .cc_head { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.cookie_consent .cc_tit { font-family: var(--en); font-size: var(--h8); font-weight: 400; line-height: 1.5; color: var(--black); outline: none; }
.cookie_consent .cc_txt { font-size: var(--p4); line-height: 1.7; letter-spacing: -0.02em; color: var(--black); }
.cookie_consent .cc_txt_sub { color: var(--gray50); }
.cookie_consent .cc_link { padding: 0 0 0.4rem; border: 0; border-bottom: 1px solid var(--gray30); background: none; font-family: inherit; font-size: var(--p6); font-weight: 500; line-height: 1; color: var(--gray40); cursor: pointer; transition: color 0.2s, border-color 0.2s; }
.cookie_consent .cc_btns { display: flex; gap: 1rem; width: 100%; margin-top: 4rem; }
.cookie_consent .cc_btn { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: center; min-height: 5rem; padding: 1rem 2rem; border: 1px solid var(--black); border-radius: 999px; background-color: #fff; font-family: inherit; font-size: var(--p4); font-weight: 600; line-height: 1.2; color: var(--black); text-align: center; cursor: pointer; transition: background-color 0.2s, border-color 0.2s, color 0.2s; }
.cookie_consent .cc_btn.is-primary { border-color: var(--point01); background-color: var(--point01); color: #fff; }
.cookie_consent .cc_settings { display: flex; flex-direction: column; gap: 2rem; width: 100%; margin-top: 4rem; }
.cookie_consent .cc_sub { font-size: var(--p3); font-weight: 600; line-height: 1; letter-spacing: -0.02em; color: var(--black); }
.cookie_consent .cc_list { display: flex; flex-direction: column; gap: 2.5rem; width: 100%; margin: 0; padding: 0; list-style: none; }
.cookie_consent .cc_item { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 2rem; border-bottom: 1px solid var(--gray20); }
.cookie_consent .cc_item:first-child { padding-top: 2rem; border-top: 1px solid var(--gray20); }
.cookie_consent .cc_item_head { display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; }
.cookie_consent .cc_name { font-size: var(--p4); font-weight: 500; line-height: 1.3; letter-spacing: -0.02em; color: var(--black); }
.cookie_consent .cc_always { flex-shrink: 0; font-size: var(--p6); line-height: 1.3; letter-spacing: -0.02em; color: var(--point01); }
.cookie_consent .cc_desc { max-width: 33rem; font-size: var(--p6); line-height: 1.5; letter-spacing: -0.02em; color: var(--gray30); }
.cookie_consent .cc_switch { position: relative; flex-shrink: 0; width: 4rem; height: 2.2rem; cursor: pointer; }   /* label — 안의 체크박스는 reset.css 가 숨긴다 */
.cookie_consent .cc_track { position: absolute; inset: 0; border-radius: 999px; background-color: var(--gray20); transition: background-color 0.2s; }
.cookie_consent .cc_track::after { content: ''; position: absolute; top: 50%; inset-inline-start: 0.3rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background-color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.15); transform: translateY(-50%); transition: inset-inline-start 0.2s; }
.cookie_consent .cc_switch input:checked + .cc_track { background-color: var(--point01); }
.cookie_consent .cc_switch input:checked + .cc_track::after { inset-inline-start: calc(100% - 1.9rem); }
.cookie_consent .cc_save { display: flex; justify-content: center; width: 100%; margin-top: 4rem; }
.cookie_consent .cc_banner .cc_btn, .cookie_consent .cc_save .cc_btn { flex: 0 0 auto; min-width: 18rem; }   /* 시안 버튼 180 고정(글자가 길면 늘어남) — 안내는 시작 쪽 정렬 */
.cookie_consent .cc_btn:focus-visible, .cookie_consent .cc_link:focus-visible, .cookie_consent .cc_close:focus-visible, .cookie_consent .cc_switch input:focus-visible + .cc_track { outline: 2px solid var(--point01); outline-offset: 2px; }
@media (hover: hover) {
    .cookie_consent .cc_close:hover { color: var(--black); }
    .cookie_consent .cc_link:hover { border-color: var(--black); color: var(--black); }
    .cookie_consent .cc_btn.is-primary:hover { border-color: #E5520C; background-color: #E5520C; }
    .cookie_consent .cc_btn:not(.is-primary):hover { background-color: var(--black); color: #fff; }
}

/* ===== 외부 콘텐츠 가림 화면 (.cc_gate — 쿠키 '외부 콘텐츠' 미허용 시 관리자 데이터 영상·에디터 iframe 자리, 시안 2992:7847 의 2992:7832) =====
   마크업 _Ext/lib-consent.php cmsConsentGateMarkup() · 스크립트 복제 inc/js/common.js cmsConsent.gate(). 흐린 배경 이미지 + 검정 35% + 가운데 제목·안내·Allow & Play.
   기본은 폭 100% 16:9 블록(에디터 iframe 은 width/height 비율을 인라인으로), .is-fill 은 16:9 상자(.iframe·.video·.prd_ytb — position:relative)를 꽉 채운다.
   시안의 흐림(backdrop blur 32.5px)은 배경 이미지 자체에 blur 를 걸어 같은 효과를 낸다 — 가장자리가 비치지 않게 이미지를 흐림 반경만큼 키운다. */
.cc_gate { position: relative; z-index: 0; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background-color: var(--gray80); color: #fff; text-align: center; }
.cc_gate.is-fill { position: absolute; inset: 0; width: auto; aspect-ratio: auto; }
.cc_gate::before { content: ''; position: absolute; inset: 0; z-index: -1; background-color: rgba(0,0,0,0.35); }
.cc_gate .cc_gate_bg { position: absolute; inset-block-start: -3.25rem; inset-inline-start: -3.25rem; z-index: -2; width: calc(100% + 6.5rem); max-width: none; height: calc(100% + 6.5rem); object-fit: cover; filter: blur(3.25rem); }
.cc_gate .cc_gate_in { display: flex; flex-direction: column; align-items: center; max-width: 100%; padding: 2rem; }
.cc_gate .cc_gate_tit { font-family: var(--en); font-size: var(--h3); font-weight: 400; line-height: 1.4; letter-spacing: -0.02em; color: #fff; }
.cc_gate .cc_gate_txt { margin-top: 1rem; font-size: var(--p4); line-height: 1.7; letter-spacing: -0.02em; color: #fff; }
.cc_gate .cc_gate_btn { display: inline-flex; align-items: center; justify-content: center; min-width: 18rem; min-height: 5rem; margin-top: 4rem; padding: 1rem 3rem; border: 0; border-radius: 999px; background-color: var(--point01); font-family: inherit; font-size: var(--p4); font-weight: 600; line-height: 1.2; color: #fff; cursor: pointer; transition: background-color 0.2s; }
.cc_gate .cc_gate_btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (hover: hover) { .cc_gate .cc_gate_btn:hover { background-color: #E5520C; } }



/* ===== 모달 베이스 (신형 표면 — 헤더 변형들의 .modal/#modalView, .over_modal/#modalOverView) ===== */
.modal, .over_modal { display: block; overflow: auto; position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 9999; opacity: 0; width: 100%; height: 100%; padding: 5rem 0 8rem; background: rgba(0,0,0,0.5); pointer-events: none; transition: 0.2s ease-in-out; }
.modal.open, .over_modal.open { opacity: 1; pointer-events: inherit; }
.modal .modal_wrap, .over_modal .modal_wrap { display: table; position: relative; width: 100%; height: 100%; padding: 0 2rem; margin: 0 auto; table-layout: fixed; vertical-align: middle; }
.modal .modal_wrap .scroll_box, .over_modal .modal_wrap .scroll_box { display: table-cell; vertical-align: middle; }

.modal_cont { position: relative; width: 80rem; max-width: 100%; padding: 4rem; margin: 0 auto; border-radius: 2rem; background-color: #fff; }
.modal_cont .modal_top { display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-radius: 2rem 2rem 0 0; padding: 2rem 3rem; background-color: var(--gray90); color: #fff; }
.modal_cont .modal_top .tit { font-size: var(--h8); font-weight: 600; }

.modal_cont .modal_close { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 0; background: none; color: #fff; cursor: pointer;
    /* background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none"><path d="M32.0091 7.99023L7.98828 32.0111" stroke="%23fff" stroke-width="2" stroke-linejoin="round"/><path d="M7.98828 7.99023L32.0091 32.0111" stroke="%23fff" stroke-width="2" stroke-linejoin="round"/></svg>') no-repeat center / contain; */
    background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30" fill="none"><path d="M16.6216 14.6206L28.9918 26.9909L26.8705 29.1122L14.5003 16.742L2.25087 28.9913L0.129548 26.87L12.3789 14.6206L0.000418338 2.24214L2.12174 0.120815L14.5003 12.4993L26.9996 -2.83764e-05L29.1209 2.12129L16.6216 14.6206Z" fill="white"/></svg>') no-repeat center / contain;}
.modal_cont .modal_close svg { width: 2.4rem; height: 2.4rem; }

.modal_cont:has(.modal_top){background-color: transparent;}
.modal_cont .modal_top + .cont{background:#fff; border-radius: 0 0 2rem 2rem;}
.modal_cont .cont { max-height: 65vh; padding: 3rem; overflow-y: auto; overscroll-behavior: contain; color: var(--gray70); }
.modal_cont.video_modal .cont {padding: 3rem 0 0;}
.modal_cont .cont::-webkit-scrollbar { width: 10px; }
.modal_cont .cont::-webkit-scrollbar-thumb { background: #d7d7d7; border-right: 5px solid #fff; border-radius: 3px; }
.modal_cont .cont::-webkit-scrollbar-track { background: #fff; margin-block: 15px; }


/* ===== 상담 폼 공용 (.c_form — 메인 consult_panel + 퀵메뉴 상담 모달, main.css 에서 이관) ===== */
.c_form .f_row,
.c_form .f_file,
.c_form .f_captcha { display: flex; gap: 2rem; }
.c_form .f_row + .f_row, 
.c_form .f_row + .f_full, 
.c_form .f_full + .f_row, 
.c_form .f_full + .f_full,
.c_form .f_captcha { margin-top: 1rem; }
.c_form .f_row > * { flex: 1; min-width: 0; }
/* 두 칸 줄(.f_row — 이름·국가 / 진료·희망일) — 2열 그리드: 간격(gap)을 뺀 나머지를 정확히 반씩(칸 안쪽 여백과 무관).
   예전 calc((100% - 1.4rem) / 2) 고정 폭은 실제 gap(기본 2rem·빠른상담 1rem·≤1040 10px)과 달라 줄이 끝 쪽(LTR 오른쪽·RTL 왼쪽)으로
   최대 5px 튀어나오거나(메인) 모자랐다(빠른상담). 진료 select 는 nice-select 로 바뀌어 숨겨지므로 칸으로 치지 않는다. ≤600 은 1열 */
.c_form .f_row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.c_form .f_row > input[type="text"],
.c_form .f_row > .nice-select { width: auto; min-width: 0; }

.c_form input[type="text"], 
.c_form select, 
.c_form textarea,
.c_form .nice-select,
.c_form .file_chip { width: 100%; height: 6rem; padding: 0 2rem; border: 1px solid transparent; border-radius: 1rem; background-color: #fff; font-size: var(--p3); }

.c_form input::placeholder,
.c_form textarea::placeholder,
.c_form .file_chip { color: var(--gray40); font-weight: 500; }
.c_form .nice-select .current { color: var(--gray90); font-weight: 500; }
.c_form .nice-select:has(.option.selected.disabled) .current { color: var(--gray40); }
.c_form input:focus,
.c_form textarea:focus { border-color: var(--point01); }
.c_form input:focus::placeholder,
.c_form textarea:focus::placeholder { color: var(--point01); }

.c_form .nice-select { float: none; line-height: 6rem; padding: 0; padding-inline: 2rem 5rem; }

.c_form .nice-select .current { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c_form .nice-select .list { width: 100%; margin-top: 0.6rem; border-radius: 1rem; z-index: 15; }
.c_form .nice-select .option { min-height: 5rem; padding: 0 2rem; font-size: var(--p4); line-height: 5rem; }

.c_form textarea { height: 13rem; padding: 1.8rem 2rem; line-height: 1.6; resize: none; }
.c_form textarea::-webkit-scrollbar { display: inherit; width: 7px; }
.c_form textarea::-webkit-scrollbar-thumb { background: #b8b8b8; border-right: 4px solid #fff; border-radius: 3px; border-top-right-radius: 10px 3px; border-bottom-right-radius: 10px 3px; }
.c_form textarea::-webkit-scrollbar-track { background: #fff; margin-block: 5px;}

.c_form .file_chip { flex: 1; display: flex; align-items: center; gap: 1rem; min-width: 0; }
.c_form .file_chip > svg { flex: 0 0 auto; width: 1.1em; height: 1.1em; }
.c_form .file_chip .name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c_form .file_chip .ext { flex: 0 0 auto; margin-left: -0.6rem; white-space: nowrap; } /* 긴 파일명은 "파일명….ext" 로 — 확장자는 항상 보임 */
.c_form .file_chip .del { display: none; flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border-radius: 50%; background-color: var(--gray10); color: var(--gray50); font-size: 0; }
.c_form .file_chip .del svg { width: 60%; height: 60%; margin: auto; }
.c_form .file_chip.has_file .del { display: flex; }
.c_form .upload_btn { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 18rem; height: 6rem; border-radius: 1rem; background-color: var(--gray50); font-size: var(--p4); font-weight: 600; color: #fff; cursor: pointer; transition: background-color 0.3s; }
.c_form .upload_btn:hover { background-color: var(--gray90); }

.c_form .f_agree { display: flex; align-items: flex-start; gap: 1rem; margin-top: 10px; font-size: var(--p6); color: #fff; }
.c_form .f_agree label { display: flex; align-items: flex-start; gap: 1rem; cursor: pointer; }
.c_form .f_agree .chk { display: flex; align-items: center; justify-content: center; width: 1.7em; height: 1.7em; border-radius: 50%; background-color: rgba(255,255,255,0.4); color: #fff; transition: background-color 0.3s; flex-shrink: 0;}
.c_form .f_agree .chk svg { width: 70%; height: 80%; transition: 0.3s;}
.c_form .f_agree input:checked + label .chk { background-color: #fff; }
.c_form .f_agree input:checked + label .chk svg {color: var(--point01);}
.c_form .f_agree .policy_btn { text-decoration: underline; text-underline-offset: 0.3rem; color: #fff; flex-shrink: 0;}

.c_form .f_captcha { align-items: center; }
.c_form .f_captcha .captcha_box { width: 18rem; flex: 0 0 auto; display: flex; align-items: center; gap: 1rem; height: 6rem; padding: 0 1.2rem; border-radius: 1rem; background-color: #fff; }
.c_form .f_captcha .captcha_img { display: block; height: 65%; border-radius: 0.6rem; mix-blend-mode: darken;}
.c_form .f_captcha .captcha_refresh { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: 50%; background-color: var(--gray10); color: var(--gray50); transition: background-color 0.3s, color 0.3s; margin-left: auto;}
.c_form .f_captcha .captcha_refresh:hover { background-color: var(--gray90); color: #fff; }
.c_form .f_captcha .captcha_refresh svg { width: 1.5rem; height: 1.5rem; }
.c_form .f_captcha .f_captcha_input { flex: 1; min-width: 0; width: auto; }
.c_form .submit_btn { display: flex; align-items: center; justify-content: center; gap: 1.4rem; margin-top: 5rem; width: 100%; height: 3.6em; border: 0; border-radius: 1.2rem; 
    background-color: var(--black); font-size: var(--p3); font-weight: 600; color: #fff; cursor: pointer; transition: background-color 0.3s; }
.c_form .submit_btn:hover { background-color: #000; }
.c_form .submit_btn svg {display: block; width: 0.8em; height: 0.8em; }


/* ── .c_form.type_label — 라벨-왼쪽 variant (상담예약 페이지 idx 44, consultFormHtml($id,'label'), 시안 2096:23466) ──
   흰 배경 위 200 라벨 | 640 입력(회색 #F6F6F6), 행 간격 30, 동의 행 상단 구분선, 가운데 pill 버튼. 필드 클래스는 기본형과 같다. */
.c_form.type_label .f_item { display: flex; align-items: center; }
.c_form.type_label .f_item + .f_item { margin-top: 3rem; }
.c_form.type_label .f_item_top { align-items: flex-start; }
.c_form.type_label .f_item_top .f_label { padding-top: 2.1rem; }
.c_form.type_label .f_label { flex: 0 0 11.6em; padding-inline-end: 2rem; font-size: var(--p3); font-weight: 600; line-height: 1.3; color: var(--gray90); }
.c_form.type_label .f_label .req { font-style: normal; color: var(--point01); }
.c_form.type_label .f_ctrl { flex: 1; min-width: 0; }
.c_form.type_label input[type="text"],
.c_form.type_label select,
.c_form.type_label textarea,
.c_form.type_label .nice-select,
.c_form.type_label .file_chip,
.c_form.type_label .f_captcha .captcha_box { background-color: #F6F6F6; border-color: transparent; font-size: var(--p4); color: var(--gray90); }
.c_form.type_label input::placeholder,
.c_form.type_label textarea::placeholder,
.c_form.type_label .file_chip { color: rgba(0,0,0,0.3); }
.c_form.type_label .nice-select:has(.option.selected.disabled) .current { color: rgba(0,0,0,0.3); }
.c_form.type_label input:focus,
.c_form.type_label textarea:focus { border-color: var(--point01); }
.c_form.type_label textarea { height: 25rem; padding: 2rem; }
/* 희망 방문일 — 2026-09-18 시안(2037:14720): 입력 안 오른쪽 달력 아이콘(20px, gray900) + 클릭/포커스 시 jQuery UI datepicker(consultFormInit). 두 variant 공용 */
.c_form .f_date { position: relative; }
.c_form .f_row > .f_date { width: auto; min-width: 0; } /* 두 칸 줄 칸 폭은 위 .f_row 그리드가 정한다 */
.c_form .f_date .f_preferred { width: 100%; padding-inline-end: 5.5rem; cursor: pointer; }
.c_form .f_date .date_ico { position: absolute; top: 50%; inset-inline-end: 2rem; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 0; background: none; transform: translateY(-50%); color: var(--gray90); cursor: pointer; }
.c_form .f_date .date_ico svg { display: block; width: 100%; height: 100%; }
.c_form.type_label .f_date .date_ico { color: var(--gray50); }
/* jQuery UI datepicker(base 테마 위 덮어쓰기) — 상담 폼 전용 팝업. 월·요일 이름은 JS 가 Intl 로 현재 locale 생성 */
.ui-datepicker.c_form_dp { width: 32rem; padding: 2rem; border: 1px solid var(--gray10); border-radius: 1.5rem; background: #fff; box-shadow: 0 1rem 3rem rgba(31, 41, 51, 0.12); font-family: inherit; font-size: var(--p4); color: var(--gray90); }
.ui-datepicker.c_form_dp .ui-datepicker-header { position: relative; padding: 0 0 1.5rem; border: 0; background: none; font-weight: 700; }
.ui-datepicker.c_form_dp .ui-datepicker-title { margin: 0 4rem; line-height: 3.6rem; text-align: center; font-size: var(--p3); }
.ui-datepicker.c_form_dp .ui-datepicker-prev,
.ui-datepicker.c_form_dp .ui-datepicker-next { position: absolute; top: 0; width: 3.6rem; height: 3.6rem; border: 1px solid var(--gray10); border-radius: 50%; background: #fff; cursor: pointer; }
.ui-datepicker.c_form_dp .ui-datepicker-prev { inset-inline-start: 0; }
.ui-datepicker.c_form_dp .ui-datepicker-next { inset-inline-end: 0; }
.ui-datepicker.c_form_dp .ui-datepicker-prev .ui-icon,
.ui-datepicker.c_form_dp .ui-datepicker-next .ui-icon { position: absolute; top: 50%; left: 50%; width: 0.9rem; height: 0.9rem; margin: 0; background: none; border-left: 2px solid var(--gray90); border-top: 2px solid var(--gray90); text-indent: -999em; overflow: hidden; } /* 물리 테두리 — 회전값이 방향을 정하므로 RTL 은 아래 두 줄로 반전 */
.ui-datepicker.c_form_dp .ui-datepicker-prev .ui-icon { transform: translate(-30%, -50%) rotate(-45deg); }
.ui-datepicker.c_form_dp .ui-datepicker-next .ui-icon { transform: translate(-70%, -50%) rotate(135deg); }
.ui-datepicker.c_form_dp.ui-datepicker-rtl .ui-datepicker-prev .ui-icon { transform: translate(-70%, -50%) rotate(135deg); }
.ui-datepicker.c_form_dp.ui-datepicker-rtl .ui-datepicker-next .ui-icon { transform: translate(-30%, -50%) rotate(-45deg); }
.ui-datepicker.c_form_dp .ui-datepicker-prev-hover,
.ui-datepicker.c_form_dp .ui-datepicker-next-hover { border-color: var(--point01); }
.ui-datepicker.c_form_dp .ui-datepicker-prev-hover .ui-icon,
.ui-datepicker.c_form_dp .ui-datepicker-next-hover .ui-icon { border-color: var(--point01); }
.ui-datepicker.c_form_dp table { width: 100%; margin: 0; border-collapse: collapse; font-size: inherit; }
.ui-datepicker.c_form_dp th { padding: 0.6rem 0; border: 0; font-size: var(--p5); font-weight: 600; color: var(--gray40); }
.ui-datepicker.c_form_dp td { padding: 0.2rem; border: 0; }
.ui-datepicker.c_form_dp td a,
.ui-datepicker.c_form_dp td span { display: flex; align-items: center; justify-content: center; width: 100%; height: 3.6rem; margin: 0; padding: 0; border: 0; border-radius: 50%; background: none; text-align: center; color: var(--gray90); font-weight: 500; text-decoration: none; }
.ui-datepicker.c_form_dp td span.ui-state-default { color: var(--gray20); cursor: default; }
.ui-datepicker.c_form_dp td .ui-state-hover,
.ui-datepicker.c_form_dp td a:hover { background: var(--grayBg1); color: var(--point01); }
.ui-datepicker.c_form_dp td .ui-state-highlight { box-shadow: inset 0 0 0 1px var(--point01); color: var(--point01); }
.ui-datepicker.c_form_dp td .ui-state-active { background: var(--point01); color: #fff; }
.ui-datepicker.c_form_dp .ui-datepicker-other-month a { color: var(--gray30); }
.ui-datepicker.c_form_dp .ui-datepicker-unselectable .ui-state-default { color: var(--gray20); }
.c_form.type_label .f_file { gap: 1.5rem; }
.c_form.type_label .file_chip { padding: 0 1.5rem; }
.c_form.type_label .file_chip.has_file { color: var(--gray90); }
.c_form.type_label .file_chip .del { background-color: rgba(255,94,16,0.15); color: var(--point01); }
.c_form.type_label .upload_btn { width: 17rem; border: 1px solid #B5B5B5; background-color: #fff; color: var(--gray90); font-weight: 700; }
.c_form.type_label .upload_btn:hover { border-color: var(--gray90); background-color: #fff; }
.c_form.type_label .f_note { margin-top: 1rem; font-size: var(--p6); line-height: 1.3; color: #696969; }
.c_form.type_label .f_captcha { margin-top: 0; gap: 1rem; }
.c_form.type_label .f_captcha .captcha_box { flex: 1 1 0; width: auto; min-width: 0; padding: 0 2rem; justify-content: space-between; }
.c_form.type_label .f_captcha .captcha_refresh { background-color: transparent; color: var(--gray90); }
.c_form.type_label .f_captcha .captcha_refresh:hover { background-color: var(--gray10); color: var(--gray90); }
.c_form.type_label .f_item.f_item_agree { align-items: flex-start; margin-top: 4rem; padding-top: 4rem; border-top: 1px solid var(--gray90); }   /* .f_item + .f_item(3rem) 보다 우선 — 시안 캡차 행 → 구분선 40(2026-09-18 검토 44 #5) */
.c_form.type_label .f_agree { flex-wrap: wrap; gap: 1.5rem; margin-top: 0; font-size: var(--p5); font-weight: 700; color: var(--gray90); align-items: center;}
.c_form.type_label .f_agree label { gap: 1.5rem; }
.c_form.type_label .f_agree .chk { width: 2rem; height: 2rem; border: 1px solid #B5B5B5; border-radius: 0.4rem; background-color: #fff; color: #fff; margin-top: 0.25em;}
.c_form.type_label .f_agree input:checked + label .chk { border-color: var(--point01); background-color: var(--point01); }
.c_form.type_label .f_agree .req_txt { font-style: normal; font-weight: 500; color: var(--point01); }
.c_form.type_label .f_agree .policy_btn { padding: 0.5rem 0.7rem; border-radius: 999px; background-color: #E8E8E8; font-size: var(--p8); font-weight: 500; line-height: 1; color: rgba(31,41,51,0.5); text-decoration: none; transition: color 0.3s; }
.c_form.type_label .f_agree .policy_btn:hover { color: var(--gray90); }
.c_form.type_label .submit_btn { width: auto; min-width: 24rem; height: 3.5em; margin: 8rem auto 0; padding: 0 2.5rem; border-radius: 999px; background-color: var(--gray90); font-size: var(--p4); }
.c_form.type_label .submit_btn:hover { background-color: var(--point01); }

/* ===== 지도 + 병원 정보 카드 (.map_box — 메인 오시는길 + 오시는 길 페이지 공용, 파셜 _Skin/include/map-info-card.php; main.css 에서 이관) ===== */
.map_box { position: relative; margin-top: var(--contMt2); border-radius: 3rem; overflow: hidden; box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);}
.map_box > img { width: 100%; height: 68.5rem; object-fit: cover; }
.map_box .map_embed { position: relative; width: 100%; height: 68.5rem; }
/* 정보 카드는 시작 쪽(왼쪽, RTL 은 오른쪽), 지도 핀은 반대편. iframe 은 박스 폭 100% — 구글 지도 버튼(Open in Maps·확대 컨트롤)이 잘리지 않게.
   핀 위치(LTR 75%·RTL 25%·≤1040 가운데)는 CSS 가 아니라 지도 중심 좌표로 맞춘다(inc/js/basic.js mapBoxFocus, 2026-09-30 — 예전 150% 폭 + 한쪽 잘라내기는 한쪽 버튼이 잘렸다) */
.map_box .map_embed iframe { position: absolute; inset-inline-start: 0; top: -150px; display: block; width: 100%; height: calc(100% + 150px); border: 0; } /* 위 150px 를 박스 밖으로: 구글 장소 카드(왼쪽 위, 주소·평점 — 끌 수 없음)가 정보 카드 뒤에 반쯤 걸리지 않게. 핀 세로 위치는 basic.js 가 위도로 보정 */
.map_box .gm-bundled-control{display: none;}
.map_box .info_card { position: absolute; inset-inline-start: 5rem; top: 5rem; bottom: 5rem; width: 75rem; max-width: 60%; padding: 3.5rem; border-radius: 2rem; background-color: #fff; 
    display: flex; flex-direction: column; }
.map_box .addr { display: flex; gap: 1rem; font-size: var(--h8); font-weight: 700; line-height: 1.5; }
.map_box .addr svg { flex: 0 0 auto; width: 1.4em; height: 1.4em; }
.map_box .info_cont { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: auto; }
.map_box .info_cont .c_box { padding: 4rem; border-radius: 2rem; background-color: var(--grayBg2); }
.map_box .info_cont .c_box:last-child{grid-column: span 2;}
.map_box .info_cont .c_box .tit { display: flex; align-items: center; gap: 1rem; font-size: var(--p1);  font-weight: 700; }
.map_box .info_cont .c_box .tit svg { width: 1.6em; height: 1.6em; }
.map_box .info_cont .c_box .txt { margin-top: 2rem; font-size: var(--p3); font-weight: 500; color: #828282;}   /* 시안 18 Medium (21 #11) */
.map_box .info_cont .c_box .pay { display: flex; margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; height: 5rem; }
.map_box .info_cont .c_box .pay img { height: 100%; width: auto; }
/* 지도 그림(.is-static — 쿠키 '외부 콘텐츠' 미허용·중국 IP, 파셜 map-info-card.php): 구글 지도 대신 지도 이미지(시안과 같은 범위의 2배 해상도 캡처 2560×1103), 정보 카드는 그대로.
   그림의 핀이 왼쪽 32%·위 42% 라 카드는 언어 방향과 관계없이 오른쪽(시안 배치 — 그림은 좌우가 고정된 물리 좌표라 left/right 를 쓴다). ≤1040 은 카드가 지도 아래라 원래대로 */
.map_box .map_static { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 32% 42%; }
.map_box.is-static .map_embed iframe, .map_box:not(.is-static) .map_static { display: none; }
.map_box.is-static .info_card { left: auto; right: 5rem; }

/* RTL(ar): 상담 폼 제출 화살표 반전 (구조는 논리 속성/flex 로 자동 미러) */
body.is-rtl .c_form .submit_btn .arr_ico { transform: scaleX(-1); }

/* ===== 퀵메뉴 상담 모달 (Figma 1350-5566 「퀵메뉴」 — _Prog/common/modal/quickConsult.php) =====
   quick_bar 위에 뜨는 우측 하단 도킹형 — 공용 .modal 의 중앙정렬(table)을 :has() 로 해제한다. */
.modal:has(.modal_cont.quick_consult) { padding: 0; background: rgba(0,0,0,0.35); }
.modal:has(.modal_cont.quick_consult) .modal_wrap { display: block; height: 100%; padding: 0; }
.modal:has(.modal_cont.quick_consult) .scroll_box { display: block; height: 100%; }

.modal_cont.quick_consult { position: absolute; inset-inline-end: 4rem; bottom: 4rem; margin: 0; max-height: calc(100% - 8rem); overflow-y: auto; width: 57rem; padding: 4rem 3.5rem; border-radius: 3rem; background-color: var(--point01); box-shadow: 0 1rem 6rem 0 rgba(0,0,0,0.35); }

.quick_consult .qc_top { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 0; color: #fff; background-color: transparent; }
.quick_consult .qc_top .tit { font-family: var(--en); font-size: var(--h8); font-weight: 400; }
.quick_consult .qc_top .modal_close { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 0; color: #fff; cursor: pointer; }

.quick_consult .c_form { padding: 0; margin-top: 4rem; }
.quick_consult .c_form input[type="text"], 
.quick_consult .c_form select, 
.quick_consult .c_form textarea, 
.quick_consult .c_form .file_chip { box-shadow: 0 0.2rem 0.8rem rgba(31,41,51,0.08); }
.quick_consult .qc_sns { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 3rem; }
.quick_consult .qc_sns_btn { display: flex; align-items: center; justify-content: center; width: 5rem; height: 5rem; border-radius: 50%; gap: 1rem; color: rgba(255,255,255,0.85); transition: background 0.3s, transform 0.3s; }
.quick_consult .qc_sns_btn:hover { background-color: rgba(255, 255, 255, 0.20); }
.quick_consult .qc_sns_btn svg,
.quick_consult .qc_sns_btn img { width: 100%; height: 100%; }

.modal_cont.quick_consult .c_form .f_row, 
.modal_cont.quick_consult .c_form .f_file, 
.modal_cont.quick_consult .c_form .f_captcha{gap: 1rem;}
.modal_cont.quick_consult .c_form input[type="text"], 
.modal_cont.quick_consult .c_form textarea,
.modal_cont.quick_consult .c_form .nice-select,
.modal_cont.quick_consult .c_form .file_chip { font-size: var(--p6); height: 5.4rem;}
.modal_cont.quick_consult .c_form .nice-select { line-height: 5.4rem;}
.modal_cont.quick_consult .c_form .file_chip { font-size: var(--p6);}
.modal_cont.quick_consult .c_form .upload_btn,
.modal_cont.quick_consult .c_form .f_captcha .captcha_box{width: 17rem;}
.modal_cont.quick_consult .c_form .upload_btn,
.modal_cont.quick_consult .c_form .f_captcha .captcha_box{height: 5.4rem;}
.modal_cont.quick_consult .c_form textarea { height: 11.5rem;}
.modal_cont.quick_consult .c_form .submit_btn { margin-top: 2rem; }


/* ===== 약관/방침 오버 모달 ===== */
.modal_cont .cont{font-size: var(--p4);}
.modal_cont .cont .effective_date { margin-bottom: 2rem; color: var(--gray30); font-size: var(--p5); }
.modal_cont .cont .terms_body h2,
.modal_cont .cont .terms_body h3,
.modal_cont .cont .terms_body h4,
.modal_cont .cont .terms_body h5,
.modal_cont .cont .terms_body h6 { margin: 1.2em 0 0.3em; font-weight: 700; }
.modal_cont .cont .terms_body h2,
.modal_cont .cont .terms_body h3,
.modal_cont .cont .terms_body h4 { font-size: var(--p3); }
.modal_cont .cont .terms_body h5,
.modal_cont .cont .terms_body h6 { font-size: var(--p4); }
.modal_cont .cont .terms_body p { margin-bottom: 0.8em; }
.modal_cont .cont .terms_body ul,
.modal_cont .cont .terms_body ol { margin-bottom: 0.8em; }
.modal_cont .cont .terms_body ol > li { text-indent: -1.5em; padding-left: 1.5em; }
.modal_cont .cont .terms_body table { width: 100%; margin: 1em 0; border-collapse: collapse; }
.modal_cont .cont .terms_body table th,
.modal_cont .cont .terms_body table td { padding: 0.8rem 1rem; border: 1px solid #e2e6ec; text-align: left; }
.modal_cont .cont .terms_body table th { background-color: var(--grayBg1); font-weight: 600; }
.modal_cont .cont .terms_empty { padding: 8rem 0; color: var(--gray60); text-align: center; }


/* ===== 환자 스토리 영상 모달 (메인 stories_sect 카드 클릭 — _Prog/common/modal/storyVideo.php, ssdream dream_tv_video 계승) ===== */
.modal .modal_wrap .modal_cont.video_modal.story_video{background-color: transparent;}
.modal .modal_cont.story_video .cont { background-color: #fff; border-radius: 2rem; } /* 상단 바를 없애 .modal_top + .cont 규칙이 빠졌으므로 흰 박스·라운드를 직접 준다 */
.modal .modal_cont.story_video .cont .top_txt { padding-bottom: 2rem; padding: 0 3rem;}
.modal .modal_cont.story_video .cont .top_txt .view_tit { font-size: var(--h7); font-weight: 700; line-height: 1.4; }
.modal .modal_cont.story_video .cont .top_txt .sub_info { display: flex; align-items: center; gap: 1.2rem; font-size: var(--p4); color: var(--gray50); margin-top: 1rem;}
.modal .modal_cont.story_video .cont .top_txt .sub_info .name { font-weight: 600; color: var(--gray70); }
.modal .modal_cont.story_video .cont .top_txt .sub_info .date {font-size: var(--p6);}
.modal .modal_cont.story_video .cont .iframe { position: relative; width: 100%; padding-top: 56.25%; overflow: hidden; background-color: #000; margin-top: 3rem;}
.modal .modal_cont.story_video .cont .iframe iframe,
.modal .modal_cont.story_video .cont .iframe video { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover;}
.modal .modal_cont.story_video .cont .txt_box { margin-top: 2.4rem; color: var(--gray70);padding: 0 3rem 3rem;}
/* 해시태그 칩 — 관리자(p=68) 언어별 해시 태그, 후기 내용 바로 위 (2026-10-13, 시안 없음 — 연파랑 바탕 + 파랑 글자). 칩 = 환자 후기(영상) 목록 검색 링크(?q=태그), 호버 시 반전 */
.modal .modal_cont.story_video .cont .story_tags { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2.4rem; padding: 0 3rem; }
.modal .modal_cont.story_video .cont .story_tags a { display: block; padding: 0.4rem 1rem; border-radius: 0.6rem; background-color: var(--grayBg3); font-size: var(--p5); font-weight: 500; line-height: 1.4; color: var(--point02); word-break: keep-all; transition: background-color 0.2s, color 0.2s; }
.modal .modal_cont.story_video .cont .story_tags a:focus-visible { outline: 2px solid var(--point02); outline-offset: 2px; }
@media (hover: hover) { .modal .modal_cont.story_video .cont .story_tags a:hover { background-color: var(--point02); color: #fff; } }
.modal .modal_cont.story_video .cont .story_tags:last-child { padding-bottom: 3rem; }
.modal .modal_cont.story_video .cont .story_tags + .txt_box { margin-top: 1.6rem; }
.modal .modal_cont.story_video .cont .empty_box { padding: 8rem 0; color: var(--gray60); text-align: center; }


/* New Footer */
.footer {position: relative; padding: 8rem 0; background: url('/inc/img/common/footer-bg.webp') center / cover no-repeat var(--point01, #FF5E10); color: #fff; letter-spacing: normal;} /* relative: .quick_bar.is-docked 기준 */
.footer .in {display: block; width: var(--in); max-width: 100%; margin: 0 auto;}
.main .footer .in {width: var(--in);}
.footer .footer_top {display: flex; align-items: flex-start; justify-content: space-between; gap: 6rem;}

.footer .main_tel {display: flex; align-items: center;}
.footer .main_tel .ico {display: flex; align-items: center; flex-shrink: 0; width: 4.8rem; margin-inline-end: 1rem;}
.footer .main_tel .ico svg {width: 100%; height: auto;}
.footer .main_tel .num {font-size: 6.5rem; font-weight: 400; line-height: 1;}

.footer .f_email {display: flex; align-items: center; gap: 1rem; margin-top: 3rem;}
.footer .f_email .mail {font-size: var(--p1); font-weight: 500;}
.footer .f_email .copy_btn {padding: 0.6rem 1.7rem; border-radius: 0; background-color: rgba(255,255,255,0.2); font-size: var(--p6); line-height: 1; color: #fff; transition: 0.3s ease;}
.footer .f_email .copy_btn:hover {background-color: rgba(255,255,255,1); color: #000;}
.footer .f_email .copy_btn.copied {background-color: #fff; color: var(--point01, #FF5E10);}

.footer .f_hours {margin-top: 2rem;}
.footer .f_hours .tit {font-size: var(--p1); font-weight: 500;}
.footer .f_hours ul {display: flex; flex-direction: column; gap: 0.3rem; margin-top: 1rem;}
.footer .f_hours li {display: flex; align-items: center;}
.footer .f_hours .day {width: 8.5em; flex-shrink: 0; font-size: var(--p4);}
.footer .f_hours .time {font-size: var(--p3); font-weight: 300; color:rgba(255,255,255,0.8);}
.footer .f_hours .badge {margin-inline-start: 1.2rem; padding: 0.5rem 1rem; border-radius: 999px; background-color: rgba(255, 255, 255, 0.10); font-size: var(--p6); line-height: 1.3; font-weight: 200;}
/* 요일 열을 subgrid 로 전 행이 공유 — 기본 8.5em, 긴 요일명(ru·ar 등)이면 가장 긴 요일 폭으로 전 행이 같이 넓어진다. 3열 = 야간진료 배지(미지원 브라우저는 위 flex + 8.5em 고정) */
@supports (grid-template-columns: subgrid) {
    .footer .f_hours ul {display: grid; grid-template-columns: max-content max-content minmax(0, 1fr); row-gap: 0.3rem;}
    .footer .f_hours li {display: grid; grid-column: 1 / -1; grid-template-columns: subgrid;}
    .footer .f_hours .day {width: auto; min-width: 8.5em; padding-inline-end: 1em; box-sizing: border-box;} /* 짧은 요일명은 기존 8.5em 그대로, 긴 요일명만 글자+1em 으로 열이 넓어짐 */
    .footer .f_hours .badge {justify-self: start;}
}

.footer .f_gnb {display: flex; flex-direction: column; gap: 2rem; flex-shrink: 0;}
.footer .f_gnb a {position: relative; font-size: var(--h6); font-weight: 400; line-height: 1; transition: opacity 0.3s ease;}
.footer .f_gnb a:before{content: ''; position: absolute; height: 2px; width: 0; background-color: #fff; inset-inline-start: 0; bottom: -2px; transition: width 0.5s; } 
.footer .f_gnb a:hover:before {width: 100%;}

.footer .footer_bottom {display: flex; align-items: flex-end; justify-content: space-between; gap: 4rem; margin-top: 7rem;}
.footer .footer_bottom_left {flex: 1; min-width: 0;}
.footer .terms_txt {display: flex; flex-wrap: wrap; align-items: center; }
.footer .terms_txt a {position: relative; font-size: var(--p4); font-weight: 300; line-height: 1;}
.footer .terms_txt a strong {font-weight: 600;}
.footer .terms_txt a + a {padding-inline-start: 1.2rem; margin-inline-start: 1rem;}
.footer .terms_txt a + a::before {content: ""; position: absolute; inset-inline-start: 0; top: 50%; width: 0.4rem; height: 0.4rem; border-radius: 50%; background-color: rgba(255,255,255,0.3); transform: translateY(-50%);}
.footer .info_txt {margin-top: 2rem;}
.footer .info_txt p {display: flex; flex-wrap: wrap; align-items: center; row-gap: 0.6rem; font-size: 0; letter-spacing: -0.02em;}
.footer .info_txt p + p {margin-top: 0.5rem;}
.footer .info_txt span {position: relative; font-size: var(--p6); font-weight: 300; line-height: 1.3; opacity: 0.5;}
.footer .info_txt span + span {margin-inline-start: 0.4rem; padding-inline-start: 0.8rem;}
.footer .info_txt span + span::before {content: "|"; position: absolute; inset-inline-start: 0; top: 50%; transform: translateY(-50%); }
.footer .info_txt .copy_txt {padding-inline-start: 0;}
.footer .info_txt .copy_txt::before {content: "";}
.footer .f_logo {display: inline-block; margin-top:7rem; width: 45rem;}
.footer .f_logo img {width: 100%; height: auto;}

.footer .footer_bottom_right {display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0;}
.footer .f_qr {display: flex; flex-direction: column; align-items: center; width: 11rem;}
.footer .f_qr .qr {width: 100%; height: 100%;
    border: 2px solid rgba(0, 0, 0, 0.20);
    border-radius: 0.5rem; object-fit: contain; background-color: #fff;}
.footer .f_qr .bubble {position: relative; margin-top: 1rem; padding: 1rem 1.7rem; border-radius: 10rem; background-color: #fff; font-size: var(--p6); font-weight: 500; line-height: 1; white-space: nowrap; color: var(--point01, #FF5E10); animation: footerBubbleFloat 2s ease-in-out infinite;}
@keyframes footerBubbleFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(0.6rem); } }
@media (prefers-reduced-motion: reduce) { .footer .f_qr .bubble { animation: none; } }
.footer .f_qr .bubble::before {content: ""; position: absolute; left: 50%; top: -0.5rem; transform: translateX(-50%); border-left: 0.55rem solid transparent; border-right: 0.55rem solid transparent; border-bottom: 0.8rem solid #fff;}
.footer .f_sns {display: flex; margin-top: 1rem;}
.footer .f_sns li a {display: flex; align-items: center; justify-content: center; width: 6rem; height: 6rem; border-radius: 50%; color: #fff; transition: background-color 0.3s ease;}
.footer .f_sns li a svg {width: 100%; height: 100%;}
/* .footer .f_sns li.whatsapp a {background-color: rgba(255,255,255,0.25);} */
.footer .f_sns li a:hover {background-color: rgba(255,255,255,0.35);}

.footer .top_btn{position: fixed; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 9rem; height:9rem; border-radius: 1.5rem; bottom: var(--inPd); right: var(--inPd); transition:transform 0.3s ease; background-color: #fff; border: 1px solid var(--line); transition: 0.3s ease-in-out; z-index: 5;}
.footer .top_btn .ico{width: 35%;}
.footer .top_btn .ico svg{display: block; width: 100%; height: auto;}
.footer .top_btn svg path {transition:  0.3s ease-in-out;}
.footer .top_btn:hover {background-color: #000; ;}
.footer .top_btn:hover svg path {stroke: #fff;}

/* Lenis 공식 권장 — 스크롤 중엔 iframe(유튜브·지도)이 휠을 가로채지 않게(커서가 iframe 위를 지나가도 부드러운 스크롤 유지). basic.js 가 1241 이상에서만 Lenis 를 켠다 */
.lenis.lenis-scrolling iframe { pointer-events: none; }

/* === 통합검색 === */
.all_search_box .keyword_form {background-color: #fff; padding: 12rem var(--inPd); }
.all_search_box .keyword_form .cont_tit_box {text-align: center; }
.all_search_box .keyword_form .cont_tit_box .tit {font-size: var(--h4); font-weight: 700; line-height: 1.5;}
.all_search_box .keyword_form .cont_tit_box .txt {font-size: var(--p2); margin-top: 1em;}

.all_search_bg {position: fixed; inset: 0; z-index: 99; background-color: rgba(0, 0, 0, 0.5); opacity: 0; pointer-events: none;}
.all_search_bg.on {opacity: 1; pointer-events: all;}

.keyword_form .search { position: relative; width: 60rem; max-width: 100%; margin: 6rem auto 0;}
.keyword_form .search input {background-color: var(--point01); border-radius: 999rem; height: 7rem; font-size: var(--p2); padding: 0 13rem 0 4rem; width: 100%; font-weight: 500; max-width: 100%; color: #fff;}
.keyword_form .search input::placeholder {color: #fff; }
.keyword_form .search .btn_search {position: absolute; right: 0.5rem; top: 0.5rem; width: 6rem; height: 6rem; border-radius: 99rem;
    background:#fff url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 60 60" fill="none"><path d="M28.1408 35.0003C32.5591 35.0003 36.1409 31.4185 36.1409 27.0002C36.1409 22.5818 32.5591 19 28.1408 19C23.7224 19 20.1406 22.5818 20.1406 27.0002C20.1406 31.4185 23.7224 35.0003 28.1408 35.0003Z" stroke="%23CC7059" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M40.0001 40.0001L34 34" stroke="%23CC7059" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center / contain;}
.keyword_form .search .btn.del {position: absolute; right: 8rem; top: 50%; transform: translateY(-50%); width: 1.8em; height: 1.8em;}
.keyword_form .search .btn.del svg {width: 100%; height: auto;}
.keyword_form .search .btn.del.hide {display: none;}
.keyword_form .keyword_box {display: flex; justify-content: center; margin: 2rem auto 0; width: 46rem; max-width: 100%; }
.keyword_form .keyword_box .tit {font-size: var(--p6); font-weight: 700; margin-right: 1rem; height: 2.2em; line-height: 2.2em;}
.keyword_form .keyword { display: flex; flex-wrap: wrap; gap: 7px; max-width: 100%; }
.keyword_form .keyword .btn { font-size: var(--p6); font-weight: 500; color: var(--gray70); border: 1px solid var(--gray20); border-radius: 10em; padding: 0 0.8em; height: 2.2em; line-height: 2.2em; transition: 0.3s ease-in-out;}
.keyword_form .keyword .btn.none {display: none;}
.keyword_form .keyword .btn_more {height: auto;}
.keyword_form .keyword .btn_more svg {width: 1.4em; height: 2.2em; width: 2.2em; border-radius: 50%;}

.keyword_form .commonFileDeleteBtn {position: absolute; right: 4em;top: 50%;transform: translateY(-50%);display: flex;align-items: center;justify-content: center;width: 1.5em; height: 1.5em; background-color: rgba(9,84,154,0.2);border-radius: 50%;margin-left: auto;}
.keyword_form .commonFileDeleteBtn.hide {opacity: 0; pointer-events: none;}

.header .all_search_box {position: absolute; left: 0; bottom: 1px; width: 100%; transform: translateY(100%); opacity: 0; pointer-events: none; transition: 0.3s ease-in-out;}
.header.search .all_search_box {opacity: 1; pointer-events: all;}
.header .all_search_box .close_btn {position: absolute; right: var(--hdIn); top: 3rem; width: 4.7rem; height: 4.7rem; display: flex; align-items: center; justify-content: center; transition: 0.3s ease-in-out}
.header .all_search_box .close_btn svg {width: 3rem; height: auto;}

/* .all_search_page .tab_box {display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); margin-bottom: var(--pd4); gap: 15px } */
.all_search_page .all_search_box .keyword_form {background-color: var(--grayBg1); margin-top: var(--hdH);}
.all_search_page .tab_box {display: flex; flex-wrap: wrap; margin-bottom: var(--pd4); gap: 10px; }
.all_search_page .tab_box::-webkit-scrollbar {display: none;}
.all_search_page .tab_box .btn { display: flex; align-items: center; justify-content: center; height:3em;;padding: 0 1em;font-size: var(--p3); font-weight: 700; color: var(--gray60); border: 1px solid var(--gray20); border-radius: 0.8rem; transition: 0.3s ease-in-out;}
.all_search_page .tab_box .btn .cnt {margin-left: 0.25em;}
.all_search_page .tab_box .btn.active {background-color: var(--gray90); color:#fff; border-color: var(--gray90);}

.all_search_page .sect + .sect {margin-top: var(--pd3);}
.all_search_page .sect .sect_tit_box {margin-bottom: var(--contMt4);}
.all_search_page .sect .sect_tit_box .tit {display: flex; align-items: flex-start; font-size:var(--h3); font-weight: 700}
.all_search_page .sect .sect_tit_box .tit .num { display: inline-block;margin-left: 0.5em; border-radius: 10em; padding: 0.3em 0.5em; min-width:1.7em; text-align: center; font-size: var(--p5); line-height: 1.1; font-weight: 600; color: #fff; background-color: var(--point01);}

.all_search_page .sect .cont_tit {font-size: var(--h6);font-weight: 700;margin-bottom: 2rem;}
.all_search_page .sect .list_cont + .list_cont  {margin-top: var(--pd4);}
.all_search_page .result_wrap {margin-top: var(--pd4);}
.all_search_page .sect .notice_faq03{margin-top: 0;}


.all_search_page .menu_sect .list_box {display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem;}
.all_search_page .menu_sect .list_box .cont {position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: 10rem 2.5rem 3rem; border: 1px solid var(--gray20); border-radius: 1.6rem; transition: 0.3s ease-in-out; overflow: hidden;}
.all_search_page .menu_sect .list_box .cont .txt_box {position: relative; z-index: 2;}
.all_search_page .menu_sect .list_box .cont .nav_txt {display: flex; align-items: center; font-size: var(--p4); font-weight: 500; color: var(--gray70); transition: 0.3s ease-in-out;}
.all_search_page .menu_sect .list_box .cont .nav_txt .ico { width: 0.7em; height: 0.7em; margin: 0 0.5em;background: url('data:image/svg+xml,<svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.324249 11.7373C-0.0827652 11.3643 -0.1102 10.7314 0.262726 10.3242L4.22366 6.00003L0.262725 1.67581C-0.110303 1.26864 -0.0828192 0.635821 0.324249 0.262724C0.731418 -0.110304 1.36424 -0.082821 1.73733 0.324247L6.31741 5.32327C6.66758 5.70549 6.66752 6.29256 6.31741 6.67483L1.73734 11.6758C1.36429 12.0828 0.731439 12.1103 0.324249 11.7373Z" fill="%236E6E6E"/></svg>') no-repeat center/ contain; }
.all_search_page .menu_sect .list_box .cont .tit {display: flex; align-items: center; justify-content: space-between; font-size: var(--h8); font-weight: 700; margin-top: 1rem;}
.all_search_page .menu_sect .list_box .cont .tit .arr {flex-shrink: 0; width: 0.9em; height: 0.9em; background: url('data:image/svg+xml,<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.5 0L14.4156 3.08437L26.6219 15.3125L0 15.3125L0 19.6875H26.6219L14.4156 31.9156L17.5 35L35 17.5L17.5 0Z" fill="%23101010"/></svg>') no-repeat center / contain; transition: 0.3s ease-in-out;}



/* 비디오, 유튜브 */
.modal .modal_wrap .modal_cont.video_modal{padding: 0; overflow: visible; width: 100rem; border-radius: 0; background-color: #000; }
.modal .modal_wrap .modal_cont.video_modal .video{position: relative; width: 100%; padding-top: 56.25%; overflow: hidden;}
.modal .modal_wrap .modal_cont.video_modal .video > *{position: absolute; width: 101%; height: 101%; left:-0.5%; top: -0.5%; object-fit: cover;}

.modal_wrap .modal_cont .modal_close.solo{position: absolute; top: -5.5rem; right: -0.5rem; width: 3rem; height: 3rem; }
/* 상단 바(modal_top) 없는 모달의 닫기 — 박스 바깥 위 끝에 띄운다(버튼 아래 끝이 박스 위 2rem). 부모 .modal_cont 가 overflow: visible 이어야 보인다 */
.modal_wrap .modal_cont .modal_close.float_top { position: absolute; top: -2rem; inset-inline-end: 0; width: 3rem; height: 3rem; transform: translateY(-100%); }


/* 알랏레이어 */
.msg_layer{display: block; justify-content: center; align-items: center; overflow: auto; position: fixed; top:0; bottom:0; left:0; right:0; z-index: 9999; opacity: 0; width:100%; height: 100%; padding: 50px 20px 80px; background: rgba(0, 0, 0, 0.5); pointer-events: none; transition: 0.2s ease-in-out}
.msg_layer.open{opacity: 1; pointer-events: inherit}
.msg_layer .modal_wrap{display: table; position: relative; width: 100%; height: 100%; padding: 0 var(--resp_wrap_pd); margin: 0 auto; table-layout: fixed; vertical-align: middle}
.msg_layer .modal_wrap .scroll_box{display: table-cell; vertical-align: middle}
.msg_layer .modal_wrap .modal_cont {position: relative; width:max(45rem, 400px); max-width: 100%; padding: 40px var(--modal_row_pd) 40px; margin: 0 auto; background-color: #fff; border-radius: 12px;}
.msg_layer .modal_wrap .modal_cont .cont {padding: 4rem 3rem}
.msg_layer .modal_wrap .modal_cont .cont p {font-size: var(--txt3); text-align: center}
.msg_layer .modal_bot_box {display: flex; justify-content: center}
.msg_layer .modal_bot_box .btn {display: inline-block; width: 12rem; height: 4rem; line-height: 3.9rem; background-color: #000; color: #fff}
.msg_layer .modal_bot_box .btn:first-child:nth-last-child(2),
.msg_layer .modal_bot_box .btn:first-child:nth-last-child(2) ~ .btn {width: 12rem;}
.msg_layer .modal_top { display: flex; align-items: center; justify-content: space-between; padding: 4rem 4rem 2rem; display: none}
.msg_layer .modal_top.step { align-items: flex-start; }
.msg_layer .modal_top .tit_wrap {  }
.msg_layer .modal_top .step { font-size: 16px; font-weight: 600; }
.msg_layer .modal_top .step + .tit { margin-top: 10px; }
.msg_layer .modal_top .tit { font-size: 24px; font-weight: 700; }
.msg_layer .btn_wrap { display: flex; align-items: center; justify-content: center; width: 100%; margin-top: 3rem; }
.msg_layer .btn_wrap .btm_btn { cursor:pointer;display: flex; align-items: center; justify-content: center; flex: 1; max-width: 50%; height: 3em; padding: 0 1.5em; line-height: 3.1rem; font-size: var(--p3); font-weight: 600; border-radius: 2em; background-color: var(--point01); border: 1px solid var(--point01); color: #fff; box-shadow: 0 0 0 transparent; transition: box-shadow 0.3s, background-color 0.3s, color 0.3s; white-space: nowrap; }
.msg_layer .btn_wrap .btm_btn.wh{background-color: #fff; color: #000; border-color: #000;}
.msg_layer .btn_wrap .btm_btn .txt { font-weight: 600; }
.msg_layer .btn_wrap > * + * { margin-left: 1rem; }





@media screen and (min-width: 1241px) {
    .tel_btn{pointer-events: none;}

    .fix_btn_box .top_btn_box .top_btn:hover svg {transform: translateY(-4px);}

    .keyword_form .keyword .btn:hover { border-color: var(--gray70);}
    .all_search_page .menu_sect .list_box .cont:hover {background-color: var(--point01); color: #fff;}
    .all_search_page .menu_sect .list_box .cont:hover .tit .arr {background: url('data:image/svg+xml,<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.5 0L14.4156 3.08437L26.6219 15.3125L0 15.3125L0 19.6875H26.6219L14.4156 31.9156L17.5 35L35 17.5L17.5 0Z" fill="white"/></svg>') no-repeat center / contain;}
    .all_search_page .menu_sect .list_box .cont:hover .nav_txt {color: #fff;}
    .all_search_page .tab_box .btn:hover {background-color: var(--gray90); color: #fff; border-color: var(--gray90);}

    .my_write_form .form_list > li.last_btns .modify_btn:hover {background-color: var(--point01); border-color: var(--point01); color: #fff; }

}

/*3201 ~  */
/* @media screen and (min-width: 3201px) {
    html { font-size: 13px;}
} */

/* 2561 ~ 3200 */
/* @media screen and (min-width: 2561px) and (max-width: 3200px) {
    html { font-size: clamp(0.625rem, 0.125rem + 0.3125vw, 0.75rem);}
} */

/* 2560px 초과 */
@media screen and (min-width: 2561px) {
    html { font-size: 10px; }

}

/* 2560px 이하 */
@media screen and (max-width: 2560px) {
    html { font-size: clamp(0.53125rem, 0.1964rem + 0.2679vw, 0.625rem);}
}

@media screen and (max-width: 2000px){
    html {font-size: 8.5px;}


}


@media screen and (max-width: 1640px){

    :root {
         --inPd:40px;
    }

        

    .footer .f_qr {align-items: flex-end;}
    .footer .f_qr .bubble::before {left: 75%;}

    .lang-ar .footer .f_qr .bubble::before {left: 33%;}

    .in_w {padding: 0 var(--inPd);}

    html {font-size: 8px;}

    :root {
        --hdIn: var(--inPd)
    }


    .map_box .info_cont .c_box {padding: 3rem;}
}


@media screen and (max-width: 1240px) {
    /* ── 컴포넌트(지도 정보카드·라벨형 폼·푸터·퀵바 등) — 2026-09-29 반응형 중복 블록 통합 ── */
    .c_form.type_label .f_label { flex-basis: 24rem; }

    .footer .f_gnb {gap: 1.8rem;}
    .footer .f_gnb a {font-size: 2rem;}

    .quick_bar .q_now span {font-size: 9px; letter-spacing: -0.02em;} /* 2026-10-01 NOW → 언어별 단어(CONSULT·استشارة 등)가 길어져 작은 원(≤1240)에서 가장자리에 닿지 않게 */
    .footer .f_sns li a {width: 50px; height: auto;}
    .footer .f_sns li + li {margin-inline-start: -10px;}
    /* ── 공통 ── */
    html {font-size: 7px;}

    :root {

       
        
        --h1:40px; 
        --h2:36px; 
        --h3:32px; 
        --h4:28px; 
        --h5:24px;
        --h6:22px;
        --h7:20px; 
        --h8:20px; 

        --p1:18px; 
        --p2:16px;
        --p3:15px;  /* 본문 */  
        --p4:14px;
        --p5:13px;
        --p6:12px;
        --p7:11px;
        --p8:10px;


        --pd: 25rem;
        --pd1: 20rem;
        --pd2: 15rem;
        --pd3: 10rem;
        --pd4: 10rem;

    }


	.pc_only { display: none !important}
	.mo_over { display: none !important}
	.mo_only { display: block !important}
	.mo_only.flex {display: flex !important}


    .map_box .addr {font-size: var(--p1);}
    .map_box .info_cont .c_box {padding: 3rem;}
    .map_box .info_cont .c_box .tit {font-size: var(--p2);}


    .c_form .f_agree .chk {width: 2em; height: 2em;}

    .c_form.type_label .f_captcha .captcha_refresh {background-color: var(--gray10);}

}


@media screen and (max-width: 1040px) {
    /* ── 컴포넌트(지도 정보카드·라벨형 폼·푸터·퀵바 등) — 2026-09-29 반응형 중복 블록 통합 ── */
    /* 지도+정보 카드 — 1040 이하는 정보 카드를 지도 아래 세로 스택으로(absolute 해제), 지도 높이 축소(68.5→48rem),
       핀은 iframe 을 전폭으로 두어 상하좌우 가운데(PC 는 basic.js mapBoxFocus 가 지도 중심을 옮겨 핀을 카드 반대편 75% 에 둔다) */
    .map_box { display: flex; flex-direction: column; }
    .map_box > img, .map_box .map_embed { height: 48rem; }
    .map_box .map_embed iframe { left: 0; width: 100%; top: 0; height: 100%; } /* 카드가 지도 아래라 구글 장소 카드를 가릴 일이 없음 — 자르지 않는다 */
    .map_box .info_card { position: relative; inset: auto; width: 100%; max-width: none; padding: 3.5rem; border-radius: 0; box-shadow: none;}
    .map_box.is-static .info_card { left: auto; right: auto; }   /* 지도 그림 상태의 오른쪽 배치(PC) 해제 — 카드가 지도 아래 */
    .map_box .info_cont {margin-top: 20px;}
    /* ── 공통 ── */

    .modal_cont.quick_consult .c_form .upload_btn, .modal_cont.quick_consult .c_form .f_captcha .captcha_box,
    .modal_cont.quick_consult .c_form input[type="text"], .modal_cont.quick_consult .c_form .nice-select, .modal_cont.quick_consult .c_form .file_chip,
    .c_form .f_captcha .captcha_box, .c_form .upload_btn, 
    .c_form .f_captcha .captcha_boxm, .c_form input[type="text"], .c_form select, .c_form .nice-select, .c_form .file_chip {height: 6rem; font-size: var(--p6);}
    .c_form .nice-select {line-height: 7rem;}
    .modal_cont.quick_consult .c_form .f_captcha .captcha_box,
    .c_form .f_captcha .captcha_box {width: 20rem;}
    .c_form textarea {font-size: var(--p6);}
    .c_form .f_captcha .captcha_img {height: 50%;}

    .c_form .f_agree {font-size: var(--p8);}
    
    .c_form .f_row, .c_form .f_file, .c_form .f_captcha {gap:10px;}
    .c_form .f_row + .f_row, .c_form .f_row + .f_full, .c_form .f_full + .f_row, .c_form .f_full + .f_full, .c_form .f_captcha {margin-top: 10px;}



}



@media screen and (max-width: 768px) {
    /* ── 컴포넌트(지도 정보카드·라벨형 폼·푸터·퀵바 등) — 2026-09-29 반응형 중복 블록 통합 ── */
    /* 지도+정보 카드 — 모바일 치수(구조는 위 1040 블록) */
    .map_box { margin-top: var(--contMt3); border-radius: 2rem; }
    .map_box > img, .map_box .map_embed { height: 40rem; }
    .map_box .info_card { padding: 3rem 2.5rem; }
    .map_box .info_cont { gap: 1.5rem; margin-top: 2.5rem; }
    .map_box .info_cont .c_box { border-radius: 1.5rem; }
    .map_box .info_cont .c_box .txt { margin-top: 1.2rem; }
    .map_box .info_cont .c_box .pay { height: 4rem; margin-top: 1.5rem; }
    .c_form.type_label .f_item { flex-direction: column; align-items: stretch; gap: 1rem; }
    .c_form.type_label .f_item + .f_item { margin-top: 2.4rem; }
    .c_form.type_label .f_label { flex: 0 0 auto; padding: 0; }
    .c_form.type_label .f_item_top .f_label { padding-top: 0; }

    .c_form.type_label .f_item_agree { margin-top: 3rem; padding-top: 3rem; }
    .c_form.type_label .submit_btn { width: 100%; margin-top: 5rem; }

    .footer {padding: 6rem 0;}
    .footer .main_tel .ico {width: 3.6rem;}
    .footer .main_tel .num {font-size: 4rem;}
    .footer .f_logo {width: 30rem;}
    .footer .info_txt span + span {margin-inline-start: 0; padding-inline-start: 0; display: block; width: 100%;}
    .footer .info_txt span + span::before {content: "";}
    /* ── 공통 ── */
     html {font-size: 6px;}

    :root {

        --hdH: 50px;
        --inpH: 45px;
        --inPd:15px;
        --subPd: 80px;

        --d1:40px;
        --h1:34px; 
        --h2:28px; 
        --h3:26px; 
        --h4:24px; 
        --h5:20px;
        --h6:20px;
        --h7:18px; 
        --h8:18px; 

        --p1:16px; 
        --p2:15px;
        --p3:14px;  /* 본문 */  
        --p4:13px;
        --p5:12px;
        --p6:12px;
        --p7:11px;
        --p8:10px;

        --pd:120px;
        --pd1:100px;
        --pd2:80px;
        --pd3:80px;
        --pd4:60px;

        --contMt1: 40px;
        --contMt2: 40px;
        --contMt3: 20px;
        --contMt4: 20px;


        --borderRadius: 20rem;

    }



    .phone_only { display: block !important}
	.phone_only.flex {display: flex !important}
    .phone_over {display: none !important;}

	html::-webkit-scrollbar {display: none;}

    /* 퀵바 → 화면 하단 고정 바(2026-10-01): CONSULT · 전화 · YouTube · TOP 4칸, 아이콘 위 · 글자 아래. 메신저 칸 숨김, 푸터 도킹 없음(basic.js 는 769~1640 만) */
    .quick_bar, .quick_bar.is-docked { position: fixed; inset: auto 0 0 0; flex-direction: row; align-items: stretch; gap: 0; padding-bottom: env(safe-area-inset-bottom); background-color: #000; }
    .quick_bar .q_tip, .quick_bar .q_whatsapp, .quick_bar .q_now .ico_plus { display: none; }
    .quick_bar .q_now, .quick_bar .q_call, .quick_bar .q_youtube, .quick_bar .q_top { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: auto; height: 58px; border-radius: 0; background: none; box-shadow: none; color: #fff; transform: none; }
    .quick_bar .q_now {background-color: #e34a00 ; border-radius: 0; border-start-end-radius: 10px; border-end-end-radius: 10px;} /* 논리 속성 — LTR 오른쪽, RTL(ar) 왼쪽 모서리만 라운드(CONSULT 칸이 시작 쪽 끝이므로 안쪽 모서리) */
    .quick_bar .q_now:hover { background: var(--point01); }   /* 터치 뒤 남는 호버(데스크톱 원형 버튼용 검정) 무효 — 주황 유지 */
    .quick_bar .q_top:hover { background: none; transform: none; }
    .quick_bar .q_now .ico_mo, .quick_bar .q_call svg, .quick_bar .q_youtube svg, .quick_bar .q_top svg { display: block; width: 20px; height: 20px; }
    .quick_bar .q_now span, .quick_bar .q_call span, .quick_bar .q_youtube span, .quick_bar .q_top .q_label { display: block; margin: 0; font-size: 10px; font-weight: 600; line-height: 1; letter-spacing: 0; white-space: nowrap; }
    body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }   /* 하단 바가 푸터 마지막 줄을 가리지 않게 */
    .footer .f_sns { display: none; }   /* SNS 아이콘 숨김 — YouTube 는 하단 바로 */

    /* 쿠키 동의 — 화면 폭 카드, 하단 바(58px) 위에 띄운다. 루트 글자(6px)에 묶이지 않게 px */
    .cookie_consent { inset-inline: var(--inPd); bottom: calc(58px + env(safe-area-inset-bottom) + 12px); max-width: none; }
    .cookie_consent .cc_banner, .cookie_consent .cc_prefs { width: auto; padding: 14px 20px 20px; border-radius: 16px; }
    .cookie_consent .cc_prefs { max-height: calc(100vh - 150px); max-height: calc(100dvh - 150px - env(safe-area-inset-bottom)); }
    .cookie_consent .cc_close { width: 40px; height: 40px; margin-block: -8px; margin-inline-end: -10px; }
    .cookie_consent .cc_close svg { width: 20px; height: 20px; }
    .cookie_consent .cc_head { gap: 8px; }
    .cookie_consent .cc_link { padding-bottom: 3px; }
    .cookie_consent .cc_btns { gap: 8px; margin-top: 20px; }
    .cookie_consent .cc_btn { min-height: 46px; padding: 10px 12px; }
    .cookie_consent .cc_banner .cc_btn { flex: 1 1 0; min-width: 0; }   /* 폰 폭: 안내 버튼 두 개가 카드 폭을 반씩 채운다 */
    .cookie_consent .cc_settings { gap: 14px; margin-top: 24px; }
    .cookie_consent .cc_list { gap: 16px; }
    .cookie_consent .cc_item { gap: 8px; padding-bottom: 16px; }
    .cookie_consent .cc_item:first-child { padding-top: 16px; }
    .cookie_consent .cc_item_head { gap: 12px; }
    .cookie_consent .cc_desc { max-width: none; }
    .cookie_consent .cc_switch { width: 40px; height: 22px; }
    .cookie_consent .cc_track::after { inset-inline-start: 3px; width: 16px; height: 16px; }
    .cookie_consent .cc_switch input:checked + .cc_track::after { inset-inline-start: calc(100% - 19px); }
    .cookie_consent .cc_save { margin-top: 24px; }
    .cookie_consent .cc_save .cc_btn { flex: 1 1 auto; min-width: 0; }
    /* 외부 콘텐츠 가림 화면 — 폰 폭 16:9(약 190px 높이) 안에 들어가게 px 로 줄이고 버튼은 터치 크기 유지 */
    .cc_gate .cc_gate_in { padding: 12px 16px; }
    .cc_gate .cc_gate_tit { font-size: 22px; }
    .cc_gate .cc_gate_txt { margin-top: 4px; font-size: 13px; line-height: 1.5; }
    .cc_gate .cc_gate_btn { min-width: 132px; min-height: 40px; margin-top: 14px; padding: 8px 20px; font-size: 14px; }

    .modal_cont .modal_top { padding: 1.6rem 1.6rem 1.6rem 2.2rem; }
    .modal_cont .cont { max-height: 68vh; }

    /* .c_form .f_captcha .captcha_img { width: 9.6rem; } */

    .modal, .over_modal { padding: 3rem 0 4rem; }
    .modal:has(.modal_cont.quick_consult) { padding: 0; }
    /* .modal_cont.quick_consult { right: 1.4rem; left: 1.4rem; bottom: 2rem; width: auto; max-height: calc(100% - 4rem); }
    .quick_consult .qc_top { padding: 2.4rem 2.4rem 0.4rem; }
    .quick_consult .c_form { padding: 2rem 2.4rem 0; }
    .quick_consult .qc_sns { gap: 2.4rem; margin-top: 2.6rem; } */

    .all_search_page .tab_box{gap: 8px;}
    .all_search_page .tab_box .btn{font-size: var(--p5);}
    .all_search_page .menu_sect .list_box {grid-template-columns: repeat(3, minmax(0, 1fr));}

    .map_box .addr {font-size: var(--p3);}
    .map_box .info_cont .c_box{padding: 15px;}
    .map_box .info_cont .c_box .tit {font-size: var(--p3);}
    .map_box .info_cont .c_box .txt {font-size: var(--p6);}

    .c_form .submit_btn {margin-top: 20px;}


    .modal:has(.modal_cont.quick_consult) { padding: 5rem 0 8rem; background: rgba(0,0,0,0.35); }
    .modal:has(.modal_cont.quick_consult) .modal_wrap { display: table; height: auto; padding: 0 2rem; }
    .modal:has(.modal_cont.quick_consult) .scroll_box { display: table-cell; height: auto; }
    
    .modal_cont.quick_consult {position: relative; max-height: none; inset-inline-end: 0; bottom: 0; transform: unset; }


}


@media screen and (max-width: 600px) {
    /* ── 컴포넌트(지도 정보카드·라벨형 폼·푸터·퀵바 등) — 2026-09-29 반응형 중복 블록 통합 ── */
    /* .modal_cont.quick_consult {right: var(--inPd); bottom: 50%;; transform: translateY(50%); width: calc(100vw - var(--inPd)*2);} */

    /* 지도+정보 카드 — 정보 카드 1열 */
    .map_box .info_cont { grid-template-columns: 1fr; }
    .map_box .info_cont .c_box:last-child { grid-column: auto; }

    .footer .footer_bottom {flex-direction: column; align-items: flex-start; gap: 5rem; margin-top: 6rem; position: relative; padding-bottom: 80px;}
    .footer .footer_bottom_right {position: absolute; inset-inline-end: 0; bottom: 0;}    
    .footer .f_qr .bubble {font-size: 10px;}
    .footer .f_logo {margin-top: 5rem; width: 160px;}
    /* ── 공통 ── */

    .mini_over {display: none !important;}
    .mini_only {display: block !important;}
    .mini_only.flex {display: flex !important;}

    .nice-select:after {inset-inline: auto 1.5rem;}


    
    .c_form .f_row {grid-template-columns: minmax(0, 1fr);} /* 두 칸 줄 → 1열 */
    /* 칸 폭은 그리드가 채우고, flex 값은 f_file·f_captcha 등 flex 줄에서 height(1040 블록 7rem)를 덮어쓰지 않게 풀어 둔다 */
    .c_form .f_row > *, .c_form .f_row > input[type="text"], .c_form .f_row > .nice-select, .c_form .f_row > .f_date {flex: 0 0 auto; width: 100%;}
    .c_form .f_row, .c_form .f_file, .c_form .f_captcha {gap: 5px;}
    .c_form .f_row + .f_row, .c_form .f_row + .f_full, .c_form .f_full + .f_row, .c_form .f_full + .f_full, .c_form .f_captcha {margin-top: 5px;}
    .c_form input[type="text"], .c_form select,  .c_form .nice-select, .c_form .file_chip {padding: 0 10px;}
    .c_form .upload_btn,
    .c_form input[type="text"], .c_form select, .c_form textarea, .c_form .nice-select, .c_form .file_chip {border-radius: 5px;}

    .c_form textarea {padding: 10px;}


    .c_form .f_agree {font-size: 9px;}


    .page_wrap .nice-select:after {width: 1em; height: 0.8em; inset-inline: auto 2rem;}


    .c_form .f_date .date_ico {width: 2.5rem; height: 2.5rem;}
    .modal_cont.quick_consult .c_form .upload_btn, 
    .c_form .upload_btn { width: 13rem; }
    .c_form .f_captcha { gap: 1rem; }
    .c_form .f_captcha .captcha_box { padding: 0 1rem; }

    .c_form .submit_btn {font-size: var(--p6);}
    

    
    /* Modal */
    .modal .member .join_wrap .inp_wrap .email_box{flex-wrap: wrap;}
    .modal .member .join_wrap .inp_wrap .email_box .nice-select{flex: unset; width: 100%;}
    

    /* 통합검색 */
    .keyword_form .keyword{gap: 5px;}
    .all_search_page .menu_sect .list_box {grid-template-columns: repeat(2, minmax(0, 1fr));}
    .all_search_page .tab_box .btn{width: calc(50% - 5px);}
    .all_search_page .menu_sect .list_box .cont .tit{font-size: 16px;}
    .all_search_page .menu_sect .list_box .cont{padding-top: 40px;}

    .sub_top .sub_top_nav .sub_dropdown > ul a {font-size: var(--p8);}


    /* FOOTER */
    .footer .footer_top {display: block;}
    .footer .f_gnb {display: none;}
    .footer .terms_txt a {font-size: var(--p6);}

    /* 마이페이지 */
    .my_write_form .form_list { padding: 4rem 0;}
    .my_write_form .form_list > li .left_txt {width: 5em;}
    .my_write_form .form_list > li:not(.mo_flex){display: block; margin-top: 3rem;}
    .my_write_form .form_list > li:not(.mo_flex) .left_txt {width: 100%; margin-bottom: 5px;}

    .my_write_form .form_list li.last_btns{ display: flex; flex-direction: column; margin-top: 5rem;}
    .my_write_form .form_list > li.last_btns .modify_btn{width: 100%; justify-content: center;}
    .my_write_form .btn_lost{order: 2; font-size: 11px; margin-top: 20px; margin-bottom: 20px;}
    .my_write_form .form_list > li.marketing .radio_box{min-height: 0;}

    .my_page .history_sect .description{flex-direction: column;}
    .my_page .history_sect .description a{margin-top: 8px;}

    .footer .f_hours .time,
    .footer .f_hours .day {font-size: var(--p6);}
    .footer .f_hours .badge {font-size: var(--p8);}


    .footer .f_email .mail,
    .footer .f_hours .tit {font-size: var(--p4);}

    

}

/* ===== ≤1240 섹션 타이틀 리빌 해제(2026-09-23) — landing-common.css 가 .sect_tit_box.active 전까지 숨기던 제목/설명을 처음부터 보이게(메인·서브 공통). common.css 가 landing-common.css 뒤에 로드되어 여기서 덮는다 ===== */
@media screen and (max-width: 1240px) {
    .sect_txt, .sect_tit, .sect_desc, .sub_cont_tit, .sub_cont_txt { opacity: 1; transform: none; transition: none; }
}

/* ===== 전화번호 링크(2026-09-30) — 전화 걸기는 1240 이하(모바일·태블릿)에서만. PC(1241~)는 링크 비활성, 호버 효과 없음(푸터·오시는 길·상담예약 공통) ===== */
@media screen and (min-width: 1241px) {
    a[href^="tel:"] {pointer-events: none; cursor: text;}
}
