/* =========================================================
   GEO 텍스트 레이어 공통 스타일
   - 기존 디자인(style.css) 위에 얹는 보강 스타일
   - 색상: 배경 #f5eee8 / 제목 #342c29 / 본문 #61605f / 포인트 #c7b6a4 / 보조배경 #ece5db
   ========================================================= */

/* h1~h3 를 기존 .ttl 디자인 그대로 쓰기 위한 초기화 */
:where(.geo_h) {
  margin: 0;
  padding: 0;
  font: inherit;
}

/* ---------- 인트로 정의문 (한 줄 정의) ---------- */
.lumineck .intro_txt_section .intro_txt_grp {
  padding-bottom: 60px;            /* 기존 275px 중 일부를 정의 블록으로 이동 */
}
.geo_intro_def {
  padding-bottom: 215px;
}
.geo_def {
  margin: 0;
  font-size: 19px;
  line-height: 1.75;
  letter-spacing: -0.2px;
  color: #61605f;
}
.geo_def strong {
  font-weight: 600;
  color: #342c29;
}

/* ---------- 목주름 종류 표 ---------- */
.geo_types {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto 90px;
  padding: 0 16px;
}
.geo_types_lead {
  margin: 0 0 34px;
  font-size: 19px;
  line-height: 1.75;
  text-align: center;
  color: #61605f;
}
.geo_table_wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.geo_table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #c7b6a4;
  background-color: rgba(250, 247, 244, 0.7);
  font-size: 16px;
  line-height: 1.6;
  color: #342c29;
}
.geo_table caption {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  font-size: 0;
}
.geo_table th,
.geo_table td {
  padding: 16px 18px;
  border-bottom: 1px solid #ddd1c4;
  text-align: left;
  vertical-align: top;
}
.geo_table thead th {
  background-color: #ece5db;
  font-weight: 600;
  white-space: nowrap;
}
.geo_table tbody th {
  font-weight: 600;
  white-space: nowrap;
}
.geo_table td strong {
  font-weight: 600;
}
.geo_note {
  margin: 18px 0 0;
  font-size: 16px;
  line-height: 1.75;
  color: #61605f;
}
.geo_note strong {
  font-weight: 600;
  color: #342c29;
}

/* ---------- 시술 과정 단계 (텍스트) ---------- */
.geo_steps {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  max-width: 1490px;
  margin: 70px auto 90px;
  padding: 0 36px;
  list-style: none;
  counter-reset: geo-step;
}
.geo_steps > li {
  flex: 1 1 200px;
  padding: 22px 20px 24px;
  border-top: 2px solid #c7b6a4;
  background-color: rgba(250, 247, 244, 0.7);
}
.geo_steps > li strong {
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 600;
  color: #342c29;
}
.geo_steps > li strong::before {
  counter-increment: geo-step;
  content: counter(geo-step, decimal-leading-zero);
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 1px;
  color: #a8957f;
}
.geo_steps > li p {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: #61605f;
}

/* ---------- FAQ (details/summary) ---------- */
.geo_faq_wrap {
  margin-top: 80px;
}
.geo_faq details {
  border-bottom: 1px solid #ddd1c4;
}
.geo_faq summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 20px 60px 20px 20px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  color: #342c29;
}
.geo_faq summary::-webkit-details-marker {
  display: none;
}
.geo_faq summary::before {
  content: "Q.";
  margin-right: 10px;
  font-weight: 600;
  color: #c7b6a4;
}
.geo_faq summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 26px;
  width: 9px;
  height: 9px;
  border-right: 1px solid #342c29;
  border-bottom: 1px solid #342c29;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.2s ease;
}
.geo_faq details[open] summary::after {
  transform: translateY(-30%) rotate(225deg);
}
.geo_faq .geo_faq_a {
  padding: 0 60px 24px 48px;
  font-size: 16px;
  line-height: 1.8;
  color: #61605f;
}
.geo_faq .geo_faq_a p {
  margin: 0;
  font-size: inherit;   /* examples.css 의 p{font-size:2em} 무력화 */
  line-height: inherit;
}
.geo_faq .geo_faq_a a {
  color: #342c29;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- 모바일 ---------- */
@media (max-width: 900px) {
  .lumineck .intro_txt_section .intro_txt_grp {
    padding-bottom: 28px;
  }
  .geo_intro_def {
    padding: 0 16px 60px;
  }
  .geo_def {
    font-size: 15px;
    line-height: 1.7;
  }
  .geo_types {
    margin-bottom: 50px;
  }
  .geo_types_lead {
    margin-bottom: 20px;
    font-size: 15px;
  }
  /* 모바일: 표 → 카드형으로 쌓기 */
  .geo_table {
    font-size: 14px;
    border-top: 0;
  }
  .geo_table thead {
    display: none;
  }
  .geo_table,
  .geo_table tbody,
  .geo_table tr,
  .geo_table th,
  .geo_table td {
    display: block;
  }
  .geo_table tr {
    margin-bottom: 12px;
    padding: 14px 16px 6px;
    border-top: 2px solid #c7b6a4;
    border-bottom: 0;
    background-color: rgba(250, 247, 244, 0.7);
  }
  .geo_table tbody th {
    padding: 0 0 8px;
    border-bottom: 1px solid #ddd1c4;
    font-size: 16px;
    white-space: normal;
  }
  .geo_table td {
    padding: 8px 0;
    border-bottom: 0;
  }
  .geo_table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    font-size: 12px;
    color: #a8957f;
  }
  .geo_note {
    font-size: 14px;
  }
  .geo_steps {
    display: block;
    margin-top: 40px;
    padding: 0 16px;
  }
  .geo_steps > li {
    margin-bottom: 12px;
    padding: 16px 16px 18px;
  }
  .geo_steps > li strong {
    font-size: 16px;
  }
  .geo_steps > li p {
    font-size: 14px;
  }
  .geo_faq_wrap {
    margin-top: 50px;
  }
  .geo_faq summary {
    padding: 16px 36px 16px 0;
    font-size: 15px;
  }
  .geo_faq summary::after {
    right: 8px;
  }
  .geo_faq .geo_faq_a {
    padding: 0 8px 18px 26px;
    font-size: 14px;
  }
}

