@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');

/* ==================== 공통 기본 스타일 ==================== */
:root {--blue:#361bd2; --ink:#181824; --muted:#777783; --line:#e9e9ef; --pale:#f4f2ff;}
* {box-sizing:border-box;}
html {scroll-behavior:smooth; scroll-padding-top:90px;}
body {margin:0; background:#fff; color:var(--ink); font-family:'Noto Sans KR',Arial,sans-serif; font-size:15px; line-height:1.65; letter-spacing:-.035em;}
button,input,select,textarea {font:inherit;}
a {color:inherit; text-decoration:none;}
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent;}
button,a {touch-action:manipulation;}
button {cursor:pointer;}
button:disabled {cursor:wait; opacity:.6;}
a:focus-visible,button:focus-visible {outline:3px solid #b9aaff; outline-offset:5px;}
h1,h2,h3,p {margin:0;}
svg {flex-shrink:0;}
h1,h2,h3 {line-height:1.3; letter-spacing:-.06em;}
.wrap {width:min(1180px,calc(100% - 64px)); margin:0 auto;}

/* ==================== 공통 로고 배치 ==================== */
.brand {display:inline-flex; align-items:center; gap:16px; white-space:nowrap;}

/* ==================== 공통 버튼·안내 문구 ==================== */
.button {background:var(--blue); color:white; display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:14px 25px; border-radius:6px; font-weight:700; border:0; font-size:14px;}
.button:hover {background:#25109b;}
.button.white {background:white; color:var(--blue);}
.eyebrow {display:block; color:var(--blue); letter-spacing:.13em; font-weight:700; font-size:10px; margin-bottom:11px;}
.footnote {font-size:11px; color:#9d98a6; margin-top:16px;}
.text-link {display:inline-flex; gap:15px; align-items:center; font-size:13px; font-weight:600;}

/* ==================== 공통 FAQ ==================== */
.faqs {border-top:1px solid #dad7e3;}
.faqs details {border-bottom:1px solid #e9e6ee;}
.faqs summary {list-style:none; padding:20px 2px; display:flex; justify-content:space-between; gap:15px; cursor:pointer; font-size:14px; font-weight:600;}
.faqs summary::-webkit-details-marker {display:none;}
.faqs summary>span {color:#9c94ad; font-size:19px; font-weight:400;}
.faqs details[open] summary>span {transform:rotate(45deg);}
.faqs details p {font-size:13px; color:#82798f; padding:0 16px 24px 0; line-height:1.9;}

/* ==================== 공통 상담 영역 ==================== */
.contact {background:var(--blue); border-radius:14px; padding:43px 48px; display:flex; align-items:center; justify-content:space-between; margin-top:25px; margin-bottom:80px; color:white; position:relative; overflow:hidden;}
.contact .eyebrow {color:#b8a9ff;}
.contact h2 {font-size:29px;}
.contact p {font-size:12px; color:#c2b6fa; margin-top:13px;}
.contact-pending {display:flex; flex-direction:column; gap:5px; align-items:flex-start; background:#ffffff12; padding:22px 30px; border:1px solid #ffffff26; border-radius:9px; font-size:14px;}
.contact-pending>span {font-size:11px; color:#c7baff;}
.contact-pending svg {margin-bottom:8px; color:#bba9ff;}

/* ==================== 서브페이지 상단 ==================== */
.page-title {padding:56px 0 34px;}
.page-title h1 {font-size:42px;}
.page-title p {color:#8c8498; font-size:14px; margin-top:16px;}

/* ==================== 지역 검색·목록 ==================== */
.search {display:flex; align-items:center; gap:12px; border:1px solid #dfdae9; padding:12px 17px; border-radius:8px; max-width:500px; color:var(--blue);}
.search input {width:100%; border:0; outline:0; background:transparent; font-size:14px;}
.tabs {display:flex; gap:8px; flex-wrap:wrap; margin:24px 0;}
.tabs button {border:1px solid #e6e1ef; border-radius:6px; background:white; color:#867e93; padding:8px 18px; font-size:13px;}
.tabs button.active {background:var(--blue); border-color:var(--blue); color:white;}
.region-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.region-grid>a {border:1px solid var(--line); padding:22px; border-radius:9px;}
.region-grid>a:hover {border-color:var(--blue); background:#fcfbff;}
.region-grid span {font-size:10px; color:var(--blue);}
.region-grid h3 {font-size:21px; margin:8px 0;}
.region-grid p {font-size:12px; color:#91889f;}
.region-grid b {font-size:13px; display:flex; align-items:center; justify-content:space-between; margin-top:24px;}
.region-browser {padding-bottom:60px;}

/* ==================== 공통 안내·표·본문 ==================== */
.notice {border:1px solid #e3dcf7; background:#f8f6ff; border-radius:8px; padding:17px 21px; color:#7e6b9d; font-size:12px; margin-bottom:24px;}
.breadcrumb {font-size:11px; color:#91899c; margin-top:28px;}
.price-table {width:100%; border-collapse:collapse; font-size:14px;}
.price-table th {text-align:left; background:#f5f3fa; color:#6e6083; font-size:12px;}
.price-table td,.price-table th {padding:20px; border-bottom:1px solid #e9e4f0;}
.price-table td strong {font-size:25px; color:var(--blue);}
.price-table td small {display:block; color:#92869f; font-size:11px; margin-top:4px;}
.region-detail .section {padding:45px 0;}
.body-copy {max-width:850px; color:#7b7188; font-size:14px; line-height:2;}
.body-copy h2 {font-size:25px; color:var(--ink); margin-bottom:17px;}
.body-copy p {margin-bottom:15px;}

/* ==================== 블로그·가입 가이드 페이지 ==================== */
.blog-list {display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:45px;}
.post-card {border:1px solid var(--line); padding:25px; border-radius:10px; display:flex; flex-direction:column; gap:16px;}
.post-card h3 {font-size:19px;}
.post-card p {font-size:12px; color:#8b8198;}
.post-card small {color:var(--blue); font-size:11px;}
.blog-article {padding:35px 0; border-top:1px solid var(--line); max-width:850px; scroll-margin-top:25px;}
.blog-article h2 {font-size:25px; margin-bottom:16px;}
.blog-article p {color:#7b7188; font-size:14px; line-height:2;}
.empty {padding:35px; background:#f7f5fc; border:1px dashed #d9d1e8; border-radius:9px; color:#8c819b; text-align:center; margin:20px 0; font-size:13px;}

/* ==================== 이미지 자료실 ==================== */
.gallery {display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:60px;}
.gallery img {width:100%; height:230px; object-fit:contain; background:#f5f3fa; border-radius:10px;}
.gallery h3 {font-size:18px; margin-top:16px;}
.gallery p {font-size:12px; color:#8d829c; margin-top:8px;}
.asset-image {width:100%; max-height:700px; object-fit:contain; background:#f6f3fb; border-radius:12px;}

/* ==================== 관리자 기본 레이아웃 ==================== */
.admin-page {background:#f7f6fb; min-height:100vh;}
.admin-layout {display:grid; grid-template-columns:210px 1fr; gap:30px; padding-top:35px; padding-bottom:60px;}
.admin-sidebar {padding-top:15px;}
.admin-sidebar h1 {font-size:21px; margin-bottom:7px;}
.admin-sidebar>p {font-size:11px; color:#8e849c; margin-bottom:28px;}
.admin-nav {display:flex; flex-direction:column; gap:5px;}
.admin-nav button {border:0; background:transparent; padding:13px 16px; text-align:left; border-radius:7px; color:#8b809b; font-size:13px; display:flex; gap:10px; align-items:center;}
.admin-nav button.active {background:var(--blue); color:white;}
.admin-body {min-width:0;}
.admin-heading {display:flex; justify-content:space-between; align-items:center; margin-bottom:23px; gap:16px;}
.admin-heading h2 {font-size:27px;}
.admin-heading p {font-size:12px; color:#91869d; margin-top:7px;}
.admin-panel {background:white; border:1px solid var(--line); border-radius:10px; padding:25px; margin-bottom:20px;}
.admin-panel h3 {font-size:17px; margin-bottom:19px;}

/* ==================== 관리자 표·입력 폼 ==================== */
.admin-table-scroll {overflow-x:auto;}
.admin-table {border-collapse:collapse; width:100%; font-size:12px; white-space:nowrap;}
.admin-table td,.admin-table th {padding:12px 9px; border-bottom:1px solid var(--line); text-align:left;}
.admin-table th {color:#94889f; font-size:10px;}
.admin-table input[type=number] {width:105px; border:1px solid #e2dcec; border-radius:5px; padding:9px 8px; color:#312341; font-weight:600;}
.admin-table input[type=number]:focus {outline:1px solid var(--blue);}
.admin-table small {display:block; font-size:9px; color:#a295ac; margin-top:4px;}
.admin-table a {color:var(--blue);}
.admin-fields {display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.admin-fields label,.field {display:flex; flex-direction:column; gap:7px; font-size:12px; color:#877692;}
.admin-fields input,.admin-fields textarea,.field input,.field textarea,.field select {border:1px solid #ded6e9; border-radius:6px; padding:12px; color:#35253e; background:white; width:100%; min-width:0;}
.field {margin-bottom:17px;}
.admin-fields textarea,.field textarea {min-height:90px;}
.field>small {font-size:10px; color:#9f93aa;}

/* ==================== 관리자 상태·필터 ==================== */
.save-status {padding:12px 18px; background:#efebff; border-radius:7px; color:var(--blue); font-size:12px; margin:12px 0;}
.admin-filters {display:flex; gap:10px; margin-bottom:18px; align-items:center; flex-wrap:wrap;}
.admin-filters input,.admin-filters select {padding:9px 12px; border:1px solid #e2d9ec; border-radius:5px; background:white; font-size:12px;}
.admin-stat {display:flex; gap:25px; color:#927b9f; font-size:12px; margin:18px 0;}
.admin-stat strong {color:var(--blue); font-size:22px; margin-right:4px;}
.checks-list {display:flex; flex-direction:column; gap:13px;}
.checks-list a {font-size:13px; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:11px;}

/* ==================== 관리자 보조 버튼 ==================== */
.secondary {background:white; border:1px solid #d9cfeb; color:var(--blue);}
.secondary:hover {background:#f2edfc;}
.danger {background:#fff0f3; border:1px solid #f1d2da; color:#aa4057; border-radius:5px; padding:8px 12px; font-size:11px;}
.small-button {border:1px solid #e0d6ef; background:white; color:var(--blue); border-radius:5px; padding:8px 12px; font-size:12px;}

/* ==================== 관리자 이미지 목록 ==================== */
.asset-admin-row {display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; border-top:1px solid var(--line);}
.asset-admin-row img {width:75px; height:55px; object-fit:contain;}
.asset-admin-row>div {flex:1;}
.asset-admin-row h4 {font-size:13px; margin:0;}
.asset-admin-row p {font-size:10px; color:#9986a6; margin-top:5px;}

/* ==================== 관리자 일괄 입력 ==================== */
.bulk-box {display:flex; gap:10px; align-items:center; background:#f8f5ff; padding:14px; border-radius:7px; margin-bottom:15px; flex-wrap:wrap; font-size:12px;}
.bulk-box input {width:100px; padding:8px; border:1px solid #ded4ed; border-radius:5px;}
.bulk-box select {padding:8px; border:1px solid #ded4ed; background:white; border-radius:5px;}
.full-field {grid-column:1/-1;}
.admin-help {font-size:11px; color:#a08dab; line-height:1.8;}
.admin-panel .notice {margin-top:18px;}
.content-bottom {margin-bottom:60px;}

/* ==================== 태블릿 공통 ==================== */
@media (max-width:1000px) {
.admin-layout {grid-template-columns:160px 1fr; gap:20px;}
}

/* ==================== 모바일 공통 ==================== */
@media (max-width:700px) {
.wrap {width:calc(100% - 36px);}
.eyebrow {font-size:9px;}
.footnote {font-size:9px;}
.faqs {margin-top:27px;}
.faqs summary {font-size:12px; padding:18px 1px;}
.faqs details p {font-size:12px;}
.contact {padding:29px 25px; display:block; margin-bottom:45px; margin-top:0;}
.contact h2 {font-size:26px;}
.contact p {font-size:10px;}
.contact-pending {margin-top:23px; padding:15px; flex-direction:row; flex-wrap:wrap; align-items:center; gap:8px;}
.contact-pending>span {width:100%; font-size:10px;}
.contact-pending svg {margin:0; width:19px;}
.contact>.button {margin-top:20px;}
.page-title {padding:38px 0 25px;}
.page-title h1 {font-size:32px;}
.page-title p {font-size:12px;}
.region-grid {grid-template-columns:1fr 1fr; gap:10px;}
.region-grid>a {padding:17px;}
.region-grid h3 {font-size:18px;}
.region-grid p {font-size:10px; min-height:32px;}
.region-grid b {font-size:11px; gap:7px;}
.region-grid svg {width:14px;}
.tabs {gap:5px;}
.tabs button {padding:7px 13px; font-size:11px;}
.notice {font-size:11px; padding:15px;}
.price-table th,.price-table td {padding:15px 8px; font-size:12px;}
.price-table td strong {font-size:21px;}
.price-table td small {font-size:9px;}
.blog-list,.gallery {grid-template-columns:1fr;}
.admin-layout {display:block; padding-top:23px;}
.admin-sidebar {margin-bottom:25px;}
.admin-sidebar>p {margin-bottom:14px;}
.admin-nav {flex-direction:row; flex-wrap:wrap;}
.admin-nav button {font-size:11px; padding:9px 10px; gap:5px;}
.admin-nav svg {width:15px;}
.admin-heading h2 {font-size:23px;}
.admin-heading .button {padding:11px 15px; font-size:12px;}
.admin-panel {padding:17px;}
.admin-fields {grid-template-columns:1fr;}
.admin-help {font-size:10px;}
.admin-stat {gap:17px; font-size:10px;}
.admin-stat strong {font-size:19px;}
.blog-article h2 {font-size:23px;}
.blog-article p {font-size:13px;}
}

/* ==================== 공통 유틸리티 ==================== */
[hidden] {display:none !important;}
.table-caption {text-align:left; padding-bottom:15px; font-weight:600;}
.section-subtitle {margin-bottom:22px;}
.asset-figure {margin:0;}
.asset-description {margin-top:25px;}
.login-wrap {max-width:650px; padding-bottom:50px;}
.login-form {max-width:520px;}
.login-help {margin-top:18px;}
.logout-button {display:block; margin-top:20px;}
.checkbox-field {display:flex; align-items:center; gap:9px; margin:24px 0 13px; font-size:13px;}
.region-note-summary {padding:12px 0; cursor:pointer; font-size:13px;}
.region-note-fields {padding-bottom:20px;}