@charset "UTF-8";
@import './font/pretendard/pretendardvariable.css';
/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */
html {
    font-family: sans-serif; /* 1 */
    -ms-text-size-adjust: 100%; /* 2 */
    -webkit-text-size-adjust: 100%; /* 2 */
}
button {
    -webkit-appearance: none;
    appearance: none;
    background: none;
    border: none;
    color: inherit;   /* 부모 색상 사용 */
}
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
    margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary { /* 1 */
    display: block;
}

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
    display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
    display: none;
    height: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
    vertical-align: baseline;
}

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */
template,
[hidden] {
    display: none;
}

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
    background-color: transparent; /* 1 */
    -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
    outline-width: 0;
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
    font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
    font-weight: bolder;
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
    font-style: italic;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
    background-color: #ff0;
    color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
    border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
    overflow: hidden;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/**
 * Add the correct margin in IE 8.
 */
figure {
    margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
}

/* Forms
   ========================================================================== */
/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
    font: inherit; /* 1 */
    margin: 0; /* 2 */
}

/**
 * Restore the font weight unset by the previous rule.
 */
optgroup {
    font-weight: bold;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
    overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
    text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type=button],
[type=reset],
[type=submit] {
    -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
    overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
 */
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
    color: inherit;
    opacity: 0.54;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

div::before, div::after, p::before, p::after, span::before, span::after,
dl::before,
dl::after, dt::before, dt::after, dd::before, dd::after, ol::before, ol::after, ul::before, ul::after, li::before, li::after, button::before, button::after, a::before, a::after, input::before, input::after, i::before, i::after {
    box-sizing: border-box;
}

table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-size: 100%;
}

input, button, a, textarea {
    box-sizing: border-box;
}

body {
    font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
}

html, body {
    height: 100%;
    font-size: 14px;
    letter-spacing: -0.01em;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background-color: transparent;
}

::-webkit-scrollbar-thumb {
    border: 2px solid #fff;
    border-radius: 5px;
    background-color: #bbb;
}

ol, ul {
    list-style: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

button {
    cursor: pointer;
    border: none;
    background-color: transparent;
    padding: 0;
}

a {
    text-decoration: none;
}

em {
    font-style: normal;
    font-weight: bold;
}

hr {
    width: 100%;
    border: 0;
    border-top: 1px solid;
    margin: 0;
}

#root {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.portal-area {
    width: calc(100% - 100px);
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .portal-area {
        width: calc(100% - 32px);
    }
}

.blind {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    white-space: nowrap;
    clip: rect(0, 0, 0, 0);
}

.ellipsis {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

:root {
    --primary: #E35A10;
    --secondary: #c9a6ff;
    --third: #faf7fe;
    --fc-primary: #121212;
    --fc-second: #666;
    --fc-gray: #a8a6ae;
    --border: #58616a;
    --spc8: 8px;
    --spc16: 16px;
    --spc24: 24px;
    --spc36: 36px;
    --spc40: 40px;
    --spc64: 64px;
    --spc80: 80px;
    --spc120: 120px;
    --font14: 14px;
    --font16: 16px;
    --font20: 20px;
    --font24: 24px;
    --font32: 32px;
    --font40: 40px;
    --font48: 48px;
    --font64: 64px;
    --ic-lg: 40px;
    --ic-md: 24px;
    --ease: cubic-bezier(0, 0.75, 0, 1);
    --header-h: 120px;
}
@media screen and (max-width: 1700px) {
    :root {
        --spc8: 4px;
        --spc16: 8px;
        --spc24: 12px;
        --spc36: 20px;
        --spc40: 24px;
        --spc64: 24px;
        --spc80: 48px;
        --spc120: 64px;
        --font14: 12px;
        --font16: 14px;
        --font20: 16px;
        --font24: 16px;
        --font32: 16px;
        --font40: 24px;
        --font48: 30px;
        --font64: 40px;
        --header-h: 72px;
        --ic-lg: 32px;
    }
}
@media screen and (max-width: 768px) {
    :root {
        --ic-lg: 24px;
    }
}

/**
 * Swiper 11.1.8
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2024 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: July 26, 2024
 */
@font-face {
    font-family: swiper-icons;
    src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA");
    font-weight: 400;
    font-style: normal;
}
:root {
    --swiper-theme-color:#007aff;
}

:host {
    position: relative;
    display: block;
    margin-left: auto;
    margin-right: auto;
    z-index: 1;
}

.swiper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block;
}

.swiper-vertical > .swiper-wrapper {
    flex-direction: column;
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    box-sizing: content-box;
}

.swiper-android .swiper-slide, .swiper-ios .swiper-slide, .swiper-wrapper {
    transform: translate3d(0px, 0, 0);
}

.swiper-horizontal {
    touch-action: pan-y;
}

.swiper-vertical {
    touch-action: pan-x;
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    display: block;
}

.swiper-slide-invisible-blank {
    visibility: hidden;
}

.swiper-autoheight, .swiper-autoheight .swiper-slide {
    height: auto;
}

.swiper-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform, height;
}

.swiper-backface-hidden .swiper-slide {
    transform: translateZ(0);
    backface-visibility: hidden;
}

.swiper-3d.swiper-css-mode .swiper-wrapper {
    perspective: 1200px;
}

.swiper-3d .swiper-wrapper {
    transform-style: preserve-3d;
}

.swiper-3d {
    perspective: 1200px;
}

.swiper-3d .swiper-cube-shadow, .swiper-3d .swiper-slide {
    transform-style: preserve-3d;
}

.swiper-css-mode > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
    display: none;
}

.swiper-css-mode > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
}

.swiper-css-mode.swiper-horizontal > .swiper-wrapper {
    scroll-snap-type: x mandatory;
}

.swiper-css-mode.swiper-vertical > .swiper-wrapper {
    scroll-snap-type: y mandatory;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
    scroll-snap-type: none;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: none;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper::before {
    content: "";
    flex-shrink: 0;
    order: 9999;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: center center;
    scroll-snap-stop: always;
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
    margin-inline-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
    height: 100%;
    min-height: 1px;
    width: var(--swiper-centered-offset-after);
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
    margin-block-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {
    width: 100%;
    min-width: 1px;
    height: var(--swiper-centered-offset-after);
}

.swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-bottom, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}

.swiper-3d .swiper-slide-shadow {
    background: rgba(0, 0, 0, 0.15);
}

.swiper-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent;
}

.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader, .swiper:not(.swiper-watch-progress) .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear;
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color:#fff;
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color:#000;
}

@keyframes swiper-preloader-spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
.swiper-virtual .swiper-slide {
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
}

.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
    height: 1px;
    width: var(--swiper-virtual-size);
}

.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
    width: 1px;
    height: var(--swiper-virtual-size);
}

:root {
    --swiper-navigation-size:44px;
}

.swiper-button-next, .swiper-button-prev {
    position: absolute;
    top: var(--swiper-navigation-top-offset, 50%);
    width: calc(var(--swiper-navigation-size) / 44 * 27);
    height: var(--swiper-navigation-size);
    margin-top: calc(0px - var(--swiper-navigation-size) / 2);
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
    opacity: 0.35;
    cursor: auto;
    pointer-events: none;
}

.swiper-button-next.swiper-button-hidden, .swiper-button-prev.swiper-button-hidden {
    opacity: 0;
    cursor: auto;
    pointer-events: none;
}

.swiper-navigation-disabled .swiper-button-next, .swiper-navigation-disabled .swiper-button-prev {
    display: none !important;
}

.swiper-button-next svg, .swiper-button-prev svg {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    transform-origin: center;
}

.swiper-rtl .swiper-button-next svg, .swiper-rtl .swiper-button-prev svg {
    transform: rotate(180deg);
}

.swiper-button-prev, .swiper-rtl .swiper-button-next {
    left: var(--swiper-navigation-sides-offset, 10px);
    right: auto;
}

.swiper-button-next, .swiper-rtl .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 10px);
    left: auto;
}

.swiper-button-lock {
    display: none;
}

.swiper-button-next:after, .swiper-button-prev:after {
    font-family: swiper-icons;
    font-size: var(--swiper-navigation-size);
    text-transform: none !important;
    letter-spacing: 0;
    font-variant: initial;
    line-height: 1;
}

.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after {
    content: "prev";
}

.swiper-button-next, .swiper-rtl .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 10px);
    left: auto;
}

.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
    content: "next";
}

.swiper-pagination {
    position: absolute;
    text-align: center;
    transition: 0.3s opacity;
    transform: translate3d(0, 0, 0);
    z-index: 10;
}

.swiper-pagination.swiper-pagination-hidden {
    opacity: 0;
}

.swiper-pagination-disabled > .swiper-pagination, .swiper-pagination.swiper-pagination-disabled {
    display: none !important;
}

.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: var(--swiper-pagination-bottom, 8px);
    top: var(--swiper-pagination-top, auto);
    left: 0;
    width: 100%;
}

.swiper-pagination-bullets-dynamic {
    overflow: hidden;
    font-size: 0;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transform: scale(0.33);
    position: relative;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
    transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
    transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
    transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
    transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
    transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
    transform: scale(0.33);
}

.swiper-pagination-bullet {
    width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
    height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
    display: inline-block;
    border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
    background: var(--swiper-pagination-bullet-inactive-color, #000);
    opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
}

button.swiper-pagination-bullet {
    border: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
    cursor: pointer;
}

.swiper-pagination-bullet:only-child {
    display: none !important;
}

.swiper-pagination-bullet-active {
    opacity: var(--swiper-pagination-bullet-opacity, 1);
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
}

.swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical > .swiper-pagination-bullets {
    right: var(--swiper-pagination-right, 8px);
    left: var(--swiper-pagination-left, auto);
    top: 50%;
    transform: translate3d(0px, -50%, 0);
}

.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
    margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
    display: block;
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    display: inline-block;
    transition: 0.2s transform, 0.2s top;
}

.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
}

.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: 0.2s transform, 0.2s left;
}

.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: 0.2s transform, 0.2s right;
}

.swiper-pagination-fraction {
    color: var(--swiper-pagination-fraction-color, inherit);
}

.swiper-pagination-progressbar {
    background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));
    position: absolute;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale(0);
    transform-origin: left top;
}

.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: right top;
}

.swiper-horizontal > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-horizontal, .swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite, .swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
    width: 100%;
    height: var(--swiper-pagination-progressbar-size, 4px);
    left: 0;
    top: 0;
}

.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-vertical, .swiper-vertical > .swiper-pagination-progressbar {
    width: var(--swiper-pagination-progressbar-size, 4px);
    height: 100%;
    left: 0;
    top: 0;
}

.swiper-pagination-lock {
    display: none;
}

.swiper-scrollbar {
    border-radius: var(--swiper-scrollbar-border-radius, 10px);
    position: relative;
    touch-action: none;
    background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));
}

.swiper-scrollbar-disabled > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-disabled {
    display: none !important;
}

.swiper-horizontal > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal {
    position: absolute;
    left: var(--swiper-scrollbar-sides-offset, 1%);
    bottom: var(--swiper-scrollbar-bottom, 4px);
    top: var(--swiper-scrollbar-top, auto);
    z-index: 50;
    height: var(--swiper-scrollbar-size, 4px);
    width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
}

.swiper-scrollbar.swiper-scrollbar-vertical, .swiper-vertical > .swiper-scrollbar {
    position: absolute;
    left: var(--swiper-scrollbar-left, auto);
    right: var(--swiper-scrollbar-right, 4px);
    top: var(--swiper-scrollbar-sides-offset, 1%);
    z-index: 50;
    width: var(--swiper-scrollbar-size, 4px);
    height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
}

.swiper-scrollbar-drag {
    height: 100%;
    width: 100%;
    position: relative;
    background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));
    border-radius: var(--swiper-scrollbar-border-radius, 10px);
    left: 0;
    top: 0;
}

.swiper-scrollbar-cursor-drag {
    cursor: move;
}

.swiper-scrollbar-lock {
    display: none;
}

.swiper-zoom-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.swiper-zoom-container > canvas, .swiper-zoom-container > img, .swiper-zoom-container > svg {
    max-width: 100%;
    max-height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.swiper-slide-zoomed {
    cursor: move;
    touch-action: none;
}

.swiper .swiper-notification {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1000;
}

.swiper-free-mode > .swiper-wrapper {
    transition-timing-function: ease-out;
    margin: 0 auto;
}

.swiper-grid > .swiper-wrapper {
    flex-wrap: wrap;
}

.swiper-grid-column > .swiper-wrapper {
    flex-wrap: wrap;
    flex-direction: column;
}

.swiper-fade.swiper-free-mode .swiper-slide {
    transition-timing-function: ease-out;
}

.swiper-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity;
}

.swiper-fade .swiper-slide .swiper-slide {
    pointer-events: none;
}

.swiper-fade .swiper-slide-active {
    pointer-events: auto;
}

.swiper-fade .swiper-slide-active .swiper-slide-active {
    pointer-events: auto;
}

.swiper-cube {
    overflow: visible;
}

.swiper-cube .swiper-slide {
    pointer-events: none;
    backface-visibility: hidden;
    z-index: 1;
    visibility: hidden;
    transform-origin: 0 0;
    width: 100%;
    height: 100%;
}

.swiper-cube .swiper-slide .swiper-slide {
    pointer-events: none;
}

.swiper-cube.swiper-rtl .swiper-slide {
    transform-origin: 100% 0;
}

.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-active .swiper-slide-active {
    pointer-events: auto;
}

.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-next, .swiper-cube .swiper-slide-prev {
    pointer-events: auto;
    visibility: visible;
}

.swiper-cube .swiper-cube-shadow {
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 100%;
    height: 100%;
    opacity: 0.6;
    z-index: 0;
}

.swiper-cube .swiper-cube-shadow:before {
    content: "";
    background: #000;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    filter: blur(50px);
}

.swiper-cube .swiper-slide-next + .swiper-slide {
    pointer-events: auto;
    visibility: visible;
}

.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top {
    z-index: 0;
    backface-visibility: hidden;
}

.swiper-flip {
    overflow: visible;
}

.swiper-flip .swiper-slide {
    pointer-events: none;
    backface-visibility: hidden;
    z-index: 1;
}

.swiper-flip .swiper-slide .swiper-slide {
    pointer-events: none;
}

.swiper-flip .swiper-slide-active, .swiper-flip .swiper-slide-active .swiper-slide-active {
    pointer-events: auto;
}

.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top {
    z-index: 0;
    backface-visibility: hidden;
}

.swiper-creative .swiper-slide {
    backface-visibility: hidden;
    overflow: hidden;
    transition-property: transform, opacity, height;
}

.swiper-cards {
    overflow: visible;
}

.swiper-cards .swiper-slide {
    transform-origin: center bottom;
    backface-visibility: hidden;
    overflow: hidden;
}

.ic-comm {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ic-md);
    aspect-ratio: 1;
    flex-shrink: 0;
    font-style: normal;
}

.ic-gt--d,
.ic-gt--r,
.ic-gt--l {
    aspect-ratio: unset;
    height: 24px;
}
.ic-gt--d::after,
.ic-gt--r::after,
.ic-gt--l::after {
    content: "";
    width: 12px;
    height: 12px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    border-radius: 1px;
}
@media screen and (max-width: 768px) {
    .ic-gt--d,
    .ic-gt--r,
    .ic-gt--l {
        width: 10px;
    }
    .ic-gt--d::after,
    .ic-gt--r::after,
    .ic-gt--l::after {
        width: 8px;
        height: 8px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-radius: 0;
    }
}

.ic-gt--d::after {
    transform: rotate(45deg);
    margin-top: -5px;
}

.ic-gt--u::after {
    transform: rotate(225deg);
}

.ic-gt--r::after {
    transform: rotate(-45deg);
}

.ic-gt--l::after {
    transform: rotate(135deg);
}

.ic-more::before, .ic-more::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 3px;
    border-radius: 2px;
    background-color: currentColor;
}
.ic-more::before {
    transform: translate(-50%, -50%);
}
.ic-more::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
@media screen and (max-width: 1700px) {
    .ic-more::before, .ic-more::after {
        width: 18px;
        height: 2px;
    }
}

.ic-hamburger {
    width: var(--ic-lg);
    -webkit-mask: url(/images/icon/ic_hamburger.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_hamburger.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-menusearch {
    width: var(--ic-lg);
    -webkit-mask: url(/images/icon/ic_menusearch.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_menusearch.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-user {
    width: var(--ic-lg);
    -webkit-mask: url(/images/icon/ic_login.png) no-repeat center/contain;
    mask: url(/images/icon/ic_login.png) no-repeat center/contain;
    background-color: currentColor;
}

.ic-login {
    width: var(--ic-lg);
    -webkit-mask: url(/images/icon/ic_user.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_user.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-logout {
    width: var(--ic-lg);
    -webkit-mask: url(/images/icon/ic_logout.png) no-repeat center/contain;
    mask: url(/images/icon/ic_logout.png) no-repeat center/contain;
    background-color: currentColor;
}

.ic-camera {
    width: var(--ic-lg);
    background: url(/images/icon/ic_camera.svg) no-repeat center center/contain;
}

.ic-search {
    width: var(--ic-lg);
    background: url(/images/icon/ic_search.svg) no-repeat center center/contain;
}

.ic-multisearch {
    background: url(/images/icon/ic_multisearch.svg) no-repeat center center/contain;
}

.ic-gridview {
    -webkit-mask: url(/images/icon/ic_gridview.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_gridview.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-listview {
    -webkit-mask: url(/images/icon/ic_listview.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_listview.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-printer {
    background: url(/images/icon/ic_printer.svg) no-repeat center center/contain;
}

.ic-share {
    background: url(/images/icon/ic_share.svg) no-repeat center center/contain;
}

.ic-close {
    background: url(/images/icon/ic_close.svg) no-repeat center center/contain;
}

.ic-closepop {
    -webkit-mask: url(/images/icon/ic_closepop.svg) no-repeat center/contain;
    mask: url(/images/icon/ic_closepop.svg) no-repeat center/contain;
    background-color: currentColor;
}

.ic-reset {
    background: url(/images/icon/ic_reset.svg) no-repeat center center/contain;
}

.ic-reset-b {
    background: url(/images/icon/ic_reset_b.svg) no-repeat center center/contain;
}

.ic-bookmark {
    background: url(/images/icon/ic_bookmark.svg) no-repeat center center/contain;
}
.ic-bookmark-fill {
    background: url(/images/icon/ic_bookmark_fill.svg) no-repeat center center/contain;
}

.ic-prev {
    background: url(/images/icon/ic_prev.svg) no-repeat center center/contain;
}

.ic-download {
    background: url(/images/icon/ic_download.svg) no-repeat center center/contain;
}

.ic-kakao {
    background: url(/images/icon/ic_kakao.svg) no-repeat center center/contain;
    width: 18px;
}

.ic-naver {
    background: url(/images/icon/ic_naver.svg) no-repeat center center/contain;
    width: 18px;
}

.ic-google {
    background: url(/images/icon/ic_google.svg) no-repeat center center/contain;
    width: 24px;
}

.ic-heart {
    background: url(/images/icon/ic_heart.svg) no-repeat center center/contain;
    width: 24px;
}
.ic-heart-outline {
    background: url(/images/icon/ic_heart_outline.svg) no-repeat center center/contain;
    width: 24px;
}

.ic-shdel {
    background: url(/images/icon/ic_shclose.svg) no-repeat center center/contain;
}

.ic-calendar {
    background: url(/images/icon/ic_calendar.svg) no-repeat center center/contain;
}

.ic-attach {
    background: url(/images/icon/ic_attach.svg) no-repeat center center/contain;
}

.ic-warning {
    background: url(/images/icon/ic_warning.svg) no-repeat center center/contain;
}

.ic-marker-bk {
    background: url(/images/icon/ic_marker_bk.svg) no-repeat center center/contain;
}

.ic-goarrow {
    background: url(/images/icon/ic_shortcut.svg) no-repeat center center/contain;
}

.textfield-comm {
    height: 32px;
    padding-left: 8px;
    border: 1px solid #bbb;
    border-radius: 4px;
    background-color: #fff;
}
.textfield-comm[type=date]::-webkit-calendar-picker-indicator, .textfield-comm[type=month]::-webkit-calendar-picker-indicator {
    position: relative;
    right: 0;
    top: 0;
    display: block;
    width: 28px;
    height: 30px;
    border-left: 1px solid #ddd;
    background: url(/images/icon/icon_calendar.svg) no-repeat center center;
}

.textarea-comm {
    flex-grow: 1;
    position: relative;
    padding: 15px;
    border: 1px solid #bbb;
    border-radius: 4px;
    background-color: #fff;
    resize: none;
}

.select-comm {
    position: relative;
    display: inline-flex;
    height: 32px;
    border: 1px solid #bbb;
    border-radius: 4px;
    background-color: #fff;
}
.select-comm select {
    z-index: 1;
    position: relative;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 0;
    width: 100%;
    height: 100%;
    padding-left: 15px;
    padding-right: 45px;
    background-color: transparent;
}
.select-comm::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 32px;
    border-left: 1px solid #bbb;
    background: url(/images/icon/icon_arr_down.svg) no-repeat center center/10px;
}

.chk-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
}
.chk-label [type=checkbox],
.chk-label [type=radio] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    flex-shrink: 0;
    position: relative;
    width: 18px;
    height: 18px;
    border: 1px solid #999;
    border-radius: 2px;
    background-color: #fff;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.chk-label [type=checkbox]:checked,
.chk-label [type=radio]:checked {
    border-color: transparent;
    background-color: #7B81BF;
    color: #fff;
}
.chk-label [type=checkbox]:checked::after,
.chk-label [type=radio]:checked::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    width: 6px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    margin-top: -1px;
    border-radius: 1px;
}
.chk-label [type=checkbox]:checked::after,
.chk-label [type=radio]:checked::after {
    color: #fff;
}
.chk-label [type=checkbox]:hover, .chk-label [type=checkbox]:hover + span,
.chk-label [type=radio]:hover,
.chk-label [type=radio]:hover + span {
    cursor: pointer;
}
.chk-label [type=checkbox]:disabled, .chk-label [type=checkbox]:disabled + span,
.chk-label [type=radio]:disabled,
.chk-label [type=radio]:disabled + span {
    opacity: 0.7;
    cursor: not-allowed;
}
.chk-label [type=checkbox]:disabled,
.chk-label [type=radio]:disabled {
    background-color: #f5f5f5;
}

button {
    transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-shrink: 0;
    min-height: 30px;
    padding: 0 14px;
    background-color: var(--primary);
    color: #fff;
    font-weight: 500;
    font-size: 16px;
}

.btn-outlined {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #e5ecfc;
    background-color: #fff;
    font-size: 16px;
    color: var(--fc-second);
    font-weight: 600;
}
.btn-outlined.active {
    border-width: 2px;
    border-color: #7b81bf;
}

.btn-contained {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    height: 42px;
    padding: 0 12px;
    border-radius: 12px;
    font-size: 16px;
    background-color: var(--primary);
    color: #fff;
    font-weight: 500;
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
}
.btn-icon.s--lg {
    font-size: 24px;
    font-weight: 700;
}

/* =========================
   공통 모달
   ========================= */
.modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    font-size: 14px;
}
.modal.is-open {
    display: block;
}
.modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
}
.modal__dialog {
    position: relative;
    z-index: 1;
    max-width: 480px;
    margin: 0 auto;
    top: 50%;
    transform: translateY(-50%);
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}
.modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spc24);
    background: #000;
    color: #fff;
}
.modal__title {
    font-size: var(--font24);
    font-weight: 700;
}
.modal__close {
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    color: #fff;
    cursor: pointer;
}
.modal__body {
    padding: var(--spc24);
    font-size: var(--font20);
}
.modal__footer {
    padding: 12px 16px 16px;
    text-align: right;
    border-top: 1px solid #eee;
}
.modal__footer:empty {
    display: none;
}
.modal .modal-btn {
    min-width: 80px;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    border-radius: 4px;
    border: 1px solid #222;
    background: #fff;
    cursor: pointer;
}
.modal .modal-btn + .modal .modal-btn {
    margin-left: 8px;
}
.modal .modal-btn--primary {
    background: #222;
    color: #fff;
}
.modal {
    /* 반응형 */
}
@media (max-width: 768px) {
    .modal__dialog {
        max-width: none;
        width: calc(100% - 32px);
        margin: 0 16px;
    }
}
@media (max-width: 480px) {
    .modal__dialog {
        width: calc(100% - 24px);
        margin: 0 12px;
    }
    .modal__body {
        padding: 16px 12px;
    }
}

/* =========================
 기증 신청 상세정보 팝업 (mypage)
 - popup.js / popup.html 수정 없이
 - message 안에 .modal-detail 마크업이 있을 때만 적용
 ========================= */
.modal .modal-detail {
    font-size: var(--font20);
}
.modal .modal-detail__dl {
    margin: 0;
}
.modal .modal-detail__row {
    display: grid;
    grid-template-columns: 127px 1fr;
    -moz-column-gap: 10px;
    column-gap: 10px;
    padding-bottom: var(--spc40);
    align-items: center;
}
.modal .modal-detail__row:last-child {
    padding-bottom: 0;
}
.modal .modal-detail__row dt {
    margin: 0;
    color: #9e9e9e;
    font-weight: 700;
    white-space: nowrap;
}
.modal .modal-detail__row dd {
    margin: 0;
    color: #111;
    font-weight: 400;
    word-break: break-word;
}
.modal .modal-detail__row dd strong {
    font-weight: 700;
}
.modal .modal-detail__file {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 1px;
}
.modal .modal-detail__divider {
    height: 1px;
    background: #111;
    margin: var(--spc40) 0;
}
.modal {
    /* 반응형 */
}
@media (max-width: 768px) {
    .modal .modal-detail__row {
        grid-template-columns: 120px 1fr;
        -moz-column-gap: 20px;
        column-gap: 20px;
        padding: 12px 0;
    }
}
@media (max-width: 480px) {
    .modal .modal-detail {
        font-size: var(--font18);
    }
    .modal .modal-detail__row {
        grid-template-columns: 1fr;
        row-gap: 6px;
    }
    .modal .modal-detail__row dt {
        font-size: var(--font16);
    }
    .modal .modal-detail__divider {
        margin: 14px 0;
    }
}

/* (선택) 버튼처럼 쓰는 트리거가 기본 버튼 스타일 먹으면 보기 싫을 때 */
.mypage-donate__open {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    text-align: left;
}

/* 큰 팝업 */
.modal.modal--lg .modal__dialog {
    max-width: 960px;
}
.modal.modal--lg .modal__body {
    padding: var(--spc40);
}
.modal.modal--md .modal__dialog {
    max-width: 640px;
}
.modal.modal--md .modal__body {
    padding: var(--spc40);
}
.modal .modal-msg {
    font-size: 16px;
    text-align: center;
    line-height: 26px;
    word-break: keep-all;
}
.modal {
    /* 푸터 중앙 정렬 + 버튼 2개 */
}
.modal__footer--center {
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 0 16px 40px;
    border-top: none;
}
.modal {
    /* 버튼 변형 */
}
.modal .modal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    height: 48px;
    padding: 0 16px;
    font-weight: 700;
    font-size: 14px;
    border: none;
    border-radius: 0;
}
.modal .modal-btn--ghost {
    background: #111;
    color: #fff;
}
.modal .modal-btn--primary {
    background: #E35A10;
    color: #fff;
}
@media (max-width: 480px) {
    .modal__footer--center {
        flex-direction: column;
    }
    .modal .modal-btn {
        width: 100%;
        min-width: 0;
    }
}

.signup-form__field {
    grid-column: 2;
    display: flex;
    gap: var(--spc16);
    align-items: center;
}
.signup-form__field input, .signup-form__field select {
    height: 48px;
    border: 1px solid #000;
    border-radius: 0;
    padding: 0 var(--spc16);
    font-size: var(--font16);
}
.signup-form__field input:-moz-read-only {
    background-color: #f2f2f2;
    border-color: #d5d5d5;
}
.signup-form__field input:read-only {
    background-color: #f2f2f2;
    border-color: #d5d5d5;
}
.signup-form__field select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: right var(--spc16) center;
}
.signup-form__field--tel {
    align-items: center;
}
.signup-form__field--tel select {
    width: 111px;
}
.signup-form__field--tel input {
    width: 192px;
}
.signup-form__field--email {
    align-items: center;
}
.signup-form__field--email input, .signup-form__field--email select {
    width: 192px;
}
.signup-form__field--checks {
    gap: 16px;
}
.signup-form__field--checks .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.signup-form__field--checks .form-check input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: var(--spc24);
    height: var(--spc24);
    margin: 0;
    padding: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.signup-form__field--checks .form-check input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: var(--spc16) var(--spc16);
}
.signup-form__field--checks .form-check span {
    font-size: var(--font16);
    font-weight: 400;
}
.signup-form__field--radios {
    gap: 16px;
}
.signup-form__field--radios .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.signup-form__field--radios .form-check input[type=radio] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    margin: 0;
    padding: 0;
    border-radius: 12px;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    cursor: pointer;
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.signup-form__field--radios .form-check .radio-ui {
    width: 24px;
    height: 24px;
    border: 1px solid #000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.signup-form__field--radios .form-check {
    /* 안쪽 점 */
}
.signup-form__field--radios .form-check .radio-ui::after {
    content: "";
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #000;
    transform: scale(0);
}
.signup-form__field--radios .form-check input[type=radio]:checked + .radio-ui {
    border-color: #000;
}
.signup-form__field--radios .form-check input[type=radio]:checked + .radio-ui::after {
    transform: scale(1);
}
.signup-form__field--radios .form-check span {
    font-size: var(--font16);
    font-weight: 400;
}
.signup-form__field .w100 {
    width: 100%;
}
.signup-form__field .area {
    width: 100%;
    height: 150px;
    overflow-y: scroll;
    resize: none;
    border: 1px solid #000;
    padding: var(--spc16);
}

