@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap');


/* 기본 리셋 */
* {
	box-sizing: border-box;
}

html {
	overflow-y: auto;
	scrollbar-gutter: stable;
	font-family: "Noto Sans KR", "Nanum Gothic";
	font-size: var(--base-font);
}

/* 모달 열릴 때 Bootstrap이 강제하는 padding 제거 (scrollbar-gutter 사용 시 중복 방지) */
body.modal-open {
	padding-right: 0 !important;
}


/* 화면 전체 글씨 크기 일괄 조정 */


:root {
	/* ===== Typography ===== */
	--base-font: 16px;

	/* ===== Colors ===== */
	--bg: #fbfbfd;
	--card: #ffffff;
	--line: rgba(0, 0, 0, .08);
	--primary: #ff6b8b;
	--primary-soft: rgba(255, 107, 139, .12);
	--mint: #38c6a3;
	--text: #1f2328;
	--muted: #6b7280;

	/* ===== Shadow ===== */
	--shadow: 0 10px 30px rgba(17, 24, 39, .08);
	--shadow2: 0 6px 18px rgba(17, 24, 39, .06);

	/* ===== Radius ===== */
	--radius: 18px;
	--radius2: 14px;

	/* ===== Topbar ===== */
	--topbar-z: 50;
	--topbar-bg: rgba(251, 251, 253, .86);
	--topbar-bd: var(--line);
	--topbar-inner-max: none;
	--topbar-inner-pad: .75rem .25rem;

	/* ===== Chip ===== */
	--chip-gap: .45rem;
	--chipbar-mt: 0;
	--chip-pad: .42rem .7rem;
	--chip-bd: rgba(0, 0, 0, .10);
	--chip-bg: #fff;
	--chip-color: var(--text);
	--chip-fw: 500;
	--chip-fs: 1rem;
}


/* ----------------------------- */


html,
body {
	width: 100%;
	min-height: 100vh;
	margin: 0;
	padding: 0;
}

.ck-content {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}

body,
.ck-content {
	font-family:
		"Noto Sans KR", "Nanum Gothic",
		"나눔고딕", "Nanum Gothic", sans-serif,
		"나눔명조", "Nanum Myeongjo", serif,
		"나눔바른고딕", "NanumBarunGothic", sans-serif,
		"맑은 고딕", "Malgun Gothic", sans-serif,
		Arial, Helvetica, sans-serif,
		Tahoma, Geneva, sans-serif,
		"Times New Roman", Times, serif,
		"Courier New", Courier, monospace,
		Georgia, serif,
		"Lucida Sans Unicode", "Lucida Grande", sans-serif,
		Verdana, Geneva, sans-serif;

	line-height: 1.65;
	color: #212529;
	background-color: #ffffff;
}

body,
.ck-content {
	font-family: "Noto Sans KR", "Nanum Gothic", sans-serif !important;
}

body {
	color: rgba(0, 0, 0, 0.95);
}

.ck-content,
.ck-editor__editable {
	color: rgba(0, 0, 0, 0.95) !important;
}

.txt-preline {
	white-space: pre-line;
}

.textarea-auto {
	white-space: pre-line !important;
	min-height: auto !important;
	height: auto !important;
	overflow-y: hidden !important;
	resize: none !important;
}


/* 이미지 반응형 */
img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* 링크/버튼 기본 */
a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

button {
	border: none;
	background: none;
	cursor: pointer;
}

/* 모바일 터치 최적화 */
button,
a,
input,
select,
textarea {
	touch-action: manipulation;
}

input,
select,
textarea {
	font-size: 1rem;
}

/* =========================
   공통 변수(딱 1번만)
   ========================= */

input::placeholder,
textarea::placeholder {
	font-size: 0.8rem !important;
	font-weight: 400 !important;
	color: #999;
	/* 선택 사항 */
}

/* =========================
   공통 폭/컨테이너
   ========================= */
.page-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 1rem;
}

.home-wrap.page-inner {
	max-width: 1240px;
}