/* 한국어 단어 단위 줄바꿈 (숫자·단어가 중간에서 끊기지 않도록) */
.geo_def,
.geo_types,
.geo_steps,
.geo_faq,
.lumineck .custom_item .txt,
.lumineck .custom_item .ttl {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* =========================================================
   공통 GEO 섹션 (정의 · 권하는 분 · 카드 · 표)
   ========================================================= */
.geo_section {
  padding: 0 16px 140px;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.geo_section.pad_top {
  padding-top: 130px;
}
.geo_inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}
.geo_sec_ttl {
  margin-bottom: 34px;
  font-size: 35px;
  font-weight: 600;
  text-align: center;
  color: #342c29;
}
.geo_inner > .geo_def {
  max-width: 980px;
  margin: 0 auto 56px;
  text-align: center;
}
.geo_sub_ttl {
  margin: 56px 0 18px;
  padding-bottom: 8px;
  border-bottom: 1px solid #c7b6a4;
  font-size: 20px;
  font-weight: 600;
  color: #342c29;
}
.geo_inner > .geo_sub_ttl:first-child,
.geo_inner > .geo_def + .geo_sub_ttl {
  margin-top: 0;
}
.geo_list {
  margin: 0;
  padding: 0 0 0 22px;
}
.geo_list li {
  list-style-type: square;
  font-size: 17px;
  line-height: 1.75;
  color: #342c29;
}
.geo_inner .geo_types {
  padding: 0;
  margin-bottom: 0;
}
.geo_cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 28px;
}
.geo_card {
  padding: 24px 24px 26px;
  border-top: 2px solid #c7b6a4;
  background-color: rgba(250, 247, 244, 0.7);
}
.geo_card_ttl {
  margin-bottom: 12px;
  font-size: 20px;
  font-weight: 600;
  color: #342c29;
}
.geo_card_sub {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: #a8957f;
}
.geo_card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  color: #61605f;
}
.geo_steps_ttl {
  max-width: 1490px;
  margin: 70px auto -50px;
  padding: 0 36px;
  font-size: 20px;
  font-weight: 600;
  color: #342c29;
}
/* 기존 compare_section 을 헬퍼로 출력한 경우의 위치 보정 */
.geo_compare {
  padding-top: 0;
}

@media (max-width: 900px) {
  .geo_section {
    padding-bottom: 70px;
  }
  .geo_section.pad_top {
    padding-top: 60px;
  }
  .geo_sec_ttl {
    margin-bottom: 20px;
    font-size: 25px;
  }
  .geo_inner > .geo_def {
    margin-bottom: 34px;
    text-align: left;
  }
  .geo_sub_ttl {
    margin: 36px 0 12px;
    font-size: 17px;
  }
  .geo_list li {
    font-size: 15px;
  }
  .geo_cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .geo_card {
    padding: 16px 16px 18px;
  }
  .geo_card_ttl {
    font-size: 17px;
  }
  .geo_card p {
    font-size: 14px;
  }
  .geo_steps_ttl {
    margin: 40px auto -28px;
    padding: 0 16px;
    font-size: 17px;
  }
}

/* ---------- 의료진 페이지 보조 ---------- */
.geo_doc_extra {
  margin: 28px 0 0;
  padding-top: 18px;
  border-top: 1px solid #ddd1c4;
}
.geo_doc_extra > div {
  display: flex;
  gap: 14px;
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 1.7;
  color: #61605f;
}
.geo_doc_extra dt {
  flex-shrink: 0;
  width: 64px;
  font-weight: 600;
  color: #342c29;
}
.geo_doc_extra dd {
  margin: 0;
}
.geo_timeline time {
  display: inline-block;
  min-width: 64px;
  margin-right: 6px;
  font-weight: 600;
  color: #a8957f;
}
.geo_timeline em {
  font-style: normal;
  color: #342c29;
  margin-right: 4px;
}
.geo_section .geo_def a,
.geo_faq .geo_faq_a a {
  color: #342c29;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 900px) {
  .geo_doc_extra > div { flex-direction: column; gap: 2px; font-size: 14px; }
  .geo_timeline time { display: block; min-width: 0; }
}

/* =========================================================
   비급여 진료비 안내 (nonpay.php) — 제증명 수수료 표
   ========================================================= */