.terms-box {
    margin-top: var(--spc40);
}
.terms-box .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.terms-box .form-check input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: var(--spc24);
    height: var(--spc24);
    margin: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.terms-box .form-check input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
}
.terms-box .form-check span {
    font-size: var(--font16);
    font-weight: 400;
}

.terms-box--required .terms-required {
    color: #E35A10;
}

.terms-optional {
    color: rgba(0, 0, 0, 0.6);
}

.terms-box__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spc16);
    font-size: var(--font20);
    font-weight: 700;
}

.terms-box__label {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
}

.terms-box__body {
    height: 160px;
    border: 1px solid #e0e0e0;
    padding: var(--spc16);
    font-size: var(--font16);
    color: #666;
}
.terms-box__body .tit {
    color: #000;
    margin-top: 20px;
    font-weight: 700;
}
.terms-box__body .tb_sc {
    width: 100%;
    border: 1px solid #000;
    margin-top: 10px;
}
.terms-box__body .tb_sc table {
    width: 100%;
}
.terms-box__body .tb_sc tr {
    border-bottom: 1px solid #000;
}
.terms-box__body .tb_sc tr:last-child {
    border-bottom: none;
}
.terms-box__body .tb_sc th {
    text-align: center;
    color: #fff;
    background: #000;
}
.terms-box__body .tb_sc td {
    border-right: 1px solid #000;
    padding: 8px;
    font-size: 12px;
}
.terms-box__body .tb_sc td:last-child {
    border-right: none;
}
.terms-box__body .tb_sc td img {
    width: 100%;
    vertical-align: middle;
}

.terms-box__scroll {
    height: 100%;
    line-height: 1.6;
    overflow-y: scroll;
}
.terms-box__scroll::-webkit-scrollbar {
    width: 8px;
}
.terms-box__scroll::-webkit-scrollbar-thumb {
    background: #e5e5e5;
    border-radius: 4px;
}

@media screen and (max-width: 1700px) {
    .signup-form__field--tel {
        align-items: center;
    }
    .signup-form__field--tel select {
        width: 30%;
    }
    .signup-form__field--tel input {
        width: 30%;
    }
    .signup-form__field--email input {
        width: 45%;
        flex: 1;
    }
    .signup-form__field--email select {
        width: 100%;
        flex: 1;
    }
}
@media screen and (max-width: 768px) {
    .signup-form__field {
        grid-column: 1;
        flex-wrap: wrap;
    }
    .signup-form__field--tel {
        align-items: center;
    }
    .signup-form__field--tel select {
        flex: 1;
        width: 25%;
    }
    .signup-form__field--tel input {
        flex: 1;
        width: 25%;
    }
}
/* =========================
   modal file attach
   ========================= */
.modal-file__input {
    display: none;
}
.modal-file__wrap {
    display: grid;
    grid-template-columns: 1fr 72px;
    gap: 12px;
    align-items: start;
}
.modal-file {
    /* 리스트 영역만 스크롤 */
}
.modal-file__list {
    border: 1px solid #000;
    background: #fff;
    max-height: 120px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.modal-file__empty {
    padding: 14px 16px;
    color: rgba(0, 0, 0, 0.45);
    font-size: 16px;
    height: 48px;
}
.modal-file {
    /* 파일 1줄(row) */
}
.modal-file__row {
    display: grid;
    grid-template-columns: 44px 1fr 110px;
    min-height: 48px;
    border-bottom: 1px solid #000;
}
.modal-file__row:last-child {
    border-bottom: 0;
}
.modal-file__cell {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    font-size: 14px;
    color: #111;
}
.modal-file__cell--plus {
    justify-content: center;
    padding: 0;
}
.modal-file__cell--name {
    background: rgba(227, 90, 16, 0.4039215686);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.modal-file__cell--name a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.modal-file__cell--size {
    background: rgba(227, 90, 16, 0.4039215686);
    justify-content: center;
    font-variant-numeric: tabular-nums;
}
.modal-file__plus {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid #cfcfcf;
    background: #f3f3f3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}
.modal-file__actions {
    display: grid;
    gap: 10px;
}
.modal-file__btn {
    width: 72px;
    height: 48px;
    border: 0;
    cursor: pointer;
    font-size: 14px;
}
.modal-file__btn--add {
    background: #fff;
    border: 1px solid #111;
    color: #111;
}
.modal-file__btn--del {
    background: #fff;
    border: 1px solid #111;
    color: #111;
}
.modal-file__btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.modal-file {
    /* 모바일: 버튼이 아래로 내려오게 */
}
@media (max-width: 768px) {
    .modal-file__wrap {
        grid-template-columns: 1fr;
    }
    .modal-file__actions {
        grid-template-columns: 1fr 1fr;
    }
    .modal-file__btn {
        width: 100%;
    }
    .modal-file__row {
        grid-template-columns: 44px 1fr 90px;
    }
}

.header-wrap {
    position: relative;
}

.portal-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.95);
    transition: height 0.3s ease, background 0.3s ease;
    height: var(--header-h);
}
.portal-header:not(.is-scrolled) {
    background: transparent;
}
.portal-header.is-scrolled {
    height: calc(var(--header-h) * 0.72);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.header-container {
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    height: 100%;
}
.header-container .header-logo {
    flex-shrink: 0;
    width: 215px;
    height: var(--ic-lg);
    background: url(/images/logo/logo_header.png) no-repeat left center/contain;
}

.header-gnb {
    margin: 0 auto;
}
@media screen and (max-width: 1700px) {
    .header-gnb {
        display: none;
    }
}

.header-gnb-menu {
    display: flex;
    font-size: 20px;
    font-weight: 700;
}
.header-gnb-menu .menu-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 40px;
}
.header-gnb-menu .menu-item > a {
    padding: 10px;
    color: #000;
}

.header-utils {
    display: flex;
    gap: var(--spc40);
    margin-left: auto;
}
@media screen and (max-width: 1700px) {
    .header-utils .btn-icon:nth-child(2) {
        display: none;
    }
}

/* 헤더 검색 레이어 */
.header-search-layer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    background: rgba(255, 255, 255, 0.98);
    height: var(--header-h);
    display: flex;
    align-items: center;
    transform: translateY(-100%);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.header-search-layer.is-active {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.header-search-layer__inner {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 20px;
}
.header-search-layer__box {
    flex: 1;
    display: flex;
    align-items: center;
    border-bottom: 2px solid #333;
    padding: 8px 0;
}
.header-search-layer__input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 20px;
    background: transparent;
    padding: 8px 12px;
    color: #333;
}
.header-search-layer__input::placeholder {
    color: #aaa;
}
.header-search-layer__submit {
    flex-shrink: 0;
    cursor: pointer;
}
.header-search-layer__close {
    flex-shrink: 0;
    cursor: pointer;
}

.sub:not(.is-scrolled) .header-container .header-logo {
    filter: invert(1);
}
.sub:not(.is-scrolled) .header-gnb-menu .menu-item > a {
    color: #fff;
}
.sub:not(.is-scrolled) .header-utils i {
    color: #fff;
}

/* =========================
   GNB 하위메뉴
   ========================= */
.header-gnb-menu .menu-item {
    position: relative;
}
.header-gnb-menu .menu-item--has-sub > .menu-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gnb-sub {
    position: absolute;
    left: 50%;
    top: 100%;
    margin-top: 8px;
    transform: translateX(-50%);
    width: 178px;
    background: #fff;
    border: 1px solid #111;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.08);
    padding: 24px 12px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: 0.35s ease;
    z-index: 50;
    text-align: center;
}
.gnb-sub::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    height: 8px;
    background: transparent;
}
.gnb-sub__list {
    display: grid;
    gap: 24px;
}
.gnb-sub__item {
    display: block;
}
.gnb-sub__link {
    display: block;
    text-decoration: none;
    color: #111;
    line-height: 1.4;
}
.gnb-sub__link--lv2 {
    font-size: 16px;
    font-weight: 700;
}
.gnb-sub__link--lv3 {
    font-size: 14px;
    font-weight: 500;
    color: rgba(0, 0, 0, 0.6);
}
.gnb-sub__link--lv3 .out {
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url("/images/icon/ic_outlink.svg") no-repeat center center;
    text-indent: -999px;
    overflow: hidden;
    margin: 0px 0px -3px 5px;
    filter: invert(1);
}
.gnb-sub__link:hover, .gnb-sub__link:focus-visible {
    text-decoration: underline;
}
.gnb-sub {
    /* 3수준 기본은 숨김 */
}
.gnb-sub__depth3 {
    margin-top: 16px;
}
.gnb-sub__depth3 li + li {
    margin-top: 8px;
}
.gnb-sub {
    /* 2수준(이용가이드/알림) hover/focus 시 3수준 펼침 */
}
.gnb-sub__item--has-children:hover > .gnb-sub__depth3, .gnb-sub__item--has-children:focus-within > .gnb-sub__depth3 {
    opacity: 1;
    pointer-events: auto;
}

.menu-item--has-sub:hover .gnb-sub,
.menu-item--has-sub:focus-within .gnb-sub,
.gnb-sub:hover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* =========================
   전체메뉴 오버레이
   기존 JS: .header-nav.open 토글 전제로 스타일링
   ========================= */
.header-nav {
    position: fixed;
    inset: 0;
    background: radial-gradient(ellipse at top, rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.9) 70%), #000;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: 0.2s ease;
}
.header-nav.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.header-nav__inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #000;
}
.header-nav__top {
    height: var(--header-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 2;
    background: #000;
}
.header-nav__logo {
    width: 215px;
    height: var(--ic-lg);
    background: url(/images/logo/logo_header.png) no-repeat left center/contain;
    filter: invert(1);
}
.header-nav__close {
    width: 40px;
    height: 40px;
    background: none;
    border: 0;
    cursor: pointer;
}
@media screen and (max-width: 1700px) {
    .header-nav__close {
        width: 24px;
        height: 24px;
    }
}
.header-nav__close i {
    width: var(--spc40);
    color: #fff;
}
.header-nav .allmenu {
    flex: 1 1 auto;
    min-height: 0;
    background: #000;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Firefox */
    scrollbar-width: none;
    /* IE/Edge legacy */
    -ms-overflow-style: none;
    /* WebKit (Chrome/Safari/iOS) */
}
.header-nav .allmenu::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

/* PC 전체메뉴 */
.allmenu--pc {
    margin-top: 120px;
    padding-bottom: 160px;
}
.allmenu--pc .allmenu__cols {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
}
.allmenu--pc .allmenu-col {
    display: flex;
    flex-direction: column;
    gap: 80px;
    padding: 0 12px;
    min-height: 680px;
    position: relative;
    text-align: center;
}
.allmenu--pc .allmenu-col:not(:first-child)::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255, 255, 255, 0.12);
}
.allmenu--pc .allmenu-col__title {
    font-size: var(--font32);
    font-weight: 700;
    color: #fff;
}
.allmenu--pc .allmenu-col__list {
    display: grid;
    gap: 24px;
}
.allmenu--pc .allmenu-col__list a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: var(--font16);
    font-weight: 500;
}
.allmenu--pc .allmenu-col__list a .out {
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url("/images/icon/ic_outlink.svg") no-repeat center center;
    text-indent: -999px;
    overflow: hidden;
    margin: 0px 0px -2px 5px;
}
.allmenu--pc .allmenu-col__list .is-strong > a {
    color: #fff;
    font-weight: 700;
    font-size: var(--font20);
}
@media screen and (max-width: 1700px) {
    .allmenu--pc {
        display: none;
    }
}

/* 모바일 전체메뉴(아코디언) */
.allmenu--mo {
    display: none;
}
@media screen and (max-width: 1700px) {
    .allmenu--mo {
        display: block;
    }
}

.mo-acc {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.mo-acc:first-child {
    border-top: 0;
}
.mo-acc:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.mo-acc__head {
    list-style: none;
    cursor: pointer;
    padding: 24px 0;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.mo-acc__head::-webkit-details-marker {
    display: none;
}
.mo-acc__head::after {
    content: "";
    width: 12px;
    height: 12px;
    border-right: 1px solid rgba(255, 255, 255, 0.8);
    border-bottom: 1px solid rgba(255, 255, 255, 0.8);
    transform: rotate(45deg);
    transition: 0.2s ease;
    margin-right: 5px;
}
.mo-acc__head.none::after {
    display: none;
}
.mo-acc[open] .mo-acc__head::after {
    transform: rotate(-135deg);
}
.mo-acc__body {
    padding: 0 0 24px;
}
.mo-acc__grid {
    display: grid;
    gap: 24px;
}
.mo-acc__grid .group {
    display: grid;
    grid-template-columns: 128px 1fr;
}
.mo-acc__tit {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
}
.mo-acc__link {
    display: block;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 14px;
    padding-bottom: 16px;
}
.mo-acc__link:last-child {
    padding-bottom: 0;
}
.mo-acc__link .out {
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url("/images/icon/ic_outlink.svg") no-repeat center center;
    text-indent: -999px;
    overflow: hidden;
    margin: 0px 0px -3px 5px;
}
.mo-acc__link--strong {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
}

.portal-footer {
    padding: 40px 0;
    background-color: #1d1d1b;
    color: #fff;
    font-size: var(--font14);
    font-weight: 200;
}

.footer-container {
    display: flex;
    justify-content: space-between;
}

.footer-cont {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-logo {
    display: flex;
    gap: 24px;
    height: 64px;
    margin-top: 16px;
}
.footer-logo .logo-wmk {
    aspect-ratio: 105/64;
    height: 100%;
    background: url(/images/logo/logo_footer_new.png) no-repeat center center/contain;
}
.footer-logo .logo-open {
    aspect-ratio: 166/64;
    height: 100%;
    background: url(/images/logo/open_footer.png) no-repeat center center/contain;
}
@media screen and (max-width: 768px) {
    .footer-logo {
        height: 48px;
        gap: 16px;
    }
}

.footer-items {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    line-height: 1.4;
    gap: 8px;
}
.footer-items > * {
    display: inline-flex;
    align-items: center;
    height: 12px;
}
.footer-items > *:not(:last-child) {
    padding-right: 8px;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.footer-items a {
    color: inherit;
    font-weight: 500;
}
.footer-items a em {
    font-weight: 600;
}

.footer-utils {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 24px;
}

.footer-sns {
    display: flex;
    gap: 24px;
}
.footer-sns .ic-instagram,
.footer-sns .ic-facebook,
.footer-sns .ic-youtube,
.footer-sns .ic-blog {
    display: inline-block;
    width: 32px;
    height: 32px;
    background: no-repeat center center;
}
.footer-sns .ic-instagram {
    background-image: url(/images/logo/sns_instagram_w.svg);
}
.footer-sns .ic-facebook {
    background-image: url(/images/logo/sns_facebook_w.svg);
}
.footer-sns .ic-youtube {
    background-image: url(/images/logo/sns_youtube_w.svg);
}
.footer-sns .ic-blog {
    background-image: url(/images/logo/ic-sns04.svg);
}

@media screen and (max-width: 768px) {
    .footer-container {
        flex-direction: column;
    }
    .footer-cont {
        align-items: center;
        text-align: center;
    }
    .footer-utils {
        align-items: center;
        margin-top: 40px;
        text-align: center;
    }
    .footer-items {
        justify-content: center;
    }
}
.footer-dropdown {
    position: relative;
    color: #33363d;
    font-weight: 500;
    margin-top: auto;
}
.footer-dropdown.open .dropdown-btn .ic-comm::after {
    transform: rotate(-135deg);
    margin-top: 5px;
}
.footer-dropdown.open .dropdown-list {
    max-height: 300px;
}
.footer-dropdown .dropdown-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 240px;
    height: 56px;
    padding: 0 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background-color: #fff;
    color: #8a949e;
    font-size: 19px;
    font-weight: 400;
    text-align: left;
}
.footer-dropdown .dropdown-btn .ic-comm::after {
    color: #33363d;
    transition: transform 0.2s, margin-top 0.2s;
}
.footer-dropdown .dropdown-list {
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: inset 0 0 1px 1px var(--border);
    overflow: hidden;
    transition: max-height 0.3s;
    max-height: 0;
}
.footer-dropdown .dropdown-list li {
    height: 40px;
    flex-shrink: 0;
}
.footer-dropdown .dropdown-list li a {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 16px;
    color: inherit;
    font-size: 15px;
}
@media screen and (max-width: 768px) {
    .footer-dropdown {
        width: 100%;
    }
    .footer-dropdown .dropdown-btn {
        width: 100%;
        height: 40px;
        font-size: 12px;
    }
}

.portal-container {
    flex-grow: 1;
}

.title-h1 {
    font-size: 64px;
    font-weight: 700;
    color: #000;
}
@media screen and (max-width: 1700px) {
    .title-h1 {
        font-size: 40px;
    }
}
@media screen and (max-width: 768px) {
    .title-h1 {
        font-size: 24px;
    }
}

.desc-t1 {
    font-size: var(--font24);
    color: rgba(0, 0, 0, 0.6);
}

.section-headline {
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
}

.main-section {
    margin-bottom: var(--spc120);
}

.main-search {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: var(--header-h) 0 var(--spc80);
}
@media screen and (max-width: 768px) {
    .main-search {
        min-height: 65vh;
    }
}

.main-search-area {
    display: flex;
    justify-content: center;
}

.main-search-wrap {
    display: flex;
    flex-direction: column;
    max-width: 100%;
}

.main-search-tit {
    font-size: 120px;
    font-weight: 800;
    text-align: center;
}
@media screen and (max-width: 1700px) {
    .main-search-tit {
        font-size: 80px;
    }
}
@media screen and (max-width: 768px) {
    .main-search-tit {
        font-size: 48px;
    }
}

.main-search-box {
    position: relative;
    height: 92px;
    border-bottom: 4px solid #000;
    margin-top: var(--spc40);
}
.main-search-box .btns {
    position: absolute;
    inset: 0 var(--spc24) 0 auto;
    display: flex;
    align-items: center;
    gap: 16px;
}
@media screen and (max-width: 1700px) {
    .main-search-box {
        height: 56px;
    }
}

.main-search-form {
    width: 100%;
    height: 100%;
    padding: 0 160px 0 var(--spc24);
    border: 0;
    font-size: var(--font24);
}

.main-ditealsh-box .keyword-utils {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: var(--ic-lg);
    padding: 0 var(--spc24);
    margin: var(--spc24) 0;
    font-size: var(--font24);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .main-ditealsh-box {
        display: none;
    }
}

.main-search-utils {
    position: relative;
    display: flex;
    gap: var(--spc24);
    height: var(--ic-lg);
}
@media screen and (max-width: 768px) {
    .main-search-utils {
        display: none;
        flex-direction: column;
    }
    .main-search-utils .keyword-utils {
        font-size: 14px;
        padding-right: 0;
    }
    .main-search-utils .keyword-utils .ic-comm {
        width: 16px;
    }
}

.main-keyword-wrapper {
    position: absolute;
    inset: 0 0 auto;
    display: flex;
    gap: var(--spc24);
}

.main-search-keyword {
    position: absolute;
    top: 0;
    left: 0;
    right: 200px;
    flex-grow: 1;
    display: flex;
    height: var(--ic-lg);
    font-size: var(--font24);
    font-weight: 500;
}
.main-search-keyword .swiper-nav {
    display: flex;
}
@media screen and (min-width: 1701px) {
    .main-search-keyword .swiper-nav {
        display: none;
    }
}
.main-search-keyword .btn {
    white-space: nowrap;
}
.main-search-keyword .btn:hover {
    color: #69ab67;
}
.main-search-keyword .keyword-swiper {
    display: flex;
    margin: 0 0 0 var(--spc24);
    width: 100%;
}
.main-search-keyword .keyword-swiper .btn {
    width: auto;
}
@media screen and (max-width: 1700px) {
    .main-search-keyword {
        right: 150px;
    }
}
@media screen and (max-width: 768px) {
    .main-search-keyword {
        position: static;
    }
}

@media screen and (min-width: 1701px) {
    .main-short .portal-area {
        border-top: 1px solid #000;
        padding-top: var(--spc120);
    }
}

.main-short-list {
    display: flex;
    justify-content: space-between;
    margin-top: var(--spc64);
}
.main-short-list li {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
    padding: 0 var(--spc40) 0 152px;
    margin-right: var(--spc40);
    word-break: keep-all;
    line-height: 1.4;
}
.main-short-list li:not(:last-of-type) {
    border-right: 1px solid rgba(0, 0, 0, 0.16);
}
.main-short-list .tit {
    font-size: var(--font40);
    color: #000;
    font-weight: 700;
    grid-area: tit;
}
.main-short-list .desc-t1 {
    grid-area: desc;
}
.main-short-list .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spc64);
    margin-top: var(--spc24);
    color: #000;
    font-weight: 700;
    font-size: 20px;
    grid-area: btn;
}
.main-short-list .ic-guide {
    background: url(/images/icon/ic_short_guide.svg) no-repeat left top;
}
.main-short-list .ic-network {
    background: url(/images/icon/ic_short_network.svg) no-repeat left top;
}
.main-short-list .ic-book {
    background: url(/images/icon/ic_short_book.svg) no-repeat left top;
}
@media screen and (max-width: 1700px) {
    .main-short-list {
        flex-direction: column;
        font-size: 16px;
    }
    .main-short-list li {
        padding: 0 0 0 96px;
        margin-right: 0;
        display: grid;
        grid-template-areas: "tit btn" "desc desc";
    }
    .main-short-list li:not(:last-of-type) {
        position: relative;
        padding-bottom: 15px;
        margin-bottom: 15px;
        border-right: 0;
    }
    .main-short-list li:not(:last-of-type)::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.16);
    }
    .main-short-list .tit {
        font-size: 22px;
    }
    .main-short-list .btn {
        font-size: 14px;
        margin-top: 0;
        gap: 5px;
        justify-content: flex-end;
    }
    .main-short-list .ic-guide,
    .main-short-list .ic-network,
    .main-short-list .ic-book {
        background-size: 80px;
    }
}

