@charset "utf-8";

/* ========================================
   SUB VISUAL
======================================== */

.sub-visual {
    position: relative;
    min-height: 260px;
    overflow: hidden;
    color: #fff;
}

.sub-visual__background {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(29,65,30,0.35), rgba(23,56,24,0.42)),
        url("../images/common/bg/all-menu-bg.jpg") center / cover no-repeat;
}

.sub-visual > .inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: 260px;
}

.sub-visual__eyebrow {
    margin-top: 0.625rem;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.82);
}

.sub-visual__title {
    display: block;
    font-size: clamp(2.25rem, 3.5vw, 3.5rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.04em;
}

/* ========================================
   BREADCRUMB
======================================== */

.breadcrumb-wrap {
    position: relative;
    z-index: 5;
    border-bottom: 1px solid #e7e7e7;
    background: #fff;
}

.breadcrumb__list {
    display: flex;
    align-items: center;
    min-height: 56px;
}

.breadcrumb__item {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 0;
    font-size: 0.875rem;
    color: #777;
}

.breadcrumb__item:not(:last-child)::after {
    content: "";
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    margin: 0 1rem;
    border-top: 1px solid #aaa;
    border-right: 1px solid #aaa;
    transform: rotate(45deg);
}

.breadcrumb__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.breadcrumb__link:hover,.breadcrumb__link:focus-visible {text-decoration: underline; text-underline-offset: 4px;}

.breadcrumb__item[aria-current="page"] {
    overflow: hidden;
    font-weight: 600;
    color: #333;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.breadcrumb__home-icon {
    position: relative;
    width: 18px;
    height: 18px;
}

.breadcrumb__home-icon::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 3px;
    width: 11px;
    height: 9px;
    border: 1.5px solid #666;
    border-top: 0;
}

.breadcrumb__home-icon::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 4px;
    width: 9px;
    height: 9px;
    border-top: 1.5px solid #666;
    border-left: 1.5px solid #666;
    transform: rotate(45deg);
}

/* ========================================
   SUB BODY / LAYOUT
======================================== */

.sub-body {padding: clamp(4rem, 6vw, 6rem) 0 clamp(6rem, 9vw, 9rem);}

.sub-layout {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: clamp(3rem, 5vw, 5rem);
    align-items: start;
}

.sub-content {min-width: 0;}

/* ========================================
   DESKTOP LNB
======================================== */

.lnb {
    position: sticky;
    top: 2rem;
    min-width: 0;
}

.lnb__header {
    padding-bottom: 1.5rem;
    border-bottom: 2px solid #456b30;
}

.lnb__title {
    display: block;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.04em;
    color: #333;
}

.lnb__list {border-bottom: 1px solid #ddd;}

.lnb__item {border-bottom: 1px solid #e6e6e6;}
.lnb__item:last-child {border-bottom: 0;}

.lnb__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 58px;
    padding: 0.75rem 0.875rem;
    font-size: 0.9375rem;
    color: #666;
    transition: color 0.2s ease, background 0.2s ease, padding-left 0.2s ease;
}

.lnb__arrow {
    position: relative;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
}

.lnb__arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 4px;
    width: 6px;
    height: 6px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

.lnb__link:hover,.lnb__link:focus-visible {
    padding-left: 1.125rem;
    color: #527536;
    background: #f6f8f3;
}

.lnb__link.is-active,.lnb__link[aria-current="page"] {
    padding-left: 1.125rem;
    font-weight: 700;
    color: #fff;
    background: #789b43;
}

/* ========================================
   TABLET / MOBILE LOCAL NAVIGATION
======================================== */

.sub-local-nav {display: none;}

/* ========================================
   PAGE HEADER
======================================== */

.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
    padding-bottom: 1.75rem;
    border-bottom: 1px solid #ddd;
}

.page-title {
    font-size: clamp(2.25rem, 3.5vw, 3.25rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.045em;
    color: #222;
}

/* ========================================
   PAGE UTILITY
======================================== */

.page-utility {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
}

.page-utility__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-width: 46px;
    min-height: 46px;
    padding: 0.5rem 0.75rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fff;
    font-size: 0.8125rem;
    color: #555;
}

.page-utility__button:hover,.page-utility__button:focus-visible {
    border-color: #789b43;
    color: #527536;
    background: #f6f8f3;
}

.page-utility__icon {
    position: relative;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
}


/* ========================================
   PAGE CONTENT
======================================== */

.page-content {
    width: 100%;
    min-width: 0;
}

/* ========================================
   TABLET
======================================== */

@media (max-width: 1279px) {
    .sub-visual,.sub-visual > .inner {min-height: 220px;}

    .sub-body {padding-top: 3rem;}

    .sub-layout {
        display: block;
    }

    .lnb {display: none;}

    .sub-local-nav {
        position: relative;
        z-index: 20;
        display: block;
        margin-bottom: 2.5rem;
    }

    .sub-local-nav__toggle {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        width: 100%;
        min-height: 56px;
        padding: 0.75rem 1.25rem;
        border: 1px solid #d9d9d9;
        border-radius: 0.75rem;
        background: #fff;
        font-size: 1rem;
        font-weight: 600;
        text-align: left;
        color: #333;
    }

    .sub-local-nav__icon {
        position: relative;
        flex: 0 0 20px;
        width: 20px;
        height: 20px;
    }

    .sub-local-nav__icon::before {
        content: "";
        position: absolute;
        top: 5px;
        left: 6px;
        width: 7px;
        height: 7px;
        border-right: 1.5px solid #555;
        border-bottom: 1.5px solid #555;
        transform: rotate(45deg);
        transition: transform 0.2s ease;
    }

    .sub-local-nav__toggle[aria-expanded="true"] .sub-local-nav__icon::before {
        top: 8px;
        transform: rotate(225deg);
    }

    .sub-local-nav__menu {
        position: absolute;
        top: calc(100% + 0.5rem);
        right: 0;
        left: 0;
        overflow: hidden;
        border: 1px solid #ddd;
        border-radius: 0.75rem;
        background: #fff;
        box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    }

    .sub-local-nav__menu a {
        display: block;
        min-height: 50px;
        padding: 0.875rem 1.25rem;
        border-bottom: 1px solid #eee;
        font-size: 0.9375rem;
        color: #555;
    }

    .sub-local-nav__menu li:last-child a {border-bottom: 0;}

    .sub-local-nav__menu a:hover,.sub-local-nav__menu a:focus-visible {
        color: #527536;
        background: #f6f8f3;
    }

    .sub-local-nav__menu a[aria-current="page"] {
        font-weight: 700;
        color: #fff;
        background: #789b43;
    }
}

