

.site-footer{
    background-image: url("../images/footer_bg.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;

    padding:48px 0 28px;color:rgba(255,255,255,.65);
}

.board-tabs_wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;

}

:root {
    color-scheme: light dark;
    --bg: #FFFFFF;
    --surface: #FFFFFF;
    --surface-2: #F8F3E9;
    --line: #E9DFC9;
    --ink: #2A2216;
    --ink-mid: #574A38;
    --ink-soft: #8A7B63;
    --brand: #9A7328;
    --brand-2: #BE9A4E;
    --brand-deep: #5A4520;
    --brand-ink: #FFFFFF;
    --gold: #8A6A1E;
    --gold-bg: #F3E9CE;
    --gold-ink: #7C5E1A;
    --tagnew-bg: #F1E7CC;
    --tagnew-ink: #8A6A1E;
    --tagimp-bg: #FBE7C8;
    --tagimp-ink: #9C5A16;
    --tagprog-bg: #EAE3F1;
    --tagprog-ink: #5B4B8A;
    --good: #8A6A1E;
    --good-bg: #F3EAD3;
    --warn: #9C5A16;
    --warn-bg: #FBE7C8;
    --critical: #B4462F;
    --critical-bg: #FBE4DC;
    --shadow: 0 2px 20px rgba(90, 69, 32, .12);
    --radius: 14px;
    --radius-sm: 9px;
    --font-display: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif;
    --font-body: "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg: #171308;
        --surface: #221C10;
        --surface-2: #1D170C;
        --line: rgba(240, 228, 200, .14);
        --ink: #F1EAD9;
        --ink-mid: #CFC0A4;
        --ink-soft: #A2937A;
        --brand: #D8B86A;
        --brand-2: #BE9A4E;
        --brand-deep: #0F0C05;
        --brand-ink: #171308;
        --gold: #E2C57C;
        --gold-bg: #2C2411;
        --gold-ink: #E2C57C;
        --tagnew-bg: #2C2411;
        --tagnew-ink: #DCC079;
        --tagimp-bg: #33260F;
        --tagimp-ink: #E8B060;
        --tagprog-bg: #221E3A;
        --tagprog-ink: #A9A0E0;
        --good: #D8B86A;
        --good-bg: #2C2411;
        --warn: #E8B060;
        --warn-bg: #33260F;
        --critical: #E1806B;
        --critical-bg: #3A2119;
        --shadow: 0 2px 24px rgba(0, 0, 0, .5);
    }
}

:root[data-theme="dark"] {
    --bg: #171308;
    --surface: #221C10;
    --surface-2: #1D170C;
    --line: rgba(240, 228, 200, .14);
    --ink: #F1EAD9;
    --ink-mid: #CFC0A4;
    --ink-soft: #A2937A;
    --brand: #D8B86A;
    --brand-2: #BE9A4E;
    --brand-deep: #0F0C05;
    --brand-ink: #171308;
    --gold: #E2C57C;
    --gold-bg: #2C2411;
    --gold-ink: #E2C57C;
    --tagnew-bg: #2C2411;
    --tagnew-ink: #DCC079;
    --tagimp-bg: #33260F;
    --tagimp-ink: #E8B060;
    --tagprog-bg: #221E3A;
    --tagprog-ink: #A9A0E0;
    --good: #D8B86A;
    --good-bg: #2C2411;
    --warn: #E8B060;
    --warn-bg: #33260F;
    --critical: #E1806B;
    --critical-bg: #3A2119;
    --shadow: 0 2px 24px rgba(0, 0, 0, .5);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    * {
        animation-duration: .001ms !important;
        transition-duration: .001ms !important;
    }
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
    font-family: var(--font-display);
    color: var(--ink);
    margin: 0 0 .4em;
    font-weight: 700;
    word-break: keep-all;
    overflow-wrap: break-word;
}

p {
    margin: 0;
    color: var(--ink-mid);
}

a {
    color: inherit;
}

img,
svg {
    max-width: 100%;
}

button {
    font-family: var(--font-body);
}

:focus-visible {
    outline: 3px solid var(--brand);
    outline-offset: 2px;
}

.skip-link {
    position: absolute;
    left: -999px;
    top: 0;
    background: var(--gold-bg);
    color: var(--gold-ink);
    padding: 10px 16px;
    border-radius: 0 0 8px 0;
    z-index: 300;
}

.skip-link:focus {
    left: 0;
}

.wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
}

.tabular {
    font-variant-numeric: tabular-nums;
}

section {
    padding: 72px 0;
}

.section-alt {
    background: var(--surface-2);
}

.section-header {
    margin-bottom: 44px;
    max-width: 640px;
}

