@charset "utf-8";

/* 내용관리 */
#ctt {margin:10px 0;padding:20px;background:#fff}
.ctt_admin {text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0;line-height:1.6em}
#ctt_con img{max-width:100%;height:auto}
.ctt_img {text-align:center}

/* =========================================================
   개인정보처리방침 전용 (.privacy-policy)
   — 다른 콘텐츠 페이지에는 영향 없음
   ========================================================= */
.privacy-policy {
    --pp-navy: #1A365D;
    --pp-gold: #C5A059;
    --pp-text: #2d3748;
    --pp-muted: #4a5568;
    --pp-line: #e2e8f0;
    --pp-bg: #f7fafc;
    color: var(--pp-text);
    font-size: 15px;
    line-height: 1.75;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.privacy-policy__intro {
    margin: 0 0 2.5rem;
    padding: 1.25rem 1.5rem;
    background: var(--pp-bg);
    border-left: 4px solid var(--pp-navy);
}

.privacy-policy__intro p {
    margin: 0 0 0.85rem;
}

.privacy-policy__intro p:last-child {
    margin-bottom: 0;
}

.privacy-policy__section {
    margin: 0 0 2.75rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--pp-line);
}

.privacy-policy__section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.privacy-policy h2 {
    margin: 0 0 1.1rem;
    padding: 0 0 0.65rem;
    color: var(--pp-navy);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.4;
    border-bottom: 2px solid var(--pp-gold);
}

.privacy-policy h3 {
    margin: 1.5rem 0 0.65rem;
    color: var(--pp-navy);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.45;
}

.privacy-policy p {
    margin: 0 0 0.9rem;
}

.privacy-policy ul,
.privacy-policy ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.privacy-policy li {
    margin-bottom: 0.4rem;
}

.privacy-policy li:last-child {
    margin-bottom: 0;
}

.privacy-policy strong {
    font-weight: 700;
    color: var(--pp-navy);
}

.privacy-policy__note {
    margin-top: 1rem;
    padding: 0.85rem 1.1rem;
    background: #fffaf0;
    border: 1px solid #f0e2c4;
    color: var(--pp-muted);
    font-size: 0.94em;
}