.nonpay_body {
  max-width: 760px;
  margin: 0 auto;
  word-break: keep-all;
}
.nonpay .agree .sub_grp {
  margin-bottom: 14px;
}
.nonpay .agree .sub_grp .txt02 {
  font-size: 24px;
  font-weight: 600;
  color: #342c29;
}
.nonpay_lead {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 1.8;
  color: #61605f;
}
.nonpay_table_wrap {
  overflow-x: auto;
}
.nonpay_table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #c7b6a4;
  font-size: 15px;
  line-height: 1.5;
  color: #342c29;
}
.nonpay_table caption {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  font-size: 0;
}
.nonpay_table th,
.nonpay_table td {
  padding: 11px 14px;
  border-bottom: 1px solid #e3d9cd;
  text-align: left;
  vertical-align: middle;
}
.nonpay_table thead th {
  background-color: #f5eee8;
  font-size: 14px;
  font-weight: 600;
  color: #61605f;
}
.nonpay_table tbody th {
  width: 34%;
  font-weight: 500;
}
.nonpay_table td.price {
  width: 22%;
  font-weight: 600;
  white-space: nowrap;
}
.nonpay_table td.note {
  font-size: 14px;
  color: #61605f;
}
.nonpay_updated {
  margin: 12px 0 36px;
  font-size: 13px;
  text-align: right;
  color: #8a827b;
}
.nonpay_updated time {
  font-weight: 600;
  color: #61605f;
}
.nonpay_notes {
  margin: 0;
  padding: 18px 20px;
  border-radius: 6px;
  background-color: #faf7f4;
  list-style: none;
}
.nonpay_notes li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  line-height: 1.75;
  color: #61605f;
}
.nonpay_notes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 4px;
  height: 4px;
  background-color: #c7b6a4;
}
.nonpay_notes a {
  color: #342c29;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 900px) {
  .nonpay .agree .sub_grp .txt02 {
    font-size: 17px;
  }
  .nonpay_lead {
    margin-bottom: 18px;
    font-size: 13px;
  }
  .nonpay_table {
    font-size: 13px;
  }
  .nonpay_table th,
  .nonpay_table td {
    padding: 9px 8px;
  }
  .nonpay_table thead th {
    font-size: 12px;
  }
  .nonpay_table tbody th {
    width: 36%;
  }
  .nonpay_table td.price {
    width: 26%;
  }
  .nonpay_table td.note {
    font-size: 12px;
  }
  .nonpay_updated {
    margin-bottom: 24px;
    font-size: 12px;
  }
  .nonpay_notes {
    padding: 14px 14px;
  }
  .nonpay_notes li {
    font-size: 12px;
  }
}

/* =========================================================
   메인 인스타그램 섹션 (조회수 상위 릴스)
   ========================================================= */
.insta_grid {
  display: flex;
  justify-content: center;
  gap: 18px;
  width: 100%;
  max-width: 1560px;
  margin: 50px auto 0;
  padding: 0 16px;
  list-style: none;
  box-sizing: border-box;
}
.insta_item {
  flex: 0 1 232px;
  min-width: 0;
}
.insta_item a {
  position: relative;
  display: block;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border-radius: 10px;
  background-color: #ece5db;
  box-shadow: 0 6px 18px rgba(52, 44, 41, 0.08);
  transition: transform .35s ease, box-shadow .35s ease;
}
.insta_item a:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 28px rgba(52, 44, 41, 0.16);
}
.insta_item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.insta_views {
  position: absolute;
  left: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 20px;
  background: rgba(52, 44, 41, 0.72);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.4;
}
.insta_play {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #fff;
}
.insta_more {
  display: inline-block;
  margin-top: 34px;
  padding: 10px 26px;
  border: 1px solid #c7b6a4;
  border-radius: 30px;
  font-size: 14px;
  color: #342c29;
  letter-spacing: 0;
  transition: background-color .3s, color .3s;
}
.insta_more:hover {
  background-color: #342c29;
  border-color: #342c29;
  color: #fff;
}
@media (max-width: 900px) {
  #section5 .instar_wrap {
    padding: 70px 0 0; /* 고정 헤더에 제목이 가리지 않도록 */
  }
  .insta_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 28px;
    padding: 0 16px;
  }
  .insta_item {
    flex: none;
  }
  .insta_item a {
    border-radius: 8px;
  }
  .insta_views {
    left: 6px;
    bottom: 6px;
    padding: 3px 7px;
    font-size: 11px;
  }
  .insta_more {
    margin-top: 22px;
    font-size: 13px;
  }
}

/* 언어 메뉴: 현재 언어 강조 */
.lang-menu li.on a {
  font-weight: 700;
  color: #342c29;
}
.lang-menu li.on a::after {
  display: none;
}

/* 한국어가 아닌 페이지: default.css 의 p{word-break:break-all} 과 geo 영역의 keep-all 은
   영어·일본어·중국어 문장에서 단어가 중간에 끊기므로 기본 규칙으로 되돌림 */
html:not([lang="ko"]) p,
html:not([lang="ko"]) li,
html:not([lang="ko"]) td,
html:not([lang="ko"]) th,
html:not([lang="ko"]) dd,
html:not([lang="ko"]) .geo_def,
html:not([lang="ko"]) .geo_types,
html:not([lang="ko"]) .geo_steps,
html:not([lang="ko"]) .geo_faq,
html:not([lang="ko"]) .geo_section,
html:not([lang="ko"]) .nonpay_body,
html:not([lang="ko"]) .nonpay_group,
html:not([lang="ko"]) .lumineck .custom_item .txt,
html:not([lang="ko"]) .lumineck .custom_item .ttl {
  word-break: normal;
  overflow-wrap: break-word;
}

/* 비한국어: 퀵 아이콘 라벨이 길어 줄바꿈되지 않도록 */
html:not([lang="ko"]) .info_grp .info_link .txt {
  font-size: 11px;
  letter-spacing: 0;
  white-space: nowrap;
}


/* =========================================================
   메인 시그니처 슬라이드: 이미지 속 글자 → 텍스트 (배경 slide_bg_XX.jpg)
   ========================================================= */