.section-header.center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.section-tag {
    display: inline-block;
    background: var(--good-bg);
    color: var(--good);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 13px;
    border-radius: 20px;
    margin-bottom: 12px;
}

.section-title {
    font-size: clamp(1.5rem, 1.1rem + 1.6vw, 1.9rem);
}

.section-desc {
    color: var(--ink-soft);
    font-size: 15px;
    line-height: 1.75;
    max-width: 560px;
}

.section-header.center .section-desc {
    margin: 0 auto;
}


/* ===== notice bar ===== */
.notice-bar {
    background: var(--gold-bg);
    border-bottom: 1px solid var(--line);
}

.notice-bar .wrap {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 24px;
    font-size: 13px;
    flex-wrap: wrap;
}

.notice-bar-badge {
    background: var(--gold);
    color: #fff;
    padding: 3px 11px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.notice-bar-text {
    color: var(--gold-ink);
    flex: 1;
    min-width: 180px;
}

.notice-bar-link {
    color: var(--gold-ink);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    background: none;
    border: none;
    font-size: 13px;
    cursor: pointer;
    font-family: var(--font-body);
}


/* ===== nav ===== */
.site-nav {
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 100;
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 66px;
    gap: 16px;
}

.nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.nav-logo-icon {
    width: 42px;
    height: 42px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    padding: 5px;
}

.nav-logo-icon .brand-mark {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.nav-logo-text {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
}

.nav-logo-sub {
    font-size: 10px;
    color: var(--ink-soft);
    letter-spacing: .03em;
}

.nav-links {
    display: flex;
    gap: 26px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-links a {
    font-size: 14px;
    color: var(--ink-mid);
    text-decoration: none;
    font-weight: 500;
    padding: 4px 0;
    border-bottom: 2px solid transparent;
}

.nav-links a:hover {
    color: var(--brand);
    border-bottom-color: var(--brand);
}

.nav-cta {
    background: var(--brand);
    text-decoration: none;
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.nav-cta:hover {
    background: var(--brand-2);
}

.nav-toggle {
    display: none;
    background: none;
    border: 1px solid var(--line);
    border-radius: 9px;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    color: var(--ink);
    cursor: pointer;
}

@media (max-width:860px) {
    .nav-links {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: flex-start;
        background: var(--surface);
        padding: 16px 24px 22px;
        border-bottom: 1px solid var(--line);
        gap: 14px;
        display: none;
    }

    .nav-links.is-open {
        display: flex;
    }

    .nav-toggle {
        display: flex;
    }

    .nav-cta {
        display: none;
    }
}


/* ===== buttons ===== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 26px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border: none;
    text-decoration: none;
    line-height: 1.2;
}

.btn-onbrand {
    background: #fff;
    color: var(--brand);
}

.btn-onbrand:hover {
    background: #F7EFDD;
}

.btn-outline-onbrand {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, .55);
    font-weight: 500;
}

.btn-outline-onbrand:hover {
    background: rgba(255, 255, 255, .1);
}

.btn-brand {
    background: var(--brand);
    color: #fff;
}

.btn-brand:hover {
    background: var(--brand-2);
}

.btn-soft {
    background: var(--good-bg);
    color: var(--brand);
}

.btn-soft:hover {
    background: var(--tagnew-bg);
}

.btn-block {
    width: 100%;
}

.btn[disabled] {
    opacity: .55;
    cursor: not-allowed;
}


/* ===== hero ===== */
.hero {
    background: linear-gradient(135deg, var(--brand-deep) 0%, var(--brand) 55%, var(--brand-2) 100%);
    padding: 68px 0 80px;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: "";
    position: absolute;
    top: -60px;
    right: -80px;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .04);
}

.hero::after {
    content: "";
    position: absolute;
    bottom: -40px;
    left: -60px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .03);
}

.hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 52px;
    align-items: center;
    position: relative;
}

@media (max-width:880px) {
    .hero-grid {
        grid-template-columns: 1fr;
    }
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .2);
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 12px;
    color: rgba(255, 255, 255, .92);
    margin-bottom: 18px;
}

.hero-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #E7C877;
}

.hero h1 {
    color: #fff;
    font-size: clamp(1.9rem, 1.2rem + 2.6vw, 2.5rem);
    line-height: 1.35;
}

.hero h1 em {
    font-style: normal;
    color: #EAD39A;
}

.hero-desc {
    font-size: 15px;
    color: rgba(255, 255, 255, .82);
    line-height: 1.85;
    margin: 14px 0 30px;
    max-width: 46ch;
}

.hero-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hero-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.hero-card {
    background: rgba(29, 23, 12, .40);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 12px;
    padding: 20px;
}