.privacy-policy__table-wrap {
    margin: 1rem 0 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.privacy-policy__table {
    width: 100%;
    min-width: 320px;
    border-collapse: collapse;
    border: 1px solid var(--pp-line);
    background: #fff;
    font-size: 0.96em;
}

.privacy-policy__table caption {
    padding: 0 0 0.5rem;
    color: var(--pp-muted);
    font-size: 0.88em;
    text-align: left;
}

.privacy-policy__table th,
.privacy-policy__table td {
    padding: 0.75rem 1rem;
    border: 1px solid var(--pp-line);
    text-align: left;
    vertical-align: top;
}

.privacy-policy__table thead th {
    background: var(--pp-navy);
    color: #fff;
    font-weight: 700;
    white-space: nowrap;
}

.privacy-policy__table tbody tr:nth-child(even) {
    background: var(--pp-bg);
}

.privacy-policy__info-box {
    margin: 1rem 0 1.25rem;
    padding: 1.25rem 1.35rem;
    background: var(--pp-bg);
    border: 1px solid var(--pp-line);
    border-top: 3px solid var(--pp-navy);
}

.privacy-policy__info-box h3 {
    margin: 0 0 1rem;
    padding: 0;
    font-size: 1.05rem;
}

.privacy-policy__info-box dl {
    margin: 0;
}

.privacy-policy__info-box dl > div {
    display: grid;
    grid-template-columns: 7.5em 1fr;
    gap: 0.4rem 1rem;
    padding: 0.55rem 0;
    border-bottom: 1px dashed var(--pp-line);
}

.privacy-policy__info-box dl > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.privacy-policy__info-box dt {
    margin: 0;
    color: var(--pp-navy);
    font-weight: 700;
}

.privacy-policy__info-box dd {
    margin: 0;
}

.privacy-policy__dates {
    margin-top: 1.25rem;
    padding: 1rem 1.25rem;
    list-style: none;
    background: var(--pp-bg);
    border: 1px solid var(--pp-line);
}

.privacy-policy__dates li {
    margin-bottom: 0.35rem;
}

.privacy-policy__dates li:last-child {
    margin-bottom: 0;
}

@media (max-width: 640px) {
    .privacy-policy {
        font-size: 14px;
    }

    .privacy-policy__intro {
        padding: 1rem 1.1rem;
    }

    .privacy-policy h2 {
        font-size: 1.1rem;
    }

    .privacy-policy__info-box dl > div {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .privacy-policy__table th,
    .privacy-policy__table td {
        padding: 0.65rem 0.75rem;
    }
}

/* =========================================================
   이용약관 전용 (.terms-policy)
   — 개인정보처리방침과 동일 톤, 다른 콘텐츠에는 영향 없음
   ========================================================= */
.terms-policy {
    --tp-navy: #1A365D;
    --tp-gold: #C5A059;
    --tp-text: #2d3748;
    --tp-muted: #4a5568;
    --tp-line: #e2e8f0;
    --tp-bg: #f7fafc;
    color: var(--tp-text);
    font-size: 15px;
    line-height: 1.75;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.terms-policy__intro {
    margin: 0 0 2.5rem;
    padding: 1.25rem 1.5rem;
    background: var(--tp-bg);
    border-left: 4px solid var(--tp-navy);
}

.terms-policy__intro p {
    margin: 0 0 0.85rem;
}

.terms-policy__intro p:last-child {
    margin-bottom: 0;
}

.terms-policy__section {
    margin: 0 0 2.75rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--tp-line);
}

.terms-policy__section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.terms-policy h2 {
    margin: 0 0 1.1rem;
    padding: 0 0 0.65rem;
    color: var(--tp-navy);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.4;
    border-bottom: 2px solid var(--tp-gold);
}

.terms-policy h3 {
    margin: 1.5rem 0 0.65rem;
    color: var(--tp-navy);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.45;
}

.terms-policy p {
    margin: 0 0 0.9rem;
}

.terms-policy ul,
.terms-policy ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.terms-policy li {
    margin-bottom: 0.4rem;
}

.terms-policy li:last-child {
    margin-bottom: 0;
}

.terms-policy li > ul {
    margin: 0.5rem 0 0.25rem;
}

.terms-policy strong {
    font-weight: 700;
    color: var(--tp-navy);
}

.terms-policy__link {
    display: inline-block;
    margin-top: 0.25rem;
    color: var(--tp-navy);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.terms-policy__link:hover,
.terms-policy__link:focus {
    color: var(--tp-gold);
}

.terms-policy__dates {
    margin-top: 1.25rem;
    padding: 1rem 1.25rem;
    list-style: none;
    background: var(--tp-bg);
    border: 1px solid var(--tp-line);
}

.terms-policy__dates li {
    margin-bottom: 0.35rem;
}

.terms-policy__dates li:last-child {
    margin-bottom: 0;
}

@media (max-width: 640px) {
    .terms-policy {
        font-size: 14px;
    }

    .terms-policy__intro {
        padding: 1rem 1.1rem;
    }

    .terms-policy h2 {
        font-size: 1.1rem;
    }
}

/* =========================================================
   이메일무단수집거부 전용 (.emailno-policy)
   — 다른 콘텐츠 페이지에는 영향 없음
   ========================================================= */
.emailno-policy {
    --ep-navy: #1A365D;
    --ep-gold: #C5A059;
    --ep-text: #2d3748;
    --ep-muted: #4a5568;
    --ep-line: #e2e8f0;
    --ep-bg: #f7fafc;
    color: var(--ep-text);
    font-size: 15px;
    line-height: 1.75;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.emailno-policy__intro {
    margin: 0 0 2.5rem;
    padding: 1.25rem 1.5rem;
    background: var(--ep-bg);
    border-left: 4px solid var(--ep-navy);
}

.emailno-policy__intro h2 {
    margin: 0 0 0.85rem;
    padding: 0;
    border-bottom: 0;
    color: var(--ep-navy);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
}

.emailno-policy__intro p {
    margin: 0;
}

.emailno-policy__section {
    margin: 0 0 2.75rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--ep-line);
}

.emailno-policy__section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.emailno-policy h2 {
    margin: 0 0 1.1rem;
    padding: 0 0 0.65rem;
    color: var(--ep-navy);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.4;
    border-bottom: 2px solid var(--ep-gold);
}

.emailno-policy h3 {
    margin: 0 0 1rem;
    color: var(--ep-navy);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.45;
}

.emailno-policy p {
    margin: 0 0 0.9rem;
}

.emailno-policy ul,
.emailno-policy ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.emailno-policy li {
    margin-bottom: 0.4rem;
}

.emailno-policy li:last-child {
    margin-bottom: 0;
}

.emailno-policy strong {
    font-weight: 700;
    color: var(--ep-navy);
}

.emailno-policy__warning {
    margin-top: 1rem;
    padding: 0.85rem 1.1rem;
    background: #fff5f5;
    border: 1px solid #f0c9c9;
    color: #742a2a;
    font-size: 0.96em;
    font-weight: 500;
}

.emailno-policy__law-box {
    margin: 1rem 0 0;
    padding: 1.25rem 1.35rem;
    background: var(--ep-bg);
    border: 1px solid var(--ep-line);
    border-top: 3px solid var(--ep-navy);
}

.emailno-policy__law-box ol {
    margin-bottom: 0;
}

.emailno-policy__dates {
    margin: 0;
    padding: 1rem 1.25rem;
    list-style: none;
    background: var(--ep-bg);
    border: 1px solid var(--ep-line);
}

.emailno-policy__dates li {
    margin-bottom: 0.35rem;
}

.emailno-policy__dates li:last-child {
    margin-bottom: 0;
}

@media (max-width: 640px) {
    .emailno-policy {
        font-size: 14px;
    }

    .emailno-policy__intro {
        padding: 1rem 1.1rem;
    }

    .emailno-policy__intro h2 {
        font-size: 1.15rem;
    }

    .emailno-policy h2 {
        font-size: 1.1rem;
    }

    .emailno-policy__law-box {
        padding: 1rem 1.1rem;
    }
}

/* =========================================================
   인사말 공통 (.chairman-message / .president-message)
   — 다른 콘텐츠 페이지에는 영향 없음
   ========================================================= */
.chairman-message,
.president-message {
    max-width: 100%;
    color: #374151;
    font-size: 17px;
    line-height: 1.95;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.chairman-message *,
.chairman-message *::before,
.chairman-message *::after,
.president-message *,
.president-message *::before,
.president-message *::after {
    box-sizing: border-box;
}

.chairman-message__header,
.president-message__header {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 58px;
    align-items: center;
    margin-bottom: 58px;
    padding: 46px 50px;
    background: #f4f7fa;
    border: 1px solid #dce5ee;
    border-top: 4px solid #17375e;
}

.chairman-message__photo,
.president-message__photo {
    position: relative;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
}

.chairman-message__photo::after,
.president-message__photo::after {
    content: "";
    position: absolute;
    right: -12px;
    bottom: -12px;
    z-index: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #c5a15a;
}

.chairman-message__photo img,
.president-message__photo img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    background: #fff;
}

.chairman-message__profile,
.president-message__profile {
    min-width: 0;
}

.chairman-message__label,
.president-message__label {
    margin: 0 0 12px;
    color: #b58a3c;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.14em;
}

.chairman-message__profile h2,
.president-message__profile h2 {
    margin: 0 0 20px;
    color: #17375e;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.4;
}

.chairman-message__name,
.president-message__name {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 28px;
    color: #243b53;
}

.chairman-message__name strong,
.president-message__name strong {
    font-size: 24px;
    font-weight: 700;
}

.chairman-message__name span,
.president-message__name span {
    font-size: 17px;
}

.chairman-message__lead,
.president-message__lead {
    margin: 0;
    padding-top: 24px;
    color: #475569;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.75;
    border-top: 1px solid #d7e0e8;
}

.chairman-message__body,
.president-message__body {
    max-width: 1080px;
    margin: 0 auto;
}

.chairman-message__body p,
.president-message__body p {
    margin: 0 0 24px;
}

.chairman-message__body p:first-child::first-letter {
    color: #17375e;
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
}

.chairman-message__signature,
.president-message__signature {
    margin-top: 52px;
    padding-top: 26px;
    text-align: right;
    border-top: 1px solid #dce3ea;
}

.chairman-message__signature p,
.president-message__signature p {
    margin: 4px 0;
}

.chairman-message__signature strong,
.president-message__signature strong {
    margin-left: 8px;
    color: #17375e;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.chairman-message__signature span,
.president-message__signature span {
    margin-left: 5px;
    color: #64748b;
}

@media (max-width: 900px) {
    .chairman-message__header,
    .president-message__header {
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 38px;
        padding: 38px 36px;
    }

    .chairman-message__profile h2,
    .president-message__profile h2 {
        font-size: 28px;
    }
}

@media (max-width: 768px) {
    .chairman-message,
    .president-message {
        font-size: 16px;
        line-height: 1.9;
        word-break: normal;
    }

    .chairman-message__header,
    .president-message__header {
        grid-template-columns: 1fr;
        gap: 32px;
        margin-bottom: 42px;
        padding: 32px 22px 36px;
        text-align: center;
    }

    .chairman-message__photo,
    .president-message__photo {
        max-width: 230px;
    }

    .chairman-message__photo::after,
    .president-message__photo::after {
        right: -8px;
        bottom: -8px;
    }

    .chairman-message__profile h2,
    .president-message__profile h2 {
        margin-bottom: 14px;
        font-size: 24px;
    }

    .chairman-message__name,
    .president-message__name {
        justify-content: center;
        margin-bottom: 22px;
    }

    .chairman-message__name strong,
    .president-message__name strong {
        font-size: 21px;
    }

    .chairman-message__lead,
    .president-message__lead {
        padding-top: 20px;
        font-size: 17px;
    }

    .chairman-message__body p,
    .president-message__body p {
        margin-bottom: 21px;
    }

    .chairman-message__signature,
    .president-message__signature {
        margin-top: 40px;
        text-align: center;
    }
}

@media (max-width: 390px) {
    .chairman-message,
    .president-message {
        font-size: 15px;
    }

    .chairman-message__header,
    .president-message__header {
        padding: 27px 18px 31px;
    }

    .chairman-message__photo,
    .president-message__photo {
        max-width: 205px;
    }

    .chairman-message__profile h2,
    .president-message__profile h2 {
        font-size: 22px;
    }

    .chairman-message__lead,
    .president-message__lead {
        font-size: 16px;
    }
}
