/* 영어·러시아어에서만 적용되는 레이아웃 보정.
   원본 CSS는 한국어(짧고 고정폭인 글자) 기준으로 짜여 있어
   라틴/키릴 문자에서 깨지는 지점만 국소적으로 되돌린다. */

/* 한국어 2글자를 아래 줄과 세로로 맞추려고 넣은 자간 조정.
   러시아어 Будни(5글자)에 적용되면 옆 칸까지 밀고 들어간다. */
.i18n-x .text_line,
.i18n-x .text_line{
    letter-spacing: normal !important;
}/* 한글 폭을 좁히려고 넣은 음수 자간. 라틴/키릴에서는 글자가 붙어 읽기 어렵다. */
.i18n-x .time_new,
.i18n-x .time_new,
.i18n-x .time_new2{
    letter-spacing: normal !important;
}/* 아이콘 버튼(폭 115px)은 한글 3~4자 기준이라 번역문이 잘린다.
   글자를 줄이고 줄바꿈을 허용해 상자 안에 들어오게 한다. */
.i18n-x .btn-orange,
.i18n-x .btn-orange{
    font-size: 11px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: break-word;
    padding-left: 2px !important;
    padding-right: 2px !important;
}/* 좁은 칸에서는 글자를 조금 줄여 공백 기준으로만 줄바꿈되게 한다.
   break-word 를 쓰면 Обеденн/ый 처럼 단어 중간이 끊긴다. */
.i18n-x .time_new,
.i18n-x .time_new{
    font-size: 0.95em;
}/* 게시판 목록: 번역문이 길어져 2줄로 넘치면 날짜가 다음 줄로 밀린다.
   제목을 말줄임 처리해 한 줄로 고정하고 날짜를 오른쪽에 붙인다. */
.i18n-x ul.lt li,
.i18n-x ul.lt li{
    display: flex;
    align-items: baseline;
    gap: 6px;
    white-space: nowrap;
    overflow: hidden;
}.i18n-x ul.lt li > a{
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}/* 진료과 목록: float 기반 그리드라,
번역문이 길어 한 칸만 높아지면
   뒤따르는 float 이 걸려 다음 행 첫 칸이 비고 전체가 계단식으로 어긋난다.
   grid 로 바꾸면 같은 행의 칸 높이가 자동으로 맞춰진다.
   열 수는 한국어판 측정값(768px 이상 4열 / 미만 2열)을 그대로 따랐다. */
.i18n-x ul.sub_tap,
.i18n-x ul.sub_tap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    height: auto !important;
}
@media (min-width: 768px) {.i18n-x ul.sub_tap{
        grid-template-columns: repeat(4, 1fr);
    }
}.i18n-x ul.sub_tap > li{
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 46px;
    display: flex;
}/* 테두리는 li 가 아니라 안쪽 a 에 있다. a 가 칸을 꽉 채워야
   원본처럼 칸끼리 맞닿은 격자로 보인다. */