.hero-card-num {
    font-size: 26px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

.hero-card-unit {
    font-size: 13px;
    color: #EAD39A;
    margin-left: 2px;
}

.hero-card-label {
    font-size: 12px;
    color: rgba(255, 255, 255, .72);
    margin-top: 5px;
}


/* ===== services ===== */
.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width:900px) {
    .grid-3 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:560px) {
    .grid-3 {
        grid-template-columns: 1fr;
    }
}

.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 26px 22px;
}

.card-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--good-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    color: var(--brand);
}

.card h3 {
    font-size: 15.5px;
    margin-bottom: 7px;
}

.card p {
    font-size: 13.5px;
    color: var(--ink-soft);
    line-height: 1.7;
}

.card-tag {
    display: inline-block;
    background: var(--good-bg);
    color: var(--brand);
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 5px;
    margin-top: 12px;
    font-weight: 600;
}


/* ===== facility ===== */
.facility-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

@media (max-width:880px) {
    .facility-grid {
        grid-template-columns: 1fr;
    }
}

.facility-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 26px;
}

.facility-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.facility-item-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: var(--good-bg);
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand);
}

.facility-item h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    margin-top: 0;
    margin-bottom: 3px;
}

.facility-item p {
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.6;
}

.facility-visual {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 16px;
    aspect-ratio: 4/3;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    text-align: center;
    padding: 20px;
}

.facility-visual svg {
    width: 52px;
    height: 52px;
    stroke: var(--brand);
    fill: none;
    stroke-width: 1.2;
    opacity: .5;
    margin: 0 auto 10px;
    display: block;
}

.facility-visual p {
    font-size: 13px;
    color: var(--ink-soft);
}

.facility-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 16px;
}

.facility-stat {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 16px;
    text-align: center;
}

.facility-stat b {
    display: block;
    font-size: 21px;
    font-weight: 700;
    color: var(--brand);
}

.facility-stat span {
    font-size: 11px;
    color: var(--ink-soft);
}


/* ===== process ===== */
.steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    position: relative;
}

@media (max-width:880px) {
    .steps {
        grid-template-columns: 1fr 1fr;
        row-gap: 24px;
    }
}

@media (max-width:480px) {
    .steps {
        grid-template-columns: 1fr;
    }
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.step{
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:var(--radius) !important;
    padding:24px 16px !important;
}
.step:hover,
.step.active{
    border-color:var(--brand);
    box-shadow:0 4px 14px rgba(0,0,0,.06);
}

.step-num {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: var(--surface);
    border: 2px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    font-weight: 700;
    color: var(--ink-soft);
    margin-bottom: 14px;
}

.step:hover .step-num {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}

.step h4 {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 5px;
}

.step p {
    font-size: 12px;
    color: var(--ink-soft);
    line-height: 1.55;
}

.cost-bar {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 20px 26px;
    margin-top: 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.cost-bar-title {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 4px;
}

.cost-bar-desc {
    font-size: 12.5px;
    color: var(--ink-soft);
}


/* ===== staff ===== */
.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

@media (max-width:880px) {
    .grid-4 {
        grid-template-columns: 1fr 1fr;
    }
}

.staff-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 24px 16px;
    text-align: center;
}

.staff-avatar {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--good-bg);
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand);
}

.staff-card h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 4px;
}

.staff-role {
    font-size: 11.5px;
    color: var(--ink-soft);
    margin-bottom: 10px;
}

.staff-count {
    font-size: 22px;
    font-weight: 700;
    color: var(--brand);
}

.staff-count span {
    font-size: 12px;
    color: var(--ink-soft);
    font-weight: 400;
}

.staff-total {
    text-align: center;
    margin-top: 28px;
    font-size: 13px;
    color: var(--ink-soft);
}

.staff-total b {
    color: var(--brand);
    font-weight: 700;
}


/* ===== notice board ===== */
.notice-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
}

@media (max-width:860px) {
    .notice-grid {
        grid-template-columns: 1fr;
    }
}