/* ========================================
   MOBILE
======================================== */

@media (max-width: 768px) {
    .sub-visual,.sub-visual > .inner {min-height: 180px;}

    .sub-visual__eyebrow {font-size: 0.6875rem;}
    .sub-visual__title {font-size: clamp(2rem, 8vw, 2.75rem);}

    .breadcrumb__list {min-height: 50px;}

    .breadcrumb__item {
        max-width: 40%;
        font-size: 0.8125rem;
    }

    .breadcrumb__item--home {max-width: none;}

    .breadcrumb__item:not(:last-child)::after {
        margin: 0 0.7rem;
    }

    .sub-body {
        padding-top: 2rem;
        padding-bottom: 5rem;
    }

    .sub-local-nav {margin-bottom: 2rem;}

    .sub-local-nav__toggle {
        min-height: 52px;
        padding: 0.7rem 1rem;
        font-size: 0.9375rem;
    }

    .page-header {
        align-items: center;
        gap: 1rem;
        margin-bottom: 2.25rem;
        padding-bottom: 1.25rem;
    }

    .page-title {
        min-width: 0;
        font-size: clamp(2rem, 8vw, 2.5rem);
    }

    .page-utility {gap: 0.35rem;}

    .page-utility__button {
        flex: 0 0 44px;
        width: 44px;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
    }

    .page-utility__text {display: none;}
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
    .lnb__link,.sub-local-nav__icon::before {transition: none;}
}

/* ========================================
   PRINT
======================================== */

@media print {
    .sub-visual,.breadcrumb-wrap,.lnb,.sub-local-nav,.page-utility {display: none !important;}

    .sub-body {padding: 0;}

    .sub-layout {display: block;}

    .page-header {
        margin-bottom: 1.5rem;
        padding-bottom: 1rem;
    }

    .page-content {width: 100%;}
}



/* ========================================
   GREETING
======================================== */

.greeting {width: 100%;}

.greeting__intro {
    position: relative;
    max-width: 960px;
}