.sig_slide {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 476 / 564;
  overflow: hidden;
  background-color: #ece5db;
  background-size: cover;
  background-position: center;
  color: #342c29;
  text-align: center;
  text-decoration: none;
  word-break: keep-all;
}
.sig_slide.light {
  color: #fff;
}
.sig_slide_inner {
  position: absolute;
  left: 7%;
  right: 7%;
  top: 50%;
  display: block;
  transform: translateY(-20%);
}
.sig_ttl {
  display: block;
  margin-bottom: 14px;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
}
.sig_sub {
  display: block;
  margin: -6px 0 16px;
  font-size: 15px;
  font-style: normal;
  font-weight: 400;
  opacity: .9;
}
.sig_txt {
  display: block;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.65;
}
.sig_slide.light .sig_txt { font-weight: 400; }
@media (max-width: 1400px) {
  .sig_ttl { font-size: 22px; }
  .sig_sub, .sig_txt { font-size: 13px; }
}
@media (max-width: 900px) {
  .sig_ttl { font-size: 16px; margin-bottom: 8px; }
  .sig_sub { font-size: 11px; margin-bottom: 8px; }
  .sig_txt { font-size: 11px; line-height: 1.55; }
  .sig_slide_inner { left: 6%; right: 6%; }
}
/* 비한국어: 제목이 길어 줄바꿈될 수 있으므로 약간 작게 */
html:not([lang="ko"]) .sig_ttl { font-size: 22px; }
html:not([lang="ko"]) .sig_slide { word-break: normal; }
@media (max-width: 900px) {
  html:not([lang="ko"]) .sig_ttl { font-size: 18px; }
}

/* 진료안내 상단: 'Chaoreum Clinic' 이미지 → 텍스트 */
.introduce02 .top_grp .intro_txt_ttl {
  display: block;
  margin: 0;
  font-family: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: #fff;
}
@media (max-width: 900px) {
  .introduce02 .top_grp .intro_txt_ttl { font-size: 30px; }
}

/* 메인 1번 화면 소개 문구: 가운데 정렬 (2026-11-02 요청) */
.scroll_text {
  text-align: center;
  padding: 50px 20px 0;
}
@media (max-width: 900px) {
  .scroll_text {
    text-align: center;
    padding: 30px 16px;
  }
  /* 상단 영문 슬로건: 모바일에서 오른쪽 정렬 */
  .top_area {
    text-align: right;
    padding-right: 16px;
  }
}

/* 비한국어 상단 메뉴: 번역 문구가 길어 햄버거 아이콘과 겹치지 않도록 축소 */
html:not([lang="ko"]) .menu_link a {
  font-size: 14px;
  letter-spacing: 0;
  margin: 0 12px;
}
@media (max-width: 1500px) {
  html:not([lang="ko"]) .menu_link a {
    font-size: 13px;
    margin: 0 8px;
  }
}


/* =========================================================
   전후 사진 갤러리 (외국어 전용 beforeafter.php)
   ========================================================= */