.notice-box {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.notice-box-head {
    padding: 15px 20px;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.notice-box-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
}

.notice-row {
    padding: 13px 20px;
    border-bottom: 1px solid var(--line);
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.notice-row:last-child {
    border-bottom: none;
}

.notice-tag {
    font-size: 10px;
    padding: 2px 9px;
    border-radius: 5px;
    white-space: nowrap;
    margin-top: 2px;
    font-weight: 700;
}

.notice-tag.t-신규 {
    background: var(--tagnew-bg);
    color: var(--tagnew-ink);
}

.notice-tag.t-중요 {
    background: var(--tagimp-bg);
    color: var(--tagimp-ink);
}

.notice-tag.t-프로그램 {
    background: var(--tagprog-bg);
    color: var(--tagprog-ink);
}

.notice-text {
    font-size: 13px;
    color: var(--ink);
    line-height: 1.55;
    flex: 1;
}

.notice-date {
    font-size: 11px;
    color: var(--ink-soft);
    white-space: nowrap;
}

.empty-note {
    padding: 24px 20px;
    text-align: center;
    color: var(--ink-soft);
    font-size: 13px;
}


/* ===== carefor banner ===== */
.carefor-banner {
    background: var(--brand);
    padding: 52px 0;
    text-align: center;
}

.carefor-banner .wrap {
    max-width: 700px;
}

.carefor-banner h2 {
    color: #fff;
    font-size: 23px;
    margin-bottom: 10px;
}

.carefor-banner p {
    color: rgba(255, 255, 255, .82);
    font-size: 13.5px;
    line-height: 1.7;
    margin-bottom: 24px;
}

.carefor-badges {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}

.carefor-badge {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    padding: 6px 15px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
}


/* ===== contact ===== */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

@media (max-width:880px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }
}

.contact-info {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.contact-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.contact-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--good-bg);
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand);
}

.contact-item h4 {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink-soft);
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.contact-item p,
.contact-item a {
    font-size: 14.5px;
    color: var(--ink);
    font-weight: 600;
    text-decoration: none;
}

.placeholder-text {
    opacity: .6;
    font-style: italic;
    font-weight: 400 !important;
}

.map-box {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 12px;
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 16px;
    text-align: center;
    padding: 22px 16px;
}

.map-box svg {
    width: 30px;
    height: 30px;
    stroke: var(--brand);
    fill: none;
    stroke-width: 1.5;
    opacity: .55;
    margin: 0 auto 6px;
    display: block;
}

.map-box p {
    font-size: 13px;
    color: var(--ink);
    font-weight: 600;
}

.map-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 14px;
}

.map-links .btn {
    font-size: 12.5px;
    padding: 9px 16px;
}

.form-card {
    background: var(--surface-2);
    border-radius: 16px;
    padding: 30px;
}

.form-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 5px;
}

.form-desc {
    font-size: 13px;
    color: var(--ink-soft);
    margin-bottom: 22px;
}

.field {
    margin-bottom: 14px;
}

.field label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink-mid);
    margin-bottom: 5px;
}

.field .req {
    color: var(--critical);
}

.field input,
.field select,
.field textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--bg);
    outline: none;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--brand);
}

.field textarea {
    min-height: 90px;
    resize: vertical;
}

.field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

@media (max-width:480px) {
    .field-row {
        grid-template-columns: 1fr;
    }
}

.checkbox-row {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    font-size: 12.5px;
    color: var(--ink-soft);
    margin: 16px 0;
}

.checkbox-row input {
    margin-top: 3px;
}

.form-error {
    color: var(--critical);
    font-size: 13px;
    margin-bottom: 12px;
}

.privacy-note {
    font-size: 11.5px;
    color: var(--ink-soft);
    margin-top: 16px;
    line-height: 1.6;
}

.consult-aside {
    background: var(--brand);
    color: #fff;
    border-radius: 16px;
    padding: 30px;
    height: 100%;
}

.consult-aside-label {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .8);
    margin-bottom: 6px;
}

.consult-phone {
    font-size: 27px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    display: block;
    line-height: 1.2;
}

.consult-phone2 {
    font-size: 14px;
    color: rgba(255, 255, 255, .85);
    margin-top: 4px;
}

.consult-phone2 a {
    color: #fff;
    text-decoration: none;
}

.consult-aside-div {
    height: 1px;
    background: rgba(255, 255, 255, .22);
    margin: 20px 0;
}

.consult-aside-row {
    font-size: 13px;
    color: rgba(255, 255, 255, .85);
    line-height: 1.7;
    margin-bottom: 16px;
}

.consult-aside-row b {
    color: #fff;
    font-weight: 600;
}

.consult-status {
    font-size: 14px;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.consult-status b {
    font-weight: 700;
}

.consult-badge {
    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .3);
    padding: 3px 11px;
    border-radius: 20px;
    font-size: 12px;
}

.consult-aside-note {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .82);
    line-height: 1.75;
}


/* ===== footer ===== */
.footer-top {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 36px;
    margin-bottom: 36px;
}