.tab-container .tab-contents {
    position: relative;
}
.tab-container .tab-contents:not(.active) {
    height: 0;
    visibility: hidden;
    overflow: hidden;
}

.main-tab-container {
    display: flex;
    flex-direction: column;
    margin-top: var(--spc40);
}

.main-tab-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spc24);
}
.main-tab-group .btn-more {
    display: flex;
    align-items: center;
    gap: 18px;
    height: 48px;
    border-radius: 48px;
    padding: 0 16px;
    background: rgba(0, 0, 0, 0.05);
    color: #000;
}
.main-tab-group .btn-more .more-txt {
    font-size: 20px;
    font-weight: 400;
}
@media screen and (max-width: 768px) {
    .main-tab-group .btn-more .more-txt {
        display: none;
    }
}
.main-tab-group .btn-more .ic-more::before, .main-tab-group .btn-more .ic-more::after {
    width: 20px;
    height: 2px;
}
@media screen and (max-width: 768px) {
    .main-tab-group .btn-more {
        height: 33px;
        padding: 0;
        background: transparent;
    }
}

.main-tab-buttons {
    display: flex;
    gap: 8px;
}
.main-tab-buttons .tab-btn {
    gap: 24px;
    height: 48px;
    border-radius: 48px;
    padding: 0 16px;
    border: 2px solid currentColor;
    font-size: 20px;
    font-weight: 700;
}
.main-tab-buttons .tab-btn.active {
    background-color: #000;
    color: #fff;
}
@media screen and (max-width: 768px) {
    .main-tab-buttons .tab-btn {
        height: 33px;
        gap: 8px;
        font-size: 14px;
    }
}

.main-section .swiper {
    overflow: hidden;
}
.main-section .swiper .swiper-button-prev,
.main-section .swiper .swiper-button-next {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.6);
    color: currentColor;
    z-index: 20;
}
.main-section .swiper .swiper-button-prev::after,
.main-section .swiper .swiper-button-next::after {
    font-size: 16px;
    font-weight: bold;
}
.main-section .swiper.google, .main-section .swiper.archive {
    overflow: hidden;
}
.main-section .swiper .swiper-button-prev {
    left: -8px;
}
.main-section .swiper .swiper-button-next {
    right: -8px;
}
.main-section .swiper .swiper-pagination {
    position: static;
    margin-top: 16px;
    border-radius: 4px;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.1);
}
.main-section .swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    border-radius: 4px;
    background-color: currentColor;
}

.main-collection-list {
    display: flex;
    aspect-ratio: 1600/600;
}
.main-collection-list li {
    background-color: rgba(0, 0, 0, 0.05);
}
@media screen and (max-width: 1280px) {
    .main-collection-list {
        aspect-ratio: unset;
    }
    .main-collection-list li {
        height: 400px;
    }
}

.main-display-list {
    height: 420px;
}
@media screen and (max-width: 768px) {
    .main-display-list {
        height: 240px;
    }
}

.img-wrap {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}
.img-wrap.t--bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
}
.img-wrap img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    transition: scale 0.4s ease-in-out;
}

.img-header {
    position: absolute;
    inset: 0 0 auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 40px;
    padding: 0 var(--spc16);
    background-color: #000;
    color: #fff;
    font-size: 16px;
    transition: background-color 0.4s, color 0.4s, box-shadow 0.4s;
    font-weight: 600;
}

.img-caption {
    position: absolute;
    inset: auto 0 0 0;
    background-color: #fff;
    padding: var(--spc64) var(--spc24) var(--spc24);
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: var(--font16);
    transform: translateY(100%);
    transition: transform 0.4s;
}
@media screen and (max-width: 1700px) {
    .img-caption {
        padding-top: 40px;
    }
}
.img-caption .tit {
    font-size: var(--font20);
    font-weight: 700;
}
.img-caption .label {
    font-size: var(--font14);
    color: rgba(0, 0, 0, 0.4);
    font-weight: 700;
    margin-top: 8px;
}
.img-caption .btn-more {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--spc80);
    height: var(--spc80);
    border-radius: 50%;
    border: 1px solid currentColor;
    background-color: #fff;
    color: inherit;
    transition: transform 0.4s;
}

.collection-item {
    overflow: hidden;
}
.collection-item:hover:not(:has(.img-caption)) .img-wrap img {
    scale: 1.1;
}
.collection-item:hover .img-header {
    background-color: #fff;
    color: #000;
    box-shadow: inset 0 0 0 1px #000;
}
.collection-item:hover .img-caption {
    transform: translateY(0);
}
.collection-item:hover .btn-more {
    transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
    .collection-item .img-header {
        background-color: #fff;
        color: #000;
        box-shadow: inset 0 0 0 1px #000;
    }
    .collection-item .img-caption {
        transform: translateY(0);
    }
    .collection-item .btn-more {
        transform: translate(-50%, -50%);
    }
}

.main-lib-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--spc24);
}
.main-lib-list li {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
    padding: var(--spc40);
    font-size: var(--font24);
    color: #f2f2f2;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
    background: no-repeat center center/cover;
}
.main-lib-list li::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.3);
}
.main-lib-list li span {
    position: relative;
}
.main-lib-list li:hover::before {
    background-color: transparent;
}
.main-lib-list li:hover span {
    display: none;
}
.main-lib-list .value {
    font-size: var(--font64);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .main-lib-list .value {
        font-size: 35px;
    }
}
.main-lib-list .bg-doc {
    background-image: url(/images/main/bg_lib_doc2.png);
}
.main-lib-list .bg-floor {
    background-image: url(/images/main/bg_lib_floor2.png);
}
.main-lib-list .bg-book {
    background-image: url(/images/main/bg_lib_book2.png);
}
.main-lib-list .bg-pic {
    background-image: url(/images/main/bg_lib_pic2.png);
}
.main-lib-list .bg-video {
    background-image: url(/images/main/bg_lib_video2.png);
}
.main-lib-list .bg-tell {
    background-image: url(/images/main/bg_lib_tell2.png);
}
.main-lib-list .bg-museum {
    background-image: url(/images/main/bg_lib_museum2.png);
}
.main-lib-list .bg-etc {
    background-image: url(/images/main/bg_lib_etc2.png);
}
@media screen and (max-width: 768px) {
    .main-lib-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

.main-leg-list {
    display: flex;
    gap: var(--spc24);
}
.main-leg-list li {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--spc16);
    padding: var(--spc40);
    border: 1px solid transparent;
    font-size: var(--font24);
    font-weight: 700;
    box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);
}
.main-leg-list li::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    opacity: 0.05;
}
.main-leg-list li:hover {
    border: 1px solid currentColor;
}
.main-leg-list li:hover::before {
    background-color: #fff;
}
.main-leg-list li span {
    position: relative;
}
.main-leg-list li span.tit {
    display: block;
    margin-bottom: 5px;
}
.main-leg-list li span.txt {
    font-size: var(--font16);
    font-weight: 400;
}
.main-leg-list .label {
    color: #000;
}
.main-leg-list .value {
    font-size: var(--font64);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .main-leg-list {
        flex-direction: column;
    }
}

.map .geo-map {
    background: #fff;
}
.map .geo-map__layout {
    display: grid;
    grid-template-columns: 352px 1fr;
    gap: 16px;
}
.map {
    /* ── 사이드바 국가 리스트 ───────────────────────── */
}
.map .geo-map__sidebar {
    background: #F2F4F7;
    padding: 8px;
    height: 768px;
    overflow: auto;
}
.map .country-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.map .country-list__item + .country-list__item {
    margin-top: 8px;
}
.map .country {
    width: 100%;
    height: 60px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 15px;
    padding: 18px 16px;
    border: 1px solid #e0e3ea;
    background: #fff;
    cursor: pointer;
    text-align: left;
    font-size: 20px;
}
.map .country[aria-selected=true] {
    border-color: #002956;
    background: #002956;
    color: #fff;
}
.map .country__code {
    font-weight: 500;
    color: inherit;
}
.map .country__name {
    font-weight: 700;
    color: inherit;
}
.map .country__count {
    font-weight: 700;
    color: inherit;
}
.map .country__count .txt {
    font-weight: 500;
}
.map {
    /* ── 스테이지(지도, 마커, 카드) ─────────────────── */
}
.map .geo-map__stage {
    position: relative;
    border: 1px solid #e7e8ec;
    background: #fff;
    min-height: 440px;
    padding: 24px;
}
.map {
    /* 지도 */
}
.map .worldmap {
    margin: 0;
    padding: 0 50px;
    border-bottom: 1px solid #e7e8ec;
}
.map .worldmap img,
.map .worldmap svg {
    display: block;
    width: 100%;
    height: auto;
}
.map .legend__src {
    font-size: 10px;
    color: #9aa3b5;
    text-align: right;
    margin-bottom: 16px;
}
.map {
    /* 마커 */
}
.map .map-marker {
    position: absolute;
    width: 22px;
    height: 22px;
    transform: translate(-50%, -100%); /* 좌표(좌상단) -> 핀 꼭짓점 맞춤 */
    pointer-events: none;
    z-index: 5;
}
.map .map-marker__icon {
    width: 100%;
    height: 100%;
    fill: #ff7a00;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}
.map {
    /* 카드 */
}
.map .map-card {
    position: absolute;
    min-width: 240px;
    max-width: 350px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 24px;
    z-index: 6;
}
.map .map-card__head {
    display: flex;
    gap: 8px;
    align-items: baseline;
    margin-bottom: 8px;
}
.map .map-card__code {
    font-size: 20px;
    font-weight: 700;
    color: #000;
}
.map .map-card__name {
    font-size: 20px;
    font-weight: 700;
    color: #000;
}
.map .map-card__total {
    font-size: 48px;
    font-weight: 900;
    margin-bottom: 24px;
}
.map .map-card__list {
    display: grid;
    gap: 16px;
    margin: 0;
    border-top: 1px solid #f2f3f6;
    padding-top: 24px;
}
.map .map-card__list .r {
    display: grid;
    grid-template-columns: 1fr auto;
}
.map .map-card__list dt {
    font-size: 16px;
    color: #000;
    font-weight: 500;
}
.map .map-card__list dd {
    font-size: 16px;
    color: #000;
    margin: 0;
    font-weight: 800;
}
.map .map-card__list dd span {
    font-weight: 500;
}
.map {
    /* 범례 */
}
.map .geo-map__legend {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 24px;
}
.map .legend {
    display: flex;
    gap: 24px;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-wrap: wrap;
}
.map .legend li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: rgba(0, 0, 0, 0.6);
}
.map .chip {
    width: 24px;
    height: 24px;
    display: inline-block;
    border: 1px solid #000;
}
.map .chip--0 {
    background: #fff;
}
.map .chip--1 {
    background: #d9dfe6;
}
.map .chip--2 {
    background: #b3bfcd;
}
.map .chip--3 {
    background: #8c9eb3;
}
.map .chip--4 {
    background: #667f9a;
}
.map .chip--5 {
    background: #335478;
}
.map .chip--6 {
    background: #002956;
}

/* 국가 아코디언 상세 패널 (데스크탑: 숨김) */
.map .country-detail {
    display: none;
}

@media screen and (max-width: 768px) {
    .map .geo-map__layout {
        grid-template-columns: 1fr;
    }
    .map .geo-map__stage {
        display: none;
    }
    .map .geo-map__sidebar {
        height: auto;
        overflow: visible;
    }
    .map .country-detail {
        display: none;
        background: #f9fafb;
        border: 1px solid #e0e3ea;
        border-top: none;
        padding: 20px 16px;
    }
    .map .country-detail.is-open {
        display: block;
    }
    .map .country-detail__total {
        font-size: 28px;
        font-weight: 900;
        color: #002956;
        margin-bottom: 16px;
        cursor: pointer;
        text-decoration: underline;
    }
    .map .country-detail__list {
        display: grid;
        gap: 10px;
        margin: 0;
        border-top: 1px solid #e0e3ea;
        padding-top: 16px;
    }
    .map .country-detail__list .r {
        display: grid;
        grid-template-columns: 1fr auto;
        cursor: pointer;
    }
    .map .country-detail__list .r:active {
        background: #eef1f5;
    }
    .map .country-detail__list dt {
        font-size: 14px;
        color: #000;
        font-weight: 500;
    }
    .map .country-detail__list dd {
        font-size: 14px;
        color: #000;
        margin: 0;
        font-weight: 700;
        text-decoration: underline;
    }
    .map .country-detail__list dd span {
        font-weight: 500;
    }
}

.google-link {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}
.google-link .text-box {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.google-link .text-box .logo {
    position: absolute;
    top: 32px;
    left: 50%;
    transform: translateX(-50%);
    width: 286px;
    height: 32px;
    overflow: hidden;
    text-indent: -999px;
    background: url(/images/logo/google-art.png) no-repeat center center;
}
.google-link .text-box .tit {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: var(--font48);
    font-weight: 700;
    text-align: center;
}
.google-link .img-box {
    width: 100%;
    height: 100%;
}

/* fraction pagination 커스텀 */
.viewer__count {
    position: absolute !important;
    left: 50%;
    bottom: 15px;
    transform: translateX(-50%);
    width: 144px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-weight: 700;
    font-size: var(--font20);
    color: #fff;
    background: rgba(0, 0, 0, 0.2) !important;
    border-radius: 20px !important;
    padding: 0 var(--spc16);
    z-index: 10;
    margin-top: 0 !important;
}

.viewer__count span {
    display: inline-block;
}

/* 총 페이지 */
.swiper-pagination-total {
    opacity: 0.6;
}

.search-detail {
    margin-top: 120px;
}
.search-detail .sr-only,
.search-detail .visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.pageTitle {
    font-size: var(--font48);
    margin-top: var(--spc40);
}

.flex-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 1280px) {
    .flex-box:not(.sh-fin) {
        flex-direction: column;
        align-items: flex-end;
        gap: var(--spc24);
    }
}
.search-detail__tools {
    display: inline-flex;
    align-items: center;
}
.search-detail__tools .search-detail_select01 {
    margin-right: 40px;
}
.search-detail__tools .search-detail_select01 ul {
    display: flex;
    align-items: center;
    gap: var(--spc16);
}
.search-detail__tools .search-detail_select01 ul li {
    display: flex;
    align-items: center;
}
.search-detail__tools .search-detail_select01 ul li .txt {
    font-size: var(--font20);
    font-weight: 400;
    color: rgba(0, 0, 0, 0.38);
}
.search-detail__tools .search-detail_select01 ul li:first-child::after {
    content: "";
    display: block;
    width: 1px;
    height: 21px;
    background: rgba(0, 0, 0, 0.38);
    margin-left: var(--spc16);
}
.search-detail__tools .search-detail_select01 ul li.on .txt {
    color: #000;
    font-weight: 700;
}
.search-detail__tools .search-detail_select02 {
    margin-right: var(--spc24);
}
.search-detail__tools .search-detail_select02 select {
    width: 80px;
    height: 40px;
    padding: 0 8px;
    border: 1px solid #000;
    background-color: #fff;
}
.search-detail__tools .viewbtn_contain {
    display: flex;
    align-items: center;
    gap: 8px;
}
.search-detail__tools .search-detail__viewbtn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid #e0e0e0;
}
.search-detail__tools .search-detail__viewbtn i {
    color: #e0e0e0;
}
.search-detail__tools .search-detail__viewbtn[aria-pressed=true] {
    background: #000;
}
.search-detail__tools .search-detail__viewbtn[aria-pressed=true] i {
    color: #fff;
}

