/* =========================================================================
   전국고객센터 (CS Directory) — 화면 스타일
   모바일 먼저, 1024px 이상에서 PC 배치
   ========================================================================= */

:root {
	--c-bg: #F2F4F6;
	--c-card: #FFFFFF;
	--c-50: #F9FAFB;
	--c-100: #F2F4F6;
	--c-200: #E5E8EB;
	--c-250: #EEF0F3;
	--c-300: #D1D6DB;
	--c-400: #B0B8C1;
	--c-500: #8B95A1;
	--c-600: #6B7684;
	--c-700: #4E5968;
	--c-800: #333D4B;
	--c-900: #191F28;
	--c-blue: #1F6CE6;
	--c-blue-dark: #1957C2;
	--c-blue-50: #E8F3FF;
	--font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
	--gutter: 20px;
	--header-h: 56px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 12px);
}

body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-900);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: -0.01em;
	word-break: keep-all;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }
a { color: var(--c-blue); text-decoration: none; }
a:hover { color: var(--c-blue-dark); }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
:focus-visible { outline: 2px solid var(--c-blue); outline-offset: 2px; border-radius: 6px; }
[hidden] { display: none !important; }

.csd-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.csd-skip {
	position: absolute;
	top: -100px;
	left: 12px;
	z-index: 100;
	padding: 10px 14px;
	border-radius: 10px;
	background: #fff;
	color: var(--c-900);
	font-weight: 600;
}
.csd-skip:focus { top: 12px; }

.csd-icon { display: block; flex-shrink: 0; }
.csd-main { display: block; min-height: 50vh; outline: none; }
.csd-wrap { width: 100%; max-width: 1200px; margin: 0 auto; }

/* ---------- 카드(흰 구역) ---------- */
.csd-card {
	margin-top: 12px;
	padding: 26px var(--gutter) 28px;
	background: var(--c-card);
}

.csd-sec__title {
	margin: 0 0 20px;
	font-size: 20px;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: -0.02em;
}
.csd-sec__title + .csd-sec__desc { margin-top: -16px; }
.csd-sec__desc { margin: 0 0 12px; font-size: 14px; color: var(--c-600); }
.csd-sub { margin: 16px 0 10px; font-size: 14px; font-weight: 600; color: var(--c-800); }
.csd-muted { color: var(--c-600); }
.csd-small { margin: 18px 0 0; font-size: 13px; line-height: 1.55; color: var(--c-600); }
.csd-empty { margin: 0; padding: 24px 0; text-align: center; font-size: 15px; color: var(--c-700); }