@media (max-width:760px) {
    .footer-top {
        grid-template-columns: 1fr 1fr;
    }
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.footer-brand-icon {
    width: 38px;
    height: 38px;
    background: #fff;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
}

.footer-brand-icon .brand-mark {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.footer-brand-name {
    font-family: var(--font-display);
    font-size: 15px;
    color: #fff;
    font-weight: 700;
}

.footer-desc {
    font-size: 12px;
    line-height: 1.75;
    margin-bottom: 14px;
}

.footer-cert {
    font-size: 11px;
    color: rgba(255, 255, 255, .4);
    line-height: 1.7;
}

.footer-col h4 {
    font-size: 13px;
    color: #fff;
    font-weight: 700;
    margin-bottom: 14px;
}

.footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.footer-col ul li a {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .6);
    text-decoration: none;
    cursor: pointer;
    background: none;
    border: none;
    font-family: var(--font-body);
    padding: 0;
    text-align: left;
}

.footer-col ul li a:hover {
    color: #E2C57C;
}

.footer-col ul li span {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .32);
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding-top: 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

.footer-copy {
    font-size: 11px;
    color: rgba(255, 255, 255, .35);
}

.footer-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.footer-tag {
    font-size: 10px;
    color: rgba(255, 255, 255, .3);
    padding: 2px 9px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 5px;
}

.admin-link {
    background: none;
    border: none;
    color: rgba(255, 255, 255, .5);
    text-decoration: underline;
    cursor: pointer;
    font-size: 11.5px;
    padding: 0;
    font-family: var(--font-body);
}


/* ===== admin overlay ===== */
.overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 28, 20, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 200;
}

.modal {
    background: var(--surface);
    border-radius: 16px;
    max-width: 480px;
    width: 100%;
    padding: 30px;
    box-shadow: var(--shadow);
    max-height: 88vh;
    overflow: auto;
}

.modal-lg {
    max-width: 960px;
}

.modal-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.modal-close {
    background: none;
    border: 1px solid var(--line);
    border-radius: 8px;
    width: 34px;
    height: 34px;
    cursor: pointer;
    color: var(--ink);
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.disclaimer {
    background: var(--warn-bg);
    color: var(--warn);
    border-radius: 9px;
    padding: 12px 14px;
    font-size: 12.5px;
    margin-bottom: 18px;
}

.admin-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}

@media (max-width:640px) {
    .admin-summary {
        grid-template-columns: 1fr 1fr;
    }
}

.stat-tile {
    background: var(--surface-2);
    border-radius: 9px;
    padding: 14px 16px;
}

.stat-tile b {
    display: block;
    font-size: 1.3rem;
    color: var(--brand);
}

.stat-tile span {
    font-size: .72rem;
    color: var(--ink-soft);
}

.admin-block {
    background: var(--surface-2);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 18px;
}

.admin-block h4 {
    margin: 0 0 12px;
    font-size: 14px;
    color: var(--ink);
}

.occ-editor {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.stepper-btn {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--surface);
    font-size: 1.2rem;
    cursor: pointer;
    color: var(--ink);
}

.table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 9px;
}

table.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 720px;
}

.data-table th {
    text-align: left;
    background: var(--surface-2);
    padding: 9px 11px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ink-soft);
    border-bottom: 1px solid var(--line);
}

.data-table td {
    padding: 9px 11px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}

.data-table select,
.data-table input {
    font-family: var(--font-body);
    padding: 6px 8px;
    border-radius: 6px;
    border: 1px solid var(--line);
    background: var(--bg);
    color: var(--ink);
    font-size: 12.5px;
}

.reveal-btn {
    background: none;
    border: none;
    color: var(--brand);
    cursor: pointer;
    font-size: .78rem;
    text-decoration: underline;
    padding: 0;
}

.row-inline {
    display: flex;
    gap: 6px;
}

.row-inline input {
    width: 88px;
}

.notice-admin-row {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
    flex-wrap: wrap;
}

.notice-admin-row:last-child {
    border-bottom: none;
}

.notice-admin-row .grow {
    flex: 1;
    min-width: 160px;
}


/* ===== toast ===== */
.toast-host {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 22px;
    display: flex;
    justify-content: center;
    z-index: 250;
    padding: 0 16px;
    pointer-events: none;
}

.toast {
    pointer-events: auto;
    max-width: 520px;
    background: var(--ink);
    color: var(--bg);
    border-radius: 9px;
    padding: 14px 18px;
    box-shadow: var(--shadow);
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 14px;
}

.toast-warn {
    background: var(--critical);
    color: #fff;
}

.toast button {
    background: none;
    border: none;
    color: inherit;
    opacity: .7;
    cursor: pointer;
    flex: none;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}


/* ===== faq ===== */
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 760px;
    margin: 0 auto;
}

