@charset "UTF-8";

:root {
    --gz-primary: #4f46e5;
    --gz-primary-dark: #312e81;
    --gz-primary-soft: #eef2ff;
    --gz-accent: #f59e0b;
    --gz-ink: #0f172a;
    --gz-muted: #64748b;
    --gz-line: #e2e8f0;
    --gz-surface: #ffffff;
    --gz-canvas: #f8fafc;
    --gz-radius-sm: 0.875rem;
    --gz-radius-md: 1.35rem;
    --gz-radius-lg: 2rem;
    --gz-radius-hero: clamp(1.75rem, 3.3vw, 3rem);
    --gz-shadow-card: 0 12px 34px rgba(15, 23, 42, 0.07);
    --gz-shadow-hero: 0 28px 70px rgba(30, 41, 59, 0.22);
}

html { scroll-behavior: smooth; }

body.gz-theme {
    color: var(--gz-ink);
    font-family: "Noto Sans KR", "Pretendard", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    letter-spacing: -0.022em;
    background-color: var(--gz-canvas) !important;
    background-image:
        radial-gradient(circle at 8% 0%, rgba(99, 102, 241, 0.09), transparent 29rem),
        radial-gradient(circle at 96% 14%, rgba(245, 158, 11, 0.055), transparent 25rem) !important;
    background-attachment: fixed;
}

body.gz-theme *, body.gz-theme *::before, body.gz-theme *::after { box-sizing: border-box; }
body.gz-theme h1, body.gz-theme h2, body.gz-theme h3 { letter-spacing: -0.042em; text-wrap: balance; }
body.gz-theme p { word-break: keep-all; }
body.gz-theme img { image-rendering: auto; }
body.gz-theme ::selection { background: #c7d2fe; color: #1e1b4b; }

body.gz-theme .gz-site-header-shell {
    top: 0.75rem !important;
    z-index: 120 !important;
}

body.gz-theme header.gz-site-header-shell {
    width: min(100% - 1.5rem, 80rem) !important;
    margin: 0.75rem auto 1.5rem !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    border-radius: 1.65rem !important;
    overflow: hidden;
    background: rgba(255,255,255,.91) !important;
    box-shadow: 0 14px 40px rgba(15,23,42,.10) !important;
    backdrop-filter: blur(18px);
}

body.gz-theme nav.gz-site-header-shell > div:first-child {
    border: 1px solid rgba(255,255,255,.9) !important;
    border-radius: 1.75rem !important;
    background: rgba(255,255,255,.91) !important;
    box-shadow: 0 14px 40px rgba(15,23,42,.09) !important;
    backdrop-filter: blur(18px);
}

body.gz-theme .gz-unified-hero {
    position: relative;
    isolation: isolate;
    margin-bottom: clamp(2rem, 5vw, 4.5rem) !important;
}

body.gz-theme .gz-unified-hero-card {
    position: relative !important;
    border-radius: var(--gz-radius-hero) !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    box-shadow: var(--gz-shadow-hero) !important;
}

body.gz-theme .gz-unified-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.09);
    z-index: 1;
}

body.gz-theme .gz-unified-hero .gz-hero-title {
    max-width: 56rem;
    font-family: "Noto Sans KR", "Pretendard", sans-serif !important;
    font-size: clamp(2.15rem, 5.1vw, 4.75rem) !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.058em !important;
    text-wrap: balance;
    word-break: keep-all;
}

body.gz-theme .gz-unified-hero .gz-hero-copy {
    max-width: 46rem;
    font-size: clamp(.95rem, 1.65vw, 1.18rem) !important;
    line-height: 1.8 !important;
    letter-spacing: -0.02em;
    word-break: keep-all;
}

body.gz-theme .gz-theme-card {
    border-color: rgba(226,232,240,.92) !important;
    box-shadow: var(--gz-shadow-card);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

@media (hover:hover) {
    body.gz-theme .gz-theme-card:hover {
        transform: translateY(-3px);
        border-color: rgba(165,180,252,.8) !important;
        box-shadow: 0 20px 48px rgba(30,41,59,.12);
    }
}

body.gz-theme .gz-theme-button {
    min-height: 2.75rem;
    border-radius: var(--gz-radius-sm) !important;
    font-family: inherit !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease !important;
}

@media (hover:hover) {
    body.gz-theme .gz-theme-button:hover { transform: translateY(-1px); }
}

body.gz-theme input:not([type="checkbox"]):not([type="radio"]),
body.gz-theme select,
body.gz-theme textarea {
    font-family: inherit !important;
    border-radius: var(--gz-radius-sm);
}

body.gz-theme input:focus, body.gz-theme select:focus, body.gz-theme textarea:focus {
    outline: none;
    border-color: #818cf8 !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,.13);
}

body.gz-dashboard .gz-dashboard-panel,
body.gz-dashboard main > section,
body.gz-dashboard main > div[class*="bg-white"][class*="rounded"] {
    border-color: var(--gz-line) !important;
    box-shadow: var(--gz-shadow-card);
}

body.gz-theme .gz-static-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4rem) !important;
    border-radius: var(--gz-radius-hero);
    color: #fff;
    text-align: left !important;
    background:
        radial-gradient(circle at 88% 15%, rgba(245,158,11,.2), transparent 18rem),
        linear-gradient(135deg, #312e81 0%, #4338ca 52%, #0f172a 100%);
    box-shadow: var(--gz-shadow-hero);
}