/* ─────────────────────────────────────────
   상세검색 패널
────────────────────────────────────────── */
.ditealsh-contain {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-6px);
    transition: max-height 0.36s ease, opacity 0.26s ease, transform 0.26s ease;
}
.ditealsh-contain.is-open {
    max-height: 2400px;
    opacity: 1;
    transform: translateY(0);
    overflow: visible;
}
.ditealsh-contain {
    /* 테이블형 폼 레이아웃 */
}
.ditealsh-contain .sh-list-box .list-table {
    display: grid;
    background: #f7f7f7;
}
.ditealsh-contain .sh-list-box .list-table .list-tr {
    border-bottom: 1px solid #d9d9d9;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .center-box {
    display: grid;
    grid-template-columns: 270px 1fr;
    gap: var(--spc16);
    padding: var(--spc16) 0;
    width: calc(100% - 100px);
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .list-th {
    display: flex;
    align-items: center;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .list-th .tit {
    font-weight: 700;
    font-size: var(--font24);
    color: #000;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group {
    display: grid;
    gap: var(--spc16);
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box {
    display: grid;
    grid-template-columns: 366px 1fr;
    gap: var(--spc24);
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in {
    display: flex;
    gap: var(--spc24);
    align-items: center;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-select {
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-position: right var(--spc16) center;
    background-size: 16px 16px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 360px;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-text {
    flex: 1;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-btn {
    width: 247px;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spc24);
    width: 100%;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box {
    display: flex;
    align-items: center;
    gap: var(--spc24);
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .txt {
    text-align: right;
    font-weight: 700;
    font-size: var(--font16);
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .year {
    width: 246px;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .month {
    width: 191px;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .date {
    width: 191px;
}
.ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .in-btn {
    width: 111px;
}
.ditealsh-contain .in-select,
.ditealsh-contain .in-text {
    height: 48px;
    border: 1px solid #000;
    background: #fff;
    padding: 0 var(--spc16);
    font-size: var(--font16);
    color: #000;
    font-weight: 500;
}
.ditealsh-contain .in-select {
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-position: right var(--spc16) center;
    background-size: 16px 16px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.ditealsh-contain .in-text {
    width: 100%;
    max-width: 100%;
}
.ditealsh-contain .in-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0 var(--spc16);
    border: 1px solid #000;
    background: #fff;
    font-size: var(--font16);
    font-weight: 500;
    cursor: pointer;
}
.ditealsh-contain .ex-txtbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
    font-size: 14px;
    color: #999;
    font-weight: 500;
}
.ditealsh-contain .ex-txtbox .ex-txt + .ex-txt {
    border-left: 1px solid #d9d9d9;
    padding-left: 8px;
}
.ditealsh-contain .btn-area {
    max-width: 1160px;
    margin: var(--spc16) auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 120px;
}
.ditealsh-contain .btn-area .btns {
    display: inline-flex;
    gap: 8px;
}
.ditealsh-contain .btn-area .btns .diteal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    border: 1px solid #000;
    background: #fff;
    font-weight: 700;
    cursor: pointer;
}
.ditealsh-contain .btn-area .btns .diteal-btn.resetbtn {
    width: 48px;
}
.ditealsh-contain .btn-area .btns .diteal-btn.ditealbtn {
    width: 200px;
    background: #000;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.search-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
@media screen and (max-width: 1280px) {
    .search-detail__chips {
        width: 100%;
    }
}
.search-detail__chips .chip {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    color: #000;
    font-weight: 400;
    text-decoration: none;
    border: 2px solid #111;
}
.search-detail__chips .chip b {
    font-weight: 700;
}
.search-detail__chips .chip[aria-selected=true] {
    background: #000;
    color: #fff;
}

/* 레이아웃 */
.search-detail__layout {
    display: flex;
    align-items: flex-start; /* 중요 */
    gap: var(--spc40);
}

.search-detail__filters {
    flex: 0 0 247px;
    position: sticky;
    top: 88px;
    align-self: start;
    background: #fff;
    border-right: 1px solid #dadbdc;
    border-left: 1px solid #dadbdc;
    margin-bottom: 40px;
}
.search-detail__filters .filters-form {
    display: grid;
}
.search-detail__filters .filter {
    overflow: hidden;
    background: #fff;
    border-bottom: 1px solid #dadbdc;
}
.search-detail__filters .filter__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-size: var(--font20);
    font-weight: 700;
    padding: var(--spc24);
    list-style: none;
    position: relative;
}
.search-detail__filters .filter[open] .filter__summary i {
    transform: rotate(180deg);
}
.search-detail__filters .filter__summary.has-sort {
    flex-wrap: wrap;
}
.filter-sort {
    display: flex;
    gap: 4px;
    width: 100%;
    order: 3;
    padding-top: 6px;
}
.filter-sort__btn {
    padding: 1px 6px;
    font-size: 11px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fff;
    color: #999;
    cursor: pointer;
    line-height: 1.3;
    font-weight: 400;
}
.filter-sort__btn.is-active {
    background: #333;
    color: #fff;
    border-color: #333;
}
.search-detail__filters .filter__body {
    padding: 0 var(--spc24) var(--spc24);
    display: grid;
    gap: var(--spc16);
}
.search-detail__filters .check {
    display: grid;
    grid-template-columns: 16px 1fr auto;
    align-items: center;
    gap: 8px;
    font-size: var(--font16);
    font-weight: 500;
}
.search-detail__filters .check input {
    accent-color: #111;
    width: 16px;
    height: 16px;
    border-radius: 0;
}
.search-detail__filters .check span {
    color: #666666;
}
.search-detail__filters .check span em {
    font-style: 700;
}
.search-detail__filters .filters-form__actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.results-head {
    background: #f8f9fa;
    border-top: 1px solid #dadbdc;
    border-bottom: 1px solid #dadbdc;
    padding: var(--spc40) 0;
}
.results-head__count {
    font-size: var(--font24);
    color: #000;
    font-weight: 400;
}
.results-head__count span {
    color: rgba(0, 0, 0, 0.6);
    margin-left: 8px;
}
.results-head__count strong {
    margin-left: var(--spc16);
    font-weight: 700;
}
.results-head__right {
    display: flex;
    align-items: center;
    gap: var(--spc24);
}
.results-head__right .btn-ico {
    width: 24px;
    height: 24px;
}
.results-head__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spc8);
}
.results-head__tags .token {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px var(--spc16);
    border-radius: 999px;
    background: #fff;
    border: 1px solid #000;
    font-size: var(--font16);
}
.results-head__tags .token button {
    display: flex;
    align-items: center;
    width: 16px;
    height: 16px;
}
.results-head__tags .token button i {
    width: 100%;
    height: 100%;
}
.results-head__tags .reset-btn {
    display: flex;
    align-items: center;
    margin-left: var(--spc8);
    border: none !important;
    background: transparent !important;
    height: auto !important;
}
.results-head__tags .reset-btn button {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #636363;
}

/* 결과 영역 */
.search-detail__results {
    flex: 1;
    min-width: 0;
    padding-top: 38px;
    padding-bottom: 120px;
    display: grid;
    gap: 40px;
}
.search-detail__results .results-tag-contain {
    padding: var(--spc16) 19px;
    background: #f7f7f7;
}

/* 섹션 */
.result-section {
    display: grid;
    gap: var(--spc24);
}
.result-section__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.result-section__title {
    font-size: 32px;
    font-weight: 700;
    color: #000;
}
@media screen and (max-width: 1700px) {
    .result-section__title {
        font-size: 24px;
    }
}

/* 카드 리스트 */
.result-list {
    display: grid;
    gap: var(--spc24);
}

.result-card {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--spc16);
}
.result-card__thumb {
    display: block;
    width: 200px;
    height: 150px;
    overflow: hidden;
    background: #f5f6fa;
}
.result-card__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
.result-card__body {
    display: grid;
    grid-template-columns: 1fr 40px;
    grid-template-areas: "badge book" "tit book" "meta meta";
}
.result-card__meta-top {
    display: flex;
    gap: 10px;
    align-items: center;
    color: var(--c-muted);
    grid-area: badge;
}
.result-card__meta-top .badge {
    color: #333333;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 8px;
}
.result-card__title {
    font-size: var(--font20);
    font-weight: 700;
    grid-area: tit;
    margin-bottom: 33px;
}
.result-card__title a {
    color: #000;
}
.result-card__title a span {
    color: #fff;
    padding: 0 4px;
    background: #000;
}
.result-card__meta {
    grid-area: meta;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.result-card__meta .tit {
    color: #9e9e9e;
    margin-right: 8px;
}
.result-card__meta a {
    color: #000;
    text-decoration: underline;
}
.result-card__actions {
    grid-area: book;
}
.result-card__actions .icon-btn {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #fff;
}
.result-card__actions .icon-btn svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* ── 그리드 보기 ── */
.result-list--grid {
    grid-template-columns: repeat(3, 1fr);
}
.result-list--grid .result-card {
    grid-template-columns: 1fr;
    gap: 0;
}
.result-list--grid .result-card__thumb {
    width: 100%;
    height: 0;
    padding-bottom: 75%;
    position: relative;
}
.result-list--grid .result-card__thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.result-list--grid .result-card__body {
    grid-template-columns: 1fr;
    grid-template-areas: "badge" "tit" "meta";
    padding: 10px 0 0;
}
.result-list--grid .result-card__actions {
    display: none;
}
.result-list--grid .result-card__meta-top {
    margin-bottom: 4px;
}
.result-list--grid .result-card__title {
    font-size: 15px;
    margin-bottom: 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.result-list--grid .result-card__meta {
    font-size: 13px;
    gap: 4px;
}
.result-list--grid .result-card__meta .meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.line-group {
    display: flex;
    width: 100%;
    align-items: center;
    gap: var(--spc24);
}
.line-group:not(:last-child) {
    margin-bottom: 40px;
}
.line-group .line {
    flex: 1 1 auto;
    min-width: 0;
    height: 1px;
    background: #000;
}
.line-group .more-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--spc16);
    width: 124px;
    height: 48px;
    border-radius: 24px;
    background: rgba(0, 0, 0, 0.05);
}
.line-group .more-btn span {
    font-size: var(--font20);
    font-weight: 400;
}

/* 페이지네이션 */
.pagination-group {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas: "btns paging empty";
    align-items: center;
    width: 100%;
}
.pagination-group .page-btns {
    grid-area: btns;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}
.pagination-group .page-btns .page-btn--prev {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #000;
}
.pagination-group .page-btns .page-btn--next {
    width: 200px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.pagination {
    grid-area: paging;
    justify-self: center;
}
.pagination .pagination__inner {
    display: flex;
    gap: 4px;
    align-items: center;
}
.pagination .page-btn {
    height: 48px;
    width: 48px;
    display: inline-grid;
    place-items: center;
    cursor: pointer;
    padding: 0 12px;
    background: #fff;
    border: 1px solid #e0e0e0;
}
.pagination .page-number {
    height: 48px;
    width: 64px;
    padding: 0 12px;
    background: #fff;
    display: inline-grid;
    place-items: center;
    border: 1px solid #e0e0e0;
    font-size: 14px;
    font-weight: 400;
}
.pagination .page-gap {
    margin-left: 4px;
    font-size: 14px;
    font-weight: 400;
}

/* 유틸 */
.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ============================
   반응형
============================ */
@media screen and (max-width: 1700px) {
    .ditealsh-contain .sh-list-box .list-table .list-tr .center-box {
        grid-template-columns: 220px 1fr; /* 라벨폭 축소 */
        width: calc(100% - 72px);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box {
        grid-template-columns: 320px 1fr; /* 첫 필드 폭 축소 */
    }
    .search-detail__filters {
        flex: 0 0 220px;
    }
    .search-detail__results {
        flex: 1;
    }
    .results-head__right {
        gap: var(--spc16);
    }
}
/* mobile-lg ≤1280px */
@media screen and (max-width: 1280px) {
    .ditealsh-contain .sh-list-box .list-table .list-tr .center-box {
        grid-template-columns: 180px 1fr;
        width: calc(100% - 40px);
        gap: var(--spc16);
        padding: var(--spc16) 0;
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box {
        grid-template-columns: 1fr; /* 두 칼럼 → 한 칼럼 */
        gap: var(--spc24);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in {
        flex-wrap: wrap;
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-select,
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-text,
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in .in-btn {
        width: 100%;
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line {
        align-items: stretch;
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .year, .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .month, .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .date, .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .in-btn {
        width: 100%;
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .txt {
        text-align: left;
    }
    .search-detail__filters {
        position: static;
        top: auto;
        margin-bottom: var(--spc24);
    }
    .result-card {
        grid-template-columns: 160px 1fr;
    }
    .result-card__thumb {
        width: 160px;
        height: 120px;
    }
    .pagination-group {
        grid-template-columns: 1fr;
        grid-template-areas: "btns" "paging";
        row-gap: var(--spc16);
    }
    .pagination-group .pagination {
        justify-self: center;
    }
    .pagination-group .page-btns {
        justify-content: center;
    }
}
/* mobile ≤768px */
@media screen and (max-width: 768px) {
    .ditealsh-contain .sh-list-box .list-table .list-tr .center-box {
        grid-template-columns: 1fr; /* 라벨/필드 1열 */
        width: 100%;
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .list-th .tit {
        font-size: var(--font24);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr { /* 제목은 유지 */ }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box {
        grid-template-columns: 1fr;
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box .in {
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line {
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box {
        gap: var(--spc16);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .year, .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .month, .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .date {
        width: calc((100% - var(--spc16) * 2) / 3);
    }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box { /* 3등분 */ }
    .ditealsh-contain .sh-list-box .list-table .list-tr .in-group .in-box-line .date-box .in-btn {
        width: 100%;
    }
    .ditealsh-contain .btn-area {
        padding-bottom: 80px;
    }
    .search-detail__layout {
        display: block;
    }
    .search-detail__filters,
    .search-detail__results {
        width: 100%;
    }
    .search-detail__chips {
        gap: 8px;
    }
    .results-head {
        margin-top: 12px;
    }
    .results-head__right {
        gap: var(--spc16);
    }
    .results-head__tags .token {
        margin-top: 8px;
    }
    .result-section {
        gap: var(--spc16);
    }
    .result-list {
        gap: var(--spc16);
    }
    .result-card {
        grid-template-columns: 1fr; /* 썸네일 위, 본문 아래 */
    }
    .result-card__thumb {
        width: 100%;
        height: auto;
    }
    .result-card__body {
        grid-template-columns: 1fr 40px;
        grid-template-areas: "badge book" "tit book" "meta meta";
    }
    .result-card__title {
        margin-bottom: 16px;
    }
    .viewbtn_contain {
        display: none !important;
    }
    .result-list--grid {
        grid-template-columns: 1fr;
    }
    .result-list--grid .result-card {
        grid-template-columns: 1fr;
    }
    .result-list--grid .result-card__thumb {
        height: auto;
        padding-bottom: 0;
        position: static;
    }
    .result-list--grid .result-card__thumb img {
        position: static;
    }
    .result-list--grid .result-card__body {
        grid-template-columns: 1fr 40px;
        grid-template-areas: "badge book" "tit book" "meta meta";
    }
    .result-list--grid .result-card__meta-top,
    .result-list--grid .result-card__meta,
    .result-list--grid .result-card__actions {
        display: flex;
    }
    .result-list--grid .result-card__meta .meta {
        white-space: normal;
    }
    .line-group {
        gap: var(--spc16);
    }
    .line-group .more-btn {
        width: 100px;
    }
    .pagination .page-number {
        width: 56px;
    }
}
/* desktop ≥1701px (옵션: 기본값 유지 강조) */
@media screen and (min-width: 1701px) {
    .ditealsh-contain .sh-list-box .list-table .list-tr .center-box {
        grid-template-columns: 270px 1fr;
        gap: var(--spc16);
    }
}
.list_more {
    font-size: var(--font16);
    text-align: center;
    cursor: pointer;
}
.list_more:hover {
    text-decoration: underline;
}

.share-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.share-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 200;
    min-width: 284px;
    padding: 22px;
    background: #fff;
    border: 1px solid #000;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.share-panel:not([hidden]) {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.share-panel[hidden] {
    display: block !important;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
}
.share-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
}
.share-panel__title {
    font-size: var(--font24, 24px);
    font-weight: 700;
    color: #000;
    margin: 0;
}
.share-panel__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    background: none;
    color: #000;
}
.share-panel__list {
    display: flex;
    align-items: center;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}
.share-panel__toast {
    margin-top: 12px;
    padding: 8px 12px;
    border-radius: 4px;
    background: #222;
    color: #fff;
    font-size: var(--font14, 14px);
    text-align: center;
    animation: shareToastFade 0.2s ease;
}

.share-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    padding: 0;
    background: none;
    cursor: pointer;
}
.share-link img,
.share-link svg {
    display: block;
}

@keyframes shareToastFade {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media screen and (max-width: 1700px) {
    .share-panel {
        min-width: 200px;
        padding: 16px;
    }
    .share-panel__title {
        font-size: var(--font16, 16px);
    }
    .share-link {
        width: 36px;
        height: 36px;
    }
    .share-link img,
    .share-link svg {
        width: 36px;
        height: 36px;
    }
}
@media screen and (max-width: 768px) {
    .share-panel {
        position: fixed;
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        min-width: unset;
        border-radius: 16px 16px 0 0;
        border-bottom: none;
        padding: 20px 20px 32px;
        transform: translateY(20px);
    }
    .share-panel:not([hidden]) {
        transform: translateY(0);
    }
    .share-panel[hidden] {
        transform: translateY(20px);
    }
    .share-panel__list {
        gap: 16px;
        justify-content: center;
    }
    body.share-open::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 199;
        background: rgba(0, 0, 0, 0.4);
        animation: shareDimFade 0.2s ease;
    }
    @keyframes shareDimFade {
        from {
            opacity: 0;
        }
        to {
            opacity: 1;
        }
    }
    .share-link {
        width: 44px;
        height: 44px;
    }
    .share-link img,
    .share-link svg {
        width: 44px;
        height: 44px;
    }
}
.item-detail {
    padding-top: var(--header-h);
    padding-bottom: var(--header-h);
}

/* ===== 상단 영역 ===== */
.item-detail__head .title-areas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 40px 0;
}

/* 중앙 정렬: 유형 + 제목 */
.item-detail__kind,
.item-detail__title,
.item-detail__year {
    text-align: center;
}

.item-detail__kind {
    font-size: var(--font20);
    color: #9e9e9e;
    font-weight: 500;
}

.item-detail__title {
    margin: var(--spc8) 0;
    font-size: 32px;
    font-weight: 800;
}

.item-detail__year {
    font-size: var(--font24);
    color: #666666;
    font-weight: 500;
}

/* 좌측 뒤로가기 */
.prev-btns .ic-gt--l {
    height: 48px;
    width: 28px;
}
.prev-btns .ic-gt--l::after {
    width: 48px;
    height: 28px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    border-radius: 2px;
}
@media screen and (max-width: 1280px) {
    .prev-btns .ic-gt--l {
        height: 32px;
        width: 20px;
    }
    .prev-btns .ic-gt--l::after {
        width: 28px;
        height: 18px;
        border-right-width: 2px;
        border-bottom-width: 2px;
        border-radius: 1px;
    }
}
@media screen and (max-width: 768px) {
    .prev-btns .ic-gt--l {
        height: 24px;
        width: 14px;
    }
    .prev-btns .ic-gt--l::after {
        width: 18px;
        height: 12px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-radius: 0;
    }
}

/* 우측 툴바 */
.item-detail__toolbar {
    display: flex;
    gap: var(--spc24);
}

.item-detail__toolbar .tool-btn {
    width: 40px;
    height: 40px;
    background: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
}

/* ===== 브레드크럼 ===== */
.item-detail__breadcrumb {
    background: #f8f9fa;
    border-top: 1px solid #000;
    border-bottom: 1px solid #dadbdc;
    padding: 40px 0;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spc8);
    font-size: 13px;
    color: #7a8197;
}

.breadcrumb li {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
}
.breadcrumb li:first-child {
    margin-right: 32px;
}
.breadcrumb li .tit {
    font-size: var(--font20);
    font-weight: 700;
    color: #9e9e9e;
}
.breadcrumb li .txt {
    font-size: var(--font20);
    font-weight: 500;
    color: #000;
}
.breadcrumb li + li:not(:last-child)::after {
    content: "";
    height: 16px;
    width: 10px;
    background: url("/images/icon/breadcrumb.png") no-repeat center center;
    color: #000;
}

.breadcrumb a {
    font-size: var(--font20);
    font-weight: 500;
    color: #000;
    text-decoration: underline;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

/* ===== 메타 + 뷰어 ===== */
.item-detail__meta {
    padding: 40px 0;
    margin-bottom: var(--spc80);
    border-bottom: 1px solid #000;
}
.item-detail__meta.no-detail {
    border-top: 1px solid #000;
}
.item-detail__meta.external {
    border-top: 1px solid #000;
}
.item-detail__meta .grid-2col {
    display: grid;
    grid-template-columns: 1fr 640px;
}
.item-detail__meta .grid-2col.no-swiper {
    grid-template-columns: 1fr 800px;
}

.meta__list {
    display: grid;
    gap: 40px;
}

.meta__list .row {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 40px;
}

.meta__list dt {
    color: #9e9e9e;
    font-size: var(--font20);
    font-weight: 700;
}

.meta__list dd {
    color: #000;
    font-size: var(--font20);
    font-weight: 500;
}
.meta__list dd .line:not(:last-child) {
    margin-bottom: var(--spc16);
}

.meta__list .link {
    color: #000;
    font-size: var(--font20);
    font-weight: 500;
}

/* ===== 이미지 뷰어 ===== */
.viewer {
    position: relative;
    min-width: 0; /* grid/flex 자식 overflow 방지 */
}
.viewer .swiper-display {
    width: 640px;
    max-width: 100%;
    min-width: 0; /* overflow로 폭 커지는 현상 방지 */
    overflow: hidden; /* 내부 확장 차단 */
    background: #f5f6fa;
    border-radius: 4px;
}
.viewer .swiper-display .swiper-wrapper {
    align-items: stretch; /* 슬라이드 높이 균등 */
}
.viewer .swiper-display .swiper-slide {
    /* Swiper가 inline width를 주지만, 컨테이너 폭 이상으로는 못 커지게 */
    width: 100%; /* slidesPerView: 1 기준 */
    max-width: 100%;
    min-width: 0;
    display: grid; /* 중앙정렬용 래퍼가 있을 때도 안정적 */
    place-items: center;
    box-sizing: border-box;
    overflow: hidden; /* 이미지가 바깥으로 밀지 못하게 */
}
.viewer .swiper-button-prev,
.viewer .swiper-button-next {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.6);
    color: currentColor;
}
.viewer .swiper-button-prev::after,
.viewer .swiper-button-next::after {
    font-size: var(--font16);
    font-weight: bold;
}
.viewer {
    /* fraction pagination 커스텀 */
}
.viewer .viewer__count {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 80px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 20px;
    padding: 0 var(--spc16);
    z-index: 10;
}
.viewer .viewer__count span {
    display: inline-block;
}
.viewer {
    /* 총 페이지 */
}
.viewer .swiper-pagination-total {
    opacity: 0.6;
}
.viewer .img-box {
    width: 800px;
    height: 576px;
    aspect-ratio: 4/3;
    background: #f7f7f7;
    overflow: hidden;
}
.viewer .img-box img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 1700px) {
    .viewer .img-box {
        width: auto;
        height: auto;
    }
}
.viewer img {
    display: block;
    margin: 0 auto;
}
.viewer img.closed {
    filter: blur(20px);
}
.viewer .external_box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 408px;
    height: 408px;
    background: #f1f1f1;
    margin-left: auto;
}
@media screen and (max-width: 1700px) {
    .viewer .external_box {
        margin-left: 0;
        width: 100%;
    }
}
.viewer .viewer__overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    font-size: var(--font32);
    font-weight: 700;
    color: #fff;
    text-align: center;
}

/* ===== 아코디언 ===== */
.item-detail__accordions {
    padding: var(--spc8) 0 40px;
}

.acc {
    border: 1px solid #000;
    background: #fff;
    margin: 40px 0;
    overflow: hidden;
}
.acc:first-child {
    margin-top: 0;
}

.acc[open] .acc__sum .chev {
    transform: rotate(180deg);
}

.acc__sum {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spc40);
    font-weight: 700;
    font-size: var(--font24);
}

.acc__sum .chev {
    width: 32px;
    height: 32px;
    transition: transform 0.2s ease;
    fill: currentColor;
}

.acc__panel {
    padding: 40px;
    border-top: 1px solid #000;
}

.acc__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spc8);
}

.acc__chips li {
    padding: var(--spc8) var(--spc16);
    font-size: var(--font16);
    background: #000;
    color: #fff;
    border-radius: 3px;
}

.acc__table {
    display: grid;
    gap: 40px;
}

.acc__table .r {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--spc16);
}

.acc__table .th {
    color: #9e9e9e;
    font-size: var(--font20);
    font-weight: 700;
}

.acc__table .td {
    font-size: var(--font20);
    font-weight: 500;
    line-height: 28px;
    color: #000;
}

.detail-notice {
    display: flex;
    align-items: center;
    width: 100%;
    height: 120px;
    gap: var(--spc24);
    background: #FFF3DB;
    border: 1px solid #FFE0A3;
    padding: 0 var(--spc40);
}
.detail-notice .ic-warning {
    width: 40px;
    height: 40px;
}
.detail-notice p {
    font-size: var(--font24);
}
@media screen and (max-width: 768px) {
    .detail-notice {
        height: auto;
        padding: var(--spc40);
        flex-direction: column;
        text-align: center;
    }
}

/* ============================
   반응형
============================ */
/* tablet ≤1700px */
@media screen and (max-width: 1700px) {
    .item-detail__head .title-areas {
        padding: 32px 0;
    }
    .item-detail__breadcrumb {
        padding: 32px 0;
    }
    .item-detail__meta .grid-2col {
        grid-template-columns: 1fr 560px; /* 우측 뷰어 살짝 축소 */
    }
    .meta__list .row {
        grid-template-columns: 140px 1fr;
        gap: 32px;
    }
    .item-detail__meta .grid-2col.no-swiper {
        grid-template-columns: 1fr 1fr;
    }
}
/* mobile-lg ≤1280px */
@media screen and (max-width: 1280px) {
    .item-detail__head .title-areas {
        padding: 24px 0;
    }
    .item-detail__title {
        font-size: 28px; /* 32 → 28 (디자인 여유) */
    }
    .item-detail__toolbar {
        gap: var(--spc16);
        justify-content: flex-end;
    }
    .item-detail__breadcrumb {
        padding: 24px 0;
    }
    .item-detail__breadcrumb .breadcrumb li:first-child {
        margin-right: 24px;
    }
    .item-detail__meta {
        padding: 24px 0;
        margin-bottom: 24px;
    }
    .item-detail__meta .grid-2col {
        grid-template-columns: 1fr; /* 단일열 스택 */
        row-gap: var(--spc24);
    }
    .item-detail__meta .grid-2col.no-swiper {
        grid-template-columns: 1fr;
        row-gap: var(--spc24);
    }
    .meta__list {
        gap: 32px;
    }
    .meta__list .row {
        grid-template-columns: 130px 1fr;
        gap: 24px;
    }
    .viewer .swiper-button-prev,
    .viewer .swiper-button-next {
        width: 36px;
        height: 36px;
    }
    .viewer .viewer__count {
        height: 36px;
        border-radius: 18px;
        padding: 0 var(--spc16);
    }
}
/* mobile ≤768px */
@media screen and (max-width: 768px) {
    .item-detail__head .title-areas {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spc16);
        padding: 20px 0;
    }
    .item-detail__kind,
    .item-detail__title,
    .item-detail__year {
        text-align: left; /* 모바일에서 좌정렬 */
    }
    .item-detail__title {
        font-size: var(--font24);
        margin: var(--spc8) 0;
    }
    .item-detail__breadcrumb {
        padding: 20px 0;
    }
    .item-detail__breadcrumb .breadcrumb {
        gap: var(--spc8);
    }
    .item-detail__breadcrumb .breadcrumb li:first-child {
        margin-right: var(--spc16);
    }
    .meta__list {
        gap: var(--spc24);
    }
    .meta__list .row {
        grid-template-columns: 1fr; /* dt/dd 1열 */
        gap: var(--spc16);
    }
    .viewer .swiper-button-prev,
    .viewer .swiper-button-next {
        width: 32px;
        height: 32px;
    }
    .viewer .swiper-button-prev::after,
    .viewer .swiper-button-next::after {
        font-size: var(--font16);
    }
    .viewer .viewer__count {
        width: 72px;
        height: 32px;
        border-radius: 16px;
        font-size: 13px;
        padding: 0 var(--spc16);
    }
    .item-detail__accordions {
        padding: var(--spc8) 0 24px;
    }
    .acc {
        margin: 24px 0;
    }
    .acc__sum {
        font-size: var(--font20);
    }
    .acc__table {
        gap: var(--spc24);
    }
    .acc__table .r {
        grid-template-columns: 1fr;
        gap: var(--spc8);
    }
}
/* desktop ≥1701px */
@media screen and (min-width: 1701px) {
    .item-detail__toolbar {
        gap: var(--spc24);
    }
}
/* =====================
   상세 - 관련자료 그리드(전투정보 상세)
   ===================== */
.item-detail__related {
    padding: 40px 0 120px;
    background: #fff;
}
.item-detail .related__title {
    margin-bottom: var(--spc40);
    font-size: var(--font24);
    font-weight: 700;
}
.item-detail .related__list {
    list-style: none;
    margin: 0;
    padding: 0;
    margin-bottom: var(--spc80);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spc40) var(--spc24);
}
.item-detail .related-card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.item-detail .related-card__thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    background: #f7f7f7;
    overflow: hidden;
}
.item-detail .related-card__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
.item-detail {
    /* 반응형 */
}
@media screen and (max-width: 1700px) {
    .item-detail .related__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media screen and (max-width: 768px) {
    .item-detail__related {
        padding: 32px 0 40px;
    }
}

/* =========================
   Battle Search (전투정보 검색)
   ========================= */
.battle-search .battle-main-title {
    padding: 200px 0 120px 0;
    background: url(/images/content/battle-bg.png?v1) no-repeat center center/cover;
}
.battle-search .battle-main-title .battle-title {
    font-size: var(--font48);
    color: #fff;
    font-weight: 700;
}
.battle-search {
    /* 히어로 */
}
.battle-search__hero {
    padding: var(--spc80) 0;
    border-bottom: 1px solid #dadbdc;
    background: #fff;
}
.battle-search__title {
    font-size: var(--font48);
    font-weight: 200;
    text-align: center;
}
.battle-search__title .num {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.battle-search__title strong {
    font-weight: 700;
}
.battle-search__desc {
    margin-top: var(--spc16);
    color: #666;
    font-size: var(--font24);
    text-align: center;
}
.battle-search {
    /* 필터 */
}
.battle-search__filters {
    display: grid;
    grid-template-columns: 1fr 516px;
    margin-top: var(--spc40);
    align-items: end;
}
@media screen and (max-width: 1700px) {
    .battle-search__filters {
        display: block;
    }
}
.battle-search .filters-grid {
    display: flex;
    gap: var(--spc24);
}
@media screen and (max-width: 768px) {
    .battle-search .filters-grid {
        flex-wrap: wrap;
    }
}
.battle-search .select {
    display: block;
    width: 247px;
}
@media screen and (max-width: 1700px) {
    .battle-search .select {
        width: calc(25% - var(--spc24));
    }
}
@media screen and (max-width: 768px) {
    .battle-search .select {
        width: calc(50% - 6px);
    }
}
.battle-search .select .tit {
    display: inline-block;
    font-size: var(--font14);
    font-weight: 400;
    margin-bottom: 8px;
}
.battle-search .select select {
    width: 100%;
    height: 48px;
    padding: 0 var(--spc16);
    border: 1px solid #000;
    background: #fff;
    color: var();
    font-size: var(--font16);
}
.battle-search {
    /* 검색바 */
}
.battle-search .searchbar {
    display: flex;
    align-items: center;
    border-bottom: 4px solid #000;
    padding-right: var(--spc24);
}
@media screen and (max-width: 1700px) {
    .battle-search .searchbar {
        margin-top: var(--spc24);
    }
}
.battle-search .searchbar__input {
    width: calc(100% - 40px);
    height: 48px;
    padding: 0 var(--spc16);
    font-size: var(--font24);
    font-weight: 700;
    border: none;
}
.battle-search {
    /* 결과 상단 탭 */
}
.battle-search__results {
    padding: var(--spc80) 0;
}
.battle-search .results-head {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--spc40);
    padding: 0;
    background: none;
    border: none;
}
.battle-search .sort-tabs {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
}
.battle-search .sort-tabs li + li {
    border-left: 1px solid #e0e0e0;
}
.battle-search .sort-tabs a {
    display: inline-flex;
    align-items: center;
    height: 21px;
    padding: 0 var(--spc16);
    color: #4b5563;
    text-decoration: none;
    font-size: var(--font20);
}
.battle-search .sort-tabs a[aria-selected=true] {
    font-weight: 700;
    color: #000;
}
.battle-search {
    /* 결과 리스트 */
}
.battle-search .result-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spc80) var(--spc24);
    list-style: none;
    padding: 0;
    margin: 0;
    padding-bottom: var(--spc80);
}
.battle-search .result-card {
    display: initial;
}
.battle-search .card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.battle-search .card__thumb {
    width: 517px;
    height: 345px;
    aspect-ratio: 4/3;
    background: #f7f7f7;
    overflow: hidden;
}
.battle-search .card__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 1700px) {
    .battle-search .card__thumb {
        width: auto;
        height: auto;
    }
}
.battle-search .card__meta {
    margin-top: var(--spc40);
}
.battle-search .meta {
    display: grid;
    gap: var(--spc16);
    font-size: var(--font20);
    color: #4b5563;
}
.battle-search .meta .r {
    display: grid;
    grid-template-columns: 102px 1fr;
    gap: 8px;
}
.battle-search .meta dt {
    color: #9e9e9e;
    font-weight: 700;
}
.battle-search .meta dd {
    margin: 0;
    color: #000;
    font-weight: 400;
}
.battle-search {
    /* 더보기 */
}
.battle-search .results-more {
    margin-top: clamp(20px, 2.5vw, 28px);
    border-top: 1px solid var();
    padding-top: 16px;
    text-align: center;
}
.battle-search .btn-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 14px;
    border: 1px solid var();
    border-radius: 999px;
    background: #fff;
    cursor: pointer;
    font-weight: 600;
}
.battle-search .btn-more:focus-visible {
    outline: 2px solid #2f5d94;
    outline-offset: 2px;
}
.battle-search {
    /* 반응형 */
}
@media screen and (max-width: 1700px) {
    .battle-search .result-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media screen and (max-width: 768px) {
    .battle-search .searchbar {
        grid-template-columns: 1fr 44px;
    }
    .battle-search .searchbar__category {
        grid-column: 1/-1;
    }
    .battle-search .result-list {
        grid-template-columns: 1fr;
    }
}

/* =========================
   마이페이지
   ========================= */
.mypage {
    margin-top: 120px;
    /* 공통 상단 타이틀 */
}
.mypage .page-head {
    padding: var(--spc40) 0 var(--spc80);
    margin-top: 0 !important;
}
.mypage .page-head__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.mypage .page-head__title {
    font-size: var(--font48);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-top: 0 !important;
}
.mypage .page-head__btn {
    min-width: 200px;
    height: 48px;
    padding: 0 16px;
    background: #000;
    color: #fff;
    font-weight: 600;
    font-size: var(--font14);
    cursor: pointer;
}
.mypage {
    /* 레이아웃 */
}
.mypage__body {
    padding: 0 0 120px;
}
.mypage .mypage-layout {
    display: flex;
    flex-direction: column;
    gap: var(--spc80);
    border-top: 2px solid #222;
    border-bottom: 2px solid #222;
    padding-top: var(--spc40);
    padding-bottom: var(--spc80);
}
.mypage .mypage-block {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    -moz-column-gap: var(--spc80);
    column-gap: var(--spc80);
    align-items: flex-start;
}
.mypage .mypage-block__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc16);
}
.mypage .mypage-sidebar__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    height: 48px;
    padding: 0 16px;
    background: #E35A10;
    color: #fff;
    border: none;
    font-size: var(--font14);
    font-weight: 700;
    cursor: pointer;
}
.mypage .mypage-block__content {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.mypage .mypage-section__head {
    display: none;
}
.mypage {
    /* 리스트 1줄 */
}
.mypage .mypage-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    -moz-column-gap: 16px;
    column-gap: 16px;
    align-items: center;
    font-size: var(--font20);
    padding-bottom: var(--spc40);
    font-weight: 500;
}
.mypage .mypage-row__title a {
    display: inline-block;
    text-decoration: none;
    color: #222;
}
.mypage .mypage-row__title a:hover,
.mypage .mypage-row__title a:focus-visible {
    text-decoration: underline;
}
.mypage .mypage-row__meta {
    display: flex;
}
.mypage .mypage-row__meta .mypage-row__tit {
    font-size: var(--font20);
    color: #666;
    font-weight: 700;
    margin-right: var(--spc40);
}
.mypage .mypage-row__meta .mypage-row__date {
    white-space: nowrap;
    font-size: var(--font20);
    font-weight: 400;
}
.mypage .mypage-row__state {
    min-width: 52px;
    text-align: center;
}
.mypage .mypage-row__action {
    min-width: 96px;
    text-align: right;
}
.mypage .mypage-row__icon {
    min-width: 40px;
    text-align: right;
}
.mypage {
    /* 상태 텍스트 */
}
.mypage .status {
    font-size: var(--font20);
    font-weight: 700;
    color: #000;
}
.mypage .status--reject {
    color: #9b9b9b;
}
.mypage {
    /* 칩 버튼 */
}
.mypage .chip-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 88px;
    height: 35px;
    padding: 0 12px;
    border-radius: 17px;
    border: none;
    font-size: var(--font16);
    cursor: pointer;
    text-decoration: none;
}
.mypage .chip-btn--primary {
    background: #e25a1c;
    color: #fff;
}
.mypage .chip-btn--ghost {
    background: #fff;
    color: #000;
    border: 1px solid #999;
}
.mypage .chip-btn--ghost:disabled {
    cursor: default;
    opacity: 0.7;
}
.mypage .icon-bookmark {
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
}
.mypage .mypage-empty {
    font-size: var(--font20);
    font-weight: 500;
    color: #666;
}
@media (max-width: 1024px) {
    .mypage .mypage-block {
        grid-template-columns: 1fr;
        row-gap: 12px;
    }
    .mypage .mypage-block__label {
        padding-top: 0;
    }
}
@media (max-width: 768px) {
    .mypage .mypage-layout {
        gap: 32px;
    }
    .mypage .mypage-block__title {
        font-size: 15px;
    }
}

