@charset "utf-8";
/* ============================================================
   게시판 구현 보조 스타일 (퍼블리싱 CSS 는 수정하지 않음)
   - 토스트 알림, 허니팟, 에러 페이지, 에디터 본문(ck-content) 최소 스타일
   ============================================================ */

/* 토스트 */
.sd-toast-wrap {position: fixed; left: 50%; bottom: 32px; transform: translateX(-50%); z-index: 9999; display: flex; flex-direction: column; row-gap: 10px; width: min(520px, calc(100% - 32px)); pointer-events: none;}
.sd-toast {pointer-events: auto; padding: 14px 20px; border-radius: 8px; background-color: var(--color-bg2, #07152F); color: var(--color-white, #fff); font-size: var(--fs-15, 15px); line-height: 1.6; box-shadow: 0 8px 24px rgba(0,0,0,0.18); animation: sd-toast-in 0.25s ease-out; word-break: keep-all; cursor: pointer;}
.sd-toast.success {background-color: var(--color-static1, #0033A0);}
.sd-toast.error {background-color: var(--color-red, #D92D20);}
.sd-toast.is-hide {opacity: 0; transform: translateY(8px); transition: opacity 0.6s, transform 0.6s;}
@keyframes sd-toast-in {from {opacity: 0; transform: translateY(12px);} to {opacity: 1; transform: none;}}

/* 허니팟 (봇 차단) — display:none 대신 화면 밖으로 */
.sd-hp {position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; opacity: 0;}

/* 에러 페이지 */
.sd-error-section {padding-block: var(--space-160, 120px); text-align: center;}
.sd-error-section .section-sub {margin-top: 12px;}
.sd-error-section .sd-error-msg {margin-top: 12px; color: var(--color-font3, #6B7280);}
.sd-error-section .btn-list {justify-content: center; margin-top: var(--fs-40, 40px);}

/* 오시는길 네이버 지도 (퍼블리싱 .map-box 크기·라운드 그대로 사용) */
.location-section .access-area .naver-map-box {position: relative; background-color: var(--color-bg1, #F7F9FC);}
.location-section .access-area .naver-map-box .naver-map {position: absolute; inset: 0; width: 100%; height: 100%;}
.location-section .access-area .naver-map-box .naver-map-fallback {position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; row-gap: 6px; color: var(--color-static1, #0033A0); text-decoration: none;}
.location-section .access-area .naver-map-box .naver-map-fallback[hidden] {display: none;} /* display:flex 가 hidden 속성을 덮지 않도록 */
.location-section .access-area .naver-map-box .naver-map-fallback .body-large {text-decoration: underline; text-underline-offset: 4px;}
.location-section .access-area .naver-map-box .naver-map-fallback .body-small {color: var(--color-font3, #6B7280);}

/* 비밀번호 확인 페이지: 읽기전용 입력 */
.qna-verify-section .custom-input[readonly] {background-color: var(--gray-50, #F8F9FB); color: var(--gray-500, #667085);}
.qna-verify-section .input-list-wrap {max-width: 640px;}

/* 에디터 본문 (공지 내용 / Q&A 답변) — 퍼블리싱 .board-view-cont p 스타일을 그대로 상속 */
.ck-content {font-size: var(--fs-16, 16px); line-height: 1.7; color: var(--color-font2, #4B5563); word-break: break-word;}
.ck-content h2, .ck-content h3, .ck-content h4 {font-weight: 600; color: var(--color-font1, #111827); margin: 1.2em 0 0.5em; line-height: 1.3;}
.ck-content h2 {font-size: var(--fs-28, 28px);}
.ck-content h3 {font-size: var(--fs-24, 24px);}
.ck-content h4 {font-size: var(--fs-20, 20px);}
.ck-content p + p {margin-top: 0.4em;}
.ck-content ul, .ck-content ol {padding-left: 1.4em; margin: 0.6em 0;}
.ck-content ul > li {list-style: disc;}
.ck-content ol > li {list-style: decimal;}
.ck-content blockquote {margin: 1em 0; padding: 0.6em 1em; border-left: 4px solid var(--color-static1, #0033A0); background-color: var(--color-bg1, #F7F9FC); font-style: normal;}
.ck-content a {color: var(--color-static1, #0033A0); text-decoration: underline;}
.ck-content img {max-width: 100%; height: auto; display: block;}
.ck-content figure {margin: 1.2em 0;}
.ck-content figure.image {margin-inline: auto; text-align: center;}
.ck-content figure.image img {margin-inline: auto;}
.ck-content figure.image-style-side {float: right; max-width: 50%; margin-left: 1.5em;}
.ck-content figure.image-style-align-left {float: left; max-width: 50%; margin-right: 1.5em;}
.ck-content figure.image-style-align-right {float: right; max-width: 50%; margin-left: 1.5em;}
.ck-content figure.image-style-align-center {margin-inline: auto;}
.ck-content figure.image-style-block-align-left {margin-right: auto; margin-left: 0;}
.ck-content figure.image-style-block-align-right {margin-left: auto; margin-right: 0;}
.ck-content figure.image.image_resized {max-width: 100%; box-sizing: border-box; display: block;}
.ck-content figure.image.image_resized img {width: 100%;}
.ck-content .image-inline {display: inline-flex; max-width: 100%; align-items: flex-start; vertical-align: middle;}
.ck-content .image-inline img {display: inline-block; max-width: 100%;}
.ck-content .image-inline.image_resized img {width: 100%;}
.ck-content .image_resized.image-inline {display: inline-flex;}
.ck-content figure.media {clear: both; margin: 1.2em 0;}
.ck-content figure.media iframe {max-width: 100%; border: 0;}
.ck-content .text-tiny {font-size: 0.7em;} .ck-content .text-small {font-size: 0.85em;} .ck-content .text-big {font-size: 1.4em;} .ck-content .text-huge {font-size: 1.8em;}
.ck-content ul[style*="list-style-type"] > li, .ck-content ol[style*="list-style-type"] > li {list-style: inherit;}
.ck-content p[style*="text-align"], .ck-content h2[style*="text-align"], .ck-content h3[style*="text-align"], .ck-content h4[style*="text-align"] {word-break: keep-all;}
.ck-content h2[style*="text-align"], .ck-content h3[style*="text-align"], .ck-content h4[style*="text-align"] {display: block;}
.ck-content hr {height: 0;}
.ck-content code {font-family: monospace; background-color: var(--color-bg1, #F7F9FC); padding: 0.1em 0.4em; border-radius: 3px; font-size: 0.9em;}
.ck-content figcaption {font-size: var(--fs-14, 14px); color: var(--color-font3, #6B7280); text-align: center; margin-top: 6px;}
.ck-content .table {margin: 1em 0; overflow-x: auto;}
.ck-content table {width: 100%; border-collapse: collapse; font-size: var(--fs-15, 15px);}
.ck-content table th, .ck-content table td {border: 1px solid var(--color-border1, #E5E7EB); padding: 8px 12px; vertical-align: top;}
.ck-content table th {background-color: var(--color-bg1, #F7F9FC); font-weight: 600;}
.ck-content hr {border: 0; border-top: 1px solid var(--color-border1, #E5E7EB); margin: 1.5em 0;}
.ck-content::after {content: ''; display: block; clear: both;}

/* CKEditor 편집 영역 본문 톤 맞춤 */
.ck.ck-editor__editable_inline {font-size: var(--fs-16, 16px); line-height: 1.7;}

/* ============================================================
   메인 팝업 레이어 (관리자 > 팝업 관리) — 퍼블리싱과 독립된 신규 요소
   ============================================================ */
.sd-popup-overlay {position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; background-color: rgba(7, 21, 47, 0.62); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); animation: sd-popup-fade 0.25s ease-out;}
.sd-popup-overlay[hidden] {display: none;}
.sd-popup {position: relative; display: flex; flex-direction: column; max-width: min(92vw, 720px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); background-color: var(--color-white, #fff); border-radius: 14px; overflow: hidden; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35); animation: sd-popup-up 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);}
.sd-popup-track {position: relative; flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; background-color: var(--gray-50, #F8F9FB);}
.sd-popup:focus {outline: none;}
.sd-popup-slide {display: block;}
.sd-popup-slide[hidden] {display: none;}
.sd-popup-slide img {display: block; width: 100%; height: auto; max-height: calc(100vh - 32px - 56px); max-height: calc(100dvh - 32px - 56px); object-fit: contain; margin: 0 auto;}
.sd-popup-slide a {display: block; cursor: pointer;}
.sd-popup-x {position: absolute; top: 10px; right: 10px; z-index: 2; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background-color: rgba(7, 21, 47, 0.55); color: #fff; transition: background-color 0.15s; cursor: pointer;}
.sd-popup-x:hover {background-color: rgba(7, 21, 47, 0.85);}
.sd-popup-nav {position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background-color: rgba(255, 255, 255, 0.9); color: var(--color-bg2, #07152F); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18); transition: background-color 0.15s, transform 0.15s; cursor: pointer;}
.sd-popup-nav:hover {background-color: #fff;}
.sd-popup-nav.prev {left: 10px;} .sd-popup-nav.next {right: 10px;}
.sd-popup-foot {flex: none; display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 8px 0 18px; border-top: 1px solid var(--color-border1, #E5E7EB); background-color: var(--color-white, #fff);}
.sd-popup-dots {display: inline-flex; gap: 6px; margin-right: auto;}
.sd-popup-dots button {width: 8px; height: 8px; border-radius: 50%; background-color: var(--color-border1, #E5E7EB); transition: background-color 0.15s, transform 0.15s; cursor: pointer; padding: 0;}
.sd-popup-dots button.active {background-color: var(--color-static1, #0033A0); transform: scale(1.25);}
.sd-popup-today {display: inline-flex; align-items: center; gap: 8px; margin-left: auto; font-size: var(--fs-14, 14px); color: var(--color-font3, #6B7280); cursor: pointer; user-select: none; white-space: nowrap;}
.sd-popup-dots + .sd-popup-today {margin-left: 0;}
.sd-popup-today input {width: 16px; height: 16px; accent-color: var(--color-static1, #0033A0); margin: 0; cursor: pointer;}
.sd-popup-close {height: 40px; padding: 0 16px; border-radius: 8px; font-size: var(--fs-14, 14px); font-weight: 600; color: var(--color-font1, #111827); transition: background-color 0.15s; cursor: pointer; white-space: nowrap;}
.sd-popup-close:hover {background-color: var(--gray-100, #F1F3F6);}
@keyframes sd-popup-fade {from {opacity: 0;} to {opacity: 1;}}
@keyframes sd-popup-up {from {opacity: 0; transform: translateY(16px) scale(0.98);} to {opacity: 1; transform: none;}}
@media (max-width: 767px) {
    .sd-popup {max-width: 100%; border-radius: 12px;}
    .sd-popup-foot {padding-left: 12px; gap: 10px;}
    .sd-popup-nav {width: 34px; height: 34px;}
}
@media (prefers-reduced-motion: reduce) {.sd-popup-overlay, .sd-popup {animation: none;}}
html.sd-popup-open {overflow: hidden;}