body.gz-theme .gz-static-hero h1,
body.gz-theme .gz-static-hero h2 { color: #fff !important; }
body.gz-theme .gz-static-hero p { color: rgba(255,255,255,.78) !important; }

@media (max-width: 768px) {
    body.gz-theme { background-attachment: scroll; }
    body.gz-theme .gz-site-header-shell { top: .45rem !important; }
    body.gz-theme header.gz-site-header-shell { width: calc(100% - 1rem) !important; margin: .5rem auto 1rem !important; border-radius: 1.25rem !important; }
    body.gz-theme nav.gz-site-header-shell { padding-left: .5rem !important; padding-right: .5rem !important; margin-bottom: 1rem !important; }
    body.gz-theme nav.gz-site-header-shell > div:first-child { border-radius: 1.35rem !important; }
    body.gz-theme .gz-unified-hero { margin-bottom: 2rem !important; }
    body.gz-theme .gz-unified-hero-card { border-radius: 1.6rem !important; }
    body.gz-theme .gz-unified-hero .gz-hero-title { font-size: clamp(2rem, 10.5vw, 3.2rem) !important; }
    body.gz-theme .gz-unified-hero [class*="min-h-[620px]"] { min-height: 0 !important; }
    body.gz-theme .gz-unified-hero-card[class*="h-[400px]"] { height: 22rem !important; }
    body.gz-theme .gz-static-hero { border-radius: 1.6rem; padding: 2rem 1.35rem !important; }
}

@media (max-width: 640px) {
    body.gz-theme { padding-bottom: 5.8rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    body.gz-theme *, body.gz-theme *::before, body.gz-theme *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* v10 전체 공개 페이지 공통 폭 및 헤더-히어로 간격 */
:root{
    --gz-page-max-width:80rem;
    --gz-page-content-width:78rem;
    --gz-page-gutter:1rem;
    --gz-header-hero-gap:1.25rem;
}

/* 공통 Header의 카드와 본문 콘텐츠가 같은 좌우선에 놓이도록 고정합니다. */
body.gz-public-page nav.gz-site-header-shell{
    width:100%!important;
    max-width:var(--gz-page-max-width)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-bottom:0!important;
    padding-left:var(--gz-page-gutter)!important;
    padding-right:var(--gz-page-gutter)!important;
}
body.gz-public-page header.gz-site-header-shell{
    width:min(calc(100% - 2rem),var(--gz-page-content-width))!important;
    max-width:var(--gz-page-content-width)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-bottom:0!important;
}
body.gz-public-page main{
    width:100%!important;
    max-width:var(--gz-page-max-width)!important;
    margin-top:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-top:0!important;
    padding-left:var(--gz-page-gutter)!important;
    padding-right:var(--gz-page-gutter)!important;
}
body.gz-public-page main>:first-child:not([data-gz-hero]):not(.gz-unified-hero){margin-top:0!important}

/* Tailwind mt-5와 동일한 20px을 헤더와 첫 히어로 사이의 유일한 간격으로 사용합니다. */
body.gz-public-page [data-gz-hero],
body.gz-public-page .gz-unified-hero{
    margin-top:var(--gz-header-hero-gap)!important;
}

/* notice.php 기준 히어로 규격: 모바일 256px, 768px 이상 320px */
body.gz-public-page .gz-notice-hero,
body.gz-public-page .gz-sitemap-hero{
    height:16rem!important;
    min-height:16rem!important;
    max-height:16rem!important;
}
@media (min-width:768px){
    body.gz-public-page .gz-notice-hero,
    body.gz-public-page .gz-sitemap-hero{
        height:20rem!important;
        min-height:20rem!important;
        max-height:20rem!important;
    }
}

/* 페이지 전용 편집창은 고정 헤더와 공통 버튼보다 항상 위에 표시합니다. */
body.gz-theme .fixed.inset-0,
body.gz-theme [role="dialog"],
body.gz-theme [aria-modal="true"]{
    z-index:2147483400!important;
}

#gz-action-dock{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:2147483000;display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid rgba(226,232,240,.92);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 20px 55px rgba(15,23,42,.18);backdrop-filter:blur(16px)}
#gz-action-dock a,#gz-action-dock button{width:74px;min-height:62px;border:0;border-radius:16px;background:#fff;color:#334155;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:900 11px/1.2 "Noto Sans KR",sans-serif;cursor:pointer;box-shadow:inset 0 0 0 1px #e2e8f0;transition:.18s}
#gz-action-dock i{font-size:21px;color:#4f46e5}#gz-action-dock a:hover,#gz-action-dock button:hover,#gz-action-dock a:focus-visible,#gz-action-dock button:focus-visible{background:#eef2ff;color:#312e81;transform:translateX(-2px);outline:3px solid rgba(99,102,241,.15)}
#gz-action-dock [data-action="chatbot"]{background:linear-gradient(135deg,#312e81,#6d28d9);color:#fff;box-shadow:none}#gz-action-dock [data-action="chatbot"] i{color:#fff}

#gz-admin-alerts{position:fixed;right:18px;top:18px;z-index:2147483200;font-family:"Noto Sans KR",sans-serif}.gz-admin-alert-button{display:flex;align-items:center;gap:7px;border:0;border-radius:999px;background:#0f172a;color:#fff;padding:9px 13px;box-shadow:0 12px 35px rgba(15,23,42,.28);font:900 12px "Noto Sans KR",sans-serif;cursor:pointer}.gz-admin-alert-button i{color:#fbbf24;font-size:17px}.gz-admin-alert-button b{display:grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:#ef4444;font-size:10px}.gz-admin-alert-panel{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));overflow:hidden;border:1px solid #dbe2ea;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}.gz-admin-alert-panel.open{display:block}.gz-admin-alert-panel header{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;background:#0f172a;color:#fff}.gz-admin-alert-panel header small,.gz-admin-alert-panel header strong{display:block}.gz-admin-alert-panel header small{font-size:8px;letter-spacing:.14em;opacity:.65}.gz-admin-alert-panel header strong{font-size:15px;margin-top:2px}.gz-admin-alert-panel header button{border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}.gz-admin-alert-panel>div{padding:8px}.gz-admin-alert-panel a{display:flex;align-items:center;gap:10px;padding:11px;border-radius:12px;text-decoration:none;color:#0f172a}.gz-admin-alert-panel a:hover{background:#eef2ff}.gz-admin-alert-panel a>i{font-size:20px;color:#4f46e5}.gz-admin-alert-panel a span{min-width:0;flex:1}.gz-admin-alert-panel a b,.gz-admin-alert-panel a small{display:block}.gz-admin-alert-panel a b{font-size:12px}.gz-admin-alert-panel a small{font-size:10px;color:#64748b;margin-top:2px}.gz-admin-alert-panel a em{font-style:normal;font-size:10px;font-weight:900;color:#4f46e5}.gz-admin-alert-panel>[data-read]{width:100%;border:0;border-top:1px solid #e2e8f0;background:#f8fafc;padding:11px;font:900 11px "Noto Sans KR",sans-serif;color:#475569;cursor:pointer}

@media(max-width:760px){#gz-action-dock{left:8px;right:8px;top:auto;bottom:8px;transform:none;flex-direction:row;justify-content:space-between;gap:5px;padding:6px;border-radius:18px}#gz-action-dock a,#gz-action-dock button{width:auto;flex:1;min-height:52px;border-radius:13px;font-size:9px}#gz-action-dock i{font-size:18px}body.gz-public-page{padding-bottom:74px!important}#gz-admin-alerts{right:10px;top:10px}.gz-admin-alert-button span{display:none}}

/* v7.2.13 첨부 원본 편집툴 전용 공통 실행 아이콘 */
.gz-native-edit-launcher{
    position:fixed;
    right:22px;
    top:92px;
    z-index:2147483150;
    width:68px;
    height:68px;
    padding:0;
    border:1px solid rgba(199,210,254,.96);
    border-radius:22px;
    background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(224,231,255,.99));
    color:#4338ca;
    box-shadow:0 18px 44px rgba(67,56,202,.24),inset 0 0 0 1px rgba(255,255,255,.72);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    backdrop-filter:blur(18px);
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.gz-native-edit-launcher i{font-size:32px;line-height:1;color:#4f46e5}
.gz-native-edit-launcher:hover{transform:translateY(-3px) scale(1.04);background:linear-gradient(145deg,#fff,#c7d2fe);box-shadow:0 24px 54px rgba(67,56,202,.30)}
.gz-native-edit-launcher:active{transform:translateY(-1px) scale(.98)}
.gz-native-edit-launcher:focus-visible{outline:4px solid rgba(99,102,241,.28);outline-offset:4px}
@media(max-width:760px){
    .gz-native-edit-launcher{right:12px;top:auto;bottom:82px;width:60px;height:60px;border-radius:20px}
    .gz-native-edit-launcher i{font-size:29px}
}