.faq-item {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.faq-q {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 16px 20px;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    font-family: var(--font-body);
}

.faq-q .faq-plus {
    color: var(--brand);
    font-size: 18px;
    flex: none;
    transition: transform .2s;
}

.faq-item.open .faq-plus {
    transform: rotate(45deg);
}

.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
}

.faq-item.open .faq-a {
    max-height: 280px;
}

.faq-a p {
    padding: 0 20px 16px;
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.7;
}


/* ===== cost estimator ===== */
.cost-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px;
    max-width: 640px;
    margin: 0 auto;
}

.cost-select-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.cost-select-row select {
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: 14px;
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--ink);
}

.cost-result {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

@media (max-width:480px) {
    .cost-result {
        grid-template-columns: 1fr;
    }
}

.cost-tile {
    background: var(--surface-2);
    border-radius: 10px;
    padding: 16px;
    text-align: center;
}

.cost-tile b {
    display: block;
    font-size: 20px;
    color: var(--brand);
}

.cost-tile span {
    font-size: 11.5px;
    color: var(--ink-soft);
}

.cost-note {
    background: var(--warn-bg);
    color: var(--warn);
    border-radius: 9px;
    padding: 12px 14px;
    font-size: 12px;
    line-height: 1.6;
}


/* ===== sns ===== */
.sns-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sns-btn {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 15px;
    border-radius: 18px;
    color: #fff;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.sns-btn.yt {
    background: #FF0000;
}

.sns-btn.ig {
    background: linear-gradient(45deg, #fdf497, #fd5949, #d6249f, #285AEB);
}

.sns-btn.fb {
    background: #FAE100;
    color: #371D1E;
    font-weight: 1000;
}

.sns-btn.nb {
    background: #03C75A;
}

.sns-btn.disabled {
    background: none;
    border: 1px solid var(--line);
    color: var(--ink-soft);
    pointer-events: none;
}

.hero-sns .sns-btn.disabled {
    border-color: rgba(255, 255, 255, .35);
    color: rgba(255, 255, 255, .6);
}

.hero-sns {
    margin-top: 22px;
}

.footer-sns {
    margin-top: 16px;
}

.footer-sns-label {
    font-size: 11px;
    color: rgba(255, 255, 255, .4);
    margin-bottom: 8px;
    letter-spacing: .04em;
}


/* ===== board ===== */
.board-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.board-tab {
    padding: 8px 16px;
    border-radius: 20px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-mid);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--font-body);
}

.board-tab.active {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
}

.board-list {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.notice-tag.t-채용 {
    background: #EDE7F6;
    color: #5E35B1;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .notice-tag.t-채용 {
        background: #2A2140;
        color: #B39DDB;
    }
}

:root[data-theme="dark"] .notice-tag.t-채용 {
    background: #2A2140;
    color: #B39DDB;
}


/* ===== calendar ===== */
.cal-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 24px;
    max-width: 760px;
    margin: 0 auto;
}

.cal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cal-head b {
    font-size: 16px;
    color: var(--ink);
}

.cal-nav-btn {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--surface-2);
    cursor: pointer;
    color: var(--ink);
    font-size: 15px;
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
}

.cal-dow {
    text-align: center;
    font-size: 11px;
    color: var(--ink-soft);
    font-weight: 700;
    padding-bottom: 6px;
}

.cal-cell {
    aspect-ratio: 1;
    border-radius: 8px;
    border: 1px solid transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 5px 2px;
    font-size: 12px;
    color: var(--ink);
    cursor: pointer;
    background: var(--surface-2);
}

.cal-cell.empty {
    background: none;
    cursor: default;
}

.cal-cell.today {
    border-color: var(--brand);
}

.cal-cell.selected {
    background: var(--brand);
    color: #fff;
}

.cal-dots {
    display: flex;
    gap: 2px;
    margin-top: 3px;
    flex-wrap: wrap;
    justify-content: center;
}

.cal-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--brand);
}

.cal-cell.selected .cal-dot {
    background: #fff;
}

.cal-detail {
    margin-top: 18px;
    background: var(--surface-2);
    border-radius: 10px;
    padding: 16px;
    font-size: 13px;
    color: var(--ink-mid);
}

.cal-detail-row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 6px 0;
    border-bottom: 1px solid var(--line);
}

.cal-detail-row:last-child {
    border-bottom: none;
}


/* ===== chat widget ===== */
.chat-fab {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--brand);
    color: #fff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow);
    cursor: pointer;
    z-index: 230;
}