.page-inner-gaip {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 1rem;
}

.home-wrap-gaip.page-inner-gaip {
	max-width: 1000px;
}


.layout {
	display: grid !important;
	grid-template-columns: 240px minmax(0, 1fr) !important;
	gap: .9rem;
	align-items: start;
}

/* ✅ 3열 레이아웃(우측 레일 포함) - 필요 시 layout에 has-rail 클래스 추가 */
.layout.has-rail {
	grid-template-columns: 240px minmax(0, 1fr) 320px !important;
}

.layout>* {
	min-width: 0;
}

.content {
	width: 100%;
	min-width: 0 !important;
	margin-top: 10px
}


/* content 공통 */

.sidebar {
	position: sticky;
	top: 84px;
}

.ad-rail {
	position: sticky;
	top: 84px;
}

/* 구분선 */
.soft-divider {
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, .10);
	margin: 1rem 0;
	opacity: .9;
}

/* =========================
   광고 슬롯 공통 (디테일 보정: 제로 마진/패딩)
   ========================= */
.ad-slot {
	position: relative;
	background: transparent !important;
	border: none !important;
	border-radius: 4px !important;
	/* 미세 곡률 */
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	overflow: hidden !important;
	display: block;
	line-height: 0 !important;
	width: 100% !important;
}

.ad-slot img {
	width: 100% !important;
	height: 100% !important;
	display: block !important;
	border-radius: 4px !important;
	transition: transform 0.2s ease-in-out;
	object-fit: contain !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ad-slot>a {
	display: block;
	width: 100%;
	height: 100%;
}

/* 하단 박스형 광고 그리드 (200x200 정사각형, 최대 4개) */
.ad-container-btm {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	justify-items: center;
	max-width: 100%;
	
	/* ✅ [개선] 초기 숨김 (탭 전환 시 즉시 사라짐) */
	opacity: 0;
}

.ad-container-btm.is-shown {
	opacity: 1 !important;
}

.ad-slot.ad-bottom {
	width: 100% !important;
	max-width: 200px !important;
	height: 200px !important;
	display: flex;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 auto !important;
	border-radius: 8px !important;
	overflow: hidden !important;
}

.ad-slot.ad-bottom img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 8px !important;
}

/* 모바일: 하단 광고 2x2 그리드 */
@media (max-width: 768px) {
	.ad-container-btm {
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
	}
}

/* 상단 띠 배너 고정 사이즈 (1000x110 권장, 가로 100%) */
.ad-slot.ad-top {
	width: 100% !important;
	height: 110px !important;
	margin: 0 auto 12px auto !important;
	border-radius: 12px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
	background-color: transparent !important;
	display: block;
	position: relative;
	overflow: hidden !important;
}

.ad-slot.ad-top img {
	width: 100% !important;
	height: 100% !important;
	display: block !important;
	object-fit: fill !important;
	/* 깨지더라도 강제 맞춤 (광고주 무관) */
	border-radius: 12px !important;
}

/* 사이드 광고 고정 사이즈 (210x150) */
.ad-slot[id^="ad_side"],
.ad-container-side .ad-slot {
	width: 210px !important;
	height: 150px !important;
	margin: 0 auto 0px auto !important;
	/* 영식 margin: 0 auto 24px auto !important; */
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	/* 압축되어 스크롤이 안 되는 현상 방지 */
}

.ad-slot[id^="ad_side"] img,
.ad-container-side .ad-slot img {
	width: 100% !important;
	height: 100% !important;
	object-fit: fill !important;
	/* 원본 비율 무시 강제 맞춤 */
}

.ad-badge {
	display: none !important;
}

.ad-title,
.ad-desc {
	display: none !important;
	/* 수동 텍스트 노출 방지 */
}

/* 광고 AD 뱃지 및 신고(Report) 버튼 래퍼 */
.ad-report-wrap {
	position: absolute !important;
	bottom: 2px;
	right: 2px;
	z-index: 10;
	background: transparent;
	padding: 1px 4px;
	border-radius: 3px;
	display: flex !important;
	align-items: center;
	gap: 3px;
	pointer-events: auto;
	/* 클릭 허용 */
}