.i18n-x ul.sub_tap > li > a,
.i18n-x ul.sub_tap > li > a{
    width: 100%;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* 상단 메뉴: 러시아어·영어 라벨이 길어 5개 항목이 두 줄로 밀린다.
   글자와 좌우 여백을 조금 줄여 한 줄에 들어오게 한다. */
@media (min-width: 992px) {.i18n-x ul.nav.navbar-nav > li > a{
        font-size: 15px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}/* 진료과 그리드의 마지막 빈 칸: 항목이 15개라 4열 중 1칸이 빈다.
   grid 로 바꾼 뒤로는 테두리 없는 구멍처럼 보이므로 같은 테두리의 빈 칸을 채워 형식을 유지한다. */
.i18n-x ul.sub_tap::after,
.i18n-x ul.sub_tap::after{
    content: "";
    display: block;
    border: 1px solid rgb(163, 163, 163);
    min-height: 46px;
}/* 의료진 카드: col-md-6 부동 컬럼이라 카드 높이가 서로 다르면
   뒤 카드가 앞 카드에 걸려 행이 어긋난다(한국어 409px → 영어 619px).
   해당 행만 flex 로 바꿔 같은 행의 카드 높이를 맞춘다. */
.i18n-x .row:has(> .col-md-6 > .alert-warning),
.i18n-x .row:has(> .col-md-6 > .alert-warning){
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}.i18n-x .row:has(> .col-md-6 > .alert-warning) > .col-md-6{
    display: flex;
    float: none;
}.i18n-x .row:has(> .col-md-6 > .alert-warning) > .col-md-6 > .alert{
    width: 100%;
}/* 진료일정표의 원형 배지(40x40): 한글 2글자 기준이라 번역문이 넘친다.
   글자를 줄이고 상하좌우 가운데로 맞춘다. */
.i18n-x .h04_circle,
.i18n-x .h04_circle{
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 2px;
    font-size: 12px;
    line-height: 1.15;
    overflow: hidden;
}/* 진료일정표 아래 범례와 각주: 둘 다 절대배치이고 각주는 right 기준이라 왼쪽으로 자란다.
   한글에서는 범례가 2글자라 안 닿지만 번역문(Surgical Operations 132px)에서는 덮어버린다.
   각주의 왼쪽 한계를 정해 줄바꿈시키고,
늘어난 높이만큼 아래 여백을 준다. */
.i18n-x .text-info2-right,
.i18n-x .text-info2-right{
    left: 155px;
    right: 10px;
    width: auto;
    text-align: right;
}.i18n-x .col-md-12.t03{
    height: auto !important;
    min-height: 56px;
}/* ── 상단 파란 바 ────────────────────────────────────────────────
   한국어 기준 53px 한 줄인데,
번역문이 길어 영어 71px·러시아어 103px 로 두꺼워진다.
   전화번호가 "1544-" / "7522" 로 쪼개지는 것이 가장 눈에 띄는 문제. */
.i18n-x .cs-number,
.i18n-x .cs-number,
.i18n-x .cs-time{
    white-space: nowrap;          /* 전화번호와 시간은 절대 줄바꿈 금지 */
}.i18n-x .cs-text{
    white-space: nowrap;
    font-size: 15px;
}/* 통계 라벨(인공디스크치환술 / 하지정맥류)은 300px 칸에 들어가야 한다 */
.i18n-x div:has(> .counter),
.i18n-x div:has(> .counter),
.i18n-x div:has(> .counter2){
    font-size: 14px;
    white-space: nowrap;
}.i18n-x .counter,
.i18n-x .counter2{
    font-size: 22px;
}/* 메가메뉴 좌측 라벨: 80px 폭 절대배치라 2줄이 되면 아래 항목과 겹친다.
   글자를 줄이고 폭을 늘려 한 줄에 들어오게 한다(오른쪽 내용 열은 x=976에서 시작). */
.i18n-x .text-bold2,
.i18n-x .text-bold2{
    font-size: 13px;
    width: 95px;
    line-height: 1.3;
}/* ── 의료진 카드 내부 ────────────────────────────────────────────
   ul.row_con 안에서 사진(li.m_w 180px)과 글(li.text-left 252.84px)이 둘 다 float:left 인데
   합(432.84px)이 사용 가능 폭(408px)을 넘는다. 한글은 짧아 버티지만 번역문에서는
   글 블록이 사진 아래로 떨어져 카드마다 배치가 달라진다.
   flex 로 바꿔 길이와 무관하게 사진 왼쪽·글 오른쪽을 보장한다. */
.i18n-x .alert-warning ul.row_con,
.i18n-x .alert-warning ul.row_con{
    display: flex;
    align-items: flex-start;
    gap: 14px;
}.i18n-x .alert-warning ul.row_con > li.m_w{
    float: none;
    flex: 0 0 auto;
}.i18n-x .alert-warning ul.row_con > li:not(.m_w){
    float: none;
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
}/* 좁아진 글 칸에서 버튼 두 개가 넘치지 않도록 */
.i18n-x .alert-warning ul.row_con .btn-lg2,
.i18n-x .alert-warning ul.row_con .btn-lg2{
    font-size: 13px;
    padding: 8px 12px;
    white-space: nowrap;
    margin-bottom: 4px;
}/* 좁은 일정표 칸(58px)에 들어가는 안내 문구는 글자를 줄여 줄수를 낮춘다 */
.i18n-x table.doc_time td,
.i18n-x table.doc_time td{
    font-size: 12px;
    word-break: keep-all;
}/* 이름 아래 직함이 줄바꿈될 때 간격이 붙어 보이는 것 완화 */
.i18n-x .alert-warning ul.row_con > li:not(.m_w),
.i18n-x .alert-warning ul.row_con > li:not(.m_w){
    line-height: 1.45;
}/* 진료과 칸: 원본 padding 이 10px 0 이라 좌우 여백이 0이다.
   한글은 짧아 안 닿지만 번역문은 경계에 붙으므로 좌우 여백을 준다. */
.i18n-x ul.sub_tap > li > a,
.i18n-x ul.sub_tap > li > a{
    padding-left: 12px;
    padding-right: 12px;
}/* 상단 바 통계 블록: 번역문 라벨이 길어 숫자가 같은 줄에 붙으면 비좁다.
   숫자를 다음 행으로 내리고 경계에 닿지 않게 여백을 준다. */
.i18n-x div:has(> .counter),
.i18n-x div:has(> .counter),
.i18n-x div:has(> .counter2){
    padding-bottom: 8px;
    line-height: 1.4;
    white-space: normal;
}.i18n-x .counter,
.i18n-x .counter2{
    display: block;
    margin-top: 2px;
}

/* ── 고정폭 + nowrap 버튼 ────────────────────────────────────────
   예약 바 버튼(148px)과 카카오 알림톡 버튼(188px)은 한글 3~4자 기준으로
   폭이 고정돼 있고 nowrap 이라, 번역문이 길어지면 글자가 상자 밖으로 나간다.
   칸 자체가 부트스트랩 고정폭이라 버튼을 키울 수 없으므로
   줄바꿈을 허용하고 글자 크기를 맞춘다. */
.i18n-x a.btn-success-y {
    width: 100% !important;
    white-space: normal !important;
    font-size: 14px !important;
    line-height: 1.2;
    padding: 6px 4px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.i18n-x .btn-lg-g {
    white-space: normal !important;
    font-size: 14px !important;
    line-height: 1.25;
    padding: 8px 6px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* 예약 바의 오전·오후 라디오: 한글 2자 기준 칸이라 번역문이 두 줄로 쪼개지고
   그만큼 바 높이가 늘어 버튼 주변이 어긋난다. 글자를 줄여 한 줄에 넣는다. */
.i18n-x .greyCol_x .t01,
.i18n-x .greyCol_x .t01 label {
    white-space: nowrap;
    font-size: 13px;
}

/* ── float 격자 목록 일괄 보정 ──────────────────────────────────
   진료과·센터 탭처럼 표 모양으로 보이는 목록은 자식이 float:left 다.
   한 칸만 두 줄이 되면 뒤따르는 칸이 걸려 행 전체가 계단식으로 어긋난다.
   flex-wrap 으로 바꾸면 칸 폭은 그대로 두고 같은 줄의 높이만 자동으로 맞는다.
   (열 수를 몰라도 되므로 컨테이너마다 따로 계산할 필요가 없다) */
.i18n-x ul[class*="sub_tap"],
.i18n-x ul.new_sub_menu,
.i18n-x ul.row_con3,
.i18n-x ul.symptom,
.i18n-x ul.list3,
.i18n-x ul.list4,
.i18n-x ul.list5,
.i18n-x ul.row_con-list {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    height: auto !important;
}
.i18n-x ul[class*="sub_tap"] > li,
.i18n-x ul.new_sub_menu > li,
.i18n-x ul.row_con3 > li,
.i18n-x ul.symptom > li,
.i18n-x ul.list3 > li,
.i18n-x ul.list4 > li,
.i18n-x ul.list5 > li,
.i18n-x ul.row_con-list > li {
    float: none !important;
    height: auto !important;
    display: flex;
}
/* 테두리는 안쪽 a 에 있는 경우가 많아 칸을 꽉 채워야 격자로 보인다 */
.i18n-x ul[class*="sub_tap"] > li > a,
.i18n-x ul.new_sub_menu > li > a,
.i18n-x ul.row_con3 > li > a,
.i18n-x ul.symptom > li > a {
    width: 100%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding-left: 10px;
    padding-right: 10px;
}