/* ===========================
  사용자 아카이브 작성 (user-archive-write)
=========================== */
.user-archive-write__body {
    padding: 0 0 120px;
}

/* 폼 테이블 */
.ua-form {
    border-top: 2px solid #111;
}
.ua-form__table {
    border-bottom: 1px solid #e6e6e6;
}

.ua-row {
    display: grid;
    grid-template-columns: 287px 1fr;
    align-items: center;
    gap: 0;
    padding: var(--spc16) 0;
    border-bottom: 1px solid #f0f0f0;
}
.ua-row--half {
    grid-template-columns: 287px 1fr 287px 1fr;
}

.ua-th {
    font-size: var(--font24);
    font-weight: 700;
    color: #111;
}

.ua-input {
    width: 100%;
    height: 48px;
    border: 1px solid #777;
    padding: 0 14px;
    font-size: var(--font16);
}

.ua-text {
    font-size: var(--font24);
    color: #111;
}

.ua-textarea {
    width: 100%;
    min-height: 220px;
    border: 1px solid #777;
    padding: 16px;
    font-size: var(--font16);
    resize: vertical;
}

/* 아카이브 선택 */
.ua-picker {
    display: grid;
    grid-template-columns: 287px 1fr;
    align-items: center;
    gap: 0;
    padding: 16px 0;
    border-bottom: 2px solid #111;
}
.ua-picker__label {
    font-size: var(--font24);
    font-weight: 700;
}
.ua-picker__panel {
    display: grid;
    grid-template-columns: 1fr 40px 1fr;
    gap: 40px;
}

.ua-box {
    border: 1px solid #111;
    background: #fff;
}
.ua-box__head {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111;
    color: #fff;
    font-weight: 400;
    font-size: var(--font16);
}
.ua-box__body {
    height: 544px;
    overflow-y: scroll;
    padding: 14px;
}

.ua-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ua-item {
    position: relative;
    /* label이 전체 클릭 영역 */
}
.ua-item__label {
    display: block;
    cursor: pointer;
}
.ua-item__link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.ua-item__thumb {
    display: block;
    background: #f3f3f3;
    aspect-ratio: 4/3;
    overflow: hidden;
}
.ua-item__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
.ua-item__title {
    display: block;
    margin-top: 10px;
    font-size: var(--font16);
    font-weight: 700;
    color: #111;
}
.ua-item {
    /* JS 없이 체크 상태 표현하고 싶을 때도 대응 */
}
.ua-item--selected .ua-check__ui {
    background: #111;
    border-color: #111;
}
.ua-item--selected .ua-check__ui:after {
    opacity: 1;
}

.ua-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* 썸네일 좌상단 체크 UI */
.ua-check__ui {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    width: 18px;
    height: 18px;
    border: 1px solid #111;
    background: #fff;
    display: inline-block;
}
.ua-check__ui:after {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(40deg);
    opacity: 0;
}

/* 체크 상태 */
.ua-check-input:checked + .ua-check__ui {
    background: #111;
    border-color: #111;
}
.ua-check-input:checked + .ua-check__ui:after {
    opacity: 1;
}

/* 가운데 이동 버튼 */
.ua-move {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
}
.ua-move__btn {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* 하단 등록 버튼 */
.pagination-group {
    margin-top: var(--spc80);
}
.pagination-group .page-btn--reg {
    width: 200px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e25a1c;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

/* ===========================
  Responsive
=========================== */
@media (max-width: 1024px) {
    .ua-row {
        grid-template-columns: 140px 1fr;
    }
    .ua-row--half {
        grid-template-columns: 140px 1fr;
        grid-auto-rows: auto;
    }
    .ua-row--half .ua-th:nth-of-type(3),
    .ua-row--half .ua-td:nth-of-type(4) {
        margin-top: 8px;
    }
    .ua-picker {
        grid-template-columns: 140px 1fr;
    }
    .ua-picker__panel {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .ua-move {
        flex-direction: row;
        justify-content: center;
    }
    .ua-move .ua-move__btn {
        transform: rotate(90deg);
    }
}
@media (max-width: 640px) {
    .mypage .page-head__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .mypage .page-head__btn {
        width: 100%;
    }
    .user-archive-write__body {
        padding-bottom: 80px;
    }
    .ua-row {
        grid-template-columns: 1fr;
        padding: 12px 0;
    }
    .ua-row .ua-td {
        padding-left: 0;
        margin-top: 8px;
    }
    .ua-picker {
        grid-template-columns: 1fr;
    }
    .ua-picker__label {
        padding-top: 0;
        margin-bottom: 10px;
    }
    .ua-picker__panel {
        padding-left: 0;
    }
    .ua-box__body {
        height: 280px;
    }
    .ua-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ua-actions__submit {
        min-width: 160px;
    }
}
/*===== 기증신청 현황 내용 추가 ======= */
.mypage-endowment .mypage-row.tit {
    padding-bottom: var(--spc24);
    font-size: var(--font14);
    font-weight: 400;
    color: rgba(0, 0, 0, 0.38);
}
.mypage-endowment .mypage-row.tit .mypage-row__state span {
    display: inline-block;
    width: 69px;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .mypage-endowment .mypage-row.tit .mypage-row__state span {
        display: initial;
    }
}
.mypage-endowment .mypage-row__title span {
    cursor: pointer;
}
.mypage-endowment .mypage-row__title span:hover {
    text-decoration: underline;
}

/* =========================
   로그인
   ========================= */
.login {
    margin-top: 120px;
    /* 상단 타이틀 */
}
.login .page-head {
    padding: var(--spc40) 0 var(--spc80);
    border-bottom: 0;
}
.login .page-head__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.login .page-head__title {
    font-size: var(--font48);
    font-weight: 800;
    margin-bottom: var(--spc16);
}
.login .page-head__desc {
    font-size: var(--font24);
    font-weight: 400;
    color: #666;
    line-height: 32px;
}
.login {
    /* 폼 영역 */
}
.login__body {
    padding: 0 0 120px;
}
@media screen and (max-width: 1700px) {
    .login__body {
        padding: 0 0 var(--spc80);
    }
}
.login .login__inner {
    max-width: 640px;
    margin: 0 auto;
}
.login .login-form {
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
}
.login .form-row {
    display: flex;
    flex-direction: column;
}
.login .form-row--options {
    flex-direction: row;
    justify-content: flex-start;
    gap: var(--spc40);
    font-size: var(--font16);
    margin-bottom: var(--spc24);
}
.login .form-input {
    height: var(--spc80);
    padding: 0 var(--spc16);
    border: 1px solid #000;
    background: #fff;
    font-size: var(--font16);
}
.login .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.login .form-check input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: var(--spc24);
    height: var(--spc24);
    margin: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.login .form-check input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    /* 체크 이미지 경로만 너 프로젝트 경로에 맞게 바꿔주면 됨 */
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: var(--spc16) var(--spc16);
}
.login .form-check span {
    font-size: var(--font16);
    color: #000;
}
.login .login-btn {
    width: 100%;
    height: var(--spc80);
    border: none;
    background: #000;
    color: #fff;
    font-size: var(--font20);
    font-weight: 700;
    cursor: pointer;
}
.login {
    /* 하단 링크 */
}
.login .login-links {
    margin-top: var(--spc24);
    display: flex;
    justify-content: flex-start;
    gap: var(--spc40);
    font-size: var(--font20);
}
.login .login-links__item {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    text-decoration: none;
    color: #000;
    white-space: nowrap;
}
.login {
    /* SNS 로그인 */
}
.login .login-sns {
    margin-top: var(--spc80);
}
.login .login-sns__label {
    display: flex;
    align-items: center;
    gap: var(--spc24);
    margin-bottom: var(--spc40);
    margin-top: 3px;
    font-size: var(--font20);
    font-weight: 700;
    color: #000;
}
.login .login-sns__label::before, .login .login-sns__label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #000;
}
.login .login-sns__text {
    white-space: nowrap;
}
.login .login-sns__buttons {
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
}
.login .btn-sns {
    width: 100%;
    height: var(--spc80);
    border-radius: 0;
    border: 1px solid #d4d4d4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spc8);
    font-size: var(--font20);
    font-weight: 700;
    cursor: pointer;
    background: #fff;
}
.login .btn-sns span {
    display: inline-block;
}
.login .btn-sns--kakao {
    background: #FEE500;
    border-color: #FEE500;
}
.login .btn-sns--naver {
    background: #03A95A;
    border-color: #03A95A;
    color: #fff;
}
.login .btn-sns--google {
    background: #fff;
    border-color: #000;
}
.login {
    /* 반응형 */
}
@media screen and (max-width: 768px) {
    .login .page-head {
        padding: 40px 0 24px;
    }
    .login .page-head__title {
        font-size: 24px;
    }
    .login .login__inner {
        max-width: 100%;
    }
    .login .form-row--options {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .login .login-links {
        gap: 16px;
        font-size: 12px;
    }
}

/* =========================
 회원가입
 ========================= */
.signup {
    margin-top: 120px;
}
.signup.edit {
    margin-top: var(--spc80);
}
.signup {
    /* 공통 레이아웃 */
}
.signup__body {
    padding: 0 0 120px;
}
.signup .signup__inner {
    max-width: 1600px;
    margin: 0 auto;
}
.signup .signup__inner .signup-step {
    margin: 0 auto;
}
.signup .signup__inner .signup-step:nth-child(1) {
    max-width: 640px;
}
.signup .signup__inner .signup-step:nth-child(2) {
    max-width: 640px;
}
.signup .signup__inner .signup-step:nth-child(3) {
    max-width: 100%;
}
.signup .signup__inner .signup-step:nth-child(4) {
    max-width: 640px;
}
.signup {
    /* 상단 타이틀 + 단계 표시 */
}
.signup .page-head {
    padding: var(--spc40) 0 var(--spc80);
    border-bottom: 0;
}
.signup .page-head__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.signup .page-head__title {
    font-size: var(--font48);
    font-weight: 800;
    margin-bottom: var(--spc16);
}
.signup .page-head__desc {
    font-size: var(--font24);
    font-weight: 400;
    color: #666;
    line-height: 32px;
}
.signup {
    /* 단계 진행바 */
}
.signup .signup-steps {
    margin-top: var(--spc80);
}
.signup .signup-steps__list {
    display: flex;
    justify-content: center;
    gap: var(--spc40);
}
.signup .signup-steps__item {
    width: 120px;
    position: relative;
    text-align: center;
    font-size: var(--font16);
    font-weight: 500;
    color: #000;
}
.signup .signup-steps__item + .signup-steps__item::before {
    content: "";
    position: absolute;
    display: inline-block;
    width: 32px;
    height: 40px;
    background: url(/images/icon/ic_signuparrow.svg) no-repeat center center;
    left: -38px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    color: #999;
}
.signup .signup-steps__circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #000;
    margin: 0 auto var(--spc16);
    display: flex;
    align-items: center;
    justify-content: center;
}
.signup .signup-steps__num {
    font-size: var(--font20);
    font-weight: 400;
}
.signup .signup-steps__label {
    white-space: nowrap;
}
.signup .signup-steps__item--current {
    color: #000;
    font-weight: 700;
}
.signup .signup-steps__item--current .signup-steps__circle {
    background: #000;
    border-color: #000;
    color: #fff;
}
.signup .signup-steps__item--complete {
    color: rgba(0, 0, 0, 0.38);
}
.signup .signup-steps__item--complete .signup-steps__circle {
    background: #000;
    border-color: #000;
    color: #fff;
}
.signup .signup-steps__item--complete .signup-steps__num {
    display: none;
}
.signup .signup-steps__item--complete .signup-steps__circle::before {
    content: "✓";
    font-size: var(--font20);
    line-height: 1;
}
.signup {
    /* 단계 공통 섹션 */
}
.signup .signup-step {
    margin-top: 40px;
}
.signup {
    /* 구분 라인 타이틀 (일반 회원가입 / SNS 간편 회원가입 등) */
}
.signup .line-group--section {
    display: flex;
    align-items: center;
    gap: var(--spc24);
    margin-bottom: var(--spc16);
    margin-top: 3px;
    font-size: var(--font20);
    font-weight: 700;
    color: #000;
}
.signup .line-group--section .line {
    flex: 1;
    height: 1px;
    background: #000;
}
.signup .line-group--section .section-title {
    font-size: var(--font20);
    font-weight: 700;
    white-space: nowrap;
}
.signup {
    /* 공통 패널 */
}
.signup .signup-panel + .signup-panel {
    margin-top: var(--spc80);
}
.signup .signup-panel__head {
    text-align: center;
    margin-bottom: var(--spc40);
}
.signup .signup-panel__desc {
    font-size: var(--font16);
    color: #000;
}
.signup .login-sns {
    margin-top: 40px;
}
.signup .login-sns__label {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #666;
}
.signup .login-sns__label::before, .signup .login-sns__label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #d4d4d4;
}
.signup .login-sns__buttons {
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
}
.signup .btn-sns {
    width: 100%;
    height: var(--spc80);
    border-radius: 0;
    border: 1px solid #d4d4d4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spc8);
    font-size: var(--font20);
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    text-decoration: none;
}
.signup .btn-sns span {
    display: inline-block;
}
.signup .btn-sns--kakao {
    background: #ffe812;
    border-color: #ffe812;
}
.signup .btn-sns--naver {
    background: #00c73c;
    border-color: #00c73c;
    color: #fff;
}
.signup .btn-sns--google {
    background: #fff;
    border-color: #d4d4d4;
}
.signup {
    /* 1단계: 유형 선택 */
}
.signup .signup-type__buttons {
    display: flex;
    justify-content: center;
    gap: var(--spc16);
}
.signup .signup-type__btn {
    flex: 1;
    max-width: 312px;
    height: var(--spc80);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font20);
    font-weight: 700;
    border: none;
    cursor: pointer;
    text-decoration: none;
}
.signup .signup-type__btn--black {
    background: #000;
    color: #fff;
}
.signup {
    /* 2단계: 약관 동의 */
}
.signup .signup-terms__form {
    display: flex;
    flex-direction: column;
    gap: var(--spc40);
}
.signup .signup-terms__form .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.signup .signup-terms__form .form-check input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: var(--spc16);
    height: var(--spc16);
    margin: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.signup .signup-terms__form .form-check input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
}
.signup .signup-terms__form .form-check span {
    font-size: 12px;
    font-weight: 400;
}
.signup .signup-terms__all {
    padding-bottom: var(--spc40);
    border-bottom: 1px solid #000;
    font-weight: 400;
}
.signup .signup-terms__all .form-check input[type=checkbox] {
    width: var(--spc24);
    height: var(--spc24);
}
.signup .signup-terms__all .form-check input[type=checkbox]:checked {
    background-size: var(--spc16) var(--spc16);
}
.signup .signup-terms__all .form-check span {
    font-size: var(--font20);
}
.signup .terms-box {
    height: 195px;
}
.signup .terms-box--required .terms-required {
    color: #E35A10;
}
.signup .terms-optional {
    color: rgba(0, 0, 0, 0.6);
}
.signup .terms-box__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spc16);
    font-size: var(--font16);
    font-weight: 700;
}
.signup .terms-box__label {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
}
.signup .terms-box__body {
    height: 160px;
    border: 1px solid #e0e0e0;
    padding: var(--spc24) var(--spc24) 0;
    font-size: 12px;
    color: #666;
}
.signup .terms-box__scroll {
    height: 100%;
    line-height: 1.6;
    overflow-y: scroll;
}
.signup .terms-box__scroll::-webkit-scrollbar {
    width: 8px;
}
.signup .terms-box__scroll::-webkit-scrollbar-thumb {
    background: #e5e5e5;
    border-radius: 4px;
}
.signup .signup-terms__actions {
    margin-top: var(--spc40);
    display: flex;
    justify-content: center;
    gap: 8px;
}
.signup {
    /* 3단계: 회원정보 등록 */
}
.signup .signup-form__form {
    display: flex;
    flex-direction: column;
    gap: var(--spc80);
}
.signup .signup-form__form .form-row-group {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}
.signup .signup-form__row {
    display: grid;
    grid-template-columns: 287px minmax(0, 1fr);
    align-items: center;
    padding: var(--spc16) 0;
    border-bottom: 1px solid #eee;
    align-items: center;
}
.signup .signup-form__row > .form-label,
.signup .signup-form__row > span.form-label {
    grid-column: 1;
    font-size: var(--font24);
    font-weight: 700;
    text-align: left !important;
}
.signup .signup-form__row > .form-label .req,
.signup .signup-form__row > span.form-label .req {
    color: #E35A10;
}
.signup .signup-form__field {
    grid-column: 2;
    display: flex;
    gap: var(--spc16);
    align-items: center;
}
.signup .signup-form__field input, .signup .signup-form__field select {
    height: 48px;
    border: 1px solid #000;
    border-radius: 0;
    padding: 0 var(--spc16);
    font-size: var(--font16);
}
.signup .signup-form__field input:-moz-read-only {
    background-color: #f2f2f2;
    border-color: #d5d5d5;
}
.signup .signup-form__field input:read-only {
    background-color: #f2f2f2;
    border-color: #d5d5d5;
}
.signup .signup-form__field select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: right var(--spc16) center;
}
.signup .signup-form__field--inline {
    align-items: stretch;
}
.signup .signup-form__field--inline input {
    width: 356px;
}
.signup .signup-form__field--password input {
    width: 356px;
}
.signup .signup-form__field--name input {
    width: 356px;
}
.signup .signup-form__field--tel {
    align-items: center;
}
.signup .signup-form__field--tel select {
    width: 111px;
}
.signup .signup-form__field--tel input {
    width: 192px;
}
.signup .signup-form__field--address {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spc16);
}
.signup .signup-form__field--email {
    align-items: center;
}
.signup .signup-form__field--email input, .signup .signup-form__field--email select {
    width: 356px;
}
.signup .signup-form__field--checks {
    gap: 16px;
}
.signup .signup-form__field--checks .form-check {
    display: inline-flex;
    align-items: center;
    gap: var(--spc8);
    cursor: pointer;
}
.signup .signup-form__field--checks .form-check input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: var(--spc24);
    height: var(--spc24);
    margin: 0;
    padding: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.signup .signup-form__field--checks .form-check input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: var(--spc16) var(--spc16);
}
.signup .signup-form__field--checks .form-check span {
    font-size: var(--font16);
    font-weight: 400;
}
.signup .signup-form__address-top {
    display: flex;
    gap: var(--spc16);
    flex-wrap: wrap;
}
.signup .signup-form__address-top input {
    width: 365px;
}
.signup .signup-form__address-top input:-moz-read-only {
    border: 1px solid #d9d9d9;
    background: #f7f7f7;
}
.signup .signup-form__address-top input:read-only {
    border: 1px solid #d9d9d9;
    background: #f7f7f7;
}
.signup .signup-form__address-bottom {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.signup .signup-form__dash,
.signup .signup-form__at {
    font-size: var(--font16);
}
.signup .form-help {
    grid-column: 2;
    margin-top: var(--spc16);
    font-size: var(--font14);
    color: #777;
    text-align: left !important;
}
.signup .form-error {
    grid-column: 2;
    margin-top: var(--spc16);
    font-size: var(--font14);
    color: #E35A10;
    display: none;
}
.signup .signup-form__actions {
    display: flex;
    justify-content: center;
    gap: 8px;
}
.signup {
    /* 4단계: 완료 */
}
.signup .signup-complete {
    text-align: center;
}
.signup .signup-complete__message {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 200px 0 240px;
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc80);
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}
.signup .signup-complete__actions {
    display: flex;
    justify-content: center;
    gap: 8px;
}
.signup {
    /* 버튼 공통 (회원가입 전용) */
}
.signup .btn-primary,
.signup .btn-outline,
.signup .btn-formbk,
.signup .btn-bk {
    min-width: 200px;
    height: 48px;
    padding: 0 16px;
    font-size: var(--font14);
    font-weight: 700;
    border-radius: 0;
    cursor: pointer;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
.signup .btn-primary {
    border: none;
    background: #E35A10;
    color: #fff;
}
.signup .btn-outline {
    border: 1px solid #e0e1e0;
    background: #fff;
    color: #666666;
}
.signup .btn-formbk {
    min-width: 136px;
    border: none;
    background: #000;
    color: #fff;
    font-size: var(--font16);
    font-weight: 400;
}
.signup .btn-bk {
    border: none;
    background: #000;
    color: #fff;
}
.signup {
    /* 반응형 */
}
@media (max-width: 1024px) {
    .signup .signup__inner {
        max-width: 100%;
    }
    .signup .signup-form__row {
        grid-template-columns: 1fr;
        row-gap: 8px;
    }
    .signup .signup-form__field--inline input {
        flex: 1;
    }
    .signup .signup-form__field--password input {
        flex: 1;
    }
    .signup .signup-form__field--name input {
        flex: 1;
    }
    .signup .signup-form__field--tel {
        align-items: center;
    }
    .signup .signup-form__field--tel select {
        width: 30%;
    }
    .signup .signup-form__field--tel input {
        width: 30%;
    }
    .signup .signup-form__field--email input {
        width: 45%;
        flex: 1;
    }
    .signup .signup-form__field--email select {
        width: 100%;
        flex: 1;
    }
    .signup .signup-form__address-top input {
        flex: 1;
    }
}
@media (max-width: 768px) {
    .signup .page-head {
        padding: 40px 0 24px;
    }
    .signup .page-head__title {
        font-size: 24px;
    }
    .signup .signup-steps {
        width: 100%;
    }
    .signup .signup-steps__list {
        gap: 12px;
    }
    .signup .terms-box__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .signup .signup-steps__item {
        font-size: 12px;
        width: 25%;
    }
    .signup .signup-steps__item + .signup-steps__item::before {
        left: -30px;
        background-size: 20px;
    }
    .signup .signup-form__row > .form-label,
    .signup .signup-form__row > span.form-label,
    .signup .form-help,
    .signup .form-error {
        grid-column: 1;
    }
    .signup .signup-form__field--inline input {
        width: 100%;
    }
    .signup .signup-form__field--password input {
        width: 100%;
    }
    .signup .signup-form__field--name input {
        width: 100%;
    }
    .signup .signup-form__field--tel {
        align-items: center;
    }
    .signup .signup-form__field--tel select {
        flex: 1;
        width: 25%;
    }
    .signup .signup-form__field--tel input {
        flex: 1;
        width: 25%;
    }
    .signup .signup-form__address-top input {
        width: 100%;
    }
    .signup .signup-form__field {
        grid-column: 1;
        flex-wrap: wrap;
    }
    .signup .signup-terms__actions,
    .signup .signup-form__actions,
    .signup .signup-complete__actions {
        flex-direction: row;
        justify-content: center;
    }
    .signup .btn-primary,
    .signup .btn-outline,
    .signup .btn-formbk,
    .signup .btn-bk {
        min-width: calc(50% - 4px);
    }
    .signup .btn-formbk {
        min-width: 100%;
    }
}

/* ============================
   아이디 / 비밀번호 찾기
   ============================ */
.find-page {
    margin-top: var(--spc120);
    margin-bottom: var(--spc120);
    text-align: center;
}
.find-page__desc {
    margin-top: var(--spc16);
    font-size: var(--font24);
    color: #666;
}

/* 입력 폼 영역 */
.find-form {
    max-width: 640px;
    margin: var(--spc80) auto 0;
}
.find-form__row {
    margin-bottom: var(--spc24);
}
.find-form__row input,
.find-form__row select {
    width: 100%;
    height: var(--spc80);
    padding: 0 var(--spc16);
    font-size: var(--font16);
    border: 1px solid #000;
}
.find-form__row select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: right var(--spc16) center;
}
.find-form {
    /* 휴대폰, 이메일 같이 묶이는 구조 */
}
.find-form__group {
    display: flex;
    align-items: center;
    gap: var(--spc16);
}
.find-form__group select,
.find-form__group input {
    flex: 1;
}
.find-form__group .find-form__dash {
    flex: 0 0 auto;
    font-size: var(--font16);
}
.find-form__group .find-form__at {
    flex: 0 0 auto;
    font-size: var(--font16);
}

