@charset "UTF-8";

/* :root {
    --black: #173348;
    --gray20: #dbe2e7;
    --grayBg1: #f5f7f9;
    --point01: #2f58e0;
} */

body.lang-ko {
    font-family: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

body.lang-en {
    /* font-family: "Noto Sans", "Montserrat", Arial, sans-serif; */
    font-family: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

body.lang-ja {
    font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

body.lang-zh-cn {
    font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
}

body.lang-zh-tw {
    font-family: "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", sans-serif;
}

body.lang-ru {
    font-family: "Noto Sans", Arial, sans-serif;
}

body.lang-ar,
body.is-rtl {
    font-family: "Noto Sans Arabic", Tahoma, Arial, sans-serif;
}

body.lang-ja,
body.lang-zh-cn,
body.lang-zh-tw {
    word-break: normal;
    line-break: strict;
    overflow-wrap: break-word;
}

.i18n-ltr {
    direction: ltr;
    text-align: left;
    unicode-bidi: isolate;
}

/* RTL 로케일(ar): html[dir] 은 ltr 고정(inc/headerCommon.php) — 레이아웃 구조(플렉스 순서,
   아이콘 위치, 포지셔닝)는 다른 언어와 동일하게 유지하고, 텍스트를 담는 블록 요소만
   RTL 로 흐르게 한다. 명시적 text-align(center 등)이 걸린 요소는 그대로 유지된다. */
body.is-rtl h1,
body.is-rtl h2,
body.is-rtl h3,
body.is-rtl h4,
body.is-rtl h5,
body.is-rtl h6,
body.is-rtl p,
body.is-rtl dt,
body.is-rtl dd,
body.is-rtl blockquote,
body.is-rtl figcaption {
    direction: rtl;
    unicode-bidi: isolate;
}

/* 아랍어 입력 필드 — 단, 전화/이메일/URL 은 LTR 데이터라서 제외 */
body.is-rtl input[type="text"],
body.is-rtl input[type="search"],
body.is-rtl textarea {
    direction: rtl;
    unicode-bidi: plaintext;
}

body.is-rtl input[type="tel"],
body.is-rtl input[type="email"],
body.is-rtl input[type="url"] {
    direction: ltr;
    text-align: left;
    unicode-bidi: isolate;
}



.i18n-selector,
.i18n-error {
    min-height: 100vh;
    margin: 0;
    padding: 32px 20px;
    box-sizing: border-box;
    display: grid;
    place-items: center;
    color: var(--black);
    background: var(--grayBg1);
    font-family: "Noto Sans", Arial, sans-serif;
}

.i18n-selector *,
.i18n-error * {
    box-sizing: border-box;
}

.i18n-selector__panel,
.i18n-error__panel {
    width: min(720px, 100%);
    padding: clamp(32px, 6vw, 64px);
    /* border: 1px solid var(--gray20); */
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(23, 51, 72, 0.08);
    text-align: center;
}

.i18n-selector__brand {
    margin: 0 0 28px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.i18n-selector h1,
.i18n-error h1 {
    margin: 0;
    font-size: clamp(32px, 6vw, 56px);
    line-height: 1.15;
}

.i18n-selector__lead,
.i18n-selector__empty,
.i18n-error__panel > p {
    margin: 14px 0 0;
    color: #647481;
    font-size: 16px;
    line-height: 1.7;
}

.i18n-selector__nav {
    margin-top: 34px;
}

.i18n-selector__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.i18n-selector__list a,
.i18n-error__actions a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 58px;
    padding: 12px 18px;
    border: 1px solid var(--gray20);
    border-radius: 14px;
    color: inherit;
    background: #fff;
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.i18n-selector__list a:hover,
.i18n-selector__list a:focus-visible,
.i18n-error__actions a:hover,
.i18n-error__actions a:focus-visible {
    border-color: var(--point01);
    outline: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(47, 88, 224, 0.12);
}

.i18n-selector__badge {
    padding: 4px 7px;
    border-radius: 999px;
    color: #5b6570;
    background: #edf0f3;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.i18n-error__code {
    color: var(--point01) !important;
    font-size: 18px !important;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.i18n-error__actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 32px;
}

.i18n-error__actions a {
    justify-content: center;
    min-width: 150px;
}

@media (max-width: 600px) {
    .i18n-selector,
    .i18n-error {
        padding: 18px;
    }

    .i18n-selector__panel,
    .i18n-error__panel {
        padding: 32px 20px;
        border-radius: 18px;
    }

    .i18n-selector__list {
        grid-template-columns: 1fr;
    }

    .i18n-error__actions {
        flex-direction: column;
    }
}