.ba_page .agree .sub_grp .txt02 { font-size: 20px; font-weight: 500; color: #61605f; }
.ba_tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.ba_tab { padding: 10px 22px; border: 1px solid #c7b6a4; border-radius: 30px; font-size: 15px; color: #342c29; text-decoration: none; transition: background-color .25s, color .25s; }
.ba_tab:hover, .ba_tab.on { background-color: #342c29; border-color: #342c29; color: #fff; }
.ba_cats { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 22px; }
.ba_cat { font-size: 14px; color: #8a827b; text-decoration: none; padding: 4px 0; border-bottom: 2px solid transparent; }
.ba_cat:hover, .ba_cat.on { color: #342c29; border-bottom-color: #342c29; }
.ba_count { margin: 0 0 14px; font-size: 13px; color: #8a827b; }
.ba_empty { padding: 60px 0; text-align: center; color: #8a827b; }
.ba_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px 18px; margin: 0; padding: 0; list-style: none; }
.ba_item { margin: 0; }
.ba_link { display: block; text-decoration: none; color: #342c29; }
.ba_link img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; background: #ece5db; }
.ba_label { display: block; margin-top: 8px; font-size: 13px; color: #61605f; }
.ba_notice { margin: 40px 0 0; padding: 16px 18px; border-radius: 6px; background: #faf7f4; font-size: 13px; line-height: 1.7; color: #8a827b; }
.ba_lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(20, 16, 14, .9); display: flex; align-items: center; justify-content: center; padding: 24px; }
.ba_lightbox[hidden] { display: none; }
.ba_lightbox figure { margin: 0; max-width: 1100px; width: 100%; text-align: center; }
.ba_lightbox img { max-width: 100%; max-height: 82vh; border-radius: 6px; }
.ba_lightbox figcaption { margin-top: 12px; color: #ece5db; font-size: 14px; }
.ba_lb_close { position: absolute; top: 14px; right: 18px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 30px; line-height: 44px; cursor: pointer; }
@media (max-width: 900px) {
  .ba_page .agree .sub_grp .txt02 { font-size: 15px; }
  .ba_tab { padding: 8px 14px; font-size: 13px; }
  .ba_cat { font-size: 13px; }
  .ba_grid { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; }
  .ba_label { font-size: 12px; }
  .ba_notice { font-size: 12px; }
}

/* =========================================================
   비한국어 타이포 정돈 (2026-11-03)
   - Freesentation 은 한국어 글꼴이라 일본어·중국어 글자 일부만 갖고 있어
     한 줄 안에서 글꼴이 섞여 들쭉날쭉해 보임 → 언어별 시스템 글꼴을 앞에 둔다
     (구글 폰트는 중국에서 차단되고 용량도 늘어 시스템 글꼴 사용)
   - 한국어용 자간(-0.6px)은 영문·한자·가나에서 글자가 붙어 보여 0 으로
   - 제목은 단어 중간에서 끊기지 않게(keep-all), 너무 길면만 줄바꿈
   ========================================================= */
html:not([lang="ko"]) body { letter-spacing: 0; }
html[lang="en"] :where(p, li, dd, td) { word-spacing: 0.02em; }

html[lang="ja"] :where(body, h1, h2, h3, h4, h5, h6, p, li, dl, dt, dd, th, td, label, summary,
  figcaption, caption, blockquote, button, input, select, textarea) {
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic",
    "Meiryo", "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
}
html[lang="zh-Hans"] :where(body, h1, h2, h3, h4, h5, h6, p, li, dl, dt, dd, th, td, label, summary,
  figcaption, caption, blockquote, button, input, select, textarea) {
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑",
    "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
}
html[lang="zh-Hant"] :where(body, h1, h2, h3, h4, h5, h6, p, li, dl, dt, dd, th, td, label, summary,
  figcaption, caption, blockquote, button, input, select, textarea) {
  font-family: "PingFang TC", "Microsoft JhengHei", "微軟正黑體",
    "Noto Sans TC", "Noto Sans CJK TC", "Source Han Sans TC", sans-serif;
}
/* 가나·한자 본문은 행간을 조금 넓혀야 줄이 정돈돼 보임 */
html[lang="ja"] :where(.geo_def, .geo_steps p, .geo_faq p, .geo_list li, .geo_card p, .geo_note,
  .geo_doc_extra dd, .lumineck .custom_item .txt, .nonpay_body p),
html[lang="zh-Hans"] :where(.geo_def, .geo_steps p, .geo_faq p, .geo_list li, .geo_card p, .geo_note,
  .geo_doc_extra dd, .lumineck .custom_item .txt, .nonpay_body p),
html[lang="zh-Hant"] :where(.geo_def, .geo_steps p, .geo_faq p, .geo_list li, .geo_card p, .geo_note,
  .geo_doc_extra dd, .lumineck .custom_item .txt, .nonpay_body p) {
  line-height: 1.85;
}
/* 제목·소제목·버튼 글자는 단어(어절) 중간에서 끊지 않음 */
html:not([lang="ko"]) :where(h1, h2, h3, h4, .geo_h, .geo_sec_ttl, .geo_sub_ttl, .geo_card_ttl,
  .geo_steps_ttl, .sig_ttl, .ba_tabs a, .ba_cats a, .btn, button) {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 비한국어: 루미넥 소개 문단 — 한 줄 높이 고정(overflow:hidden)이라 긴 번역 줄이 잘림 → 줄바꿈 허용 */
html:not([lang="ko"]) .lumineck .intro_txt_grp .txt { height: auto; }
html:not([lang="ko"]) .lumineck .intro_txt_grp .txt > span {
  height: auto;
  overflow: visible;
  line-height: 1.45;
  margin-bottom: 4px;
}
/* 비한국어: 시술 안내(모바일 3열·2열) — 긴 번역이 간격 없이 붙지 않도록 열 폭 균등 + 간격 */
@media (max-width: 900px) {
  html:not([lang="ko"]) .surgical_wrap .surgical_grp .top,
  html:not([lang="ko"]) .surgical_wrap .surgical_grp .bottom { gap: 14px; }
  html:not([lang="ko"]) .surgical_wrap .surgical_grp .top .surgical_item,
  html:not([lang="ko"]) .surgical_wrap .surgical_grp .bottom .surgical_item { flex: 1 1 0; min-width: 0; }
}
/* 비한국어: 시술명 + '전후사진 보기' 버튼 줄 — 제목은 단어 단위 줄바꿈, 버튼은 한 줄 유지 */
html:not([lang="ko"]) .surgical_info_conts .surgical_top_grp .ttl {
  flex: 1 1 auto;
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
}
html:not([lang="ko"]) .surgical_info_conts .surgical_top_grp .txt {
  flex-shrink: 0;
  white-space: nowrap;
}
/* 비한국어: 페이지 제목(h1)이 고정 높이(50px)·overflow:hidden 이라 두 줄로 꺾이는 번역 제목이 잘림 → 높이 자동 */
html:not([lang="ko"]) .lumineck .intro_txt_grp .ttl {
  max-width: none;
  width: auto;
  height: auto;
  overflow: visible;
  line-height: 1.25;
}
@media (max-width: 900px) {
  html:not([lang="ko"]) .cha_intro_section .top .ttl,
  html:not([lang="ko"]) .lifting .intro_section .txt_grp .ttl {
    height: auto;
    min-height: 50px;
    overflow: visible;
    flex-wrap: wrap;
    padding: 2px 0;
    line-height: 1.25;
  }
  html:not([lang="ko"]) .lumineck .intro_txt_grp .ttl { display: block; }
  html:not([lang="ko"]) .lumineck .intro_txt_grp .txt > span { width: auto; }
}
/* 비한국어: 루미넥 소개 4줄(국문 폭 기준으로 나눠 둔 줄) → 하나의 문단으로 흐르게 */
html:not([lang="ko"]) .lumineck .intro_txt_grp .txt > span { display: inline; margin: 0; }
/* 비한국어: 시술 안내 아래 줄(다운타임·유지 기간) — 긴 왼쪽 칸에 폭을 더 줌 */
@media (max-width: 900px) {
  html:not([lang="ko"]) .surgical_wrap .surgical_grp .bottom .surgical_item:first-child { flex: 1.7 1 0; }
}
/* 비한국어 모바일: 국문 줄 길이에 맞춰 넣어 둔 강제 줄바꿈(<br>)이 번역문에서는 고아 줄을 만듦
   → lang.lib.php t()가 '한 개짜리' br 에 .sb 를 붙이므로 소개 문단에서는 숨겨 자연 줄바꿈
   (문단 구분용 <br><br> 과 br.pc 는 유지, 표·약력은 대상 아님) */
@media (max-width: 900px) {
  html:not([lang="ko"]) :where(.cha_intro_section .top .txt, .cha_intro_section .mid, .middle_section .txt,
    .lifting .txt_grp .txt, .booster .txt_grp .txt, .skincare .txt_inner .sub_txt, .nad02 .title04,
    .introduce .top_grp .txt02, .introduce .middle_area .txt, .img_caption, .txt_en) br.sb { display: none !important; }
  /* 병원소개 상단 문구: 왼쪽 여백(17~31%) 때문에 긴 번역이 오른쪽에서 잘림 */
  html:not([lang="ko"]) .introduce .top_grp .inner { width: auto; max-width: none; margin-left: 6%; margin-right: 0; }
}

/* =========================================================
   퀵메뉴 LINE(type_09): 위챗과 같은 방식(PC 호버 QR, 모바일은 전체화면 QR)
   ========================================================= */
.quick_menu.type_09 img { width: 23px; height: 20px; }
.quick_menu.type_09:hover .wechat_grp { display: block; width: 200px; height: 200px; }
.quick_menu.type_09 .wechat_grp img { width: 100%; height: 100%; margin: 0; object-fit: contain; }
@media (max-width: 900px) {
  .quick_menu.type_09 img { width: 16px; height: 16px; margin: 2px 6px 0 0; }
  .quick_menu.type_07:hover .wechat_grp,
  .quick_menu.type_09:hover .wechat_grp { display: none; }
}
/* 모바일 QR 전체화면: 퀵메뉴·고정 헤더보다 위에, 화면 폭의 72% */
.mo_wechat_wrap { z-index: 100001; }
.mo_wechat_grp { width: 72%; max-width: 340px; }
.mo_wechat_grp .img { display: block; border: 6px solid #fff; border-radius: 6px; background: #fff; }
.mo_wechat_grp .btn_close { padding: 6px; }
.mo_wechat_grp .btn_close .icon_close { display: block; background-repeat: no-repeat; background-position: center; background-size: 20px 20px; }

/* =========================================================
   모바일 상단 언어 버튼(.lang_toggle_m): 햄버거 메뉴 왼쪽의 지구본 아이콘 → 아래로 목록
   ========================================================= */
.lang_toggle_m { display: none; }
@media (max-width: 900px) {
  .lang_toggle_m {
    display: block !important;
    position: absolute;
    right: 66px;
    bottom: 16px;
    z-index: 5;
  }
  .lang_btn_m {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 36px;
    padding: 0 6px;
    border: 0;
    background: transparent;
    cursor: pointer;
  }
  .lang_btn_m .icon-global {
    display: block;
    width: 20px;
    height: 20px;
    margin: 0;
    background-repeat: no-repeat;
    background-size: contain;
    filter: invert(1);
  }
  .lang_btn_m .icon-arrow {
    display: block;
    width: 10px;
    height: 7px;
    margin: 1px 0 0;
    background-repeat: no-repeat;
    background-size: contain;
    filter: invert(1);
    transition: transform 0.25s ease;
  }
  .lang_toggle_m.on .lang_btn_m .icon-arrow { transform: rotate(180deg); }
  .lang_menu_m {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    right: -4px;
    min-width: 150px;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  }
  .lang_menu_m::before {
    content: "";
    position: absolute;
    top: -6px;
    right: 16px;
    width: 12px;
    height: 12px;
    background: #fff;
    transform: rotate(45deg);
  }
  .lang_toggle_m.on .lang_menu_m { display: block; }
  .lang_menu_m li a {
    display: block;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    color: #514f4d;
    text-decoration: none;
    white-space: nowrap;
  }
  .lang_menu_m li.on a {
    font-weight: 700;
    color: #342c29;
    background: #f5eee8;
  }
}

/* =========================================================
   줄바꿈 정돈(2026-11-04)
   - 상단 슬로건: 폭에 맞춰 글자 크기를 조금 줄여 어느 휴대폰 폭에서도 한 줄
   - 비한국어: 문단은 마지막 줄에 단어 하나만 남지 않게(pretty), 제목·가운데 정렬 문장·FAQ 질문은 두 줄 길이를 고르게(balance)
   - FAQ 질문: 두 줄이 되면 둘째 줄이 'Q.' 아래가 아니라 질문 글자 아래에서 시작
   ========================================================= */
@media (max-width: 900px) {
  .top_area {
    font-size: clamp(10px, 3.2vw, 13px);
    text-align: center;
    letter-spacing: -0.3px;
    padding-left: 6px;
    padding-right: 6px;
    text-wrap: balance;
  }
}
html:not([lang="ko"]) :where(p, li, dd, .geo_def, .geo_note, .warning_item, .geo_faq_a) {
  text-wrap: pretty;
}
html:not([lang="ko"]) :where(h1, h2, h3, h4, .geo_h, .geo_sec_ttl, .geo_sub_ttl, .geo_card_ttl, .geo_steps_ttl,
  .sig_ttl, .geo_faq summary, .cha_intro_section .top .txt, .cha_intro_section .mid, .cha_intro_section .bottom,
  .lifting .txt_grp .txt, .booster .txt_grp .txt, .skincare .txt_inner .sub_txt, .surgical_item .txt, .surgical_item .ttl,
  .img_caption, .txt_en, .intro_txt_grp .ttl, .custom_item .ttl, .nad02 .title04, .introduce .top_grp .txt02, .btn, button) {
  text-wrap: balance;
}
.geo_faq summary {
  padding-left: 52px;
}
.geo_faq summary::before {
  position: absolute;
  left: 20px;
  top: 20px;
  margin: 0;
}
@media (max-width: 900px) {
  .geo_faq summary {
    padding-left: 26px;
  }
  .geo_faq summary::before {
    left: 0;
    top: 16px;
  }
}
/* 상단 슬로건은 영어 문장이므로 모든 언어에서 같은 글꼴(일본어·중국어 글꼴은 영문 폭이 넓어 줄이 넘어감) */
html:not([lang="ko"]) .top_area {
  font-family: "Freesentation", "Pretendard", sans-serif;
}

/* ---- 줄바꿈 정돈(2026-11-04) 세부 ---- */
/* 푸터 사업자 정보: 항목(상호·대표·등록번호·전화)은 한 덩어리로, 전화번호는 하이픈에서 끊기지 않게 */
.copy .copy_item { display: inline-block; white-space: nowrap; margin-right: 1.6em; }
.copy .copy_item:last-of-type { margin-right: 0; }
.copy a { white-space: nowrap; }
/* 중국어 제목: 띄어쓰기가 없어 keep-all 이면 제목 전체가 한 덩어리 → 일반 CJK 줄바꿈(일본어는 띄어쓰기 단위 유지가 더 자연스러워 그대로, 좁은 시그니처 슬라이드 제목만 예외) */
html[lang="zh-Hans"] :where(h1, h2, h3, h4, .geo_h, .geo_sec_ttl, .geo_sub_ttl, .geo_card_ttl, .geo_steps_ttl, .sig_ttl, .ba_tabs a, .ba_cats a, .btn, button),
html[lang="zh-Hant"] :where(h1, h2, h3, h4, .geo_h, .geo_sec_ttl, .geo_sub_ttl, .geo_card_ttl, .geo_steps_ttl, .sig_ttl, .ba_tabs a, .ba_cats a, .btn, button) {
  word-break: normal;
  line-break: strict;
}
/* 메인 하단 상담 버튼: 고정 폭(135px)에 외국어 글자가 안 들어가 화살표가 아랫줄로 → 글자 폭에 맞춤 */
html:not([lang="ko"]) .btn-consul { width: auto; min-width: 135px; padding: 0 14px; white-space: nowrap; }
/* 진료안내 주소·전화 라벨, 의료진 영문 이름, 비급여 안내 링크: 한 줄 유지 */
.map_section .map_txt_grp .ttl { white-space: nowrap; flex-shrink: 0; margin-right: 16px; }
@media (max-width: 900px) { html:not([lang="ko"]) .map_section .map_txt_wrap .map_txt_grp { width: 100%; } }
.introduce .doctor_intro_area .right .conts_txt_grp .en_ttl { white-space: nowrap; }
.nonpay_notes a { white-space: nowrap; }
/* NAD+ 제목: 괄호 영문명은 모바일에서 둘째 줄로 */
@media (max-width: 900px) {
  .title02 span { display: block; margin-top: 4px; line-height: 1.3; }
}
/* 균등 분할 대상 추가(가운데 정렬 짧은 문장·표 머리글·메인 소개문) */
html:not([lang="ko"]) :where(th, .title02, .title03, .slide_txt_grp .txt, .mid.txt03, .scroll_text .txt04, .scroll_text .txt03, .map_box01 span) {
  text-wrap: balance;
}
/* 일본어 시그니처 슬라이드 제목: 좁은 슬라이드(모바일 122px)에 "スキンブースター"가 들어가도록 글자만 축소(어절 단위 줄바꿈 유지) */
@media (max-width: 900px) { html[lang="ja"] .sig_ttl { font-size: 15px; } }
/* PC 상단 메뉴가 햄버거 아이콘과 겹치는 폭: 일본어는 문구가 가장 길어 1500px 이하에서 더 축소, 1300px 이하는 햄버거 메뉴만.
   그 외 외국어도 1100px 이하(작은 태블릿 가로)는 햄버거 메뉴만 */
@media (max-width: 1600px) {
  html[lang="ja"] .menu_link a { font-size: 12px; margin: 0 7px; }
}
@media (max-width: 1400px) {
  html[lang="ja"] .menu_link a { font-size: 11px; margin: 0 6px; }
}
@media (max-width: 1300px) {
  html[lang="ja"] .menu_link { display: none; }
}
@media (max-width: 1200px) {
  html:not([lang="ko"]) .menu_link { display: none; }
}
/* 메인 의료진 문구(1인 의원 기준 / 목주름필러 1위): 두 줄이 되면 어절 단위로 고르게 */
html:not([lang="ko"]) .doctor_txt .txt05,
html:not([lang="ko"]) .doctor_txt .txt06 { text-wrap: balance; word-break: keep-all; overflow-wrap: break-word; }
/* 시술 소개의 굵은 첫 문장: 외국어는 뒤의 br 을 모바일에서 숨기므로 본문과 붙지 않게 한 줄로 분리 */
@media (max-width: 900px) {
  html:not([lang="ko"]) .cha_intro_section .mid .bold { display: block; margin-bottom: 6px; text-wrap: balance; }
}
/* 메인 의료진 화면(모바일, 비한국어): 긴 문장이 사진 얼굴을 가리지 않게 — 글자 축소, 사진은 글 아래 남는 높이에 맞춤(index.php fitDoctorPhoto) */
@media (max-width: 900px) {
  html:not([lang="ko"]) .doctor_wrap > div .doctor_txt { top: 108px; }
  html:not([lang="ko"]) .doctor_txt .txt05 { font-size: 19px !important; }
  html:not([lang="ko"]) .doctor_txt .txt06 { font-size: 22px !important; line-height: 1.3; }
  html:not([lang="ko"]) .doctor_txt .txt07 { font-size: 14px !important; line-height: 1.6; padding-top: 14px; }
  html:not([lang="ko"]) .doctor_wrap > div img { width: auto; max-width: 70%; max-height: 50%; left: 50%; right: auto; transform: translateX(-50%); }
}

/* =========================================================
   2026-11-04 모바일 보완: 의료진 소개 제목 가림 · 시술 안내 표 · NAD+ 제목
   ========================================================= */
/* 의료진 소개(모바일): 베이지 배경(::before)이 영역 아래로 4% 삐져나와 '학회 활동과 보도자료' 제목을 덮던 것 → 영역 바닥에서 끝나게 */
@media (max-width: 900px) {
  .introduce .doctor_intro_area::before { top: 4%; bottom: 0; height: auto; transform: none; }
  .introduce .doctor_intro_area { padding-bottom: 44px; }
}
/* 시술 안내(데이터형 페이지: 테일러드 리프팅·NAD+·부스터·스킨케어) 모바일: 좁은 3열·2열 대신 '항목 | 내용' 한 줄씩 */
@media (max-width: 900px) {
  .geo_compare .surgical_wrap .surgical_grp.mobile { padding: 0; }
  .geo_compare .surgical_wrap .surgical_grp.mobile .top,
  .geo_compare .surgical_wrap .surgical_grp.mobile .bottom { display: block; margin: 0; gap: 0; }
  .geo_compare .surgical_grp.mobile .surgical_item { display: flex; align-items: flex-start; gap: 12px; padding: 11px 2px; border-top: 1px solid #e6ddd2; }
  .geo_compare .surgical_grp.mobile .top .surgical_item:first-child { border-top: 0; }
  .geo_compare .surgical_grp.mobile .surgical_item .ttl { flex: 0 0 36%; margin: 0; font-size: 15px; line-height: 1.5; text-align: left !important; word-break: keep-all; }
  .geo_compare .surgical_grp.mobile .surgical_item .txt { flex: 1 1 auto; min-width: 0; font-size: 14px; line-height: 1.55; text-align: left !important; word-break: keep-all; overflow-wrap: break-word; }
}
/* NAD+ 제목(모바일): 고정 높이 50px·overflow hidden 이라 'NAD+ 부스터 수액(정맥주사)'가 잘림 → 두 줄 허용, 괄호는 br.mobile 로 둘째 줄 */
@media (max-width: 900px) {
  .cha_intro_section.type_nad .top .ttl { display: block; height: auto; min-height: 50px; overflow: visible; padding: 2px 0; line-height: 1.25; }
  html[lang="ko"] .cha_intro_section.type_nad .top .ttl { word-break: keep-all; }
}
/* 의료진 소개(PC): 김진호 대표원장 쪽 글 상자가 길어져 사진 칸(flex-basis 500px)이 같이 줄어들던 것 → 사진 칸 고정, 글 상자가 남는 폭 사용 */
@media (min-width: 901px) {
  .introduce .doctor_intro_area .left { flex: 0 0 500px; }
  .introduce .doctor_intro_area .right { flex: 1 1 0; min-width: 0; }
}
/* 영어 의료진 보조 항목 라벨('Focus areas')이 64px 칸에서 두 줄로 꺾임 → 칸 폭 확대 */
html[lang="en"] .geo_doc_extra dt { width: 92px; }
/* 외국어 칼럼: 목록 제목이 글자 단위(break-all)로 끊겨 영어 단어가 중간에서 잘리던 것 → 영어는 단어 단위, 일본어·중국어는 일반 줄바꿈 */
html[lang="en"] .columnSection .columnInfo h3 { word-break: keep-all; overflow-wrap: break-word; }
html[lang="ja"] .columnSection .columnInfo h3, html[lang^="zh"] .columnSection .columnInfo h3 { word-break: normal; overflow-wrap: break-word; }
html:not([lang="ko"]) .columnViewSection .columnViewHeader h1 { overflow-wrap: break-word; }
/* 진료안내 요일 라벨 상자(외국어): 국문 기준 고정 폭 151px·자간 9px 이라 'Lunch break' 등이 상자를 벗어남 → 언어별 폭·자간 조정, 한 줄 유지 */
html:not([lang="ko"]) .time_section .time_item .left { height: auto; min-height: 41px; letter-spacing: 1px; white-space: nowrap; text-align: center; }
html[lang="en"] .time_section .time_item .left, html[lang^="zh"] .time_section .time_item .left { width: 250px; flex-basis: 250px; }
html[lang="ja"] .time_section .time_item .left { width: 170px; flex-basis: 170px; }
@media (max-width: 900px) {
  html:not([lang="ko"]) .time_section .time_item .left { min-height: 25px; letter-spacing: 0; }
  html:not([lang="ko"]) .time_section .time_item .left { flex: 0 0 auto; }
  html[lang="en"] .time_section .time_item .left { width: 134px; }
  html[lang^="zh"] .time_section .time_item .left { width: 126px; }
  html[lang="ja"] .time_section .time_item .left { width: 87px; }
}