/* 결과 정보 영역 */
.find-result {
    max-width: 640px;
    margin: var(--spc80) auto 0;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}
.find-result__row {
    display: flex;
    align-items: center;
    padding: var(--spc20) 0;
    border-bottom: 1px solid #e5e5e5;
    font-size: var(--font24);
    height: 80px;
}
.find-result__row .find-result__th {
    flex: 0 0 136px;
    font-weight: 700;
    text-align: left;
}
.find-result__row .find-result__td {
    flex: 1;
    text-align: left;
}
.find-result__pw {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 469px;
    margin-bottom: var(--spc80);
    font-size: var(--font24);
    font-weight: 800;
}

/* 하단 버튼 영역 */
.find-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: var(--spc40);
}
.find-actions .btn-primary {
    width: 200px;
    height: 48px;
    font-size: var(--font14);
}
.find-actions .btn-black {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-shrink: 0;
    width: 200px;
    height: 48px;
    padding: 0 14px;
    background-color: #000;
    color: #fff;
    font-weight: 500;
    font-size: var(--font14);
}
.find-actions .btn-outline {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #000;
}

/* ============================
   Tablet
   ============================ */
@media screen and (max-width: 1700px) {
    .find-form {
        max-width: 100%;
        padding: 0 var(--spc24);
    }
    .find-result {
        padding: 0 var(--spc24);
    }
}
/* ============================
   Mobile
   ============================ */
@media screen and (max-width: 768px) {
    .find-form {
        padding: 0 var(--spc16);
    }
    .find-form__group .find-form__dash,
    .find-form__group .find-form__at {
        display: none;
    }
    .find-result {
        padding: 0 var(--spc16);
    }
    .find-result__row {
        flex-direction: column;
        justify-content: center;
    }
    .find-result__row .find-result__th {
        flex: none;
        margin-bottom: var(--spc8);
    }
    .find-result__row .find-result__td {
        flex: 0;
    }
    .find-result__pw {
        height: auto;
        padding: 80px 0;
    }
    .find-actions {
        flex-direction: column;
    }
    .find-actions .btn-primary,
    .find-actions .btn-black,
    .find-actions .btn-outline {
        width: 100%;
    }
}
/* =========================
 비밀번호 재설정 (reset-password.html)
 ========================= */
.reset-page__body {
    padding: var(--spc40) 0 var(--spc80);
}

.reset-form {
    max-width: 640px;
    margin: 0 auto;
}
.reset-form__box {
    margin-top: var(--spc24);
}
.reset-form__line {
    height: 1px;
    background: #111;
}
.reset-form__line--top {
    margin-bottom: 0;
}
.reset-form__line--bottom {
    margin-top: 0;
}

.reset-row {
    display: grid;
    grid-template-columns: 287px 1fr;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid #e5e5e5;
}
.reset-row:last-of-type {
    border-bottom: none;
}
.reset-row__label {
    font-size: var(--font24);
    font-weight: 700;
    color: #111;
    white-space: nowrap;
    text-align: left;
}
.reset-row__label .req {
    color: #e24b2b; /* 기존 프로젝트의 포인트 컬러가 있다면 그걸로 바꿔도 됨 */
    margin-left: 4px;
}

.reset-input {
    width: 100%;
    height: 48px;
    border: 1px solid #000;
    padding: 0 16px;
    outline: none;
    font-size: var(--font16);
}
.reset-input::-moz-placeholder {
    color: #9b9b9b;
}
.reset-input::placeholder {
    color: #9b9b9b;
}

.reset-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: var(--spc40);
}

.reset-btn {
    border: 1px solid #111;
    background: #fff;
    height: 44px;
    cursor: pointer;
}
.reset-btn--back {
    width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.reset-btn--back i {
    display: inline-block;
}
.reset-btn--primary {
    width: 180px;
    background: #e05a1a; /* 기존 주황 버튼 컬러와 맞추면 OK */
    border-color: #e05a1a;
    color: #fff;
    font-weight: 700;
    font-size: var(--font16);
}

/* =========================
   Responsive
   ========================= */
@media (max-width: 1024px) {
    .reset-form {
        max-width: 720px;
    }
    .reset-row {
        grid-template-columns: 220px 1fr;
    }
    .reset-input {
        max-width: 360px;
    }
}
@media (max-width: 768px) {
    .reset-form {
        max-width: none;
    }
    .reset-row {
        grid-template-columns: 1fr;
        padding: 12px 0;
    }
    .reset-row__label {
        padding: 0 var(--spc16);
        margin-bottom: 10px;
        font-size: var(--font18);
    }
    .reset-row__field {
        padding: 0 var(--spc16);
    }
    .reset-input {
        max-width: none;
        height: 46px;
    }
    .reset-actions {
        margin-top: var(--spc32);
    }
    .reset-btn--primary {
        width: 200px;
    }
}
/* ============================
   필사 등록 페이지
   ============================ */
.transcribe-page {
    margin-top: 120px;
    padding-bottom: 120px;
}
.transcribe-page .page-head__title {
    font-size: var(--font48);
    font-weight: 700;
    margin-top: var(--spc40);
}

/* 상단 헤드 */
.transcribe-head {
    margin-top: var(--spc80);
    margin-bottom: 58px;
}
.transcribe-head__inner {
    display: flex;
    align-items: center;
    gap: 16px;
}
.transcribe-head__back {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    font-size: 26px;
    line-height: 1;
}
.transcribe-head__title {
    font-size: var(--font32);
    font-weight: 700;
    flex: 1;
    text-align: center;
}
.transcribe-head__guide-btn {
    width: 200px;
    height: 48px;
    background: #000;
    font-size: var(--font14);
    font-weight: 700;
    color: #fff;
}

/* 메타 정보 */
.transcribe-meta {
    margin-bottom: var(--spc80);
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    padding: var(--spc40) 0;
}
.transcribe-meta__list {
    display: flex;
    font-size: var(--font20);
    justify-content: space-between;
}
.transcribe-meta__item {
    display: flex;
    gap: var(--spc40);
}
.transcribe-meta__item dt {
    color: #9e9e9e;
    font-weight: 700;
}
.transcribe-meta__item dd {
    display: flex;
    align-items: center;
    gap: 6px;
}
.transcribe-meta .badge {
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: var(--font14);
    font-weight: 700;
}
.transcribe-meta .badge.not {
    background: #E35A10;
}
.transcribe-meta .badge.ing {
    background: #10B9E3;
}
.transcribe-meta .badge.fin {
    background: #000;
}

/* 본문 레이아웃 */
.transcribe-body .transcribe-viewer-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: var(--spc40);
    align-items: flex-start;
    margin-bottom: var(--spc80);
}
.transcribe-body.not .transcribe-viewer-wrap {
    display: flex;
    align-items: center;
}
.transcribe-body.fin .transcribe-viewer-wrap {
    grid-template-columns: minmax(0, 1fr) minmax(0, 384px);
}

/* 이미지 뷰어 + 스와이퍼 */
.transcribe-viewer {
    width: 100%;
}
.transcribe-viewer .transcribe-main {
    min-height: 640px;
    position: relative;
    box-sizing: border-box;
}
.transcribe-viewer .transcribe-viewer__image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 640px;
}
.transcribe-viewer .transcribe-viewer__image img {
    max-width: 100%;
    max-height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
}
.transcribe-viewer .transcribe-viewer__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #fff;
    border: 1px solid #ddd;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}
.transcribe-viewer .transcribe-viewer__nav--prev {
    left: 16px;
}
.transcribe-viewer .transcribe-viewer__nav--next {
    right: 16px;
}
.transcribe-viewer .swiper-button-next:after, .transcribe-viewer .swiper-button-prev:after {
    color: #000;
    font-size: var(--font24);
}
.transcribe-viewer {
    /* 확대/축소 도구 */
}
.transcribe-viewer__tools {
    margin-top: var(--spc40);
    display: flex;
    gap: var(--spc8);
    align-items: center;
    justify-content: center;
}
.transcribe-viewer__tools .btn-icon {
    width: 56px;
    height: 56px;
    border: 1px solid #000;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: var(--spc40) var(--spc40);
    cursor: pointer;
}
.transcribe-viewer__tools .btn-icon.minus {
    background-image: url(/images/icon/ic_minus.svg);
}
.transcribe-viewer__tools .btn-icon.plus {
    background-image: url(/images/icon/ic_plus.svg);
}

/* 에디터 */
.transcribe-editor {
    border: 1px solid #ddd;
    height: 736px;
    background: #fafafa;
}
.transcribe-editor__placeholder {
    text-align: center;
    color: #aaa;
    font-size: 14px;
    margin-top: 220px;
}

/* 완료 */
.transcribe-view {
    border: 1px solid #000;
    height: 736px;
    padding: var(--spc24);
}
.transcribe-view-area {
    width: 100%;
    height: 100%;
    overflow-y: scroll;
    padding-right: 8px;
    font-size: var(--font16);
    line-height: 26px;
}
.transcribe-view-area::-webkit-scrollbar {
    width: 8px;
}
.transcribe-view-area::-webkit-scrollbar-thumb {
    background: #e5e5e5;
    border-radius: 4px;
}

/* 썸네일 스와이퍼 */
.transcribe-thumbs-wrap {
    border-top: 1px solid #e0e1e0;
    border-bottom: 1px solid #000;
    background: #f7f7f7;
    padding: var(--spc40) 0;
    display: flex;
    justify-content: center;
}
.transcribe-thumbs-wrap .transcribe-thumbs-swiper .swiper-slide {
    width: 247px !important; /* auto width 느낌을 위해 고정 */
    background: #fff;
}

.transcribe-thumb {
    display: block;
    width: 100%;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0;
    background: none;
}
.transcribe-thumb img {
    width: 100%;
    height: 120px;
    -o-object-fit: contain;
    object-fit: contain;
    border-radius: 4px;
    display: block;
}

/* 하단 버튼 */
.transcribe-actions {
    margin-top: var(--spc80);
}
.transcribe-actions__inner {
    display: flex;
    justify-content: center;
    gap: 8px;
}
.transcribe-actions__inner .btn-outline,
.transcribe-actions__inner .btn-primary {
    width: 200px;
    padding: 14px 0;
    font-size: var(--font14);
    font-weight: 700;
}
.transcribe-actions__inner .btn-outline {
    border: 1px solid #000;
}

@media screen and (max-width: 1700px) {
    /* 상단 head */
    .transcribe-head {
        margin-bottom: 48px;
    }
    .transcribe-head__guide-btn {
        width: 160px;
    }
    /* Body 레이아웃 */
    .transcribe-body__inner {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
    .transcribe-viewer-wrap {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
        margin-bottom: var(--spc60);
    }
    .transcribe-viewer .transcribe-main {
        min-height: 480px;
    }
    .transcribe-viewer .transcribe-viewer__image {
        min-height: 420px;
    }
    .transcribe-editor {
        height: 560px;
    }
    .transcribe-editor__placeholder {
        margin-top: 180px;
    }
    /* 썸네일 */
    .transcribe-thumbs-wrap {
        padding: var(--spc32) 0;
    }
    /* 하단 버튼 */
    .transcribe-actions__inner .btn-outline,
    .transcribe-actions__inner .btn-primary {
        width: 180px;
    }
}
/* ============================================
   Mobile (768px 이하)
=============================================== */
@media screen and (max-width: 768px) {
    /* 페이지 title */
    .transcribe-page .page-head__title {
        font-size: 28px;
        margin-top: var(--spc24);
        text-align: center;
    }
    /* 상단 head */
    .transcribe-head__inner {
        flex-direction: column;
        gap: 12px;
    }
    .transcribe-head__inner .prev-btns {
        order: 1;
        width: 100%;
        display: flex;
        justify-content: flex-start;
    }
    .transcribe-head__inner .transcribe-head__title {
        order: 2;
        font-size: 20px;
        text-align: left;
        width: 100%;
    }
    .transcribe-head__inner .transcribe-head__guide-btn {
        order: 3;
        width: 100%;
        height: 44px;
        font-size: 14px;
    }
    .transcribe-meta {
        padding: var(--spc24) 0;
    }
    .transcribe-meta__list {
        display: flex;
        flex-direction: column;
        gap: 12px;
        font-size: 14px;
    }
    .transcribe-meta__list .transcribe-meta__item {
        width: 100%;
    }
    .transcribe-meta__item {
        display: flex;
        align-items: flex-start;
        gap: 0;
        width: 100%;
    }
    .transcribe-meta__item dt {
        flex: 0 0 30%;
        max-width: 30%;
        color: #9e9e9e;
        font-weight: 700;
        text-align: left;
    }
    .transcribe-meta__item dd {
        flex: 0 0 70%;
        max-width: 70%;
        display: flex;
        align-items: center;
        gap: 6px;
        word-break: keep-all;
    }
    /* Body 전체를 flex 구조로 변경 */
    .transcribe-body__inner {
        display: flex;
        flex-direction: column;
        gap: var(--spc40);
    }
    /* viewer-wrap → flex 세로배치 */
    .transcribe-body .transcribe-viewer-wrap {
        display: flex;
        flex-direction: column;
        gap: var(--spc40);
    }
    /* 이미지 viewer */
    .transcribe-viewer .transcribe-main {
        min-height: 280px;
    }
    .transcribe-viewer .transcribe-viewer__image {
        min-height: 240px;
    }
    .transcribe-viewer .transcribe-viewer__nav {
        width: 32px;
        height: 32px;
    }
    .transcribe-viewer .transcribe-viewer__nav--prev {
        left: 0px;
    }
    .transcribe-viewer .transcribe-viewer__nav--next {
        right: 0px;
    }
    /* 네비 버튼 작게 */
    .transcribe-viewer__nav {
        width: 32px;
        height: 32px;
    }
    /* 확대/축소 버튼 */
    .transcribe-viewer__tools .btn-icon {
        width: 40px;
        height: 40px;
        background-size: 20px 20px;
    }
    /* 에디터 */
    .transcribe-editor {
        height: auto;
        min-height: 300px;
        width: 100%;
        margin-top: var(--spc40);
    }
    .transcribe-editor__placeholder {
        margin-top: 120px;
    }
    /* 썸네일 */
    .transcribe-thumbs-wrap {
        padding: var(--spc24);
    }
    .transcribe-thumbs-wrap .transcribe-thumbs-swiper .swiper-slide {
        width: auto !important;
    }
    .transcribe-thumbs-wrap .transcribe-thumb img {
        height: 80px;
    }
    /* 하단 버튼 → 100% */
    .transcribe-actions__inner {
        flex-direction: column;
    }
    .transcribe-actions__inner .btn-outline,
    .transcribe-actions__inner .btn-primary {
        width: 100%;
        height: 48px;
        font-size: 14px;
    }
}
/* ============================
   공통 아카이브 / 리스트 페이지
   ============================ */
.archive-page {
    margin-top: 120px;
    padding-bottom: 120px;
}

/* 상단 타이틀 */
.page-head {
    margin-top: var(--spc40);
}

.page-head__inner--has-cta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spc24);
}

.page-head__title {
    font-size: var(--font48);
    font-weight: 700;
}

.page-head__desc {
    margin-top: var(--spc16);
    font-size: var(--font24);
    color: #666;
    line-height: 1.5;
}

.archive-head__cta {
    min-width: 200px;
    height: 48px;
    font-size: var(--font14);
    font-weight: 700;
}

/* 단계 안내 */
.archive-steps {
    margin-top: var(--spc40);
    padding: var(--spc40) 0;
    border-top: 1px solid #d5d7d9;
    border-bottom: 1px solid #d5d7d9;
    background: #f2f4f7;
}
.archive-steps__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spc80);
}

.archive-step {
    position: relative;
    background: #fff;
    padding: var(--spc24) var(--spc8);
    border: 1px solid #e0e0e0;
    width: 340px;
    height: 209px;
    text-align: center;
    /* li 사이 화살표 넣기 */
}
.archive-step + .archive-step::before {
    content: "";
    position: absolute;
    left: -56px; /* 화살표 위치 */
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 40px;
    background-image: url("/images/icon/ic_signuparrow.svg");
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
}
.archive-step__stage {
    display: inline-block;
    margin-bottom: var(--spc8);
    font-size: var(--font20);
    color: #e35a10;
    font-weight: 700;
}
.archive-step__title {
    display: block;
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc16);
}
.archive-step__desc {
    font-size: var(--font20);
    color: #777;
    line-height: 28px;
}

/* 검색 / 필터 영역 */
.archive-filters {
    margin-top: var(--spc40);
}
.archive-filters__form {
    display: flex;
    align-items: center;
    gap: var(--spc24);
    margin-bottom: var(--spc40);
}
.archive-filters__left {
    flex: 0 0 auto;
}
.archive-filters__center {
    flex: 1 1 auto;
}

.archive-select {
    min-width: 200px;
    height: 77px;
    padding: 0 var(--spc24);
    border: 1px solid #000;
    font-size: var(--font24);
    background-color: #fff;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-position: right var(--spc24) center;
    background-size: 24px 24px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.archive-search {
    position: relative;
    width: 800px;
    border-bottom: 4px solid #000;
}
.archive-search__input {
    width: 100%;
    height: 77px;
    border: 1px solid #ddd;
    padding: 0 144px 0 var(--spc24);
    font-size: var(--font24);
    border: none;
    outline: none;
}
.archive-search__btn {
    position: absolute;
    right: var(--spc24);
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    background: none;
    cursor: pointer;
}
.archive-search .archive-del__btn {
    position: absolute;
    right: 104px;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    background: none;
    cursor: pointer;
}
.archive-search .archive-del__btn i {
    width: 40px;
}

.archive-results__count {
    font-size: var(--font24);
    color: #666;
}
.archive-results__count strong {
    font-weight: 700;
    color: #E35A10;
    margin-left: 16px;
}
.archive-results__count span {
    color: #000;
}

/* 카드 리스트 */
.archive-results {
    margin-top: var(--spc40);
}

.archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spc80) var(--spc24);
    margin-bottom: var(--spc80);
}
.archive-grid.detail {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.archive-grid.detail .archive-card__thumb img {
    height: 255px;
}
.archive-grid.detail .archive-card__title {
    margin-top: var(--spc40);
}
.archive-grid.detail .archive-card__meta-row {
    gap: var(--spc24);
}
.archive-grid.detail .archive-card__meta-row dt {
    width: 112px;
}

.archive-card {
    display: flex;
    flex-direction: column;
}

.archive-card__thumb-link {
    display: block;
}

.archive-card__thumb {
    margin: 0;
    background: #f0f0f0;
}
.archive-card__thumb img {
    width: 100%;
    height: 345px;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
}

.archive-card__body {
    padding-top: var(--spc40);
}

.archive-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spc8);
    margin-bottom: var(--spc8);
    padding-bottom: 16px;
    border-bottom: 1px solid #e0e1e0;
}

.archive-card__title {
    font-size: var(--font24);
    font-weight: 700;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.archive-card__title .subject {
    display: block;
    margin-top: var(--spc8);
    font-size: var(--font20);
    font-weight: 500;
}

.archive-card__like {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: none;
    background: none;
    cursor: pointer;
    font-size: var(--font24);
}

.archive-card__like-count {
    font-size: var(--font24);
}

.archive-card__meta {
    font-size: var(--font20);
}

.archive-card__meta-row {
    display: flex;
    gap: 8px;
    margin-top: var(--spc16);
}
.archive-card__meta-row dt {
    width: 100px;
    color: #888;
    font-weight: 700;
}
.archive-card__meta-row dd {
    flex: 1 1 auto;
    color: #000;
    font-weight: 400;
}
.archive-card__meta-row .state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    margin-right: 8px;
    border-radius: 4px;
    font-size: var(--font14);
    font-weight: 700;
    color: #fff;
}
.archive-card__meta-row .state.ing {
    background: #10B9E3;
}
.archive-card__meta-row .state.fin {
    background: #000000;
}
.archive-card__meta-row .state.not {
    background: #E35A10;
}