.chat-panel {
    position: fixed;
    right: 20px;
    bottom: 86px;
    width: 320px;
    max-width: calc(100vw - 40px);
    max-height: 70vh;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
    z-index: 230;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.chat-head {
    background: var(--brand);
    color: #fff;
    padding: 14px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.chat-head-title {
    font-size: 13.5px;
    font-weight: 700;
}

.chat-head-sub {
    font-size: 10.5px;
    color: rgba(255, 255, 255, .8);
}

.chat-close {
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    flex: none;
}

.chat-body {
    flex: 1;
    overflow-y: auto;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 60px;
}

.chat-msg {
    max-width: 82%;
    font-size: 12.5px;
    line-height: 1.6;
    padding: 9px 12px;
    border-radius: 11px;
}

.chat-msg.bot {
    background: var(--surface-2);
    color: var(--ink);
    align-self: flex-start;
}

.chat-msg.user {
    background: var(--brand);
    color: #fff;
    align-self: flex-end;
}

.chat-chips {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 14px;
    border-top: 1px solid var(--line);
    max-height: 180px;
    overflow-y: auto;
}

.chat-chip {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 8px 10px;
    font-size: 12px;
    text-align: left;
    color: var(--ink);
    cursor: pointer;
    font-family: var(--font-body);
}

.chat-chip:hover {
    background: var(--good-bg);
}

.chat-foot {
    padding: 10px 14px;
    border-top: 1px solid var(--line);
    font-size: 10.5px;
    color: var(--ink-soft);
}


/* ===== nav active + home quick + admin page ===== */
.nav-links a.active {
    color: var(--brand);
    border-bottom-color: var(--brand);
}

.home-quick {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width:820px) {
    .home-quick {
        grid-template-columns: 1fr;
    }
}

.home-quick-card {
    text-align: left;
    text-decoration: none;   /* ← 이 줄 추가 */

    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 26px 22px;
    cursor: pointer;
    font-family: var(--font-body);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.home-quick-card:hover {
    border-color: var(--brand);
}

.home-quick-card h3 {
    font-size: 16px;
    margin: 6px 0 0;
}

.home-quick-card p {
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.6;
}

.home-quick-go {
    margin-top: 10px;
    color: var(--brand);
    font-weight: 700;
    font-size: 13px;
}

.admin-topbar {
    background: var(--brand-deep);
    border-bottom: 1px solid var(--line);
    padding: 14px 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.admin-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.admin-topbar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-topbar .nav-logo-text,
.admin-topbar .nav-logo-sub {
    color: #fff;
}

.admin-topbar .nav-logo-sub {
    color: rgba(255, 255, 255, .6);
}

.admin-page-wrap {
    padding: 28px 0 60px;
    background: var(--bg);
    min-height: 70vh;
}

.admin-page-wrap .admin-summary {
    margin-bottom: 22px;
}

.admin-page-gate {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: var(--surface-2);
}


/* ===== brand mark, compact cost/staff, hero photo ===== */
.brand-mark {
    display: block;
}

.hero.hero-photo::before,
.hero.hero-photo::after {
    display: none;
}

.facility-visual.has-photo {
    padding: 0;
}

.cost-mini {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px;
    margin-top: 16px;
}

.cost-mini-head {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 10px;
}

.cost-mini-select {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: 13.5px;
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--ink);
    margin-bottom: 12px;
}

.cost-mini-result {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 10px;
}

.cost-mini-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12.5px;
    color: var(--ink-mid);
    padding: 7px 11px;
    background: var(--surface-2);
    border-radius: 7px;
}

.cost-mini-row b {
    color: var(--ink);
}

.cost-mini-row.total {
    background: var(--good-bg);
}

.cost-mini-row.total b {
    color: var(--brand);
    font-size: 14px;
}

.cost-mini-empty {
    font-size: 12.5px;
    color: var(--ink-soft);
    margin-bottom: 10px;
}

.cost-mini-note {
    font-size: 10.5px;
    color: var(--ink-soft);
    line-height: 1.6;
}

.staff-mini {
    margin-top: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 18px;
}

.staff-mini-head {
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 8px;
}

.staff-mini-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px solid var(--line);
}

.staff-mini-row:last-of-type {
    border-bottom: none;
}

.staff-mini-ic {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: var(--good-bg);
    color: var(--brand);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.staff-mini-name {
    flex: 1;
    font-size: 13px;
    color: var(--ink);
}

.staff-mini-row b {
    color: var(--brand);
    font-size: 14px;
}

.staff-mini-total {
    font-size: 11px;
    color: var(--ink-soft);
    margin-top: 10px;
    line-height: 1.5;
}

.staff-mini-total b {
    color: var(--brand);
}


/* ===== gallery ===== */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

@media (max-width:820px) {
    .gallery-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:520px) {
    .gallery-grid {
        grid-template-columns: 1fr;
    }
}

.gallery-card {
    padding: 0;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--surface);
    cursor: pointer;
    text-align: left;
    font-family: var(--font-body);
    display: block;
}

.gallery-card:hover {
    border-color: var(--brand);
}

.gallery-thumb {
    aspect-ratio: 4/3;
    background-size: cover;
    background-position: center;
    background-color: var(--surface-2);
}

.gallery-thumb-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand);
    opacity: .4;
}