/* 내부 AD 뱃지 가시화 */
.ad-report-wrap .ad-badge {
	display: inline-block !important;
	font-size: 8px !important;
	font-weight: 700;
	color: rgba(0, 0, 0, 0.6) !important;
	background: transparent !important;
	border: 1px solid rgba(0, 0, 0, 0.3);
	padding: 0 2px;
	border-radius: 2px;
	line-height: 1.1;
}

/* 신고 텍스트 링크 */
.ad-report-link {
	color: rgba(0, 0, 0, 0.6) !important;
	font-size: 9px !important;
	font-weight: 500;
	text-decoration: none !important;
	line-height: 1.1 !important;
	letter-spacing: -0.5px;
}

.ad-report-link:hover {
	color: rgba(0, 0, 0, 0.9) !important;
	text-decoration: underline !important;
}

/* 우측 레일(160x600 / 300x600) */
.ad-rail-inner {
	padding: 0;
}

.ad-rail-slot {
	min-height: 600px;
}

/* =========================
   공통 유틸
   ========================= */
.text-ellipsis {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hidden {
	display: none !important;
}

.fs075 {
	font-size: 0.75rem;
}

.fs075 .btn {
	font-size: 0.75rem;
}

.fs080 {
	font-size: 0.80rem !important;
}

.fs090 {
	font-size: 0.90rem !important;
}

.fs120 {
	font-size: 1.20rem !important;
}

.fs130 {
	font-size: 1.30rem !important;
}

.fs140 {
	font-size: 1.40rem !important;
}

.fs150 {
	font-size: 1.50rem !important;
}

.fs200 {
	font-size: 2.00rem !important;
}

.fw400 {
	font-weight: 400 !important;
}

.fw500 {
	font-weight: 500 !important;
}

.fw600 {
	font-weight: 600 !important;
}

.fw700 {
	font-weight: 700 !important;
}

.fw800 {
	font-weight: 800 !important;
}

.fw900 {
	font-weight: 900 !important;
}

.fw550 {
	font-weight: 600;
	opacity: 0.8 !important;
}

/* =========================
   Common Form Field Module - .field / .field-label / .field-input / .req
   ========================= */

/* 한 필드(라벨+입력) 단위 */
.field {
	display: block;
	margin: 0 0 1rem 0;
}

/* 라벨(제목) */
/* .field-label {
  display: flex;
  align-items: baseline;
  gap: .35rem;
  margin: 0 0 .35rem 0;
  font-weight: 400;
  line-height: 1.2;
  color: inherit;
  테마 컬러 존중
} */

/* 필수 표시 */
.field-label .req {
	display: inline-block;
	font-weight: 700;
	line-height: 1;
	opacity: .9;
}


/* 필드 */
.field {
	margin-bottom: 12px;
}

.field-label {
	font-size: 13px;
	color: var(--muted);
	margin-bottom: 6px;
	display: flex;
	align-items: center;
	gap: 6px;
}





















/* 입력 영역 래퍼 */
.field-input {
	display: block;
}

/* 입력요소 기본 폭 보정(부트스트랩 사용 여부와 무관하게 안전) */
.field-input>input,
.field-input>select,
.field-input>textarea {
	width: 100%;
}


.field-row {
	/* 2열(좌/우) 레이아웃: .field-row 안의 .field를 2열로 */
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

/* 모바일에서 1열로 */
@media (max-width: 768px) {
	.field-row {
		grid-template-columns: 1fr;
	}
}

/* 라벨/입력 가로형(필요 시) 예: <div class="field is-inline"> ... */
.field.is-inline {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: .75rem;
	align-items: start;
}

.field.is-inline .field-label {
	margin: .45rem 0 0 0;
	/* input 높이와 시각 정렬 */
}

@media (max-width: 768px) {
	.field.is-inline {
		grid-template-columns: 1fr;
	}

	.field.is-inline .field-label {
		margin: 0 0 .35rem 0;
	}
}

/* ----- 도움말/에러 텍스트(선택) ----- */
.field-help {
	margin-top: .35rem;
	font-size: .875rem;
	opacity: .75;
}

.field-error {
	margin-top: .35rem;
	font-size: .875rem;
	font-weight: 600;
}


.only-mobile_hamburger_btn {
	display: inline-flex;
}

/* ====== 카카오 이미지 버튼 ====== */
.kakao-img-btn {
	display: inline-block;
	width: 90%;
	text-decoration: none;
}

.kakao-img-btn img {
	width: 90%;
	height: auto;
	display: block;
	border-radius: 10px;
	/* 이미지가 사각이면 둥글게 */
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
	display: block;
	/* 이미지 아래 미세한 baseline 여백 제거 */
	margin: 0 auto;
	/* 혹시라도 block 폭이 생길 때 대비 */
}



/* hover 시 미세 강조 */
.kakao-img-btn:hover img {
	transform: translateY(-1px);
	transition: transform 0.12s ease-in-out;
}


/* =========================
   반응형 공통
   ========================= */

/* 모바일/PC 표시 제어 (기본=모바일) */
.only-mobile {
	display: block;
}

.only-pc {
	display: none;
}

/* 1200↓: 우측 레일만 제거(2열 유지) */
@media (max-width: 1200px) {
	.layout {
		grid-template-columns: 240px minmax(0, 1fr) !important;
	}

	.ad-rail {
		display: none !important;
	}
}

/* ✅ 991.98↓: 사이드바 제거 + 1열(본문 꽉) */
@media (max-width: 991.98px) {
	.layout {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.sidebar {
		display: none !important;
	}
}

/* ✅ 992↑: PC 모드(사이드바 + 본문 2열) */
@media (min-width: 992px) {
	.only-mobile {
		display: none !important;
	}

	.only-pc {
		display: block !important;
	}

	.only-mobile_hamburger_btn {
		display: none !important;
	}

	.layout {
		grid-template-columns: 240px minmax(0, 1fr) !important;
	}
}

.topbar {
	position: sticky;
	top: 0;
	z-index: var(--topbar-z);
	background: var(--topbar-bg);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--topbar-bd);
}

.topbar-inner {
	max-width: var(--topbar-inner-max);
	margin: 0 auto;
	padding: var(--topbar-inner-pad);

	display: flex;
	align-items: center;
	gap: .75rem;
}

.topbar-left {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 0;
}

.topbar-right {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: .3rem;
}

.topbar-links {
	display: inline-flex;
	align-items: center;
	gap: .15rem;
	font-size: 0.82rem;
}

.topbar-icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--line);
	box-shadow: var(--shadow2);
}

