/* 상담 폼에 더한 동의 칸 · 자동등록 방지 칸 (아임웹 폼 모양에 맞춤) */
.rt-consent { margin-top: 4px; font-size: 13px; line-height: 1.5; color: #333; }
.rt-consent .rt-agree-row { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0 0; }
.rt-consent label { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-weight: 400; cursor: pointer; flex: 1 1 auto; }
.rt-consent input[type="checkbox"] { width: 16px; height: 16px; margin: 2px 0 0; flex: none; accent-color: #6b5d55; }
.rt-consent .rt-req { color: #e2483d; }
.rt-consent button[data-rt-more] { flex: none; border: 0; background: none; padding: 0 2px; font: inherit; font-size: 12px; color: #888; text-decoration: underline; cursor: pointer; }
.rt-consent .rt-agree-text { margin: 4px 0 0 22px; padding: 8px 10px; background: rgba(0, 0, 0, .035); border-radius: 4px; font-size: 12px; color: #555; }
.rt-consent .rt-agree-text p { margin: 0; }
.rt-consent .rt-agree-text a { color: inherit; text-decoration: underline; }
.rt-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
._input_form_submit.rt-busy { opacity: .55; pointer-events: none; }

/* 언어 전환 (머리띠 국기 자리): 지금 언어 국기 + 누르면 7개 언어 */
.rt-lang { position: relative; display: inline-block; vertical-align: middle; margin: 0 2.5px; }
.rt-lang-btn { display: inline-flex; align-items: center; gap: 5px; padding: 4px 2px; border: 0; background: none; cursor: pointer; line-height: 0; }
.rt-lang-btn { color: #fff; }
.rt-lang-globe { width: 16px; height: 16px; flex: none; opacity: .92; }
.rt-lang-cur { font: 600 12.5px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans", sans-serif; letter-spacing: .02em; color: inherit; }
.rt-lang-caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; color: #fff; opacity: .85; transition: transform .15s; }
.rt-lang-btn[aria-expanded="true"] .rt-lang-caret { transform: rotate(180deg); }
.rt-lang-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-radius: 2px; }
.rt-lang-menu { position: fixed; z-index: 2147483000; min-width: 160px; margin: 0; padding: 6px; list-style: none; background: #fff; border-radius: 8px; box-shadow: 0 10px 30px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .06); text-align: left; }
.rt-lang-menu li { margin: 0; padding: 0; }
.rt-lang-menu a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 6px; color: #333 !important; text-decoration: none !important; font: 400 14px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans", sans-serif; letter-spacing: 0; white-space: nowrap; }
.rt-lang-menu a:hover, .rt-lang-menu a:focus-visible { background: #f3f0ee; outline: none; }
.rt-lang-menu a[aria-current="true"] { font-weight: 700; background: #f3f0ee; }
.rt-lang-menu img { width: 22px; height: 15px; object-fit: cover; border: 1px solid rgba(0, 0, 0, .1); flex: none; }
@media (prefers-reduced-motion: reduce) { .rt-lang-caret { transition: none; } }

/* 아랍어판: 화면 배치는 그대로, 글 문단은 오른쪽→왼쪽으로 읽히게 */
html[dir="rtl"] body { direction: ltr; }
html[dir="rtl"] :is(p, h1, h2, h3, h4, h5, h6, li, td, th, label, dt, dd, blockquote, .text-table, .plain_name, .rt-agree-text) { unicode-bidi: plaintext; }
html[dir="rtl"] input, html[dir="rtl"] textarea { unicode-bidi: plaintext; }

/* 외국어판: 한국어 이미지로 된 이벤트 팝업은 숨김 (언어별 팝업은 어드민 팝업 관리에서) */
html[data-rt-page]:not([data-rt-page="ko"]) .popup-banner-wrap { display: none !important; }

/* 원본 사이트처럼 본문 가로 넘침을 자른다 (모바일에서 몇 px 옆으로 밀리던 것) */
body { overflow-x: clip; }

/* PC 머리띠: 원래 국기 3개 자리(보이지 않게, 메뉴 위치 유지) · 언어 버튼은 검색 아이콘 왼쪽 */
.rt-flag-spacer { visibility: hidden; pointer-events: none; }
[data-widget-type="inline_search_btn"] { position: relative; }
.rt-lang-pc { position: absolute; right: 100%; top: 0; bottom: 0; display: flex; align-items: center; margin-right: 18px; white-space: nowrap; line-height: 0; }
.rt-lang-pc .rt-lang { margin: 0; }

/* 상담 폼 자리 → 연락 버튼 (build/site.mjs). 사이트 색(#675b56)·글꼴 그대로 */
.rt-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 720px; margin: 8px auto 0; }
.rt-ct { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 24px 12px 20px; background: #fff; border: 1px solid #dcd7d4; color: #333 !important; text-decoration: none !important; text-align: center; transition: border-color .15s, box-shadow .15s; }
.rt-ct:hover, .rt-ct:focus-visible { border-color: #675b56; box-shadow: 0 4px 14px rgba(103, 91, 86, .12); outline: none; }
.rt-ct-ico { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: 4px; border-radius: 50%; background: #f4f1ef; color: #675b56; }
.rt-ct-kakao .rt-ct-ico { background: #fee500; color: #3a1d1d; }
.rt-ct b { font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.rt-ct small { font-size: 12px; color: #888; }
@media (max-width: 767px) {
  .rt-contact { grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 4px; }
  .rt-ct { flex-direction: row; justify-content: flex-start; gap: 14px; padding: 14px 16px; text-align: left; }
  .rt-ct-ico { width: 40px; height: 40px; margin: 0; flex: none; }
  .rt-ct b { font-size: 14px; }
  .rt-ct small { margin-left: auto; }
}

/* 푸터: 주소·진료 시간·전화·문의하기 */
.rt-foot-tel { color: inherit !important; text-decoration: none !important; }
.rt-foot-hours { opacity: .85; }
/* 푸터 정보 블록 (build/site.mjs FOOT_NEW): 낱말 중간에서 끊지 않고, 전화·팩스와 요일 묶음은 칸 단위로만 줄을 바꾼다 */
.rt-foot-addr { word-break: keep-all; text-wrap: balance; }
.rt-foot-telfax, .rt-foot-hours { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 14px; }
.rt-foot-telfax > *, .rt-foot-hours > span { white-space: nowrap; }
.rt-foot-links a + a { margin-left: 18px; }
.rt-foot-links a[data-rt-info][hidden] { display: none !important; }

/* 아임웹 회원 기능(로그인·회원가입)과 회원 전용 '전후사진' 메뉴는 새 사이트에 없다 → 숨김 */
#w2022100699e51c502248e, #w202210066a7098826bc9a, #w2022100603d20954d05cc, [data-code="m20221006a96ba5da407b9"] { display: none !important; }

/* 사이트 검색창 (머리띠 검색 아이콘) */
.rt-search { position: fixed; inset: 0; z-index: 2147483001; background: rgba(20, 16, 14, .45); display: flex; justify-content: center; align-items: flex-start; padding: 8vh 16px 16px; }
.rt-search[hidden] { display: none; }
html.rt-s-open { overflow: hidden; }
.rt-s-panel { width: min(640px, 100%); max-height: 80vh; display: flex; flex-direction: column; background: #fff; box-shadow: 0 18px 50px rgba(0, 0, 0, .25); }
.rt-s-form { display: flex; align-items: center; border-bottom: 2px solid #675b56; }
.rt-s-input { flex: 1 1 auto; min-width: 0; height: 58px; padding: 0 18px; border: 0; outline: none; font: inherit; font-size: 17px; color: #333; background: transparent; -webkit-appearance: none; appearance: none; }
.rt-s-close { width: 56px; height: 58px; border: 0; background: none; font-size: 28px; line-height: 1; color: #888; cursor: pointer; }
.rt-s-close:hover { color: #333; }
.rt-s-list { list-style: none; margin: 0; padding: 0; overflow: auto; }
.rt-s-list li { margin: 0; border-bottom: 1px solid #eee; }
.rt-s-list a { display: block; padding: 14px 18px; color: #333 !important; text-decoration: none !important; }
.rt-s-list a:hover, .rt-s-list a:focus-visible { background: #f6f3f1; outline: none; }
.rt-s-list b { display: block; font-size: 15px; color: #675b56; }
.rt-s-list span { display: block; margin-top: 3px; font-size: 13px; color: #777; line-height: 1.5; overflow-wrap: anywhere; }
.rt-s-list mark { background: #f3e6c4; color: inherit; padding: 0 1px; }
.rt-s-none { padding: 22px 18px; color: #888; font-size: 14px; }
@media (max-width: 767px) { .rt-search { padding: 0; } .rt-s-panel { max-height: 100vh; height: 100%; width: 100%; } }
html[dir="rtl"] .rt-s-list span, html[dir="rtl"] .rt-s-list b, html[dir="rtl"] .rt-s-input { unicode-bidi: plaintext; }

/* /login: 회원 서비스 안내 (build/site.mjs) */
.rt-login-off { padding: 28px 8px 8px; text-align: center; font-size: 14px; line-height: 1.7; color: #555; }
.rt-login-off p { margin: 0 0 8px; }
.rt-login-off-t { font-size: 18px; font-weight: 700; color: #333; margin-bottom: 14px !important; }
.rt-login-off a { color: #675b56 !important; text-decoration: underline; }
.rt-login-off .rt-login-off-home { display: inline-block; margin-top: 14px; padding: 8px 30px; border: 1px solid #333; color: #333 !important; text-decoration: none; }

/* 직접 넣은 구역 배경 영상 (build/site.mjs 6 · rt/retoo.js) — 아임웹 비메오 배경과 같은 자리:
   구역보다 사방 10px 크게, 가득 채우고(cover), 넘치는 쪽은 위 기준·가로 가운데 */
.section_wrap .section_vg_wrap .rt-vg video { position: absolute; left: -10px; top: -10px; width: calc(100% + 20px); height: calc(100% + 20px); max-width: none; object-fit: cover; object-position: 50% 0; }

/* 외국어판 떠 있는 버튼(build/langs.mjs floatStack): 영어 사이트 구성은 5개(KakaoTalk·Instagram·EVENT·LINE·WeChat)라
   휴대폰에서는 화면을 덜 가리게 작게 그린다. PC 와 3개짜리(한국어·일본어)는 사이트 기본 크기 그대로 */
@media (max-width: 768px) {
  .im-float-stack[data-n="5"] { gap: 8px; }
  .im-float-stack[data-n="5"] .im-float-btn { width: 56px; height: 56px; }
  .im-float-stack[data-n="5"] .im-float-icon { width: 21px; height: 21px; margin-bottom: 4px; }
  .im-float-stack[data-n="5"] .im-float-text { font-size: 10px; }
}

/* 정사각형 사진 카드(퍼스널 소프웨이브·미라젯 '진단·장비' 카드 3개씩): 카드 높이는 고정이고 사진은 꽉 채우기(cover).
   처음(10-21 검수)에는 사진을 카드 아래쪽에 맞춰 장비가 글자를 가리지 않게 했으나, 장비 윗부분·얼굴이 잘려 보여
   병원 요청("약간 겹쳐도 사진이 다 나와야")으로 위쪽 기준으로 바꿈 — 사진 내용은 다 보이고, 넘치는 아래쪽 여백만 잘린다 */
@media (max-width: 767px) {
  #text_w2024112135b2424d1e49d .text_bg_img, #text_w20241121675fbafb99b9a .text_bg_img, #text_w20241121d196203ceff91 .text_bg_img,
  #text_w202412102ec9ef5e5c643 .text_bg_img, #text_w20241210931fa38342af4 .text_bg_img, #text_w20241210534f91ba03a95 .text_bg_img { background-position: 50% 0 !important; }
}

/* 휴대폰 떠 있는 버튼 접기 (rt/retoo.js) — '상담' 하나만 보이고 누르면 위로 펼친다. 화면 아래 안전 영역(아이폰 홈 막대)만큼 띄운다.
   맨 끝 내용(푸터 링크 등)이 버튼 아래에 갇히지 않게 페이지 끝에 버튼 높이만큼 여백 */
.rt-fl-toggle { display: none; }
@media (max-width: 767px) {
  .im-float-stack.rt-fl { right: calc(12px + env(safe-area-inset-right, 0px)); bottom: calc(12px + env(safe-area-inset-bottom, 0px)); gap: 8px; }
  .im-float-stack.rt-fl .im-float-btn { width: 58px; height: 58px; }
  .im-float-stack.rt-fl > a.im-float-btn { display: none; }
  .im-float-stack.rt-fl.rt-fl-open > a.im-float-btn { display: flex; animation: rt-fl-in .16s ease-out both; }
  .im-float-stack.rt-fl .rt-fl-toggle { display: flex; border: 0; padding: 0; cursor: pointer; color: #a79a95; font: inherit; }
  .im-float-stack.rt-fl .rt-fl-toggle .rt-fl-ico { display: block; line-height: 0; margin-bottom: 3px; }
  .im-float-stack.rt-fl .rt-fl-toggle:focus-visible { outline: 2px solid #675b56; outline-offset: 2px; }
  .im-float-stack.rt-fl-open .rt-fl-toggle { background: #675b56; color: #fff; }
  .im-float-stack.rt-fl-open .rt-fl-toggle .im-float-text { color: #fff; }
  #doz_footer { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
@keyframes rt-fl-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .im-float-stack.rt-fl.rt-fl-open > a.im-float-btn { animation: none; } }

/* 병원 관리 › 팝업 (rt/retoo.js popups) — PC 전용(rt-pop-pc)·모바일 전용(rt-pop-m)을 767px 기준으로 나눈다.
   모바일은 가운데 정렬, 화면 너비의 --mw · 위 여백 --my (아임웹 모바일 팝업 규칙 left/right 0 을 덮어쓴다) */
@media (min-width: 768px) { .pop-container.rt-pop-m { display: none !important; } }
@media (max-width: 767px) {
  .pop-container.rt-pop { top: var(--my, 100px) !important; width: var(--mw, 100%) !important; left: calc((100% - var(--mw, 100%)) / 2) !important; right: auto !important; }
  .pop-container.rt-pop-pc { display: none !important; }
}

/* Community 안내 (/community — build/site.mjs COMMUNITY_HUB): 원본은 빈 페이지라 하위 메뉴로 가는 카드만. 톤은 예약 안내 화면과 같게 */
.rt-comm { --rc: #675b56; --rc-soft: #a79a95; --rc-line: #e9e4e0; color: #6f6661; background: #fff; }
html[lang="ko"] .rt-comm { word-break: keep-all; }
.rt-comm-in { max-width: 1080px; margin: 0 auto; padding: 150px 15px 110px; }
.rt-comm-eyebrow { margin: 0 0 14px; font-size: 13px; letter-spacing: .34em; text-indent: .34em; color: var(--rc-soft); text-align: center; }
.rt-comm h2 { margin: 0; font-size: 30px; line-height: 1.3; font-weight: 700; color: var(--rc); text-align: center; }
.rt-comm h2::after { content: ""; display: block; width: 28px; height: 1px; margin: 24px auto; background: var(--rc); }
.rt-comm-sub { margin: 0 0 48px; font-size: 15px; line-height: 1.8; text-align: center; }
.rt-comm-grid { display: grid; grid-template-columns: repeat(2, 1fr); max-width: 760px; margin: 0 auto !important; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--rc-line); border: 1px solid var(--rc-line); }
.rt-comm-grid li { display: flex; flex-direction: column; align-items: center; padding: 44px 18px 38px; background: #fff; text-align: center; }
.rt-comm-grid h3 { margin: 0 0 9px; font-size: 18px; font-weight: 700; color: var(--rc); }
.rt-comm-grid p { min-height: 3.3em; margin: 0 0 20px; font-size: 13.5px; line-height: 1.65; color: #8a807b; }
.rt-comm-btn { display: inline-block; min-width: 152px; margin-top: auto; padding: 10px 16px; border: 1px solid var(--rc); font-size: 12px; letter-spacing: .08em; color: var(--rc); text-decoration: none; transition: background-color .2s, color .2s; }
.rt-comm-btn:hover, .rt-comm-btn:focus-visible { background: var(--rc); color: #fff; text-decoration: none; }
@media (max-width: 767px) { .rt-comm-in { padding: 110px 20px 80px; } .rt-comm h2 { font-size: 24px; } .rt-comm-grid { grid-template-columns: 1fr; } }

/* 회원 로그인·가입 없음 (2026-10-20 병원 요청: 가입을 없앴으니 로그인 창도 뺀다)
   아임웹 머리띠의 Login·Register 버튼, 휴대폰 메뉴 서랍 맨 위 '로그인이 필요합니다 · 로그인', 프로필 메뉴를 숨긴다.
   /login 주소로 바로 들어오면 안내문(build/site.mjs LOGIN_OFF)이 보인다 */
.inline_widget.login_btn,
#mobile_slide_menu .profile-area,
#member_profile { display: none !important; }

/* 언어별 메신저 상담 버튼 (build/langs.mjs MESSENGER): 일본어 LINE · 중국어 위챗 · 대만 위챗·LINE — 상담 버튼 묶음이 4·5개가 된다.
   위챗은 <details> 로, 누르면 그 칸 아래로 QR 이 펼쳐진다 */
.rt-contact[data-n="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 900px; }
.rt-contact[data-n="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 1040px; }
.rt-ct-line .rt-ct-ico, .rt-ct-wechat .rt-ct-ico { background: #06c755; color: #fff; }
.rt-ct-wechat .rt-ct-ico { background: #07c160; }
.rt-ct-wx { display: block; padding: 0; cursor: pointer; }
.rt-ct-wx > summary { list-style: none; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 24px 12px 20px; }
.rt-ct-wx > summary::-webkit-details-marker { display: none; }
.rt-ct-wx[open] { border-color: #675b56; }
.rt-ct-qr { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0 12px 18px; cursor: default; }
.rt-ct-qr img { display: block; width: 160px; max-width: 100%; height: auto; }
.rt-ct-qr small { font-size: 12px; color: #888; }
@media (max-width: 767px) {
  .rt-contact[data-n="4"], .rt-contact[data-n="5"] { grid-template-columns: minmax(0, 1fr); }
  .rt-ct-wx { padding: 0; }
  .rt-ct-wx > summary { flex-direction: row; justify-content: flex-start; gap: 14px; padding: 14px 16px; text-align: left; }
}

/* 휴대폰 머리띠 아래 가로 메뉴 (build/site.mjs carouselMenu): 원본 14쪽에만 있던 아임웹 '모바일 캐러셀 메뉴'를 모든 페이지에.
   모양은 원본 페이지 안 스타일(st05 · 밑줄형)을 옮겨 왔다 — 원본에 이 스타일이 없는 페이지에서도 같게 보이도록 */
.mobile_carousel_nav .mobile_nav_depth { display: flex !important; align-items: stretch; height: 46px; padding: 0 6px !important; white-space: nowrap; position: relative; overflow-x: auto; overflow-y: hidden; -ms-overflow-style: none; scrollbar-width: none; background-color: #fff; box-sizing: border-box; }
.mobile_carousel_nav .depth_first { border-bottom: 1px solid #dfdbd9; }
.mobile_carousel_nav .depth_first::-webkit-scrollbar { display: none; height: 0; width: 0; }
/* 글자 위아래 여백을 같게: 줄 높이(line-height)로 가운데를 맞추면 휴대폰 기본 글꼴에 따라 글자가 위로 붙어 보였다 → 칸을 flex 로 세로 가운데 */
.mobile_carousel_nav .nav-item, .mobile_carousel_nav .st05 .nav-item, .mobile_carousel_nav .st05 .active { display: flex !important; align-items: center; flex: none; height: auto !important; margin: 0 !important; padding: 0 12px !important; box-sizing: border-box; border-bottom: 2px solid transparent; border-top: 2px solid transparent; }
.mobile_carousel_nav .nav-item:before, .mobile_carousel_nav .nav-item a:before { display: none !important; }
.mobile_carousel_nav .nav-item > a, .mobile_carousel_nav .st05 .nav-item a { display: block !important; height: auto !important; line-height: 1.2 !important; padding: 0 !important; font-size: 13px; color: #727272; letter-spacing: 1px; background: transparent !important; border: 0 !important; }
.mobile_carousel_nav .nav-item > a:focus { outline: none; }
.mobile_carousel_nav .st05 .active { border-bottom-color: #675b56; }
.mobile_carousel_nav .st05 .active > a { color: #675b56 !important; font-weight: bold; }

/* 휴대폰 메뉴 서랍 맨 위 갈색 띠 (병원 요청): 로그인 칸을 뺀 자리에 머리띠와 같은 갈색 빈 공간 — 첫 메뉴가 화면 맨 위에 붙어 누르기 어려웠다 */
#mobile_slide_menu .viewport-nav.mobile::before { content: ""; display: block; height: 60px; background: #675b56; }

/* 구역 배경 유튜브 영상 (rt/retoo.js): 유튜브 표시가 사라질 때까지 영상은 숨기고 영상 첫 장면 사진을 보인다 */
.section_vg_wrap.rt-yt-wrap { background-size: cover; background-position: 50% 50%; background-repeat: no-repeat; }
.section_vg_wrap iframe.rt-yt { transition: opacity .8s ease !important; pointer-events: none; }
.section_vg_wrap iframe.rt-yt:not(.on) { opacity: 0 !important; }   /* 아임웹 .section_vg.active 가 opacity 를 1 로 덮는다 */

/* 직접 넣은 구역 배경 영상이 재생되면 그 구역의 배경색 판(아임웹 .section_bg_color — 영상보다 위에 그려진다)을 걷는다.
   영상이 안 나오는 동안에는 원래 배경색 그대로 */
.section_wrap > .section_bg_color { transition: opacity .8s ease; }
.section_wrap.rt-vg-on > .section_bg_color { opacity: 0; }