.gallery-cap {
    padding: 12px 14px;
}

.gallery-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.4;
}

.gallery-date {
    font-size: 11.5px;
    color: var(--ink-soft);
    margin-top: 3px;
}

.gallery-modal {
    max-width: 640px;
}

.gallery-full {
    width: 100%;
    border-radius: 10px;
    margin-bottom: 12px;
    display: block;
}

.gallery-modal-date {
    font-size: 12px;
    color: var(--ink-soft);
    margin-bottom: 8px;
}

.gallery-modal-desc {
    font-size: 14px;
    color: var(--ink-mid);
    line-height: 1.75;
    white-space: normal;
}

.gallery-admin-row {
    display: flex;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.gallery-admin-thumb {
    width: 80px;
    height: 60px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-color: var(--surface);
    border: 1px solid var(--line);
    flex: none;
}

.gallery-admin-fields {
    flex: 1;
    min-width: 0;
}

.gallery-add {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed var(--line);
}

.gallery-add-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 10px;
}


.board-tab {
    text-decoration: none;   /* ← 이 줄 추가 */


}
/* news.jsp 캘린더 이전/다음 달 버튼을 <button>에서 <a>로 바꾸면서 필요해진 보정.
   기존 .cal-nav-btn 은 <button> 기준 스타일이라 가운데정렬/밑줄제거가 없었음. */
.cal-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

/* 캘린더 날짜 칸도 <div>에서 <a>로 바뀌면서 밑줄이 생기는 걸 막기 위함 */
.cal-cell {
    text-decoration: none;
}

/* ===== 입소 절차 화살표(쉐브론) 진행바 ===== */


.step-arrow-row{
    display:flex;
    flex-wrap:nowrap;
    gap:4px;          /* 화살표끼리 딱 붙게 하려면 0으로, 살짝 띄우려면 4~8px */
    margin:0 auto;
    max-width:1200px;
}


.step-arrow {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-2);
    color: var(--ink-soft);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    user-select: none;
    padding: 0 30px 0 36px;
    margin-left: -20px;
    box-sizing: border-box;                 /* 추가: 테두리가 레이아웃 밖으로 안 튀어나가게 */
    border: 1px solid var(--line);          /* 추가: 기본 상태에서도 화살표 윤곽선 보이게 */
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%, 20px 50%);
    transition: background .25s ease, color .25s ease, border-color .25s ease;
}

/* 첫 번째 칸: 왼쪽은 그냥 평평하게 (파인 부분 없음) */
.step-arrow:first-child {
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
    margin-left: 0;
    padding-left: 20px;
}

/* 마지막 칸: 오른쪽은 그냥 평평하게 (뾰족한 부분 없음) */
.step-arrow:last-child {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 20px 50%);
}

/* 클릭해서 채워진 상태 — 요청하신 대로 --good-bg 사용 */
.step-arrow.filled {
    background: var(--good-bg);
    color: #222;
}

@media (max-width: 860px) {
    .step-arrow-row {
        flex-direction: column;
    }
    .step-arrow {
        clip-path: none !important;
        margin-left: 0 !important;
        border-radius: 8px;
        margin-bottom: 6px;
        padding: 0 16px;
    }
}

button.cal-cell {
    font-family: inherit;
    appearance: none;
    -webkit-appearance: none;
}

.board-popup{
    display:none;
}
.board-popup:target{
    display:flex;
}

.overlay.board-popup{
    display:none;
}
.overlay.board-popup:target{
    display:flex;
}

/* 페이지네이션 (공지/게시판, 갤러리 등 목록 하단 공통) */
.pageing{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    list-style:none;
    margin:30px 0 0;
    padding:0;
    flex-wrap:wrap;
}
.pageing .num,
.pageing .num_on{
    display:flex;
}
.pageing .num a,
.pageing .num_on a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    padding:0 8px;
    border-radius:8px;
    border:1px solid var(--line);
    background:var(--surface);
    color:var(--ink-mid);
    font-size:13px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
}
.pageing .num a:hover{
    border-color:var(--brand);
    color:var(--brand);
}
.pageing .num_on a{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
    cursor:default;
}