.topbar-icon i {
	font-size: 1.35rem;
}

.brand-logo {
	width: 50px;
	height: auto;
	display: block;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	min-width: 0;
}


.brand-title {
	font-weight: 500;
	font-size: 1.15rem;
	line-height: 1.15;
	/* 타이트하게 */
	letter-spacing: 0.2;
	/* 차분형이면 0 추천  */
}

.brand-subtitle {
	font-size: .85rem;
	line-height: 1.1;
	margin-top: 3px;
	/* 살짝 끌어올림 */
	letter-spacing: 0.2;
	opacity: .85;
	/* 한 덩어리 느낌 강화 */
}

.side-offcanvas {
	background: #fff;
	width: 240px !important;
	/* 모바일 사이드바 폭 고정 */
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
}

/* 모바일 사이드바 헤더 내부 로고/텍스트 겹침 방지 */
.side-offcanvas .offcanvas-header {
	padding: 0.8rem 0.6rem;
	/* 좌우 여백을 줄임 */
	flex-shrink: 0;
}

.side-offcanvas .brand-logo {
	width: 40px;
	/* 로고 크기 축소 */
}

.side-offcanvas .brand-title {
	font-size: 0.98rem;
	/* 제목 크기 축소 */
	white-space: nowrap;
	/* 줄바꿈 방지 */
}