/* ---------- 버튼 ---------- */
.csd-btn {
	height: 54px;
	padding: 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 0;
	border-radius: 14px;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color .15s ease;
}
.csd-btn--primary { background: var(--c-blue); color: #fff; font-weight: 700; }
.csd-btn--primary:hover { background: var(--c-blue-dark); color: #fff; }
.csd-btn--line { background: #fff; border: 1px solid var(--c-200); color: var(--c-800); }
.csd-btn--line:hover { background: var(--c-50); color: var(--c-900); }
.csd-btn--soft { background: var(--c-100); color: var(--c-800); }
.csd-btn--soft:hover { background: var(--c-200); color: var(--c-900); }
.csd-btn--sm { height: 36px; padding: 0 12px; border-radius: 10px; font-size: 14px; }

.csd-iconbtn {
	width: 44px;
	height: 44px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: var(--c-800);
	cursor: pointer;
}
.csd-iconbtn:hover { background: var(--c-100); color: var(--c-900); }
.csd-iconbtn--grey { background: var(--c-100); color: var(--c-700); }
.csd-iconbtn--grey:hover { background: var(--c-200); }
.csd-iconbtn--blue { background: var(--c-blue-50); color: var(--c-blue-dark); }
.csd-iconbtn--blue:hover { background: #D6E9FF; color: var(--c-blue-dark); }

/* ---------- 칩 ---------- */
.csd-chips { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.csd-chip {
	height: 34px;
	padding: 0 12px;
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	background: var(--c-100);
	color: var(--c-800);
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
}
a.csd-chip:hover { background: var(--c-200); color: var(--c-900); }
.csd-chip--line { background: #fff; border: 1px solid var(--c-200); }
a.csd-chip--line:hover { background: var(--c-50); }
.csd-chip--soft { height: 40px; padding: 0 14px; border-radius: 12px; font-size: 15px; }
.csd-chip--blue { background: var(--c-blue-50); color: var(--c-blue-dark); font-weight: 600; }
a.csd-chip--blue:hover { background: #D6E9FF; color: var(--c-blue-dark); }
.csd-chips--meta { margin: 0 0 14px; gap: 6px; }
.csd-chips--meta .csd-chip { height: 28px; padding: 0 10px; border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--c-700); }
.csd-chips--meta .csd-chip--blue { color: var(--c-blue-dark); }

.csd-tag {
	height: 20px;
	padding: 0 7px;
	display: inline-flex;
	align-items: center;
	border-radius: 6px;
	background: var(--c-100);
	color: var(--c-700);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}
.csd-tag--blue { background: var(--c-blue-50); color: var(--c-blue-dark); }

/* ---------- 색 묶음 (업종 아이콘·첫 글자) ---------- */
.csd-tone-blue { background: #E8F3FF; color: #1957C2; }
.csd-tone-green { background: #E6F7EE; color: #0A7A4A; }
.csd-tone-purple { background: #F0EDFF; color: #5B3FC4; }
.csd-tone-teal { background: #E3F6F7; color: #0B6B73; }
.csd-tone-red { background: #FFEEF0; color: #C8243B; }
.csd-tone-orange { background: #FFF4E5; color: #B54708; }
.csd-tone-pink { background: #FDEEF6; color: #A3286A; }
.csd-tone-slate { background: #F2F4F6; color: #333D4B; }
.csd-tone-sky { background: #E6F4FB; color: #0B5F94; }
.csd-tone-indigo { background: #ECEEFB; color: #3446A6; }
.csd-tone-brown { background: #F7F1E8; color: #7A5A2F; }

/* ---------- 상담 상태 ---------- */
.csd-status { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; }
.csd-pill {
	height: 26px;
	padding: 0 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	background: var(--c-100);
	color: var(--c-700);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}
.csd-pill__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--c-500); }
.is-open .csd-pill { background: #E6F7EE; color: #0A7A4A; }
.is-open .csd-pill__dot { background: #12B76A; }
.is-closing .csd-pill,
.is-lunch .csd-pill { background: #FFF4E5; color: #B54708; }
.is-closing .csd-pill__dot,
.is-lunch .csd-pill__dot { background: #F79009; }
.is-always .csd-pill { background: #E8F3FF; color: #1957C2; }
.is-always .csd-pill__dot { background: #1F6CE6; }
.csd-status--hero { flex-wrap: wrap; }
.csd-status--hero .csd-pill { height: 28px; padding: 0 11px; font-size: 14px; font-weight: 700; }
.csd-status--hero .csd-pill__dot { width: 7px; height: 7px; }
.csd-status__detail { font-size: 14px; font-weight: 500; color: var(--c-700); }

/* =========================================================================
   머리글
   ========================================================================= */
.csd-header { position: sticky; top: 0; z-index: 50; background: #fff; }
.admin-bar .csd-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .csd-header { top: 32px; } }
@media (max-width: 600px) { .admin-bar .csd-header { top: 0; } }

.csd-header__inner {
	position: relative;
	height: var(--header-h);
	padding: 0 8px 0 20px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.csd-logo { min-width: 0; display: flex; align-items: center; gap: 8px; color: var(--c-900); }
.csd-logo:hover { color: var(--c-900); }
.csd-logo__mark {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background: var(--c-blue);
	color: #fff;
}
.csd-logo__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 18px; font-weight: 800; letter-spacing: -0.03em; }
.csd-header__actions { margin-left: auto; display: flex; }
.csd-searchbar { display: none; }
.csd-nav { display: none; }

.csd-searchbar__field {
	flex: 1;
	min-width: 0;
	height: 44px;
	padding: 0 6px 0 14px;
	display: flex;
	align-items: center;
	gap: 8px;
	border-radius: 14px;
	background: var(--c-100);
	color: var(--c-700);
}
.csd-searchbar__input {
	flex: 1;
	min-width: 0;
	width: 100%;
	height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--c-900);
	font-size: 16px;
	font-weight: 600;
	outline: none;
}
.csd-searchbar__input::placeholder { color: var(--c-700); font-weight: 500; }
.csd-searchbar__input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.csd-searchbar__clear {
	width: 32px;
	height: 32px;
	padding: 0;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
}
.csd-searchbar__clear .csd-icon { width: 20px; height: 20px; padding: 4px; border-radius: 50%; background: var(--c-400); }

/* 모바일: 검색 모드 (PC는 머리글 모양 그대로) */
@media (max-width: 1023px) {
	.csd-header.is-searching .csd-logo,
	.csd-header.is-searching .csd-header__actions,
	.csd-header.is-searching .csd-nav { display: none; }
	.csd-header.is-searching .csd-header__inner { padding: 0 12px 0 4px; gap: 4px; }
	.csd-header.is-searching .csd-searchbar { flex: 1; min-width: 0; display: flex; align-items: center; gap: 4px; }
}

/* 모바일: 메뉴 열림 */
.csd-header.is-menu .csd-nav {
	position: absolute;
	top: var(--header-h);
	left: 0;
	right: 0;
	display: block;
	padding: 8px 12px 16px;
	border-top: 1px solid var(--c-100);
	background: #fff;
	box-shadow: 0 16px 24px rgba(25, 31, 40, .08);
}
.csd-nav__list { margin: 0; padding: 0; list-style: none; }
.csd-nav__list a {
	height: 48px;
	padding: 0 12px;
	display: flex;
	align-items: center;
	border-radius: 12px;
	color: var(--c-800);
	font-size: 16px;
	font-weight: 600;
}
.csd-nav__list a:hover { background: var(--c-100); color: var(--c-900); }

/* 검색 결과 패널 */
.csd-search {
	position: fixed;
	top: var(--header-h);
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 49;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #fff;
}
.admin-bar .csd-search { top: calc(var(--header-h) + 46px); }
@media (min-width: 783px) { .admin-bar .csd-search { top: calc(var(--header-h) + 32px); } }
.csd-search__inner { padding: 4px 20px 40px; }
.csd-search__hint {
	padding: 12px 14px;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	border-radius: 12px;
	background: var(--c-50);
	color: var(--c-700);
	font-size: 14px;
	line-height: 1.55;
}
.csd-search__hint .csd-icon { margin-top: 1px; }
.csd-search__hint p { margin: 0; }
.csd-search__hint b { color: var(--c-800); font-weight: 600; }
.csd-search__title { margin: 22px 0 6px; font-size: 14px; font-weight: 600; color: var(--c-600); }
.csd-search__sep { height: 1px; margin: 8px 0 0; background: var(--c-100); }
.csd-search__empty { margin: 0; padding: 32px 0 8px; text-align: center; color: var(--c-700); font-size: 15px; }
.csd-search__request {
	margin-top: 20px;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-radius: 16px;
	background: var(--c-50);
}
.csd-search__request b { display: block; font-size: 15px; color: var(--c-900); }
.csd-search__request span { display: block; font-size: 14px; color: var(--c-700); }
.csd-search__request a { flex-shrink: 0; }
.csd-hl { color: var(--c-blue); font-weight: 700; }
body.csd-no-scroll { overflow: hidden; }

/* =========================================================================
   목록 줄
   ========================================================================= */
.csd-list { margin: 0; padding: 0; list-style: none; }
.csd-item__link { padding: 12px 0; display: flex; align-items: center; gap: 14px; color: var(--c-900); }
.csd-item__link:hover { color: var(--c-900); }
.csd-item__link:hover .csd-item__name { text-decoration: underline; text-underline-offset: 3px; }
.csd-avatar {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	font-size: 17px;
	font-weight: 700;
}
.csd-avatar--img { object-fit: cover; background: var(--c-100); }
.csd-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.csd-item__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; font-weight: 600; }
.csd-item__meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: var(--c-600); }
.csd-item__num { color: var(--c-800); font-weight: 500; font-variant-numeric: tabular-nums; }

.csd-item--large .csd-item__link { padding: 16px 0; align-items: flex-start; }
.csd-list--large > li + li { border-top: 1px solid var(--c-100); }
.csd-item__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.csd-item--large .csd-item__name { font-size: 17px; }
.csd-item__phone { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.csd-item__today,
.csd-item__sub { font-size: 14px; color: var(--c-600); }
.csd-list__ad .csd-ad { margin: 0; padding: 14px 0 16px; }

.csd-rows { margin: 0; padding: 0; list-style: none; }
.csd-rows li + li { border-top: 1px solid var(--c-100); }
.csd-rows__link { padding: 14px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--c-900); }
.csd-rows__link:hover { color: var(--c-900); }
.csd-rows__name { min-width: 0; font-size: 16px; font-weight: 500; }
.csd-rows__date { flex-shrink: 0; font-size: 14px; color: var(--c-600); font-variant-numeric: tabular-nums; }

/* =========================================================================
   홈
   ========================================================================= */
.csd-home-hero { margin-top: 0; padding: 24px var(--gutter) 28px; }
.csd-eyebrow { margin: 0 0 8px; font-size: 15px; font-weight: 600; color: var(--c-blue); }
.csd-home-hero__title { margin: 0 0 20px; font-size: 27px; line-height: 1.38; font-weight: 700; letter-spacing: -0.03em; }
.csd-fakesearch {
	height: 56px;
	padding: 0 18px;
	display: flex;
	align-items: center;
	gap: 10px;
	border-radius: 16px;
	background: var(--c-100);
	color: var(--c-700);
	font-size: 16px;
	font-weight: 500;
}
.csd-fakesearch:hover { background: var(--c-200); color: var(--c-800); }
.csd-keywords { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.csd-keywords__label { margin-right: 2px; font-size: 13px; font-weight: 600; color: var(--c-600); }

.csd-cats {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	row-gap: 20px;
	column-gap: 8px;
}
.csd-cat {
	width: 100%;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	border: 0;
	background: none;
	color: var(--c-800);
	cursor: pointer;
}
.csd-cat:hover { color: var(--c-900); }
.csd-cat__icon { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; border-radius: 18px; transition: transform .15s ease; }
.csd-cat:hover .csd-cat__icon { transform: translateY(-2px); }
.csd-cat__name { font-size: 14px; font-weight: 500; line-height: 1.3; text-align: center; }
.js .csd-cat--more { display: none; }
.js .csd-cats.is-open .csd-cat--more { display: list-item; }
.csd-cats.is-open .csd-cats__toggle-wrap { display: none; }

.csd-regions { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.csd-region {
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--c-100);
	color: var(--c-800);
	font-size: 15px;
	font-weight: 500;
}
.csd-region:hover { background: var(--c-200); color: var(--c-900); }

/* 지역 바둑판: 센터 수 (칸 폭을 글자에 맞춰 자동으로) */
.csd-regions.csd-regions--count { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); }
.csd-regions--count .csd-region { gap: 6px; padding: 0 8px; white-space: nowrap; }
.csd-region__count { min-width: 22px; height: 20px; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #fff; color: var(--c-600); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }

/* =========================================================================
   브랜드 전용 사이트
   ========================================================================= */
.csd-offnote { background: var(--c-50); border-bottom: 1px solid var(--c-250); }
.csd-offnote__inner { max-width: 1200px; margin: 0 auto; padding: 9px var(--gutter); display: flex; align-items: flex-start; gap: 6px; font-size: 13px; line-height: 1.55; color: var(--c-700); }
.csd-offnote__inner .csd-icon { margin-top: 2px; flex-shrink: 0; color: var(--c-500); }
.csd-offnote__inner b { font-weight: 600; color: var(--c-800); }
.csd-offnote__link { flex-shrink: 0; margin-left: auto; font-weight: 600; color: var(--c-blue-dark); white-space: nowrap; }

.csd-brandhome .csd-home-hero__title { margin-bottom: 18px; }
.csd-brandhome .csd-hero { margin-bottom: 12px; }
.csd-brandhome__more { margin: 0 0 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.csd-brandhome__ars { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--c-700); }
.csd-brandhome__ars b { font-weight: 700; color: var(--c-900); }
.csd-brandhome__link { display: inline-flex; align-items: center; gap: 2px; font-size: 15px; font-weight: 600; }

/* 본부: 브랜드 목록 */
.csd-abc { margin: -4px 0 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.csd-abc a { min-width: 36px; height: 36px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--c-100); color: var(--c-800); font-size: 15px; font-weight: 600; }
.csd-abc a:hover { background: var(--c-200); color: var(--c-900); }
.csd-brandgroup { margin: 20px 0 4px; font-size: 15px; font-weight: 700; color: var(--c-600); scroll-margin-top: calc(var(--header-h) + 16px); }
.csd-brandgrid { margin: 0; padding: 0; list-style: none; }
.csd-brandgrid li + li { border-top: 1px solid var(--c-100); }
.csd-brandcard { min-height: 68px; padding: 10px 0; display: flex; align-items: center; gap: 14px; color: var(--c-900); }
.csd-brandcard:hover { color: var(--c-900); }
.csd-brandcard__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.csd-brandcard__name { font-size: 16px; font-weight: 600; }
.csd-brandcard__meta { font-size: 14px; color: var(--c-600); }
.csd-brandcard > .csd-icon { color: var(--c-400); }

/* =========================================================================
   광고
   ========================================================================= */
.csd-ad { margin-top: 12px; padding: 14px var(--gutter) 20px; background: #fff; }
.csd-ad__label { margin: 0 0 8px; font-size: 12px; font-weight: 500; color: var(--c-600); }
.csd-ad__slot { min-height: 250px; }
.csd-ad--side .csd-ad__slot { min-height: 600px; }
.csd-ad:has(ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
.csd-main > .csd-ad { max-width: 1200px; margin-left: auto; margin-right: auto; }
@media (min-width: 1024px) { .csd-ad--mobile { display: none; } }
@media (max-width: 1023px) { .csd-ad--desktop, .csd-ad--side { display: none; } }

/* =========================================================================
   상세 (고객센터·지점)
   ========================================================================= */
.csd-entry__head,
.csd-archive__head { margin-top: 0; padding-top: 8px; }

.csd-crumbs ol {
	height: 36px;
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 4px;
	overflow: hidden;
	white-space: nowrap;
	font-size: 14px;
	color: var(--c-600);
}
.csd-crumbs li { min-width: 0; display: flex; align-items: center; gap: 4px; }
.csd-crumbs a { color: var(--c-600); }
.csd-crumbs a:hover { color: var(--c-900); }
.csd-crumbs .csd-icon { color: var(--c-500); }
.csd-crumbs [aria-current] { overflow: hidden; text-overflow: ellipsis; color: var(--c-800); font-weight: 500; }

.csd-title { margin: 8px 0 10px; font-size: 25px; line-height: 1.42; font-weight: 700; letter-spacing: -0.03em; }
.csd-verified { margin: 0 0 14px; display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--c-600); }
.csd-verified .csd-icon { color: #0A7A4A; }
.csd-summary { margin: 0 0 20px; font-size: 16px; line-height: 1.7; color: var(--c-800); }
.csd-nowrap { white-space: nowrap; }

.csd-hero {
	padding: 22px 20px 20px;
	display: flex;
	gap: 28px;
	border: 1px solid var(--c-250);
	border-radius: 22px;
	background: var(--c-50);
}
.csd-hero__main { flex: 1; min-width: 0; }
.csd-hero__label { margin: 18px 0 2px; font-size: 14px; font-weight: 500; color: var(--c-700); }
.csd-hero__number { margin: 0; font-size: 38px; line-height: 1.2; font-weight: 800; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.csd-hero__hours { margin: 8px 0 0; font-size: 14px; color: var(--c-700); }
.csd-hero__actions { margin-top: 20px; display: flex; gap: 8px; }
.csd-hero__actions .csd-btn--copy { flex: 1 1 0; min-width: 0; }
.csd-hero__actions .csd-btn--call { flex: 1.5 1 0; min-width: 0; font-size: 17px; }
.csd-hero__qr { display: none !important; }

.csd-notice {
	margin-top: 12px;
	padding: 16px 16px 16px 18px;
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 16px;
	background: var(--c-blue-50);
	color: var(--c-900);
}
.csd-notice:hover { background: #DCEBFF; color: var(--c-900); }
.csd-notice__body { flex: 1; min-width: 0; }
.csd-notice__title { display: block; font-size: 15px; font-weight: 700; color: var(--c-blue-dark); }
.csd-notice__text { display: block; font-size: 14px; color: var(--c-800); }
.csd-notice__text b { font-variant-numeric: tabular-nums; }
.csd-notice .csd-icon { color: var(--c-blue-dark); }

/* 전화번호 표 */
.csd-phones { width: 100%; border-collapse: collapse; }
.csd-phones tbody { display: block; }
.csd-phones tr {
	padding: 14px 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "label act" "num act";
	align-items: center;
	column-gap: 12px;
}
.csd-phones tr + tr { border-top: 1px solid var(--c-100); }
.csd-phones th,
.csd-phones td { padding: 0; text-align: left; }
.csd-phones__label { grid-area: label; margin-bottom: 3px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; font-weight: 400; color: var(--c-600); }
.csd-phones__num { grid-area: num; font-size: 20px; font-weight: 700; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.csd-phones__act { grid-area: act; display: flex; gap: 8px; }

/* 운영시간 표 */
.csd-hours { width: 100%; border: 1px solid var(--c-250); border-radius: 16px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.csd-hours th,
.csd-hours td { height: 52px; padding: 0 16px; font-size: 16px; font-weight: 500; color: var(--c-800); text-align: left; }
.csd-hours td { text-align: right; font-variant-numeric: tabular-nums; }
.csd-hours tr + tr th,
.csd-hours tr + tr td { border-top: 1px solid var(--c-250); }
.csd-hours tr.is-today { background: var(--c-blue-50); }
.csd-hours tr.is-today.is-off { background: var(--c-100); }
.csd-hours tr.is-today th,
.csd-hours tr.is-today td { color: var(--c-900); font-weight: 700; }
.csd-today-badge {
	height: 22px;
	margin-left: 8px;
	padding: 0 8px;
	display: inline-flex;
	align-items: center;
	vertical-align: 1px;
	border-radius: 6px;
	background: var(--c-blue);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}
.is-off .csd-today-badge { background: var(--c-700); }
.csd-notes { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.csd-note { margin: 0; display: flex; align-items: flex-start; gap: 6px; font-size: 14px; line-height: 1.5; color: var(--c-700); }
.csd-note .csd-icon { margin-top: 1px; }

/* 상담원 연결 순서 */
.csd-ars {
	padding: 16px 18px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 8px;
	border-radius: 16px;
	background: var(--c-50);
}
.csd-ars__lead { margin: 0; display: flex; flex-direction: column; gap: 2px; white-space: nowrap; }
.csd-ars__lead small { font-size: 13px; color: var(--c-700); }
.csd-ars__lead b { font-size: 15px; font-weight: 700; color: var(--c-900); }
.csd-ars__keys { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.csd-key {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--c-900);
	color: #fff;
	font-size: 18px;
	font-weight: 700;
}
.csd-key--last { background: var(--c-blue); }
.csd-key__arrow { color: var(--c-500); }
.csd-ars__list { margin: 16px 0 0; padding: 0; list-style: none; }
.csd-ars__list li { padding: 10px 0; display: flex; align-items: center; gap: 14px; font-size: 16px; color: var(--c-800); }
.csd-ars__list li + li { border-top: 1px solid var(--c-100); }
.csd-ars__key {
	width: 52px;
	height: 34px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: var(--c-100);
	color: var(--c-900);
	font-size: 15px;
	font-weight: 700;
}
.csd-ars__list li.is-last .csd-ars__key { background: var(--c-blue-50); color: var(--c-blue-dark); }
.csd-ars__list li.is-last .csd-ars__label { font-weight: 600; color: var(--c-900); }

/* 본문 */
.csd-prose { font-size: 17px; line-height: 1.75; color: var(--c-800); }
.csd-prose > :first-child { margin-top: 0; }
.csd-prose > :last-child { margin-bottom: 0; }
.csd-prose p { margin: 0 0 1em; }
.csd-prose h2 { margin: 1.6em 0 .6em; font-size: 20px; line-height: 1.4; letter-spacing: -0.02em; color: var(--c-900); }
.csd-prose h3 { margin: 1.4em 0 .5em; font-size: 18px; line-height: 1.45; color: var(--c-900); }
.csd-prose ul,
.csd-prose ol { margin: 0 0 1em; padding-left: 1.3em; }
.csd-prose li + li { margin-top: .3em; }
.csd-prose a { text-decoration: underline; text-underline-offset: 3px; }
.csd-prose img { border-radius: 12px; }
.csd-prose figure { margin: 1.2em 0; }
.csd-prose figcaption { margin-top: 6px; font-size: 14px; color: var(--c-600); text-align: center; }
.csd-prose blockquote { margin: 1.2em 0; padding: 14px 18px; border-radius: 12px; background: var(--c-50); color: var(--c-700); }
.csd-prose table { width: 100%; margin: 1.2em 0; border-collapse: collapse; font-size: 15px; }
.csd-prose th,
.csd-prose td { padding: 8px 10px; border: 1px solid var(--c-200); text-align: left; }
.csd-prose th { background: var(--c-50); }
.csd-prose .wp-block-table { overflow-x: auto; }

/* 다른 상담 방법 */
.csd-channels { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.csd-channel {
	height: 100%;
	padding: 16px;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--c-250);
	border-radius: 16px;
	background: var(--c-50);
	color: var(--c-900);
}
.csd-channel:hover { background: var(--c-100); color: var(--c-900); }
.csd-channel__icon { width: 36px; height: 36px; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; border-radius: 11px; }
.csd-channel__title { font-size: 16px; font-weight: 600; }
.csd-channel__note { margin-top: 2px; font-size: 13px; color: var(--c-700); }

/* 자주 묻는 질문 */
.csd-faq__item { border-bottom: 1px solid var(--c-100); }
.csd-faq__item:last-child { border-bottom: 0; }
.csd-faq__item summary {
	min-height: 56px;
	padding: 14px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	list-style: none;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}
.csd-faq__item summary::-webkit-details-marker { display: none; }
.csd-faq__item summary .csd-icon { color: var(--c-600); transition: transform .2s ease; }
.csd-faq__item[open] summary .csd-icon { transform: rotate(180deg); }
.csd-faq__a { margin: 0 0 18px; padding: 16px; border-radius: 12px; background: var(--c-50); font-size: 15px; line-height: 1.7; color: var(--c-800); }
.csd-faq__a p { margin: 0; }
.csd-faq__a p + p { margin-top: .6em; }

/* 위치 */
.csd-map { position: relative; height: 200px; margin-bottom: 16px; overflow: hidden; border-radius: 16px; background: #EDF1F5; }
.csd-map__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 14px; color: var(--c-700); }
.csd-address { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.csd-address__text { min-width: 0; display: flex; flex-direction: column; gap: 3px; font-style: normal; }
.csd-address__road { font-size: 16px; font-weight: 600; line-height: 1.5; }
.csd-address__sub { font-size: 14px; color: var(--c-600); }
.csd-address .csd-btn { flex-shrink: 0; }
.csd-directions { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.csd-directions .csd-btn { height: 48px; padding: 0 10px; border-radius: 12px; font-size: 15px; }

/* 찾아가는 길 */
.csd-visit { margin: 0; }
.csd-visit__row {
	padding: 12px 0;
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	grid-template-areas: "icon dt" "icon dd";
	column-gap: 14px;
	align-items: center;
}
.csd-visit__row + .csd-visit__row { border-top: 1px solid var(--c-100); }
.csd-visit__icon { grid-area: icon; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; align-self: start; border-radius: 12px; background: var(--c-100); color: var(--c-700); }
.csd-visit dt { grid-area: dt; font-size: 14px; color: var(--c-600); }
.csd-visit dd { grid-area: dd; margin: 0; font-size: 16px; line-height: 1.55; }

/* 정보 출처 */
.csd-source-sec { padding-top: 24px; padding-bottom: 24px; }
.csd-source { padding: 20px; border: 1px solid var(--c-250); border-radius: 18px; background: var(--c-50); }
.csd-source__title { margin: 0 0 12px; font-size: 16px; font-weight: 700; }
.csd-source__link { margin: 0 0 6px; font-size: 15px; line-height: 1.6; }
.csd-source__link a { color: var(--c-blue-dark); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.csd-source__date { margin: 0; font-size: 14px; color: var(--c-700); }
.csd-source__report { width: 100%; height: 46px; margin-top: 16px; border-radius: 12px; font-size: 15px; }
.csd-source__note { margin: 14px 0 0; font-size: 13px; line-height: 1.6; color: var(--c-700); }

/* 사이드 (모바일에선 본문 아래) */
.csd-toc { display: none; }
.csd-side .csd-related { padding-bottom: 16px; }

/* =========================================================================
   목록 페이지
   ========================================================================= */
.csd-archive__desc { font-size: 16px; line-height: 1.65; color: var(--c-700); }
.csd-archive__desc p { margin: 0; }
.csd-filters { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.csd-filter {
	height: 38px;
	padding: 0 16px;
	border: 0;
	border-radius: 999px;
	background: var(--c-100);
	color: var(--c-800);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.csd-filter:hover { background: var(--c-200); }
.csd-filter[aria-pressed="true"] { background: var(--c-900); color: #fff; }
.csd-archive__list { padding-top: 8px; padding-bottom: 20px; }
.csd-list-tools {
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-bottom: 1px solid var(--c-100);
	font-size: 14px;
	color: var(--c-600);
}
.csd-list-tools__sort { flex-shrink: 0; font-weight: 600; color: var(--c-800); }
.csd-more {
	width: 100%;
	height: 52px;
	margin-top: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	border-radius: 14px;
	background: var(--c-100);
	color: var(--c-800);
	font-size: 16px;
	font-weight: 600;
}
.csd-more:hover { background: var(--c-200); color: var(--c-900); }
.csd-more.is-loading { opacity: .6; pointer-events: none; }
[data-csd-item].is-filtered { display: none; }

/* 검색 폼·쪽 번호 */
.csd-searchform { margin-top: 16px; display: flex; gap: 8px; }
.csd-searchform__input {
	flex: 1;
	min-width: 0;
	height: 50px;
	padding: 0 16px;
	border: 1px solid var(--c-200);
	border-radius: 14px;
	background: #fff;
	font-size: 16px;
}
.csd-searchform__input:focus { border-color: var(--c-blue); outline: none; box-shadow: 0 0 0 3px rgba(31, 108, 230, .15); }
.csd-searchform__btn { height: 50px; }
.navigation.pagination { margin-top: 16px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.page-numbers {
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: var(--c-100);
	color: var(--c-800);
	font-weight: 600;
}
.page-numbers.current { background: var(--c-900); color: #fff; }

/* 일반 글·페이지 */
.csd-page__card { margin-top: 0; }
.csd-meta { margin: 0 0 16px; font-size: 14px; color: var(--c-600); }
.csd-page__thumb { margin: 0 0 20px; }
.csd-page__thumb img { width: 100%; border-radius: 16px; }
.csd-notfound { margin-top: 0; padding-top: 32px; }
.csd-notfound__home { margin-top: 12px; }

/* =========================================================================
   바닥글·알림
   ========================================================================= */
.csd-footer { padding: 32px var(--gutter) 44px; background: var(--c-bg); }
.csd-footer__brand { margin: 0 0 10px; font-size: 15px; font-weight: 800; letter-spacing: -0.02em; }
.csd-footer__nav ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.csd-footer__nav a { font-size: 14px; font-weight: 600; color: var(--c-800); }
.csd-footer__nav a:hover { color: var(--c-900); text-decoration: underline; }
.csd-footer__note { margin: 16px 0 0; font-size: 13px; line-height: 1.65; color: var(--c-700); }
.csd-footer__copy { margin: 12px 0 0; font-size: 13px; color: var(--c-700); }

.csd-toast {
	position: fixed;
	left: 50%;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 60;
	max-width: calc(100% - 40px);
	padding: 12px 18px;
	transform: translateX(-50%);
	border-radius: 14px;
	background: rgba(25, 31, 40, .92);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

/* =========================================================================
   PC (1024px 이상)
   ========================================================================= */
@media (min-width: 1024px) {
	:root { --header-h: 72px; }

	.csd-wrap { padding: 0 40px; }
	.csd-main { padding-bottom: 64px; }
	.csd-card { margin-top: 20px; padding: 32px; border-radius: 24px; }
	.csd-main > .csd-wrap > .csd-card:first-child,
	.csd-home > .csd-card:first-child { margin-top: 32px; }
	.csd-ad { margin-top: 20px; padding: 20px 32px 28px; border-radius: 24px; }
	.csd-main > .csd-ad { max-width: 1120px; }

	.csd-header { border-bottom: 1px solid var(--c-250); }
	.csd-header__inner { padding: 0 40px; gap: 32px; }
	.csd-logo__mark { width: 32px; height: 32px; border-radius: 10px; }
	.csd-logo__text { font-size: 20px; }
	.csd-searchbar { flex: 0 1 460px; margin: 0 auto; display: flex; }
	.csd-searchbar__back,
	.csd-header__actions { display: none; }
	.csd-searchbar__field { height: 46px; }
	.csd-nav,
	.csd-header.is-menu .csd-nav { position: static; display: block; padding: 0; border: 0; box-shadow: none; }
	.csd-nav__list { display: flex; gap: 4px; }
	.csd-nav__list a { height: 40px; padding: 0 14px; border-radius: 10px; font-size: 15px; }

	.csd-search {
		position: absolute;
		top: calc(100% + 8px);
		bottom: auto;
		left: 50%;
		width: min(640px, calc(100% - 80px));
		max-height: min(70vh, 640px);
		transform: translateX(-50%);
		border: 1px solid var(--c-250);
		border-radius: 20px;
		box-shadow: 0 20px 40px rgba(25, 31, 40, .14);
	}
	.admin-bar .csd-search { top: calc(100% + 8px); }
	.csd-search__inner { padding: 16px 20px 20px; }
	body.csd-no-scroll { overflow: auto; }

	/* 홈 */
	.csd-home { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
	.csd-home > .csd-ad { margin-left: 0; margin-right: 0; }
	.csd-home-hero { padding: 40px 48px; }
	.csd-home-hero__title { font-size: 34px; }
	.csd-home-hero__inner { max-width: 640px; }
	.csd-cats { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 24px; }
	.csd-regions { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.csd-regions.csd-regions--count { grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); }
	.csd-home .csd-list,
	.csd-single .csd-sec:not(.csd-related) .csd-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
	.csd-home .csd-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
	.csd-home .csd-rows li + li { border-top: 0; }
	.csd-home .csd-rows li { border-bottom: 1px solid var(--c-100); }

	/* 상세 */
	.csd-single { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 0 40px; align-items: start; }
	.csd-entry { min-width: 0; }
	.csd-entry__head { margin-top: 32px; }
	/* 오른쪽: 목차·광고는 따라 내려오고, 관련 목록은 맨 아래 (겹치지 않음) */
	.csd-side { align-self: stretch; display: flex; flex-direction: column; }
	.csd-side__area { flex: 1 0 auto; }
	.csd-side__sticky { position: sticky; top: calc(var(--header-h) + 20px); }
	.admin-bar .csd-side__sticky { top: calc(var(--header-h) + 52px); }
	.csd-side .csd-ad { padding: 16px 10px 10px; }
	.csd-side .csd-ad__label { margin-left: 6px; }
	.csd-side .csd-related { margin-top: 20px; padding: 24px 24px 12px; }
	.csd-side .csd-related .csd-sec__title { margin-bottom: 6px; font-size: 17px; }
	.csd-side .csd-related .csd-avatar { width: 40px; height: 40px; border-radius: 12px; font-size: 16px; }
	.csd-side .csd-related .csd-item__name { font-size: 15px; }

	.csd-title { font-size: 32px; line-height: 1.38; }
	.csd-summary { font-size: 17px; }
	.csd-hero { padding: 28px; align-items: center; }
	.csd-hero__number { font-size: 48px; line-height: 1.15; }
	.csd-hero__hours { font-size: 15px; }
	.csd-hero__actions { margin-top: 22px; }
	.csd-hero__actions .csd-btn--copy { flex: 0 0 180px; border: 0; background: var(--c-blue); color: #fff; font-weight: 700; }
	.csd-hero__actions .csd-btn--copy:hover { background: var(--c-blue-dark); color: #fff; }
	.csd-hero__actions .csd-btn--call { flex: 0 0 150px; border: 1px solid var(--c-200); background: #fff; color: var(--c-800); font-size: 16px; font-weight: 600; }
	.csd-hero__actions .csd-btn--call:hover { background: var(--c-50); color: var(--c-900); }
	.csd-hero__qr { width: 170px; flex-shrink: 0; display: flex !important; flex-direction: column; align-items: center; gap: 10px; }
	.csd-hero__qr[hidden] { display: none !important; }
	.csd-hero__qrbox { width: 132px; height: 132px; padding: 12px; border: 1px solid var(--c-200); border-radius: 16px; background: #fff; }
	.csd-hero__qrbox svg { display: block; width: 100%; height: 100%; }
	.csd-hero__qr p { margin: 0; font-size: 13px; line-height: 1.5; text-align: center; color: var(--c-700); }

	.csd-phones tr { min-height: 66px; padding: 10px 0; grid-template-columns: 200px minmax(0, 1fr) auto; grid-template-areas: "label num act"; column-gap: 16px; }
	.csd-phones__label { margin: 0; font-size: 15px; color: var(--c-700); }
	.csd-phones__num { font-size: 21px; }

	.csd-channels { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
	.csd-channel { padding: 18px; }

	.csd-toc { display: block; padding: 24px; }
	.csd-toc__title { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: var(--c-600); }
	.csd-toc ul { margin: 0; padding: 0; list-style: none; }
	.csd-toc a { height: 40px; padding: 0 12px; display: flex; align-items: center; border-radius: 10px; font-size: 15px; font-weight: 500; color: var(--c-800); }
	.csd-toc a:hover { background: var(--c-100); color: var(--c-900); }
	.csd-toc a.is-active { background: var(--c-blue-50); color: var(--c-blue-dark); font-weight: 600; }
	.csd-side__sticky > :first-child,
	.csd-side > .csd-related:first-child { margin-top: 32px; }

	/* 브랜드 홈·본부 */
	.csd-offnote__inner { padding: 10px 40px; }
	.csd-brandhome .csd-home-hero__title { font-size: 32px; }
	.csd-brandgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
	.csd-brandgrid li + li { border-top: 0; }
	.csd-brandgrid li { border-bottom: 1px solid var(--c-100); }

	/* 목록 */
	.csd-archive { max-width: 1200px; }
	.csd-archive__head,
	.csd-archive > .csd-card:first-child { margin-top: 32px; }

	/* 바닥글 */
	.csd-footer { padding: 36px 0 48px; border-top: 1px solid var(--c-250); background: #fff; }
	.csd-footer__inner { padding: 0 40px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "brand nav" "note note" "copy copy"; column-gap: 48px; }
	.csd-footer__brand { grid-area: brand; font-size: 16px; }
	.csd-footer__nav { grid-area: nav; }
	.csd-footer__note { grid-area: note; max-width: 720px; font-size: 14px; }
	.csd-footer__copy { grid-area: copy; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
	.csd-header,
	.csd-footer,
	.csd-ad,
	.csd-side,
	.csd-hero__actions { display: none !important; }
	body { background: #fff; }
	.csd-card { margin: 0; padding: 12px 0; }
}