/* 페이지네이션 */
.archive-pagination {
    margin-top: var(--spc40);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spc16);
}
.archive-pagination__prev, .archive-pagination__next {
    min-width: 96px;
    height: 40px;
    font-size: var(--font14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.archive-pagination__info {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--font14);
}

/* ============================
   Tablet
   ============================ */
@media screen and (max-width: 1700px) {
    .archive-step {
        position: relative;
        width: 100%;
        height: auto;
        /* li 사이 화살표 넣기 */
    }
    .archive-step + .archive-step::before {
        left: -15%; /* 화살표 위치 */
    }
    /* 검색 영역 */
    .archive-filters__form {
        gap: var(--spc16);
    }
    .archive-search {
        width: 100%;
    }
    .archive-select {
        width: 160px;
    }
    /* 카드 그리드 : 2열 */
    .archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    /* 카드 이미지 */
    .archive-card__thumb img {
        height: 220px;
    }
}
/* ============================
 Mobile
 ============================ */
@media screen and (max-width: 1280px) {
    .archive-steps__list {
        grid-template-columns: 1fr;
        row-gap: var(--spc40);
    }
    /* 1~4단계 박스 : 1열 + 아래 화살표 방향 변경 */
    .archive-step {
        position: relative;
        /* li 사이 화살표 넣기 */
    }
    .archive-step + .archive-step::before {
        left: 50%;
        transform: translateX(-50%) rotate(90deg);
        top: -20px;
        width: 28px;
        height: 20px;
    }
}
@media screen and (max-width: 768px) {
    .page-head__inner--has-cta {
        flex-direction: column;
        align-items: flex-start;
    }
    .archive-head__cta {
        align-self: stretch;
        width: 100%;
    }
    .archive-filters__form {
        flex-direction: column;
        align-items: stretch;
    }
    .archive-select {
        width: 100%;
        height: 48px;
    }
    .archive-results__count {
        margin-top: var(--spc8);
    }
    .archive-grid {
        grid-template-columns: 1fr;
    }
    .archive-card__thumb img {
        height: 220px;
    }
    .archive-pagination {
        flex-direction: row;
    }
    .archive-pagination__prev,
    .archive-pagination__next {
        min-width: 80px;
        font-size: var(--font13);
    }
    /* 필터 / 검색 */
    .archive-search {
        width: 100%;
    }
    .archive-search__input {
        height: 48px;
        padding-right: var(--spc40);
    }
    .archive-search .archive-del__btn {
        right: 44px;
    }
    .archive-search .archive-del__btn i {
        width: 24px;
    }
    .archive-search .archive-search__btn {
        right: 12px;
    }
    .archive-results__count {
        text-align: right;
    }
    /* 카드 구조 */
    .archive-card__head {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spc8);
    }
    .archive-card__title {
        font-size: var(--font16);
    }
    .archive-card__meta .archive-card__meta-row {
        grid-template-columns: 80px 1fr;
    }
}
/* ============================
 Archive Detail Page
 ============================ */
.archive-detail-page {
    padding: 120px 0;
}

.archive-detail-viewer {
    padding: var(--spc80) 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}
.archive-detail-viewer .archive-detail-viewer__inner {
    display: grid;
    grid-template-columns: 60px 1fr 60px;
    align-items: center;
    gap: var(--spc24);
}
.archive-detail-viewer .swiper-display {
    min-width: 0;
    width: 100%;
    overflow: hidden;
}
.archive-detail-viewer .archive-detail-image img {
    max-width: 100%;
    display: block;
    max-height: 520px;
    -o-object-fit: contain !important;
    object-fit: contain !important;
    display: block;
    margin: 0 auto;
}
.archive-detail-viewer .archive-detail-nav {
    width: 64px;
    height: 64px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* 상세 정보 */
.archive-detail-info {
    padding: var(--spc40) 0;
    border-bottom: 1px solid #000;
    /* 한 행에 label/value × 2 세트 = 4칸 */
}
.archive-detail-info .info-row {
    display: grid;
    grid-template-columns: 135px 4fr 135px 1fr;
    align-items: start;
}
.archive-detail-info .info-row:not(:last-child) {
    margin-bottom: var(--spc40);
}
.archive-detail-info .info-row--full .info-value {
    line-height: auto;
}
.archive-detail-info .info-label {
    font-weight: 700;
    color: #555;
    font-size: var(--font20);
}
.archive-detail-info .info-value {
    font-size: var(--font20);
    color: #000;
    font-weight: 400;
}
.archive-detail-info .info-value.title {
    font-weight: 700;
}

/* 관련 게시물 grid */
.archive-related {
    margin-top: var(--spc80);
}
.archive-related__title {
    font-size: var(--font24);
    margin-bottom: var(--spc40);
    font-weight: 400;
}
.archive-related__title strong {
    color: #E35A10;
    font-weight: 700;
}

.archive-detail-actions {
    text-align: center;
    margin-top: var(--spc80);
}
.archive-detail-actions .btn-outline {
    width: 200px;
    height: 48px;
    padding: 14px 0;
    font-size: var(--font14);
    font-weight: 700;
    border: 1px solid #000;
}

/* ============================
   Tablet
   ============================ */
@media screen and (max-width: 1700px) {
    .archive-detail-viewer__inner {
        grid-template-columns: 40px 1fr 40px;
    }
    .archive-detail-viewer .archive-detail-nav {
        width: 44px;
        height: 44px;
    }
    .archive-detail-image img {
        max-height: 420px;
    }
    .archive-detail-table th {
        width: 120px;
    }
    .archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .archive-detail-info .info-row {
        grid-template-columns: 140px 1fr;
        gap: var(--spc12);
        /* 4개의 label/value 를 2줄로 자동 흐르게 */
    }
    .archive-detail-info .info-row > * {
        grid-column: span 1;
    }
    .archive-grid.detail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .archive-grid.detail .archive-card__thumb img {
        height: 255px;
    }
    .archive-grid.detail .archive-card__meta-row dt {
        width: auto;
    }
}
/* ============================
   Mobile
   ============================ */
@media screen and (max-width: 768px) {
    .transcribe-head__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spc16);
    }
    .archive-detail-viewer__inner {
        grid-template-columns: 40px 1fr 40px;
        gap: var(--spc16);
    }
    .archive-detail-image img {
        max-height: 280px;
    }
    .archive-detail-table th {
        width: 100px;
    }
    .archive-grid {
        grid-template-columns: 1fr;
    }
    .archive-detail-info .info-row {
        display: block;
        padding: var(--spc20) 0;
    }
    .archive-detail-info .info-label {
        display: block;
        font-size: var(--font14);
        margin-bottom: var(--spc4);
    }
    .archive-detail-info .info-value {
        display: block;
        font-size: var(--font15);
        margin-bottom: var(--spc16);
    }
    .archive-detail-info {
        /* 마지막 value 아래 여백 제거 */
    }
    .archive-detail-info .info-row > *:last-child {
        margin-bottom: 0;
    }
    .archive-grid.detail {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}
/* ============================================
   게시판 공통 스타일 (공지사항 / Q&A )
   ============================================ */
/* ---------- content -----------*/
.board-page {
    padding: 120px 0;
}

/* ---------- 페이지 헤드 ---------- */
.page-head__title {
    font-size: var(--font48);
    margin-top: var(--spc40);
}

/* ---------- 검색 영역 ---------- */
.board-filter {
    margin-top: var(--spc40);
    margin-bottom: var(--spc40);
}
.board-filter__form {
    display: flex;
    align-items: center;
    gap: var(--spc24);
    margin-bottom: var(--spc40);
}
.board-filter .board-select {
    min-width: 200px;
    height: 77px;
    padding: 0 var(--spc24);
    border: 1px solid #000;
    font-size: var(--font24);
    background-color: #fff;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-position: right var(--spc24) center;
    background-size: 24px 24px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.board-filter .board-search {
    position: relative;
    display: flex;
    align-items: center;
    width: 800px;
    border-bottom: 4px solid #000;
}
.board-filter .board-search input {
    width: 100%;
    position: relative;
    width: 100%;
    height: 77px;
    padding: 0 208px 0 var(--spc24);
    font-size: var(--font24);
    border: none;
    outline: none;
}
.board-filter .board-search .btn-reset {
    width: 40px;
    height: 40px;
    position: absolute;
    right: calc(var(--spc24) + var(--spc40) + var(--spc24) + var(--spc40) + var(--spc40));
}
.board-filter .board-search .btn-reset i {
    width: var(--ic-lg);
}
.board-filter .board-search .btn-cal {
    width: 40px;
    height: 40px;
    position: absolute;
    right: calc(var(--spc24) + var(--spc40) + var(--spc24));
}
.board-filter .board-search .btn-cal i {
    width: var(--ic-lg);
}
.board-filter .board-search .btn-search {
    width: 40px;
    height: 40px;
    position: absolute;
    right: var(--spc24);
}
.board-filter .board-search .btn-search i {
    width: var(--ic-lg);
}
.board-filter .board-count {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: var(--spc12);
    font-size: var(--font24);
    color: rgba(0, 0, 0, 0.6);
}
.board-filter .board-count strong {
    font-weight: 700;
    color: #000;
    margin-left: var(--spc16);
}
.board-filter .board-count span {
    color: #000;
}

/* ---------- 테이블 목록 ---------- */
.board-list {
    margin-top: var(--spc40);
}
.board-list .board-table {
    width: 100%;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    font-size: var(--font20);
    margin-bottom: var(--spc80);
}
.board-list .board-table th {
    padding: 28px 0;
    border-bottom: 1px solid #d9d9d9;
    color: #000;
    background: #f7f7f7;
    font-weight: 400;
}
.board-list .board-table td {
    padding: 28px 0;
    border-bottom: 1px solid #d9d9d9;
    text-align: center;
}
.board-list .board-table td .notice {
    font-weight: 700;
}
.board-list .board-table td a {
    display: inline-block;
    width: 100%;
    color: #000;
    text-align: left;
    padding: 0 var(--spc16);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.board-list .board-table td a:hover {
    text-decoration: underline;
}
.board-list .board-table {
    /* 처리 상태 */
}
.board-list .board-table .status {
    color: #999;
}
.board-list .board-table .status.is-complete {
    font-weight: 700;
    color: #000;
}

/* ---------- 글쓰기 버튼 ---------- */
.board-write-btn .btn-primary {
    width: 200px;
    height: 48px;
    padding: var(--spc14) 0;
    font-size: var(--font14);
    font-weight: 700;
}

/* ---------- 빈화면 ---------- */
.board-empty .empty-text {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 637px;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    font-size: var(--font24);
    font-weight: 500;
    color: rgba(0, 0, 0, 0.38);
}
@media screen and (max-width: 768px) {
    .board-empty .empty-text {
        height: auto;
        padding: 120px 0;
    }
}

/* ============================================================
   상세페이지 공통 스타일 (공지사항 상세, Q&A 상세)
   ============================================================ */
.board-detail {
    margin-top: var(--spc80);
}
.board-detail__header {
    border-top: 2px solid #000;
    padding: var(--spc40);
}
.board-detail__text {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: var(--font32);
    font-weight: 700;
}
.board-detail__text span.badge--orange {
    color: #E35A10;
}
.board-detail__meta {
    font-size: var(--font20);
    font-weight: 400;
    margin-top: var(--spc24);
    display: flex;
    align-items: center;
    gap: var(--spc24);
}
.board-detail__meta div {
    display: flex;
    align-items: center;
    gap: var(--spc16);
}
.board-detail__meta div dt {
    color: #E35A10;
}
.board-detail__meta div dd {
    color: rgba(0, 0, 0, 0.6);
}
.board-detail__files {
    padding: var(--spc24) var(--spc40);
    border-top: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
}
.board-detail__files a {
    display: block;
    position: relative;
    padding-left: 40px;
    font-size: var(--font20);
    font-weight: 400;
    text-decoration: underline;
    color: #000;
}
.board-detail__files a + a {
    margin-top: 8px;
}
.board-detail__files a::before {
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    position: absolute;
    left: 0;
    background: url("/images/icon/ic_download.svg") no-repeat center center;
    background-size: 20px 17px;
}
.board-detail__content {
    padding: var(--spc40) 0;
    font-size: var(--font20);
    line-height: 32px;
}
.board-detail__nav {
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}
.board-detail__nav .nav {
    display: flex;
    padding: 28px 0;
    font-size: var(--font20);
}
@media screen and (max-width: 1700px) {
    .board-detail__nav .nav {
        padding: var(--spc24) 0;
    }
}
.board-detail__nav .nav + .nav {
    border-top: 1px solid #d9d9d9;
}
.board-detail__nav .nav span {
    flex: 210px 0;
    text-align: center;
    color: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 768px) {
    .board-detail__nav .nav span {
        flex: 20% 0;
    }
}
.board-detail__nav .nav a {
    color: #000;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.board-detail__nav .nav a.disabled {
    color: rgba(0, 0, 0, 0.38);
}
.board-detail__nav .nav a:hover {
    text-decoration: underline;
}
.board-detail__actions {
    margin-top: var(--spc80);
}
.board-detail__actions .btn-outline {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    width: 200px;
    height: 48px;
    padding: var(--spc14) 0;
    border: 1px solid #000;
    font-weight: 700;
    font-size: var(--font14);
    color: #000;
}
.board-detail__question {
    border-top: 2px solid #000;
}
.board-detail__question + .write-btns {
    border-top: 2px solid #000;
}
.board-detail__answer {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}
.board-detail__row {
    display: flex;
    align-items: center;
    padding: var(--spc16) 0;
    font-size: var(--font20);
}
.board-detail__row + .board-detail__row {
    border-top: 1px solid #d9d9d9;
}
@media screen and (max-width: 768px) {
    .board-detail__row {
        flex-wrap: wrap;
        padding: 0;
    }
    .board-detail__row + .board-detail__row {
        border-top: 0;
    }
}
.board-detail__row dt {
    padding: 10px 0;
    flex: 0 0 287px;
    font-size: var(--font24);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .board-detail__row dt {
        flex: 0 0 100%;
        padding: 5px 0;
    }
    .board-detail__row dt + dd {
        border-bottom: 1px solid #d9d9d9;
    }
}
.board-detail__row dd {
    flex: 1 1 0;
    margin: 0;
    min-width: 0;
    font-size: var(--font24);
}
@media screen and (max-width: 768px) {
    .board-detail__row dd {
        flex: 0 0 100%;
        padding: 5px 0;
    }
}
.board-detail__row textarea {
    width: 100%;
    min-height: 400px;
    resize: none;
    box-sizing: border-box;
    padding: var(--spc16);
    font-size: var(--font16);
    border: 1px solid #000;
}
.board-detail__row textarea:-moz-read-only {
    line-height: 32px;
    min-height: 160px;
    height: auto;
    overflow: hidden;
    font-size: var(--font20);
    border: none;
    outline: none;
    padding: 0;
}
.board-detail__row textarea:read-only {
    line-height: 32px;
    min-height: 160px;
    height: auto;
    overflow: hidden;
    font-size: var(--font20);
    border: none;
    outline: none;
    padding: 0;
}
.board-detail__row select {
    width: 366px;
    height: 48px;
    padding: 0 var(--spc16);
    border: 1px solid #000;
    font-size: var(--font16);
    background-color: #fff;
    background-image: url(/images/icon/ic_select.svg);
    background-repeat: no-repeat;
    background-position: right var(--spc16) center;
    background-size: 24px 24px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
@media screen and (max-width: 768px) {
    .board-detail__row select {
        width: 100%;
    }
}
.board-detail__row input[type=text] {
    width: 100%;
    height: 48px;
    padding: 0 var(--spc16);
    border: 1px solid #000;
    font-size: var(--font16);
}

/* ============================================================
   Q&A 글쓰기
   ============================================================ */
.write-btns {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding-top: var(--spc40);
}
.write-btns .page-btn--prev {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #000;
}
.write-btns .btn-primary {
    width: 200px;
    height: 48px;
    font-weight: 700;
}

/* ============================================================
   Tablet
   ============================================================ */
@media screen and (max-width: 1700px) {
    .board-filter__form {
        gap: var(--spc16);
    }
    .board-filter .board-search {
        width: 100%;
    }
    .board-list td {
        padding: var(--spc24) 0;
    }
    .write-table th {
        width: 120px;
    }
}
/* ============================================================
   Mobile
   ============================================================ */
@media screen and (max-width: 768px) {
    /* 검색 영역 */
    .board-filter .board-filter__form {
        flex-direction: column;
        align-items: stretch;
    }
    .board-filter .board-select {
        width: 100%;
        height: 48px;
    }
    .board-filter .board-search {
        width: 100%;
    }
    .board-filter .board-search input {
        padding-right: 140px;
        height: 48px;
    }
    .board-search input {
        font-size: var(--font14);
    }
    /* 테이블 → 카드형 */
    .board-list .board-table {
        display: block;
        width: 100%;
    }
    .board-list .board-table thead {
        display: none;
    }
    .board-list .board-table tbody {
        display: block;
        width: 100%;
    }
    .board-list .board-table tr {
        display: block;
        width: 100%;
        border-bottom: 1px solid #ddd;
    }
    .board-list .board-table td {
        display: flex;
        width: 100%;
        align-items: center;
        gap: var(--spc12);
        border-bottom: 0;
        padding: 10px 0;
    }
    .board-list .board-table td a {
        padding: 0;
    }
    .board-list .board-table td:before {
        content: attr(data-label);
        flex: 0 0 80px;
        color: #777;
        text-align: left;
    }
    /* 글쓰기 버튼 */
    .board-write-btn {
        text-align: left;
    }
    .board-write-btn .btn-primary {
        width: 120px;
    }
    /* 상세페이지 */
    .board-detail__meta .meta-row {
        flex-direction: column;
        gap: var(--spc4);
    }
    .write-table th {
        width: 100%;
        padding-bottom: var(--spc8);
    }
    .write-table td {
        padding-top: 0;
    }
}
.collection,
.collection-theme-detail {
    padding-bottom: 120px;
}

/* HERO */
.collection-hero {
    padding: 200px 0 120px 0;
    background: url("/images/content/625-bg.png") no-repeat center center/cover;
    text-align: center;
    color: #fff;
}
.collection-hero.theme {
    background: url("/images/content/subject-bg.png") no-repeat center center/cover;
}
.collection-hero.detail {
    height: 720px;
    padding: 0;
    background: url("/images/content/weapon-bg.png") no-repeat center center/cover;
}
.collection-hero__title {
    font-size: var(--font48);
    font-weight: 700;
}
.collection-hero__desc {
    margin-top: var(--spc16);
    font-size: var(--font24);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.6);
}

/* FILTER */
.collection-filter {
    margin-top: var(--spc80);
}
.collection-filter__tabs {
    display: flex;
    border: 1px solid #000;
}
.collection-filter__tabs .tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1;
    padding: var(--spc24);
    font-weight: 600;
    background: #fff;
    border-right: 1px solid #000;
}
.collection-filter__tabs .tab .text_box {
    display: flex;
    align-items: center;
    gap: var(--spc16);
}
.collection-filter__tabs .tab .text_box .tit {
    font-size: var(--font24);
    font-weight: 700;
}
.collection-filter__tabs .tab .text_box .txt {
    font-size: var(--font16);
    font-weight: 400;
    color: rgba(0, 0, 0, 0.6);
}
.collection-filter__tabs .tab.is-active {
    background: #000;
    color: #fff;
}
.collection-filter__tabs .tab.is-active .txt {
    color: rgba(255, 255, 255, 0.6);
}
.collection-filter__tabs .tab.is-active i {
    rotate: 180deg;
}
.collection-filter__tabs .tab:last-child {
    border-right: 0;
}
.collection-filter__panel {
    display: none;
    padding: var(--spc40);
    border: 1px solid #ddd;
    border-top: 0;
    background: #f7f7f7;
}
.collection-filter__panel.is-open {
    display: block;
}

.collection-sort {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spc16);
    margin-bottom: var(--spc40);
}
.collection-sort__btn {
    background: none;
    border: 0;
    padding: 0;
    font-size: var(--font16);
    font-weight: 400;
    color: #888;
    cursor: pointer;
}
.collection-sort__btn.is-active {
    color: #000;
    font-weight: 700;
}
.collection-sort__divider {
    width: 1px;
    height: 14px;
    background: #ddd;
}

.filter-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spc40);
    padding-bottom: var(--spc40);
    border-bottom: 1px solid #ddd;
}
.filter-list label {
    display: flex;
    align-items: center;
    cursor: pointer;
}
.filter-list label input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    margin: 0;
    border-radius: none;
    border: 1px solid #000;
    background-color: #fff;
    display: inline-block;
    position: relative;
    margin-right: 16px;
}
.filter-list label input[type=checkbox]:checked {
    background-color: #000;
    border-color: #000;
    background-image: url(/images/icon/ic_check.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
}
.filter-list label {
    font-size: var(--font20);
    color: #000;
}
.filter-list label .total {
    margin-left: 5px;
    color: #777;
}

.filter-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: var(--spc40);
}
.filter-actions .btn-outline {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #000;
}
.filter-actions .btn-primary {
    width: 200px;
    height: 48px;
    font-size: var(--font14);
}

/* RESULT */
.collection-result {
    margin-top: var(--spc80);
}

.collection-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spc80) var(--spc24);
    margin-bottom: var(--spc80);
}

.collection-card img {
    width: 100%;
    display: block;
}
.collection-card__info {
    margin-top: var(--spc40);
}
.collection-card__info strong {
    font-size: var(--font24);
    font-weight: 700;
}
.collection-card__info .row {
    display: flex;
    align-items: center;
    margin-top: var(--spc16);
    font-size: var(--font20);
}
.collection-card__info .row .tit {
    font-weight: 700;
    flex: 110px 0;
    color: #9e9e9e;
}

/* TABLET */
@media screen and (max-width: 1700px) {
    .collection-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .filter-list {
        grid-template-columns: repeat(3, 1fr);
    }
}
/* MOBILE */
@media screen and (max-width: 768px) {
    .collection-sort {
        justify-content: flex-start;
        margin-bottom: var(--spc16);
    }
    .collection-sort__btn {
        font-size: var(--font14);
    }
    .collection-filter__tabs {
        flex-direction: column;
    }
    .collection-filter__tabs .tab {
        border-right: 0;
        border-bottom: 1px solid #ddd;
    }
    .filter-list {
        grid-template-columns: repeat(1, 1fr);
    }
    .collection-grid {
        grid-template-columns: repeat(1, 1fr);
    }
}
/* =========================
   주제 컬렉션 목록
========================= */
.theme-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spc80) var(--spc40);
    margin-top: 80px;
}

.theme-card {
    display: block;
}
.theme-card img {
    width: 100%;
    aspect-ratio: 16/9;
    -o-object-fit: cover;
    object-fit: cover;
}
.theme-card strong {
    display: block;
    margin-top: var(--spc24);
    font-size: var(--font32);
    font-weight: 700;
    color: #000;
}

/* =========================
   주제 컬렉션 상세
========================= */
.collection-hero.detail .text_box {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    height: 500px;
    top: 120px;
}
.collection-hero.detail .text_box .collection-close {
    position: absolute;
    right: 0;
    top: 32px;
}
.collection-hero.detail .text_box .collection-close i {
    color: #fff;
    width: 40px;
    height: 40px;
}
.collection-hero.detail .text_box .collection-hero__text h2 {
    font-size: var(--font48);
    font-weight: 700;
    margin-bottom: 14px;
}
.collection-hero.detail .text_box .collection-hero__text p {
    font-size: var(--font24);
    line-height: 32px;
    color: rgba(255, 255, 255, 0.6);
}

.theme-section {
    padding-top: var(--spc80);
}
.theme-section h3 {
    margin-bottom: var(--spc40);
    font-size: var(--font32);
    font-weight: 700;
}

/* =========================
   반응형
========================= */
@media (max-width: 1024px) {
    .archive-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 768px) {
    .collection-hero {
        height: 280px;
    }
    .collection-hero__text h2 {
        font-size: 28px;
    }
    .theme-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}
/* ===============================
   Media Archive (공통)
=============================== */
.media-archive,
.media-archive-page {
    padding-top: var(--spc120);
    padding-bottom: var(--spc120);
}

.media-archive__title,
.media-page-title {
    font-size: var(--font48);
    font-weight: 700;
    margin-top: var(--spc40);
    margin-bottom: var(--spc80);
}

/* ===============================
   메인 (카테고리)
=============================== */
.media-archive__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spc24);
}
.media-archive__item {
    position: relative;
    overflow: hidden;
    transition: all 0.5s;
}
.media-archive__item a {
    display: block;
    position: relative;
    width: 382px;
    height: 663px;
}
.media-archive__item img {
    position: absolute;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    display: block;
}
.media-archive__item:hover {
    top: -40px;
    transition: all 0.5s;
}
.media-archive__item:hover .media-archive__overlay {
    background: rgba(227, 90, 16, 0.8);
    align-items: center;
    transition: all 0.5s;
}
.media-archive__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    font-size: var(--font40);
    font-weight: 700;
    padding: 40px 0;
    color: #fff;
    transition: all 0.5s;
}

/* ===============================
   공통 레이아웃
=============================== */
.media-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--spc40);
}

/* ===============================
   리스트
=============================== */
.breadcrumb.marker li:first-child {
    margin-right: 0;
}
.breadcrumb.marker .marker i {
    width: 40px;
    height: 40px;
}

.search-detail__filters.media .filter__body {
    gap: var(--spc24);
}
.search-detail__filters .filter-group__title {
    font-size: var(--font16);
    font-weight: 700;
    color: #000;
    margin-bottom: var(--spc16);
}
.search-detail__filters .filter-group__list {
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
    padding-left: 16px;
    border-left: 2px solid #dadbdc;
}
.search-detail__filters .list_more {
    margin-top: 10px;
}

.media-list {
    padding-top: var(--spc40);
    flex: 0 0 calc(100% - 247px - var(--spc40));
}

.media-list__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc24);
}

.media-list__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spc80) var(--spc24);
    margin-bottom: var(--spc80);
}

.media-card .img_box {
    width: 100%;
    height: 207px;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: #f7f7f7;
    margin-bottom: var(--spc40);
}
.media-card .img_box img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
}
.media-card__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--font24);
    font-weight: 700;
    line-height: 1.2;
    max-height: 2.8em;
    color: #000;
}

/* ===============================
   상세
=============================== */
.media-detail__top {
    display: grid;
    grid-template-columns: 1fr 780px;
    gap: var(--spc40);
    align-items: start;
    padding: var(--spc80) 0;
}

.media-detail__viewer img {
    width: 100%;
    max-height: 520px;
    -o-object-fit: contain;
    object-fit: contain;
}
.media-detail__viewer video {
    width: 100%;
    max-height: 440px;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
}

