@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 */
}

/**
 * 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;
  --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;
    --spc40: 24px;
    --spc64: 24px;
    --spc80: 48px;
    --spc120: 64px;
    --font14: 12px;
    --font16: 14px;
    --font20: 16px;
    --font24: 16px;
    --font32: 16px;
    --font40: 24px;
    --font48: 24px;
    --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_user.svg) no-repeat center/contain;
  mask: url(/images/icon/ic_user.svg) 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-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;
}

.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;
}
@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;
  }
}

.header-wrap {
  position: relative;
}

.header-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  height: var(--header-h);
}
.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;
  gap: 35px;
  font-size: 20px;
  font-weight: 700;
}
.header-gnb-menu .menu-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 40px;
}
.header-gnb-menu a {
  padding: 10px;
  color: inherit;
}

.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;
  }
}

.sub .header-container .header-logo {
  filter: invert(1);
}
.sub .header-gnb-menu a {
  color: #fff;
}
.sub .header-utils i {
  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/sns_blog_w.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: visible;
}
.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;
}
.main-section .swiper .swiper-button-prev::after,
.main-section .swiper .swiper-button-next::after {
  font-size: 16px;
  font-weight: bold;
}
.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 {
  /* ── 사이드바 국가 리스트 ───────────────────────── */
  /* ── 스테이지(지도, 마커, 카드) ─────────────────── */
  /* 지도 */
  /* 마커 */
  /* 카드 */
  /* 범례 */
}
.map .geo-map {
  background: #fff;
}
.map .geo-map__layout {
  display: grid;
  grid-template-columns: 352px 1fr;
  gap: 16px;
}
.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 .geo-map__stage {
  position: relative;
  border: 1px solid #e7e8ec;
  background: #fff;
  min-height: 440px;
  padding: 24px;
}
.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-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-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 .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;
}

.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 .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__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);
}
.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;
}

.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 { /* 제목은 유지 */ }
  .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 .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);
    /* 3등분 */
  }
  .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 .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;
  }
  .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);
  }
}
.item-detail {
  padding-top: 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: "›";
  font-size: var(--font20);
  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: 40px;
  border-bottom: 1px solid #000;
}
.item-detail__meta.no-detail {
  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 방지 */
  /* fraction pagination 커스텀 */
  /* 총 페이지 */
}
.viewer .swiper-display {
  width: 100%;
  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 .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 .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;
  }
}

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

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

.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: 110px 1fr;
}

.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;
}

/* ============================
   반응형
============================ */
/* 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 {
  /* 반응형 */
}
.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;
}
@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-search .battle-main-title {
  padding: 200px 0 120px 0;
  background: url(/images/content/battle-bg.png) no-repeat center center/cover;
}
.battle-search .battle-main-title .battle-title {
  font-size: var(--font48);
  color: #fff;
  font-weight: 700;
}
.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__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 .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__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 .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 .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;
}
@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;
  /* 공통 상단 타이틀 */
  /* 레이아웃 */
  /* 리스트 1줄 */
  /* 상태 텍스트 */
  /* 칩 버튼 */
}
.mypage .page-head {
  padding: var(--spc40) 0 var(--spc80);
}
.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;
}
.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__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 .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);
}
.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 .status {
  font-size: var(--font20);
  font-weight: 700;
  color: #000;
}
.mypage .status--reject {
  color: #9b9b9b;
}
.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;
  }
}

/* =========================
   로그인
   ========================= */