.side-offcanvas .brand-subtitle {
	font-size: 0.78rem;
	white-space: nowrap;
}

/* 🐾 모바일 사이드바 전체 스크롤바 숨김 (스크롤은 유지) */
.side-offcanvas .offcanvas-body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	scrollbar-width: none;
	/* Firefox */
	-ms-overflow-style: none;
	/* IE, Edge */
}

.side-offcanvas .offcanvas-body::-webkit-scrollbar {
	display: none;
	/* Chrome, Safari, Opera */
}

.topbar-link {
	padding: .25rem .4rem;
	border-radius: 999px;
	border: 1px solid transparent;
	color: var(--muted);
	font-size: 0.82rem;
}

.topbar-link:hover {
	background: #fff;
	border-color: var(--line);
	color: var(--text);
}

/* footer (home/bdcom 공통) */
.footer {
	margin-top: 1.5rem;
	padding: 1.2rem 0 1.6rem;
	text-align: center;
	color: var(--muted);
	font-size: .9rem;
}

@media (max-width: 800px) {
	.topbar-right {
		display: none !important;
	}
}

@media (max-width: 576px) {

	/* ✅ 추가 */
	.topbar-links {
		display: none !important;
	}

	.topbar-inner {
		padding: .65rem .1rem;
	}

	.brand-title {
		font-size: 1.02rem;
	}

	.brand-subtitle {
		font-size: .84rem;
	}

	.hero-card {
		padding: 1rem;
	}

	.controls-row {
		flex-direction: column;
		align-items: stretch;
	}

	.controls-right {
		justify-content: flex-end;
	}
}

/* 모바일: 하단 액션바 */
.mobile-actionbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(255, 255, 255, .92);
	border-top: 1px solid var(--line);
	backdrop-filter: blur(10px);
	padding: .65rem .9rem;
	display: flex;
	gap: .6rem;
	z-index: 70;
}

/* body 상단 여백(기존 유지) */
body {
	padding-top: 0.5rem;
}

.chipbar,
.cat-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--chip-gap);
	align-items: center;
	margin-top: var(--chipbar-mt);
}

.chip,
.cat-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	padding: var(--chip-pad);
	border-radius: 999px;
	border: 1px solid var(--chip-bd);
	background: var(--chip-bg);

	color: var(--chip-color);
	font-weight: var(--chip-fw);
	font-size: var(--chip-fs);
	line-height: 1;

	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}

.sidebar-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow2);
	padding: .9rem;
	margin-top: 10px
}


/* =========================
   CARD (COMMON)
   - post-card / editor-card / view-card 공통화
   ========================= */

.post-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius2);
	box-shadow: var(--shadow2);
	padding: .85rem;
}

.post-card:hover {
	box-shadow: var(--shadow);
	border-color: rgba(0, 0, 0, .12);
}

.editor-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow2);
	padding: 1.1rem;
}

/* 글보기 카드(뷰 전용) */
.view-card {
	border: 1px solid rgba(0, 0, 0, .06);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .05);
	overflow: hidden;
}

/* =========================================================
   ✅ Focus Style Override (Thin & Natural)
   - Bootstrap 기본 Blue Shadow 제거 및 자연스러운 테두리 적용
   ========================================================= */
.form-control:focus,
.form-select:focus {
	border-color: #bbb !important;
	/* 은은한 진회색 */
	box-shadow: none !important;
	/* 파란색 그림자 제거 */
}

/* CKEditor Focus Override */
.ck.ck-editor__main>.ck-editor__editable.ck-focused {
	border-color: #bbb !important;
	box-shadow: none !important;
}

/* ✅ [개선] 홈 목록 영역 최소 높이 (광고 점프 방지) */
#home_list_area {
	min-height: 500px;
}