.media-detail__meta {
    display: grid;
    gap: var(--spc40);
    margin-bottom: var(--spc40);
}
.media-detail__meta div {
    display: flex;
    align-items: flex-start;
}
.media-detail__meta dt {
    flex: 0 0 120px;
    font-size: var(--font20);
    font-weight: 700;
    color: #9e9e9e;
}
.media-detail__meta dd {
    font-size: var(--font20);
    font-weight: 400;
    color: #000;
}
.media-detail__meta dd.tit {
    font-weight: 700;
}

.media-detail__bottom {
    padding-top: var(--spc80);
    border-top: 1px solid #000;
}

.media-related__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spc80) var(--spc24);
}
.media-related__grid img {
    width: 100%;
    display: block;
    margin-bottom: var(--spc40);
}
.media-related__grid p {
    font-size: var(--font24);
    font-weight: 700;
}

/* ===============================
   최소 반응형 안전선
=============================== */
@media screen and (max-width: 1700px) {
    .media-layout {
        grid-template-columns: 240px 1fr;
    }
}
@media screen and (max-width: 768px) {
    .media-layout {
        grid-template-columns: 1fr;
    }
    .media-archive__grid,
    .media-list__grid,
    .media-related__grid {
        grid-template-columns: repeat(1, 1fr);
    }
    .media-detail__top {
        grid-template-columns: 1fr;
    }
}
/* =========================
   사이트맵
========================= */
.sitemap {
    padding: 120px 0;
}
.sitemap-title {
    font-size: var(--font48);
    font-weight: 700;
    margin-top: var(--spc40);
    margin-bottom: var(--spc80);
}

.sitemap-box {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}

.sitemap-row {
    display: flex;
    padding: var(--spc40) 0;
    border-bottom: 1px solid #e5e5e5;
}
.sitemap-row--single .sitemap-depth1 {
    font-size: var(--font32);
    font-weight: 700;
}

.sitemap-depth1 {
    width: 406px;
    font-size: var(--font32);
    font-weight: 700;
}

.sitemap-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spc40);
    width: calc(100% - 406px);
}

.sitemap-col strong {
    display: block;
    font-size: var(--font24);
    font-weight: 700;
}
.sitemap-col ul {
    margin-top: var(--spc40);
}
.sitemap-col ul li {
    margin-bottom: var(--spc24);
}
.sitemap-col ul li a {
    font-size: var(--font20);
    font-weight: 500;
    color: #555;
}
.sitemap-col ul li a:hover {
    text-decoration: underline;
}

/* =========================
   반응형
========================= */
@media (max-width: 1024px) {
    .sitemap-cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }
}
@media (max-width: 768px) {
    .sitemap-row {
        flex-direction: column;
        gap: 24px;
    }
    .sitemap-depth1 {
        width: 100%;
    }
    .sitemap-cols {
        grid-template-columns: 1fr;
        gap: 24px;
        width: auto;
    }
}
/* =========================
   소개(소개/온라인/오프라인) 공통
   file: _intro.scss
   ========================= */
.intro {
    padding-top: 120px;
    padding-bottom: var(--spc80);
}
.intro .page-head {
    padding: var(--spc60) 0 var(--spc24);
}
.intro .page-head__inner {
    display: block;
}

/* 1) 소개 메인 */
.intro-hero {
    padding: var(--spc80) 0 var(--spc40);
}
.intro-hero__illust {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 var(--spc80);
}
.intro-hero__illust img {
    width: min(360px, 70vw);
    height: auto;
    display: block;
}
.intro-hero__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spc16);
}
.intro-hero .img {
    position: relative;
    width: 350px;
    height: 480px;
}
.intro-hero .img .bird {
    position: absolute;
    top: 0;
    left: 50%;
    width: 358px;
    height: 147px;
    transform: translateX(-55%);
}
.intro-hero .img .bird::before, .intro-hero .img .bird::after {
    content: "";
    position: absolute;
    inset: 0;
}
.intro-hero .img .bird::before {
    background: url(/images/content/introduce_bird_1.png) no-repeat center center;
    animation: blink1 1s steps(1, end) infinite;
}
.intro-hero .img .bird::after {
    background: url(/images/content/introduce_bird_2.png) no-repeat center center;
    animation: blink2 1s steps(1, end) infinite;
}
.intro-hero .img .ball {
    position: absolute;
    top: 138px;
    left: 50%;
    margin-left: -155px;
    width: 300px;
    height: 300px;
    border: 6px solid #000;
    border-radius: 50%;
    overflow: hidden;
    background: url(/images/content/introduce_earth2.png) no-repeat center center/350px;
    animation: ball 5s linear infinite;
}

@keyframes ball {
    to {
        transform: rotate(1turn);
    }
}
@keyframes blink1 {
    0%, 49% {
        opacity: 1;
    }
    50%, 100% {
        opacity: 0;
    }
}
@keyframes blink2 {
    0%, 49% {
        opacity: 0;
    }
    50%, 100% {
        opacity: 1;
    }
}

.header-logo:has(.header-logo__animation) {
    background: none;
}

.header-logo__animation {
    display: flex;
    align-items: flex-end;
    perspective: 1000px;
    color: #1a1a1a;
}
.header-logo__animation .bar {
    height: 40px;
    background-color: currentColor;
    opacity: 0;
    transform-style: preserve-3d;
    animation: combinedPillarAnim 10s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.header-logo__animation .bar:nth-child(1) {
    width: 2px;
    margin-right: 13px;
    animation-delay: 0.1s;
}
.header-logo__animation .bar:nth-child(2) {
    width: 7px;
    margin-right: 11px;
    animation-delay: 0.2s;
}
.header-logo__animation .bar:nth-child(3) {
    width: 12px;
    margin-right: 7px;
    animation-delay: 0.3s;
}
.header-logo__animation .bar:nth-child(4) {
    width: 15px;
    margin-right: 3px;
    animation-delay: 0.4s;
}
.header-logo__animation .bar:nth-child(5) {
    width: 20px;
    animation-delay: 0.5s;
}
.header-logo__animation .logo-text {
    margin-top: auto;
    margin-left: 5px;
    font-size: 13.4px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.1;
    transform: scaleX(0.93);
    perspective: 1000px;
}
.header-logo__animation .logo-text span {
    display: inline-block;
    opacity: 0;
    transform-origin: top;
    transform: rotateX(-90deg) translateY(-10px);
    animation: textPillarIn 10s cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}
.header-logo__animation .logo-text .line {
    display: flex;
}
.header-logo__animation .logo-text .line-1 span:nth-child(1) {
    animation-delay: 1.53s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(2) {
    animation-delay: 1.56s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(3) {
    animation-delay: 1.59s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(4) {
    animation-delay: 1.62s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(5) {
    animation-delay: 1.65s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(6) {
    animation-delay: 1.68s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(7) {
    animation-delay: 1.71s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(8) {
    animation-delay: 1.74s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(9) {
    animation-delay: 1.77s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(10) {
    animation-delay: 1.8s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(11) {
    animation-delay: 1.83s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(12) {
    animation-delay: 1.86s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(13) {
    animation-delay: 1.89s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(14) {
    animation-delay: 1.92s;
}
.header-logo__animation .logo-text .line-1 span:nth-child(15) {
    animation-delay: 1.95s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(1) {
    animation-delay: 1.73s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(2) {
    animation-delay: 1.76s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(3) {
    animation-delay: 1.79s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(4) {
    animation-delay: 1.82s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(5) {
    animation-delay: 1.85s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(6) {
    animation-delay: 1.88s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(7) {
    animation-delay: 1.91s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(8) {
    animation-delay: 1.94s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(9) {
    animation-delay: 1.97s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(10) {
    animation-delay: 2s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(11) {
    animation-delay: 2.03s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(12) {
    animation-delay: 2.06s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(13) {
    animation-delay: 2.09s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(14) {
    animation-delay: 2.12s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(15) {
    animation-delay: 2.15s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(16) {
    animation-delay: 2.18s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(17) {
    animation-delay: 2.21s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(18) {
    animation-delay: 2.24s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(19) {
    animation-delay: 2.27s;
}
.header-logo__animation .logo-text .line-2 span:nth-child(20) {
    animation-delay: 2.3s;
}

@keyframes combinedPillarAnim {
    0% {
        opacity: 0;
        transform: rotateY(-90deg);
    }
    5% {
        opacity: 1;
        transform: rotateY(0deg);
        background-color: #1a1a1a;
    }
    8% {
        background-color: #555;
    }
    11% {
        opacity: 1;
        transform: rotateY(-180deg);
        background-color: #1a1a1a;
    }
    80% {
        opacity: 1;
        transform: rotateY(-180deg);
    }
    85% {
        opacity: 0;
        transform: rotateY(-180deg);
    }
    100% {
        opacity: 0;
        transform: rotateY(-90deg);
    }
}
@keyframes textPillarIn {
    0% {
        opacity: 0;
        transform: rotateX(-90deg) translateY(-10px);
    }
    5% {
        opacity: 1;
        transform: rotateX(0deg) translateY(0);
    }
    70% {
        opacity: 1;
        transform: rotateX(0deg) translateY(0);
    }
    75% {
        opacity: 0;
        transform: rotateX(0deg) translateY(0);
    }
    100% {
        opacity: 0;
        transform: rotateX(-90deg) translateY(-10px);
    }
}
@keyframes ball {
    to {
        transform: rotate(1turn);
    }
}
@keyframes fadeInOut {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
.intro-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 96px;
    padding: 20px 24px;
    text-decoration: none;
    border: 1px solid #111;
    transition: transform 0.12s ease, opacity 0.12s ease;
}
.intro-card--black {
    background: #111;
    color: #fff;
}
.intro-card__title {
    font-size: var(--font20);
    font-weight: 700;
}
.intro-card__sub {
    margin-top: 6px;
    font-size: var(--font20);
    opacity: 0.6;
    font-weight: 300;
}

/* 2) 온라인 워크플로우 */
.intro-flow {
    margin-top: var(--spc80);
}
.intro-flow-cont {
    background: #f2f4f7;
    padding: var(--spc40) 0;
    margin-top: var(--spc40);
}

.flow-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 40px 1fr 40px 1fr;
    align-items: center;
    gap: 12px;
}

.flow-step__box {
    background: #fff;
    border: 1px solid #000;
    height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--spc40);
    text-align: center;
}
.flow-step__icon {
    width: 160px;
    height: 160px;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
    margin-bottom: 7px;
}
.flow-step__kr {
    display: block;
    font-size: var(--font24);
    font-weight: 700;
    color: #111;
}
.flow-step__en {
    display: block;
    margin-top: 16px;
    font-size: var(--font20);
    opacity: 0.6;
}
.flow-step--arrow {
    width: 32px;
    height: 40px;
    justify-self: center;
    background: url("/images/icon/ic_signuparrow.svg") no-repeat center center;
}

/* 기증 절차 플로우 */
.donate-flow {
    margin-top: var(--spc40);
    padding-bottom: var(--spc80);
    border-bottom: 1px solid #000;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.donate-flow__step {
    background: #fff;
    border: 1px solid #000;
    padding: var(--spc40) 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.donate-flow__icon {
    width: 80px;
    height: 80px;
    object-fit: contain;
    margin-bottom: 16px;
}
.donate-flow__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: 12px;
}
.donate-flow__desc {
    font-size: var(--font16);
    line-height: 1.6;
    color: #555;
}

/* 공통 블록 */
.intro-blocks {
    padding: 0 0 var(--spc40);
    margin-top: var(--spc80);
}

.intro-block {
    margin-top: var(--spc80);
}
.intro-block:first-child {
    margin-top: var(--spc40);
}
.intro-block__head {
    margin-bottom: var(--spc20);
}
.intro-block__title {
    font-size: var(--font40);
    font-weight: 700;
    word-break: keep-all;
    overflow-wrap: break-word;
}
.intro-block__title .intro-block__en {
    font-size: var(--font24);
    font-weight: 700;
    margin-left: 5px;
    opacity: 0.38;
}
.intro-block__desc {
    margin-top: var(--spc24);
    font-size: var(--font20);
    line-height: 28px;
    color: #000;
}
.intro-block__media {
    margin-top: var(--spc40);
}
.intro-block__media img {
    width: 100%;
    height: auto;
    display: block;
}
.intro-block__media--frame {
    border: 1px solid #000;
}
.intro-block__list {
    margin-top: var(--spc24);
    display: flex;
    flex-direction: column;
    gap: var(--spc16);
}
.intro-block__list li {
    display: flex;
    align-items: center;
    gap: 8px;
}
.intro-block__list li::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    background: #e5e5e5;
    flex-shrink: 0;
}
.intro-block__list li p {
    font-size: var(--font20);
}
.intro-block .intro-boxs .boxs {
    display: flex;
    font-size: var(--font20);
    margin-top: var(--spc40);
}
.intro-block .intro-boxs .boxs .box {
    border: 1px solid #000;
    padding: var(--spc40);
    flex: 1;
}
.intro-block .intro-boxs .boxs .box a {
    color: #000;
}
.intro-block .intro-boxs .boxs .box a:hover {
    text-decoration: underline;
}
.intro-block .intro-boxs .two-box {
    gap: var(--spc40);
}
@media screen and (max-width: 1280px) {
    .intro-block .intro-boxs .two-box {
        flex-direction: column;
    }
}
.intro-block .intro-boxs .one-box {
    flex-direction: column;
    gap: var(--spc16);
}
.intro-block .intro-boxs .one-box .box {
    width: 100%;
}
.intro-block .intro-boxs .title {
    font-size: var(--font24);
    font-weight: 700;
}
.intro-block .intro-boxs ul {
    margin-top: var(--spc16);
}
.intro-block .intro-boxs ul li {
    display: flex;
    line-height: 30px;
    align-items: center;
    gap: 5px;
}
.intro-block .intro-boxs ul li::before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 3px;
    background: #000;
}
.intro-block .intro-boxs ul li.bigo {
    align-items: flex-start;
}
.intro-block .intro-boxs ul li.bigo::before {
    margin-top: 12px;
}

/* 오프라인 상단 */
.intro-offline-top {
    margin-top: var(--spc80);
}
.intro-offline-top__map {
    margin-top: var(--spc40);
    border: 1px solid #000;
    background: #fff;
}
.intro-offline-top__map img {
    width: 100%;
    height: auto;
    display: block;
}

/* 오프라인 swiper */
.intro-swiper {
    margin-top: var(--spc40);
    background: #fff;
    height: 650px;
}
.intro-swiper .swiper-slide img {
    width: 100%;
    height: 650px;
    display: block;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
}
.intro-swiper .swiper-pagination {
    bottom: 40px !important;
}
.intro-swiper .swiper-pagination-bullet {
    width: 16px;
    height: 16px;
    opacity: 0.38;
    background: #fff;
    margin: 0 8px !important;
}
.intro-swiper .swiper-pagination-bullet-active {
    opacity: 1;
}

.intro-kv {
    margin-top: var(--spc40);
    padding-bottom: var(--spc80);
    border-bottom: 1px solid #000;
}
.intro-kv:last-child {
    padding-bottom: 0;
}
.intro-kv.no-line {
    border-bottom: 0;
}
.intro-kv__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc24);
}
.intro-kv__text {
    font-size: var(--font20);
    font-weight: 700;
    margin-bottom: var(--spc16);
}
.intro-kv__list {
    font-size: var(--font20);
    margin-bottom: var(--spc40);
}
.intro-kv__list li {
    display: flex;
    align-items: center;
    gap: 8px;
}
.intro-kv__list li::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    background: #e5e5e5;
    flex-shrink: 0;
}
.intro-kv__list li.no-list::before {
    display: none;
}
.intro-kv__list li + li {
    margin-top: 16px;
}
.intro-kv__list .ico {
    width: 30px;
    height: 24px;
    background: url(/images/content/child_ico.png) no-repeat center center/cover;
    margin: 0 -6px;
}

.intro-depth1 {
    font-weight: 700;
}

.intro-depth2 {
    margin-top: 16px;
    margin-left: 16px;
}
.intro-depth2 li::before {
    border-radius: 4px;
}
.intro-depth2.no-ico {
    margin-bottom: 16px;
}
.intro-depth2.no-ico li::before {
    display: none;
}

.import {
    color: #e35a10;
}

a.import {
    text-decoration: underline;
}

/* 하단 버튼 3개 */
.intro-bottom-nav {
    display: flex;
    gap: 8px;
}
.intro-bottom-nav__btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 200px;
    padding: 0 16px;
    height: 48px;
    background: #000;
    color: #fff;
    font-size: var(--font14);
    font-weight: 700;
}

/* =========================
     Responsive
     ========================= */
@media (max-width: 1024px) {
    .flow-steps {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .flow-step--arrow {
        rotate: 90deg;
    }
    .intro-kv {
        grid-template-columns: 1fr;
        gap: var(--spc24);
    }
    .donate-flow {
        grid-template-columns: 1fr;
    }
    .donate-flow__step {
        padding: 24px 16px;
    }
    .donate-flow__icon {
        width: 60px;
        height: 60px;
    }
}
@media (max-width: 768px) {
    .intro-hero__actions {
        grid-template-columns: 1fr;
    }
    .intro-hero__actions.three {
        grid-template-columns: 1fr;
    }
    .flow-step__box {
        height: auto;
    }
    .flow-step__icon {
        width: 60px;
        height: 60px;
    }
    .intro-bottom-nav {
        flex-direction: column;
    }
    .intro-bottom-nav__btn {
        width: 100%;
    }
}
/* =========================
   Intro Table (grid)
   - row 안 col 개수에 따라 자동 n등분
   - 2열5행 / 4열2행 등 공통 사용
   ========================= */
.intro-table {
    display: flex;
    align-items: center;
    width: 100%;
}
.intro-table .row_group {
    border: 1px solid #000;
    width: 90%;
}
.intro-table .row_group.w100 {
    width: 100%;
}
.intro-table .text_group {
    width: 10%;
}
.intro-table .text_group p {
    font-size: var(--font32);
    text-align: center;
}
.intro-table .row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
}
.intro-table .row + .row {
    border-top: 1px solid #000;
}
.intro-table .col {
    padding: var(--spc16);
    font-size: var(--font20);
    text-align: center;
    color: #000;
    min-width: 0;
    word-break: break-word;
}
.intro-table .col + .col {
    border-left: 1px solid #000;
}
.intro-table .th {
    font-weight: 700;
    background: #000;
    color: #fff;
}
.intro-table .td {
    display: flex;
    font-weight: 500;
    background: #fff;
    flex-direction: column;
    justify-content: center;
}

/* =========================================================
   SEARCH HELP (intro-searchhelp) - 추가
   ========================================================= */
.intro-searchhelp {
    /* 이미지 블록 */
}
.intro-searchhelp .intro-block__media {
    margin: 14px 0;
    padding: var(--spc40);
    border: none;
    background: #ededed;
}
.intro-searchhelp .intro-block__media img {
    width: 100%;
    height: auto;
    max-width: 2400px;
    margin: 0 auto;
    image-rendering: auto;
    backface-visibility: hidden;
}
.intro-searchhelp .intro-block__media--top {
    margin-top: 20px;
}
.intro-searchhelp .intro-block__media--main {
    margin: 14px 0;
}
.intro-searchhelp .intro-block__media--detail {
    margin-top: var(--spc16);
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__media {
        padding: 5px;
    }
}
.intro-searchhelp {
    /* 번호 목록 */
}
.intro-searchhelp .intro-block__list--num {
    margin: 0;
    padding: 0;
}
.intro-searchhelp .intro-block__list--num > li {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: var(--spc8);
    font-size: var(--font20);
}
.intro-searchhelp .intro-block__list--num > li::before {
    display: none;
}
.intro-searchhelp .intro-block__list--num > li {
    /* 항목 간 간격 */
}
.intro-searchhelp .intro-block__list--num > li + li {
    margin-top: var(--spc10);
}
.intro-searchhelp .intro-block__list--num > li.note {
    align-items: flex-start;
}
.intro-searchhelp .intro-block__list--num > li .note {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.intro-searchhelp .intro-block__list--num .num {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 20px;
    background: #ff3b2f;
    color: #fff;
    font-size: var(--font20);
    font-weight: 700;
    line-height: 1;
}
.intro-searchhelp {
    /* 상세검색 내부 섹션 간격 */
}
.intro-searchhelp .intro-block__subsections {
    margin-top: 14px;
    margin-bottom: var(--spc80);
    background: #ededed;
    padding: var(--spc40);
}
.intro-searchhelp .intro-block__subsections .noti {
    display: flex;
    align-items: center;
    font-size: var(--font20);
    margin-bottom: var(--spc40);
    gap: 8px;
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__subsections .noti {
        margin-bottom: 10px;
    }
}
.intro-searchhelp .intro-block__subsections .noti::before {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 6px;
    background: #6B6B6B;
    flex: 0 0 auto;
}
.intro-searchhelp .intro-block__subsections .extxt {
    font-size: var(--font20);
    margin-top: 20px;
    padding: 0 var(--spc40);
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__subsections {
        padding: 10px;
    }
}
.intro-searchhelp .intro-block__subsec {
    /* 섹션 분리 간격 */
    background: #fff;
    padding: 20px;
}
.intro-searchhelp .intro-block__subsec .intro-block__media {
    margin-top: 0;
    margin-bottom: 20px;
}
.intro-searchhelp .intro-block__subsec .intro-block__media.mid {
    width: 50%;
    margin: 0 auto;
    background: none;
    padding: 20px;
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__subsec .intro-block__media {
        margin-bottom: 10px;
    }
}
.intro-searchhelp .intro-block__subsec .intro-block__list--num > li {
    padding: 0 var(--spc40);
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__subsec .intro-block__list--num > li {
        padding: 0;
    }
}
@media screen and (max-width: 768px) {
    .intro-searchhelp .intro-block__subsec {
        padding: 10px;
    }
}
.intro-searchhelp {
    /* 점선 hr */
}
.intro-searchhelp .hr-section--dashed {
    border: 0;
    border-top: 1px dashed #000;
    height: 0;
    background: #fff;
}
.intro-searchhelp .hr-section + .noti {
    margin-top: 10px;
}

.mb80 {
    margin-bottom: var(--spc80) !important;
}

.media_group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spc24);
}
@media screen and (max-width: 768px) {
    .media_group {
        flex-direction: column;
    }
    .media_group .intro-block__media {
        width: 100%;
    }
}

.intro-blocks .pc-only {
    display: block;
}
.intro-blocks .mo-only {
    display: none;
}
@media (max-width: 768px) {
    .intro-blocks .pc-only {
        display: none;
    }
    .intro-blocks .mo-only {
        display: block;
    }
}

/* =========================================================
   OPENAPI (intro-openapi) - 추가
   ========================================================= */
.intro-openapi .openapi-group {
    margin-top: var(--spc40);
    padding: var(--spc40);
    background: rgba(219, 219, 219, 0.5019607843);
    border-radius: 30px;
}
.intro-openapi .openapi-desc-box__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc16);
    padding: var(--spc16);
    border-bottom: 1px solid #000;
}
.intro-openapi .openapi-desc-box__text {
    font-size: var(--font20);
    line-height: 1.8;
    margin: var(--spc40) 0;
    padding: 0 var(--spc16);
}
@media screen and (max-width: 768px) {
    .intro-openapi .openapi-desc-box__text br {
        display: none;
    }
}
.intro-openapi .openapi-section {
    margin-top: var(--spc60);
}
.intro-openapi .openapi-section__title {
    font-size: var(--font24);
    font-weight: 700;
    margin-bottom: var(--spc16);
    padding: var(--spc16);
    border-bottom: 1px solid #000;
}
.intro-openapi .openapi-section__content {
    margin: var(--spc40) 0;
    font-size: var(--font20);
    line-height: 1.8;
    padding: 0 var(--spc16);
}
.intro-openapi .openapi-section__content p {
    word-break: keep-all;
    overflow-wrap: break-word;
}
.intro-openapi .openapi-section__content p + p {
    margin-top: 10px;
}
.intro-openapi .openapi-download-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 10px 20px;
    border: 1px solid #000;
    border-radius: 999px;
    background: #fff;
    font-size: var(--font20);
    cursor: pointer;
}
@media screen and (max-width: 768px) {
    .intro-openapi .openapi-download-btn {
        width: 100%;
        text-align: center;
    }
}
.intro-openapi .openapi-list {
    margin-top: var(--spc40);
    display: flex;
    flex-direction: column;
    padding: 0 var(--spc16);
    gap: var(--spc36);
}
.intro-openapi .openapi-item__number {
    font-size: var(--font20);
    font-weight: 400;
    margin-bottom: var(--spc10);
    display: block;
}
.intro-openapi .openapi-item__body p {
    font-size: var(--font20);
    line-height: 1.8;
    margin-top: 10px;
}
.intro-openapi .openapi-item__url {
    margin-top: var(--spc10);
    font-size: var(--font20);
    line-height: 1.8;
    word-break: break-all;
}
.intro-openapi .openapi-example-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 10px 20px;
    border: 1px solid #000;
    border-radius: 999px;
    background: #fff;
    font-size: var(--font20);
    cursor: pointer;
}
@media screen and (max-width: 768px) {
    .intro-openapi .openapi-example-btn {
        width: 100%;
    }
}/*# sourceMappingURL=index.css.map */