.greeting__lead {
    max-width: 880px;
    font-size: clamp(1.75rem, 2.8vw, 2.5rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.04em;
    color: #2f3b2b;
}

.greeting__body {
    max-width: 960px;
}

.greeting__section {
    padding: clamp(2.5rem, 5vw, 3rem) 0;
}

.greeting__section-title {
    max-width: 760px;
    margin-bottom: 1.5rem;
    font-size: clamp(1.375rem, 2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.035em;
    color: #333;
}

.greeting__text {
    max-width: 860px;
    font-size: 1rem;
    line-height: 1.9;
    color: #555;
}

.greeting__text p + p {margin-top: 1.25rem;}

.greeting__closing {
    padding: clamp(1.5rem, 5vw, 2rem) 0 1.5rem;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: #444;
}

.greeting__closing p + p {margin-top: 0.25rem;}

.greeting__signature {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.625rem;
    padding-top: 1.25rem;
    font-size: 0.9375rem;
    color: #666;
}

.greeting__signature strong {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #333;
}

@media (max-width: 1279px) {
    .greeting__intro,.greeting__body {max-width: 100%;}

    .greeting__lead {max-width: 820px;}

    .greeting__section-title,.greeting__text {max-width: 100%;}
}

@media (max-width: 768px) {
    .greeting__lead {
        font-size: clamp(1.5rem, 6.5vw, 1.875rem);
        line-height: 1.5;
    }

    .greeting__section {padding: 2.5rem 0;}

    .greeting__section-title {
        margin-bottom: 1.25rem;
        font-size: 1.25rem;
        line-height: 1.5;
    }

    .greeting__text {
        font-size: 0.9375rem;
        line-height: 1.85;
    }

    .greeting__closing {
        padding-top: 2.5rem;
        font-size: 1rem;
    }

    .greeting__signature {
        display: block;
        text-align: right;
    }

    .greeting__signature strong {
        display: block;
        margin-top: 0.25rem;
    }
}

/* ========================================
   HISTORY
======================================== */

.history {
    width:100%;
    max-width:1000px;
}

.history__groups {
    display:flex;
    flex-direction:column;
    gap:clamp(4rem, 7vw, 6.5rem);
}

.history__group {
    display:grid;
    grid-template-columns:minmax(110px, 150px) minmax(0, 1fr);
    gap:clamp(2.5rem, 5vw, 5rem);
    align-items:start;
}

.history__year {
    position:sticky;
    top:2rem;
    font-size:clamp(2.25rem, 3.5vw, 3.25rem);
    font-weight:800;
    line-height:1;
    letter-spacing:-0.05em;
    color:#789b43;
}

.history__list {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:1.25rem;
}

.history__list::before {
    content:"";
    position:absolute;
    top:1.5rem;
    bottom:1.5rem;
    left:8px;
    width:1px;
    background:#dce6d1;
}

.history__item {
    position:relative;
    padding-left:2.25rem;
}

.history__dot {
    position:absolute;
    z-index:1;
    top:1.6rem;
    left:3px;
    width:11px;
    height:11px;
    border:3px solid #fff;
    border-radius:50%;
    background:#789b43;
    box-shadow:0 0 0 1px #789b43;
}

.history__card {
    display:grid;
    grid-template-columns:64px minmax(0, 1fr);
    gap:1.5rem;
    align-items:start;
    padding:1.4rem 1.5rem;
    border:1px solid #e5e9df;
    border-radius:1rem;
    background:#fff;
    box-shadow:0 5px 18px rgba(48,75,35,.06);
    transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.history__item:hover .history__card {
    transform:translateY(-3px);
    border-color:#cbd8bc;
    box-shadow:0 10px 28px rgba(48,75,35,.1);
}

.history__date {
    display:flex;
    align-items:baseline;
    gap:.2rem;
    padding-top:.05rem;
    color:#527536;
}

.history__month {
    font-size:1.25rem;
    font-weight:800;
    line-height:1.4;
    letter-spacing:-0.03em;
}

.history__month-label {
    font-size:.75rem;
    font-weight:600;
    color:#80906f;
}

.history__description {
    font-size:1rem;
    line-height:1.75;
    letter-spacing:-0.015em;
    color:#4d4d4d;
}

/* Scroll reveal */
.history__group[data-reveal] {
    opacity:0;
    transform:translateY(24px);
    transition:opacity .65s ease, transform .65s ease;
}

.history__group[data-reveal].is-visible {
    opacity:1;
    transform:translateY(0);
}

@media (max-width:1279px) {
    .history {max-width:100%;}

    .history__group {
        grid-template-columns:minmax(100px, 130px) minmax(0, 1fr);
        gap:2.5rem;
    }

    .history__year {position:static;}
}

@media (max-width:768px) {
    .history__groups {gap:3.5rem;}

    .history__group {
        display:block;
    }

    .history__year {
        margin-bottom:1.75rem;
        font-size:2.25rem;
    }

    .history__list {gap:1rem;}

    .history__list::before {
        top:1.25rem;
        bottom:1.25rem;
        left:6px;
    }

    .history__item {padding-left:1.75rem;}

    .history__dot {
        top:1.45rem;
        left:1px;
        width:11px;
        height:11px;
    }

    .history__card {
        grid-template-columns:52px minmax(0, 1fr);
        gap:1rem;
        padding:1.2rem 1.25rem;
        border-radius:.875rem;
    }

    .history__month {font-size:1.125rem;}

    .history__description {
        font-size:.9375rem;
        line-height:1.8;
    }
}

@media (max-width:480px) {
    .history__groups {gap:3rem;}

    .history__year {
        margin-bottom:1.5rem;
        font-size:2rem;
    }

    .history__item {padding-left:1.5rem;}

    .history__card {
        display:block;
        padding:1.125rem;
    }

    .history__date {
        margin-bottom:.5rem;
    }

    .history__description {line-height:1.75;}
}

@media (prefers-reduced-motion:reduce) {
    .history__card,.history__group[data-reveal] {transition:none;}

    .history__group[data-reveal] {
        opacity:1;
        transform:none;
    }

    .history__item:hover .history__card {transform:none;}
}

/* ========================================
   ORGANIZATION
======================================== */

.organization {
    width:100%;
    max-width:1000px;
    margin:0 auto;
}

.organization__name {
    max-width:560px;
    margin:0 auto clamp(4rem, 6vw, 5.5rem);
    padding:0 1rem 1.5rem;
    border-bottom:2px solid #789b43;
    font-size:clamp(1.375rem, 2vw, 1.75rem);
    font-weight:700;
    line-height:1.5;
    letter-spacing:-0.035em;
    text-align:center;
    color:#333;
}

.organization__chart {
    --organization-line:#d1d9cb;
    --organization-node-width:220px;
    --organization-branch-gap:72px;
    width:100%;
    padding:0 1rem;
}

.organization__tree,.organization__tree ul {margin:0; list-style:none;}
.organization__tree {padding:0;}

.organization__node {
    display:flex;
    align-items:center;
    justify-content:center;
    width:var(--organization-node-width);
    min-height:68px;
    padding:1rem 1.25rem;
    border:1px solid #d8dfd2;
    border-radius:.75rem;
    background:#fff;
    font-size:1rem;
    font-weight:600;
    line-height:1.45;
    letter-spacing:-0.025em;
    text-align:center;
    color:#3f3f3f;
}


/* 조합원 총회 */

.organization__assembly {position:relative;}

.organization__node--assembly {
    margin:0 auto;
    border-color:#789b43;
    font-size:1.0625rem;
    font-weight:700;
    color:#49652f;
}


/* 조합원 총회 → 감사 / 이사회 */

.organization__assembly-branches {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0, 1fr) var(--organization-node-width) minmax(0, 1fr);
    grid-template-rows:100px auto;
    column-gap:var(--organization-branch-gap);
    padding:0;
}

/* 조합원 총회에서 이사회 방향으로 내려오는 중앙선 */
.organization__assembly-branches::before {
    content:"";
    position:absolute;
    top:0;
    left:50%;
    width:1px;
    height:100px;
    background:var(--organization-line);
    transform:translateX(-50%);
}


/* 감사 */

.organization__audit {
    position:relative;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
}

/* 중앙 세로축 → 감사 */
.organization__audit::before {
    content:"";
    position:absolute;
    top:50%;
    right:100%;
    width:calc((var(--organization-node-width) / 2) + var(--organization-branch-gap));
    height:1px;
    background:var(--organization-line);
}

.organization__node--audit {color:#444;}


/* 이사회 */

.organization__board {
    position:relative;
    grid-column:2;
    grid-row:2;
}

.organization__node--board {font-weight:700;}


/* 이사회 → 이사장 */

.organization__board-branch {
    position:relative;
    padding:64px 0 0;
}

.organization__board-branch::before {
    content:"";
    position:absolute;
    top:0;
    left:50%;
    width:1px;
    height:64px;
    background:var(--organization-line);
    transform:translateX(-50%);
}

.organization__chair {position:relative;}

.organization__node--chair {
    border-color:#789b43;
    background:#fff;
    font-weight:700;
    color:#48652f;
}


/* 이사장 → 하위 3개 조직 */

.organization__departments {
    position:relative;
    left:50%;
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:40px;
    width:760px;
    padding:90px 0 0;
    transform:translateX(-50%);
}

/* 이사장 → 가로 분기선 */
.organization__departments::after {
    content:"";
    position:absolute;
    top:0;
    left:50%;
    width:1px;
    height:45px;
    background:var(--organization-line);
    transform:translateX(-50%);
}

/* 하위 3개 조직을 연결하는 가로선 */
.organization__departments::before {
    content:"";
    position:absolute;
    top:45px;
    left:calc((100% - 80px) / 6);
    right:calc((100% - 80px) / 6);
    height:1px;
    background:var(--organization-line);
}

.organization__department {position:relative;}

/* 가로 분기선 → 각각의 부서 */
.organization__department::before {
    content:"";
    position:absolute;
    bottom:100%;
    left:50%;
    width:1px;
    height:45px;
    background:var(--organization-line);
    transform:translateX(-50%);
}

.organization__node--department {
    width:100%;
    min-height:64px;
}

@media (max-width:1279px) {
    .organization {max-width:900px;}

    .organization__chart {
        --organization-node-width:190px;
        --organization-branch-gap:48px;
        padding:0;
    }

    .organization__departments {
        gap:28px;
        width:650px;
    }

    .organization__departments::before {
        left:calc((100% - 56px) / 6);
        right:calc((100% - 56px) / 6);
    }
}

@media (max-width:768px) {
    .organization__name {
        margin-bottom:3rem;
        padding:0 .5rem 1.25rem;
        font-size:1.25rem;
    }

    .organization__chart {
        --organization-node-width:100%;
        padding:0;
    }

    .organization__node {
        min-height:60px;
        padding:.875rem 1rem;
        border-radius:.625rem;
        font-size:.9375rem;
    }

    .organization__node--assembly {
        width:min(220px, 100%);
    }

    .organization__assembly-branches {
        display:grid;
        grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows:auto;
        gap:1rem;
        padding:26px 0 0;
    }

    /* 조합원 총회 → 분기점 */
    .organization__assembly-branches::before {
        top:0;
        left:50%;
        width:1px;
        height:26px;
        transform:translateX(-50%);
    }

    /* 감사 / 이사회 공통 가로선 */
    .organization__assembly-branches::after {
        content:"";
        position:absolute;
        top:26px;
        right:24.5%;
        left:24.5%;
        height:1px;
        background:var(--organization-line);
    }

    .organization__audit {
        grid-column:1;
        grid-row:1;
        align-self:start;
        justify-self:stretch;
        padding-top:26px;
    }

    .organization__board {
        grid-column:2;
        grid-row:1;
        padding-top:26px;
    }

    .organization__audit::before {
        top:0;
        right:auto;
        left:50%;
        width:1px;
        height:26px;
        transform:translateX(-50%);
    }

    .organization__board::before {
        content:"";
        position:absolute;
        top:0;
        left:50%;
        width:1px;
        height:26px;
        background:var(--organization-line);
        transform:translateX(-50%);
    }

    .organization__node--audit,.organization__node--board {width:100%;}

    .organization__board-branch {
        padding-top:48px;
    }

    .organization__board-branch::before {height:48px;}

    .organization__node--chair {width:100%;}

    .organization__departments {
        left:auto;
        display:flex;
        flex-direction:column;
        gap:.75rem;
        width:100%;
        padding:48px 0 0;
        transform:none;
    }

    .organization__departments::before {
        top:0;
        right:auto;
        left:50%;
        width:1px;
        height:48px;
        transform:translateX(-50%);
    }

    .organization__departments::after {display:none;}

    .organization__department::before {display:none;}

    .organization__node--department {
        width:100%;
        min-height:56px;
    }
}

@media (max-width:480px) {
    .organization__name {
        margin-bottom:2.5rem;
        font-size:1.125rem;
    }

    .organization__assembly-branches {gap:.75rem;}

    .organization__node {
        padding:.75rem;
        font-size:.875rem;
    }

    .organization__departments {gap:.625rem;}
}

/* ========================================
   CENTER TOUR
======================================== */

.center-tour {width:100%;}

/* Visual */
.center-tour__visual {margin:0 0 clamp(5rem, 8vw, 8rem);}
.center-tour__visual img {display:block; width:100%; height:auto;}
.center-tour__visual figcaption {margin-top:1rem; font-size:.875rem; line-height:1.6; text-align:center; color:#777;}

/* Section */
.center-tour__section,.center-tour__vr,.center-tour__group {margin-top:clamp(5rem, 8vw, 8rem);}
.center-tour__section-heading {margin-bottom:2rem;}

.center-tour__group-title {
    font-size:clamp(1.625rem, 2.5vw, 2rem);
    font-weight:700;
    line-height:1.4;
    letter-spacing:-.04em;
    color:#333;
}

/* Guide / Map */
.center-tour__guide,.center-tour__map {
    overflow:hidden;
    width:100%;
    background:#fafbf9;
}

.center-tour__guide img,.center-tour__map img {display:block; width:100%; height:auto;}

/* VR */
.center-tour__vr-viewer {
    position:relative;
    overflow:hidden;
    width:100%;
    aspect-ratio:16 / 9;
    background:#f5f6f3;
}

.center-tour__vr-viewer iframe,.center-tour__vr-viewer canvas {
    display:block;
    width:100%;
    height:100%;
    border:0;
}

/* Group */
.center-tour__group-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    margin-bottom:2rem;
    padding-bottom:1.25rem;
    border-bottom:2px solid #789b43;
}

.center-tour__vr-link {
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:.5rem;
    min-height:42px;
    padding:.625rem 1rem;
    border:1px solid #527536;
    font-size:.9375rem;
    font-weight:600;
    line-height:1.4;
    color:#527536;
}

.center-tour__vr-link-arrow {
    width:7px;
    height:7px;
    border-top:1px solid currentColor;
    border-right:1px solid currentColor;
    transform:rotate(45deg);
}

.center-tour__vr-link:hover,.center-tour__vr-link:focus-visible {
    background:#527536;
    color:#fff;
}

/* Facility List */
.center-tour__list {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    column-gap:clamp(2.5rem, 5vw, 5rem);
    margin:0;
    padding:0;
    border-top:1px solid #ddd;
    list-style:none;
}

.center-tour__item {
    min-width:0;
    padding:2rem 0;
    border-bottom:1px solid #ddd;
}

.center-tour__item-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1.5rem;
    margin-bottom:1rem;
}

.center-tour__item-title {
    min-width:0;
    font-size:1.25rem;
    font-weight:700;
    line-height:1.5;
    letter-spacing:-.035em;
    color:#333;
}

.center-tour__area {
    flex:0 0 auto;
    padding-top:.15rem;
    font-size:.9375rem;
    font-weight:600;
    line-height:1.5;
    color:#527536;
}

.center-tour__description {
    max-width:36rem;
    margin-bottom:1.25rem;
    font-size:.9375rem;
    line-height:1.8;
    color:#666;
}

/* Meta */
.center-tour__meta {margin:0;}
.center-tour__meta > div {display:flex; align-items:center; gap:.75rem;}
.center-tour__meta dt {font-size:.8125rem; font-weight:600; color:#777;}
.center-tour__meta dd {margin:0; font-size:.875rem; color:#444;}

/* Detail Link */
.center-tour__link {
    display:inline-flex;
    align-items:center;
    gap:.625rem;
    min-height:44px;
    margin-top:1.25rem;
    font-size:.9375rem;
    font-weight:600;
    color:#527536;
}

.center-tour__link-arrow {position:relative; flex:0 0 18px; width:18px; height:18px;}

.center-tour__link-arrow::before {
    content:"";
    position:absolute;
    top:50%;
    left:3px;
    width:10px;
    height:1px;
    background:currentColor;
}

.center-tour__link-arrow::after {
    content:"";
    position:absolute;
    top:50%;
    right:4px;
    width:6px;
    height:6px;
    border-top:1px solid currentColor;
    border-right:1px solid currentColor;
    transform:translateY(-50%) rotate(45deg);
}

.center-tour__link:hover,.center-tour__link:focus-visible {text-decoration:underline; text-underline-offset:5px;}


/* Responsive */
@media (max-width:768px) {
    .center-tour__visual {margin-bottom:4rem;}

    .center-tour__vr,.center-tour__group {margin-top:4.5rem;}

    .center-tour__group-header {align-items:flex-start; gap:1rem;}

    .center-tour__vr-link {min-height:38px; padding:.5rem .75rem; font-size:.875rem;}


    .center-tour__heading,.center-tour__group-title {font-size:1.5rem;}

    .center-tour__group-header {
        margin-bottom:1rem;
        padding-bottom:1rem;
    }

    .center-tour__list {grid-template-columns:1fr;}

    .center-tour__item {padding:1.75rem 0;}

    .center-tour__item-heading {
        gap:1rem;
        margin-bottom:.75rem;
    }

    .center-tour__item-title {font-size:1.125rem;}

    .center-tour__description {
        max-width:none;
        margin-bottom:1rem;
    }

}

@media (max-width:480px) {
    .center-tour__vr,.center-tour__group {margin-top:4rem;}

    .center-tour__item-heading {display:block;}

    .center-tour__area {
        display:block;
        margin-top:.35rem;
        padding:0;
    }

    .center-tour__vr-viewer {aspect-ratio:4 / 3;}
}

/* ========================================
   LOCATION
======================================== */

.location {width:100%;}

.location__map-section,.location__transport,.location__parking {
    margin-top:clamp(4.5rem, 7vw, 7rem);
}

.location__info-section {margin-top:clamp(2.5rem, 7vw, 3rem);}

.location__map-section {margin-top:0;}

.location__heading {
    margin-bottom:1.75rem;
    font-size:clamp(1.5rem, 2.3vw, 1.875rem);
    font-weight:700;
    line-height:1.4;
    letter-spacing:-.04em;
    color:#333;
}

/* Map */
.location__map {
    overflow:hidden;
    width:100%;
    aspect-ratio:16 / 7;
    min-height:320px;
    background:#f5f6f3;
}

.location__map iframe,.location__map > div {
    width:100%;
    height:100%;
    border:0;
}

/* Basic Info */
.location__info {font-style:normal;}

.location__info-list {
    margin:0;
    padding:0;
    border-top:1px solid #ddd;
}

.location__info-item {
    display:grid;
    grid-template-columns:140px minmax(0, 1fr);
    gap:2rem;
    padding:1.375rem 0;
    border-bottom:1px solid #ddd;
}

.location__label {
    font-size:.9375rem;
    font-weight:600;
    line-height:1.7;
    color:#555;
}

.location__value {
    min-width:0;
    margin:0;
    font-size:1rem;
    line-height:1.7;
    color:#333;
    overflow-wrap:anywhere;
}

.location__value a {color:inherit; text-decoration:none;}
.location__value a:hover,.location__value a:focus-visible {text-decoration:underline; text-underline-offset:4px;}

/* Actions */
.location__actions {
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    margin-top:1.5rem;
}

.location__action {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:.75rem 1.125rem;
    border:1px solid #789b43;
    background:#fff;
    font-size:.9375rem;
    font-weight:600;
    line-height:1.4;
    color:#527536;
    cursor:pointer;
}

.location__action:hover {background:#f7faf4;}

.location__status {
    min-height:1.5em;
    margin-top:.75rem;
    font-size:.875rem;
    line-height:1.5;
    color:#527536;
}

/* Transport */
.location__transport-list {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:clamp(2.5rem, 5vw, 5rem);
    border-top:1px solid #ddd;
}

.location__transport-item {
    min-width:0;
    padding:2rem 0;
    border-bottom:1px solid #ddd;
}

.location__subheading {
    margin-bottom:1rem;
    font-size:1.125rem;
    font-weight:700;
    line-height:1.5;
    color:#333;
}

/* Parking */
.location__parking {
    padding-top:0;
    border-top:0;
}

@media (max-width:768px) {
    .location__map-section,.location__info-section,.location__transport,.location__parking {margin-top:4rem;}
    .location__map-section {margin-top:0;}

    .location__heading {
        margin-bottom:1.5rem;
        font-size:1.375rem;
    }

    .location__map {
        aspect-ratio:4 / 3;
        min-height:260px;
    }

    .location__info-item {
        grid-template-columns:1fr;
        gap:.375rem;
        padding:1.25rem 0;
    }

    .location__transport-list {
        grid-template-columns:1fr;
        gap:0;
    }

    .location__transport-item {padding:1.5rem 0;}
}

@media (max-width:480px) {
    .location__map-section,.location__info-section,.location__transport,.location__parking {margin-top:3.5rem;}

    .location__map {
        aspect-ratio:1 / 1;
        min-height:0;
    }

    .location__actions {
        display:grid;
        grid-template-columns:1fr;
    }

    .location__action {width:100%;}
}

/* ========================================
   ETC
======================================== */
.page-content-etc {padding:clamp(8rem, 4vw, 4.5rem) 0;}

/* ========================================
   IDENTITY
======================================== */

.identity {
    width:100%;
    max-width:800px;
    margin:0 auto;
    text-align:center;
}

/* Intro */
.identity__intro {padding:clamp(2rem, 4vw, 3.5rem) 1rem;}

.identity__title {
    font-size:clamp(1.5rem, 2.5vw, 2rem);
    font-weight:700;
    line-height:1.45;
    letter-spacing:-.04em;
    color:#333;
}

.identity__description {
    max-width:620px;
    margin:1.25rem auto 0;
    font-size:1rem;
    line-height:1.8;
    color:#666;
}

/* Actions */
.identity__actions {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.75rem;
    padding:1rem 1rem clamp(3rem, 5vw, 4rem);
}

.identity__button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:220px;
    min-height:52px;
    padding:.75rem 1.5rem;
    border:1px solid #527536;
    background:#527536;
    font:inherit;
    font-size:1rem;
    font-weight:600;
    line-height:1.5;
    text-align:center;
    color:#fff;
    cursor:pointer;
}

.identity__button--secondary {
    border-color:#bbb;
    background:#fff;
    color:#444;
}

.identity__button:hover {background:#46652e;}

.identity__button--secondary:hover {
    border-color:#777;
    background:#f7f7f7;
}

.identity__button:focus-visible {
    outline:2px solid #333;
    outline-offset:3px;
}

/* Notice */
.identity__notice {
    padding:2rem 0;
    border-top:1px solid #ddd;
    text-align:left;
}

.identity__notice-title {
    margin-bottom:1rem;
    font-size:1.0625rem;
    font-weight:700;
    line-height:1.5;
    color:#333;
}

.identity__notice-list {
    margin:0;
    padding:0;
    list-style:none;
}

.identity__notice-list li {
    position:relative;
    padding-left:1rem;
    font-size:.9375rem;
    line-height:1.8;
    color:#666;
}

.identity__notice-list li::before {
    content:"";
    position:absolute;
    top:.8em;
    left:0;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#777;
}

.identity__notice-text {
    margin:0;
    font-size:.9375rem;
    line-height:1.8;
    color:#666;
}

/* Error */
.identity-error__title {color:#333;}

.identity-error__code {
    margin-top:1rem;
    font-size:.875rem;
    line-height:1.6;
    color:#777;
}

/* Responsive */
@media (max-width:768px) {
    .identity__intro {padding:2rem 0;}

    .identity__actions {
        padding:1rem 0 3rem;
    }

    .identity__notice {padding:1.75rem 0;}
}

@media (max-width:480px) {
    .identity__title {font-size:1.375rem;}

    .identity__description {
        margin-top:1rem;
        font-size:.9375rem;
    }

    .identity__actions--multiple {
        align-items:stretch;
        flex-direction:column;
    }

    .identity__button {
        width:70%;
        min-width:0;
    }
}

/* ========================================
   ERROR GUIDE
======================================== */

.error-guide {
    width:100%;
    max-width:800px;
    margin:0 auto;
    text-align:center;
}

/* Content */
.error-guide__content {
    padding:clamp(3rem, 6vw, 5rem) 1rem 2rem;
}

.error-guide__code {
    margin-bottom:1rem;
    font-size:.875rem;
    font-weight:600;
    line-height:1.5;
    color:#777;
}

.error-guide__title {
    font-size:clamp(1.5rem, 2.5vw, 2rem);
    font-weight:700;
    line-height:1.45;
    letter-spacing:-.04em;
    color:#333;
}

.error-guide__description {
    max-width:620px;
    margin:1.25rem auto 0;
    font-size:1rem;
    line-height:1.8;
    color:#666;
}

/* Actions */
.error-guide__actions {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:.75rem;
    padding:1rem 1rem clamp(3rem, 5vw, 4rem);
}

.error-guide__button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:180px;
    min-height:52px;
    padding:.75rem 1.5rem;
    border:1px solid #527536;
    background:#527536;
    font-size:1rem;
    font-weight:600;
    line-height:1.5;
    text-align:center;
    color:#fff;
}

.error-guide__button--secondary {
    border-color:#bbb;
    background:#fff;
    color:#444;
}

.error-guide__button:hover {background:#46652e;}

.error-guide__button--secondary:hover {
    border-color:#777;
    background:#f7f7f7;
}

.error-guide__button:focus-visible {
    outline:2px solid #333;
    outline-offset:3px;
}

@media (max-width:768px) {
    .error-guide__content {
        padding:2.5rem 0 1.5rem;
    }

    .error-guide__actions {
        padding:1rem 0 3rem;
    }
}

@media (max-width:480px) {
    .error-guide__title {font-size:1.375rem;}

    .error-guide__description {
        margin-top:1rem;
        font-size:.9375rem;
    }

    .error-guide__actions {
        flex-direction:column;
    }

    .error-guide__button {
        width:90%;
        min-width:0;
    }
}

/* ========================================
   SCHEDULE CALENDAR
======================================== */

.schedule {width:100%;}

/* Toolbar */
.schedule-toolbar {
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:end;
    gap:2rem;
    margin-bottom:2rem;
}

.schedule-view-switch {
    display:inline-flex;
    align-items:center;
    justify-self:start;
    gap:.5rem;
    min-height:44px;
    font-size:.9375rem;
    font-weight:600;
    color:#444;
}

.schedule-view-switch__icon {
    display:block;
    flex:0 0 auto;
    width:20px;
    height:20px;
    object-fit:contain;
}

.schedule-view-switch:hover {text-decoration:underline; text-underline-offset:4px;}

.schedule-calendar__navigation {text-align:center;}

.schedule-calendar__year {
    display:block;
    margin-bottom:.375rem;
    font-size:.875rem;
    font-weight:600;
    line-height:1.5;
    color:#777;
}

.schedule-calendar__month {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1.25rem;
}

.schedule-calendar__month-title {
    min-width:72px;
    font-size:1.75rem;
    font-weight:700;
    line-height:1.4;
    letter-spacing:-.04em;
    color:#333;
}

.schedule-calendar__month-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #ddd;
    border-radius:50%;
    background:#fff;
    font:inherit;
    font-size:1.75rem;
    line-height:1;
    color:#444;
    cursor:pointer;
}

.schedule-calendar__today {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    justify-self:end;
    min-width:72px;
    min-height:44px;
    padding:.625rem 1rem;
    border:1px solid #bbb;
    background:#fff;
    font:inherit;
    font-size:.9375rem;
    font-weight:600;
    color:#444;
    cursor:pointer;
}

.schedule-calendar__month-button:hover,.schedule-calendar__today:hover {border-color:#527536; color:#527536;}

.schedule-view-switch:focus-visible,
.schedule-calendar__month-button:focus-visible,
.schedule-calendar__today:focus-visible,
.schedule-calendar__event:focus-visible {
    outline:2px solid #333;
    outline-offset:3px;
}

/* Calendar */
.schedule-calendar {
    overflow:hidden;
    border-top:2px solid #555;
}

.schedule-calendar__table {
    width:100%;
    table-layout:fixed;
    border-collapse:collapse;
}

.schedule-calendar__table th {
    height:54px;
    padding:.75rem .5rem;
    border-bottom:1px solid #ccc;
    font-size:.9375rem;
    font-weight:600;
    text-align:center;
    color:#444;
}

.schedule-calendar__table td {
    height:150px;
    padding:.75rem;
    border-right:1px solid #ddd;
    border-bottom:1px solid #ddd;
    vertical-align:top;
}

.schedule-calendar__table th:last-child,
.schedule-calendar__table td:last-child {border-right:0;}

.schedule-calendar__day {position:relative;}

.schedule-calendar__date {
    display:block;
    margin-bottom:.75rem;
    font-size:.9375rem;
    font-weight:600;
    line-height:1.4;
    color:#444;
}

.schedule-calendar__table .is-sunday .schedule-calendar__date,
.schedule-calendar__table th.is-sunday,
.schedule-calendar__table .is-holiday .schedule-calendar__date {color:#c64a4a;}

.schedule-calendar__table .is-saturday .schedule-calendar__date,
.schedule-calendar__table th.is-saturday {color:#426aa5;}

.schedule-calendar__day.is-today {background:#b0c58617;}

.schedule-calendar__day.is-other-month .schedule-calendar__date {color:#999;}

.schedule-calendar__holiday {
    display:block;
    margin:-.375rem 0 .625rem;
    font-size:.75rem;
    line-height:1.4;
    color:#c64a4a;
}

/* Event */
.schedule-calendar__event {
    position:relative;
    z-index:1;
    display:block;
    min-height:28px;
    margin-top:.375rem;
    padding:.3rem .5rem;
    background:#edf3e7;
    font-size:.8125rem;
    font-weight:600;
    line-height:1.45;
    letter-spacing:-.025em;
    color:#45632f;
    overflow:hidden;
}

.schedule-calendar__event--single {border-radius:.25rem;}

.schedule-calendar__event--start {
    margin-right:-.75rem;
    border-radius:.25rem 0 0 .25rem;
}

.schedule-calendar__event--middle {
    margin-right:-.75rem;
    margin-left:-.75rem;
    border-radius:0;
}

.schedule-calendar__event--end {
    margin-left:-.75rem;
    border-radius:0 .25rem .25rem 0;
}

.schedule-calendar__event:hover {text-decoration:underline; text-underline-offset:3px;}

/* Schedule List */
.schedule-list__top {
    display:flex;
    justify-content:flex-end;
    margin-bottom:1.5rem;
}

/* Tablet */
@media (max-width:1024px) {
    .schedule-calendar__table td {
        height:130px;
        padding:.625rem;
    }

    .schedule-calendar__event--start {margin-right:-.625rem;}
    .schedule-calendar__event--middle {margin-right:-.625rem; margin-left:-.625rem;}
    .schedule-calendar__event--end {margin-left:-.625rem;}
}

/* Mobile */
@media (max-width:768px) {
    .schedule-toolbar {
        grid-template-columns:1fr 1fr;
        align-items:center;
        gap:1.25rem 1rem;
    }

    .schedule-calendar__navigation {
        grid-column:1 / -1;
        grid-row:1;
    }

    .schedule-view-switch {
        grid-column:1;
        grid-row:2;
    }

    .schedule-calendar__today {
        grid-column:2;
        grid-row:2;
    }

    .schedule-calendar__month-title {
        min-width:64px;
        font-size:1.5rem;
    }

    .schedule-calendar__table th {
        height:46px;
        padding:.625rem .25rem;
        font-size:.8125rem;
    }

    .schedule-calendar__table td {
        height:105px;
        padding:.375rem;
    }

    .schedule-calendar__date {
        margin-bottom:.5rem;
        font-size:.8125rem;
    }

    .schedule-calendar__holiday {
        margin:-.25rem 0 .375rem;
        font-size:.625rem;
    }

    .schedule-calendar__event {
        min-height:24px;
        padding:.25rem .3rem;
        font-size:.6875rem;
        white-space:nowrap;
        text-overflow:ellipsis;
    }

    .schedule-calendar__event--start {margin-right:-.375rem;}
    .schedule-calendar__event--middle {margin-right:-.375rem; margin-left:-.375rem;}
    .schedule-calendar__event--end {margin-left:-.375rem;}
}

/* Small Mobile */
@media (max-width:480px) {
    .schedule-toolbar {margin-bottom:1.5rem;}

    .schedule-calendar__month {gap:.75rem;}

    .schedule-calendar__month-button {
        width:40px;
        height:40px;
        font-size:1.5rem;
    }

    .schedule-calendar__table td {
        height:90px;
        padding:.25rem;
    }

    .schedule-calendar__event {
        padding:.2rem .2rem;
        font-size:.625rem;
    }

    .schedule-calendar__event--start {margin-right:-.25rem;}
    .schedule-calendar__event--middle {margin-right:-.25rem; margin-left:-.25rem;}
    .schedule-calendar__event--end {margin-left:-.25rem;}
}

/* ========================================
   SCHEDULE LIST
======================================== */

.schedule-list__header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    margin-bottom:1.5rem;
}

.schedule-list__header .board-total {margin:0;}

.schedule-filter {
    display:flex;
    align-items:center;
    gap:.5rem;
}

.schedule-filter__field {flex:0 0 auto;}

.schedule-filter__select {
    min-width:120px;
    height:46px;
    padding:0 2.5rem 0 1rem;
    border:1px solid #bbb;
    background:#fff;
    font:inherit;
    font-size:.9375rem;
    color:#444;
}

.schedule-filter__button {
    min-width:72px;
    height:46px;
    padding:0 1.25rem;
    border:1px solid #527536;
    background:#527536;
    font:inherit;
    font-size:.9375rem;
    font-weight:600;
    color:#fff;
    cursor:pointer;
}

.schedule-filter__select:focus-visible,
.schedule-filter__button:focus-visible {
    outline:2px solid #333;
    outline-offset:2px;
}

.schedule-filter__button:hover {background:#46652e;}

@media (max-width:768px) {
    .schedule-list__header {
        align-items:stretch;
        flex-direction:column-reverse;
        gap:1.25rem;
    }

    .schedule-filter {width:100%;}

    .schedule-filter__field {flex:1 1 0;}

    .schedule-filter__select {
        width:100%;
        min-width:0;
    }

    .schedule-filter__button {flex:0 0 auto;}
}

@media (max-width:480px) {
    .schedule-filter {
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .schedule-filter__button {
        grid-column:1 / -1;
        width:100%;
    }
}

@media (max-width:360px) {
    .schedule-filter {grid-template-columns:1fr;}

    .schedule-filter__button {grid-column:auto;}
}

/* ========================================
   SCHEDULE
======================================== */

/* Schedule View */
.schedule-info {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    padding:1.5rem 0;
    border-bottom:1px solid #ddd;
}

.schedule-info__item {
    display:grid;
    grid-template-columns:80px minmax(0, 1fr);
    align-items:start;
    min-width:0;
    padding:.625rem 1.5rem;
}

.schedule-info__item dt {
    font-size:.9375rem;
    font-weight:600;
    line-height:1.7;
    color:#555;
}

.schedule-info__item dd {
    min-width:0;
    margin:0;
    font-size:.9375rem;
    line-height:1.7;
    color:#555;
    overflow-wrap:break-word;
}

/* 장소처럼 긴 정보는 넓게 사용 */
.schedule-info__item:last-child:nth-child(odd) {
    grid-column:1 / -1;
}

@media (max-width:768px) {
    .schedule-info {
        grid-template-columns:1fr;
        margin-top:1.5rem;
        padding:1rem 0;
    }

    .schedule-info__item {
        grid-template-columns:64px minmax(0, 1fr);
        padding:.5rem 0;
    }

    .schedule-info__item:last-child:nth-child(odd) {
        grid-column:auto;
    }
}

@media (max-width:480px) {
    .schedule-info__item {
        display:block;
        padding:.625rem 0;
    }

    .schedule-info__item dt {
        margin-bottom:.25rem;
        font-size:.8125rem;
        color:#777;
    }

    .schedule-info__item dd {font-size:.9375rem;}
}
/* 정책문서 공개 화면 */
.policy-content {
    width:100%;
    max-width:1100px;
    margin:0 auto;
}

.policy-content__header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
}

.policy-content__version {
    margin-top:12px;
    color:#667085;
    font-size:16px;
}

.policy-content__pdf {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:120px;
    min-height:48px;
    padding:10px 20px;
    border:1px solid #567c2f;
    border-radius:6px;
    color:#456723;
    font-weight:700;
}

.policy-content__body {
    min-height:240px;
    padding:36px 4px;
    border-top:1px solid #dfe5dc;
    color:#292f29;
    font-size:16px;
    line-height:1.8;
    overflow-wrap:anywhere;
}

.policy-content__body img {
    max-width:100%;
    height:auto;
}

.policy-content__body table {
    width:100%;
    border-collapse:collapse;
}

.policy-content__body th,
.policy-content__body td {
    padding:10px;
    border:1px solid #d8ded5;
}

.policy-content__pdf-guide {
    padding:70px 24px;
    border:1px solid #dfe5dc;
    border-radius:10px;
    background:#f7f9f5;
    text-align:center;
}

.policy-content__pdf-guide p {
    margin-bottom:20px;
    color:#4e5a4b;
}

.policy-content__pdf-guide a {
    display:inline-flex;
    min-height:48px;
    align-items:center;
    padding:10px 22px;
    border-radius:6px;
    background:#567c2f;
    color:#fff;
    font-weight:700;
}

.policy-history {
    margin-top:56px;
}

.policy-history h2 {
    margin-bottom:18px;
    font-size:24px;
}

.policy-history__list {
    border-top:2px solid #273126;
}

.policy-history__list li {
    border-bottom:1px solid #dfe5dc;
}

.policy-history__list a {
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding:18px 16px;
    color:#343b32;
}

.policy-history__list li.is-current a {
    background:#f1f6ea;
    color:#456723;
    font-weight:700;
}

.policy-history__list time {
    flex:0 0 auto;
    color:#6f786d;
    font-size:14px;
}

@media (max-width:720px) {
    .policy-content__header {
        flex-direction:column;
    }

    .policy-history__list a {
        flex-direction:column;
        gap:6px;
    }
}