.login {
  margin-top: 120px;
  /* 상단 타이틀 */
  /* 폼 영역 */
  /* 하단 링크 */
  /* SNS 로그인 */
  /* 반응형 */
}
.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__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-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 .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;
}
@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;
  /* 공통 레이아웃 */
  /* 상단 타이틀 + 단계 표시 */
  /* 단계 진행바 */
  /* 단계 공통 섹션 */
  /* 구분 라인 타이틀 (일반 회원가입 / SNS 간편 회원가입 등) */
  /* 공통 패널 */
  /* 1단계: 유형 선택 */
  /* 2단계: 약관 동의 */
  /* 3단계: 회원정보 등록 */
  /* 4단계: 완료 */
  /* 버튼 공통 (회원가입 전용) */
  /* 반응형 */
}
.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 .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-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-step {
  margin-top: 40px;
}
.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-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 .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 .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 .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;
}
.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 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;
}
.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 .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 .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;
}
@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 {
  background: #fff;
  /* 공통 폼 */
  /* 결과 공통 */
  /* 아이디 찾기 결과용 테이블 */
  /* 버튼 정렬 */
  /* 반응형 */
}
.find-page__body {
  padding: 0 0 120px;
}
.find-page .find-page__inner {
  max-width: 640px;
  margin: 0 auto;
}
.find-page .find-page__inner--result {
  max-width: 720px;
}
.find-page .find-form {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.find-page .find-form__row {
  width: 100%;
}
.find-page .find-form__row--email,
.find-page .find-form__row--tel {
  margin-top: 8px;
}
.find-page .find-form__email {
  display: flex;
  align-items: center;
  gap: 8px;
}
.find-page .find-form__tel {
  display: flex;
  align-items: center;
  gap: 8px;
}
.find-page .find-form__at,
.find-page .find-form__dash {
  font-size: 14px;
}
.find-page .find-form__email .form-input,
.find-page .find-form__tel .form-input,
.find-page .find-form__tel .form-input--select {
  flex: 1;
}
.find-page .find-form__tel .form-input--select {
  max-width: 160px;
}
.find-page .find-result {
  margin-top: 72px;
  text-align: center;
}
.find-page .find-result__message {
  font-size: 14px;
  color: #333;
  margin: 40px 0;
}
.find-page .find-result__line {
  height: 1px;
  background: #111;
}
.find-page .find-result__actions {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.find-page .find-result__table {
  margin-top: 40px;
  font-size: 14px;
  text-align: left;
}
.find-page .find-result__line--top {
  margin-bottom: 0;
}
.find-page .find-result__line--bottom {
  margin-top: 0;
}
.find-page .find-result__row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  padding: 16px 0;
  border-bottom: 1px solid #eee;
}
.find-page .find-result__row:last-of-type {
  border-bottom: none;
}
.find-page .find-result__th {
  font-weight: 500;
}
.find-page .find-result__td {
  color: #333;
}
.find-page .find-actions {
  margin-top: 32px;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.find-page .find-actions__back {
  min-width: 48px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
}
.find-page .find-actions__submit {
  min-width: 180px;
}
@media (max-width: 768px) {
  .find-page__body {
    padding-bottom: 80px;
  }
  .find-page .find-page__inner,
  .find-page .find-page__inner--result {
    max-width: 100%;
  }
  .find-page .find-form {
    margin-top: 32px;
  }
  .find-page .find-result__row {
    grid-template-columns: 90px minmax(0, 1fr);
  }
  .find-page .find-result__message {
    margin: 32px 0;
  }
}

/* ============================
   필사 등록 페이지 
   ============================ */
.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__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 .archive-detail-image img {
  max-width: 100%;
  max-height: 520px;
  -o-object-fit: contain;
  object-fit: contain;
  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 {
    /* 마지막 value 아래 여백 제거 */
  }
  .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 .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: #E35A10;
  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 {
  color: #E35A10;
  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 .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;
  }
}
/* ============================
   아카이브 전시
   ============================ */
.archiveexh-page {
  flex-grow: 1;
  padding: var(--header-h) 0 var(--spc80);
}

.archiveexh-detail-page {
  padding-bottom: var(--spc40);
}

.archiveexh-cont {
  padding-top: var(--spc80);
}

.archiveexh-list {
  /* 기본은 가로 채움(왼→오) */
  --cols: 4;
  display: grid;
  grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
  gap: var(--spc24);
  margin-bottom: var(--spc80);
  /* ✅ (가능한 브라우저에서만) 진짜 masonry 적용 */
  /* ✅ JS masonry 보강을 쓸 경우(아래 JS 코드 적용 시) */
}
@media screen and (max-width: 1280px) {
  .archiveexh-list {
    --cols: 2;
  }
}
@media screen and (max-width: 768px) {
  .archiveexh-list {
    --cols: 1;
  }
}
@supports (grid-template-rows: masonry) {
  .archiveexh-list {
    grid-template-rows: masonry;
    align-tracks: start; /* 일부 구현에서 상단 정렬 보조 */
  }
}
.archiveexh-list.has-masonry {
  position: relative; /* JS 보강 시 컨테이너 높이 계산용 */
}

.archiveexh-item {
  border: 1px solid #000000;
  margin-bottom: 0; /* grid gap 사용 */
  /* JS masonry 보강을 쓰는 경우(옵션) */
  /* ✅ 카드 높이 “내용 길이대로” 늘어나게 유지 (기존대로 OK)
     - img 영역은 aspect-ratio로 고정이라 높이가 같고
     - 아래 .archiveexh-desc가 길어질수록 li가 더 길어짐
     → 그래서 ‘들쑥날쑥’은 desc 길이에 따라 자연스럽게 발생합니다.
  */
}
.archiveexh-list.has-masonry .archiveexh-item {
  will-change: transform;
}
.archiveexh-item a {
  color: inherit;
}
.archiveexh-item .img-figure {
  position: relative;
  aspect-ratio: 381/263;
  overflow: hidden;
}
.archiveexh-item .img-figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: scale 0.4s ease-in-out;
}
.archiveexh-item .img-desc {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  padding: var(--spc16);
  color: #fff;
  line-height: 1.4;
  background-color: rgba(0, 0, 0, 0.4);
}
.archiveexh-item:hover .img-figure img {
  scale: 1.1;
}

.archiveexh-desc {
  display: flex;
  flex-direction: column;
  gap: var(--spc8);
  padding: var(--spc24);
  font-size: var(--font20);
  line-height: 1.4;
  word-break: keep-all;
}
.archiveexh-desc .tit {
  font-size: var(--font24);
  font-weight: 700;
}
.archiveexh-desc .capt {
  opacity: 0.6;
}
.archiveexh-desc .desc {
  margin-top: var(--spc8);
}

.line-group:not(:has(.line))::before, .line-group:not(:has(.line))::after {
  content: "";
  flex: 1 1 auto;
  min-width: 0;
  height: 1px;
  background: #000;
}

.archiveexh-detail-desc {
  width: calc(75% - 36px);
  display: flex;
  flex-direction: column;
  gap: var(--spc16);
  font-size: var(--font20);
  line-height: 1.4;
}
.archiveexh-detail-desc .page-head__title {
  margin-bottom: var(--spc24);
}
.archiveexh-detail-desc.d--revers {
  margin-left: auto;
}
.archiveexh-detail-desc.d--full {
  width: 100%;
}
@media screen and (max-width: 1280px) {
  .archiveexh-detail-desc {
    width: 100%;
  }
}

.archiveexh-wrapper {
  display: flex;
  align-items: stretch;
  margin: var(--spc40) 0;
  gap: var(--spc40);
}
.archiveexh-wrapper.d--revers {
  flex-direction: row-reverse;
}
@media screen and (max-width: 1280px) {
  .archiveexh-wrapper {
    flex-direction: column !important;
  }
}

.archiveexh-gallery {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: var(--spc40);
  padding: var(--spc40);
  background-color: rgba(0, 0, 0, 0.03);
  overflow: hidden;
}

.archiveexh-img {
  flex-grow: 1;
  display: flex;
  justify-content: space-between;
  gap: var(--spc24);
  overflow: hidden;
}
.archiveexh-img .img {
  flex-grow: 1;
}
.archiveexh-img img {
  width: auto;
  height: 100%;
  max-width: 100%;
  -o-object-fit: cover;
  object-fit: cover; /* 전체 보임 */
  display: block;
}

.archiveexh-caption {
  width: calc((100% - var(--spc40)) / 4);
  flex-shrink: 0;
  display: flex;
}
.archiveexh-caption .img-source {
  flex-grow: 1;
  border: 1px solid #000;
}
@media screen and (max-width: 1280px) {
  .archiveexh-caption {
    width: auto;
  }
  .archiveexh-caption br {
    display: none;
  }
}

.img-source-list {
  display: flex;
  flex-direction: column;
  gap: var(--spc24);
  padding: var(--spc24);
  line-height: 1.4;
  font-size: var(--font16);
  word-break: keep-all;
}

.archiveexh-gallery-main {
  width: 100%;
  height: 560px;
  padding-bottom: var(--spc40);
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.archiveexh-gallery-main.oneimg {
  border-bottom: 0;
}
.archiveexh-gallery-main .img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.archiveexh-gallery-main .img img {
  max-width: 100%;
  max-height: 100%;
  min-width: 300px;
  min-height: 300px;
  -o-object-fit: contain;
  object-fit: contain;
}
@media screen and (max-width: 1280px) {
  .archiveexh-gallery-main {
    height: auto;
  }
  .archiveexh-gallery-main .swiper-wrapper {
    align-items: center;
  }
}

.archiveexh-gallery-main.swiper .swiper-button-prev,
.archiveexh-gallery-main.swiper .swiper-button-next,
.archiveexh-gallery-thumb.swiper .swiper-button-prev,
.archiveexh-gallery-thumb.swiper .swiper-button-next {
  width: 64px;
  height: 64px;
  margin-top: -32px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.6);
  color: currentColor;
}
.archiveexh-gallery-main.swiper .swiper-button-prev::after,
.archiveexh-gallery-main.swiper .swiper-button-next::after,
.archiveexh-gallery-thumb.swiper .swiper-button-prev::after,
.archiveexh-gallery-thumb.swiper .swiper-button-next::after {
  font-size: 24px;
  font-weight: bold;
}
@media screen and (max-width: 1280px) {
  .archiveexh-gallery-main.swiper .swiper-button-prev,
  .archiveexh-gallery-main.swiper .swiper-button-next,
  .archiveexh-gallery-thumb.swiper .swiper-button-prev,
  .archiveexh-gallery-thumb.swiper .swiper-button-next {
    width: 40px;
    height: 40px;
    margin-top: -20px;
  }
  .archiveexh-gallery-main.swiper .swiper-button-prev::after,
  .archiveexh-gallery-main.swiper .swiper-button-next::after,
  .archiveexh-gallery-thumb.swiper .swiper-button-prev::after,
  .archiveexh-gallery-thumb.swiper .swiper-button-next::after {
    font-size: 16px;
  }
}

.archiveexh-gallery-thumb {
  box-sizing: content-box;
  max-width: 100%;
  height: 120px;
}
.archiveexh-gallery-thumb .img {
  height: 100%;
}
.archiveexh-gallery-thumb .img img {
  height: 100%;
}
.archiveexh-gallery-thumb .swiper-slide {
  width: auto;
  opacity: 0.4;
}
.archiveexh-gallery-thumb .swiper-slide-thumb-active {
  opacity: 1;
}
@media screen and (max-width: 1280px) {
  .archiveexh-gallery-thumb {
    height: 80px;
  }
}

.hr-section {
  margin: var(--spc80) 0;
  border-top-color: #000;
}

.acc__list {
  display: flex;
  flex-direction: column;
  gap: var(--spc16);
  font-size: var(--font20);
  line-height: 1.5;
}
.acc__list dl {
  font-weight: 700;
  color: rgba(0, 0, 0, 0.38);
}
.acc__list a {
  color: inherit;
  text-decoration: underline;
}
.acc__list + .acc__list {
  margin-top: var(--spc40);
}

.light {
  color: #E35A10;
}

.author {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-top: 10px;
}
.author .txt {
  font-size: var(--font20);
}

@media screen and (max-width: 768px) {
  .archiveexh-list.has-masonry {
    height: auto !important;
  }
  .archiveexh-list.has-masonry .archiveexh-item {
    position: static !important;
    width: auto !important;
    transform: none !important;
  }
}/*# sourceMappingURL=index.css.map */