/* 포털 정적/콘텐츠 페이지 전용 CSS — F-03 입점 안내 · F-04 공지/FAQ 탭 · F-11 약관/고지 탭 (묶음7 M4 L3)
 * 전 선택자 body.portal-site 접두(래칫) — 포털이 아닌 캠프 사이트는 이 파일이 로드돼도 아무 것도 걸리지 않는다.
 * 색은 assets/ds/tokens.css 토큰만 쓴다(Global Constraints). Figma 원본 히어로(#1f3a2e)·안내박스(#eaf4fb) 는
 * DS 토큰에 없는 하드코딩 예외라 가장 가까운 토큰(--ds-dark, --ds-surface)으로 대체했다(정확한 색 재현보다
 * "색은 토큰 변수로" 원칙을 우선). */

/* ── 공통 탭 바 (F-04 공지·FAQ / F-11 약관·고지 공용) ───────────────────────── */
body.portal-site .portal-board-tabs,
body.portal-site .portal-policy-tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid var(--ds-border, #e5e5e5);
	margin: 0 0 20px;
	padding: 0 4px;
}

body.portal-site .portal-tab {
	display: inline-block;
	padding: 12px 16px;
	font-size: var(--ds-font-label-size, 14px);
	font-weight: var(--ds-font-label-weight, 500);
	color: var(--ds-text-muted, #767676);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

body.portal-site .portal-tab:hover {
	color: var(--ds-text-strong, #231f20);
}

body.portal-site .portal-tab.is-selected {
	color: var(--ds-text-strong, #231f20);
	border-bottom-color: var(--ds-primary, #231f20);
	font-weight: 700;
}

/* ── F-11 약관/고지 본문 ───────────────────────────────────────────────── */
body.portal-site .portal-policy-body {
	border: 1px solid var(--ds-border, #e5e5e5);
	border-radius: var(--ds-radius-card-portal, 12px);
	padding: 24px;
}

body.portal-site .portal-policy-body h3 {
	font-size: var(--ds-font-title-size, 18px);
	font-weight: 700;
	color: var(--ds-text-strong, #231f20);
	margin: 20px 0 8px;
}

body.portal-site .portal-policy-body h3:first-child {
	margin-top: 0;
}

body.portal-site .portal-policy-body p {
	font-size: var(--ds-font-body-m-size, 16px);
	line-height: var(--ds-font-body-m-line, 170%);
	color: var(--ds-text, #3a3a3a);
	margin: 0 0 4px;
}

/* ── F-03 입점 안내 ────────────────────────────────────────────────────── */
body.portal-site .portal-partner-hero {
	background: var(--ds-dark, #231f20);
	color: var(--ds-on-primary, #ffffff);
	border-radius: var(--ds-radius-card-portal, 12px);
	padding: 40px 32px;
	margin-bottom: 24px;
}

body.portal-site .portal-partner-hero h2 {
	font-size: var(--ds-font-h1-size, 40px);
	line-height: var(--ds-font-h1-line, 135%);
	font-weight: 700;
	margin: 0 0 12px;
}

body.portal-site .portal-partner-hero p {
	font-size: var(--ds-font-body-l-size, 18px);
	margin: 0;
	opacity: .9;
}

body.portal-site .portal-partner-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

body.portal-site .portal-partner-steps li {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid var(--ds-border, #e5e5e5);
	border-radius: 999px;
	font-size: var(--ds-font-label-size, 14px);
	color: var(--ds-text, #3a3a3a);
}

body.portal-site .portal-partner-steps li:first-child {
	border-color: var(--ds-primary, #231f20);
	color: var(--ds-text-strong, #231f20);
	font-weight: 700;
}

body.portal-site .portal-partner-steps .step-no {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--ds-secondary, #e5e5e5);
	font-size: 12px;
}

body.portal-site .portal-partner-compare {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

body.portal-site .portal-partner-compare caption {
	text-align: left;
	font-size: var(--ds-font-h3-size, 24px);
	font-weight: 700;
	color: var(--ds-text-strong, #231f20);
	margin-bottom: 12px;
}

body.portal-site .portal-partner-compare th,
body.portal-site .portal-partner-compare td {
	border: 1px solid var(--ds-border, #e5e5e5);
	padding: 12px 16px;
	text-align: left;
	font-size: var(--ds-font-body-s-size, 14px);
}

body.portal-site .portal-partner-compare thead th {
	background: var(--ds-surface, #f5f5f5);
	font-weight: 700;
}

body.portal-site .portal-partner-compare tbody th {
	background: var(--ds-surface, #f5f5f5);
	font-weight: 500;
	color: var(--ds-text-muted, #767676);
	white-space: nowrap;
}

body.portal-site .portal-partner-note {
	background: var(--ds-surface, #f5f5f5);
	border-radius: 8px;
	padding: 14px 18px;
	font-size: var(--ds-font-body-s-size, 14px);
	color: var(--ds-text-muted, #767676);
	margin-bottom: 24px;
}

body.portal-site .portal-btn-accent {
	display: inline-block;
	background: var(--ds-accent, #c4501a);
	color: var(--ds-on-primary, #ffffff);
	font-weight: 700;
	padding: 14px 28px;
	border-radius: 8px;
	text-decoration: none;
}

body.portal-site .portal-btn-accent:hover {
	opacity: .92;
}

/* ── D5-7 공개 입점 신청 폼(단계5 O2, Figma 48:6350) ─────────────────────── */
body.portal-site .portal-apply {
	margin-top: 40px;
}

body.portal-site .portal-apply-head {
	text-align: center;
	margin-bottom: 20px;
}

body.portal-site .portal-apply-head h2 {
	font-size: 34px;
	font-weight: 700;
	color: var(--ds-text-strong, #231f20);
	margin: 0 0 12px;
}

body.portal-site .portal-apply-head p {
	font-size: var(--ds-font-body-m-size, 16px);
	color: var(--ds-text-muted, #767676);
	margin: 0;
}

body.portal-site .portal-apply-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 800px;
	margin: 0 auto;
}

body.portal-site .portal-apply-join,
body.portal-site .portal-apply-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	border: 0;
	margin: 0;
	padding: 0;
}

body.portal-site .portal-apply-join legend,
body.portal-site .portal-apply-chips legend {
	width: 100%;
	margin-bottom: 8px;
}

body.portal-site .portal-apply-card {
	flex: 1 1 280px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px;
	border: 1px solid var(--ds-border, #e5e5e5);
	border-radius: 14px;
	background: var(--ds-bg, #ffffff);
	cursor: pointer;
}

body.portal-site .portal-apply-card::before {
	content: "";
	width: 32px;
	height: 6px;
	border-radius: 3px;
	background: var(--ds-place, #f36d21);
}

body.portal-site .portal-apply-card.is-linked::before {
	background: var(--ds-travel, #3dace2);
}

body.portal-site .portal-apply-card:has(input:checked) {
	border: 2px solid var(--ds-primary, #231f20);
	padding: 21px;
}

body.portal-site .portal-apply-card strong {
	font-size: 19px;
	color: var(--ds-text-strong, #231f20);
}

body.portal-site .portal-apply-card span {
	font-size: var(--ds-font-body-s-size, 14px);
	color: var(--ds-text, #3a3a3a);
}

body.portal-site .portal-apply-terms {
	margin: 0;
	text-align: center;
	font-size: 13px;
	font-weight: 500;
	color: var(--ds-place-text, #c4501a);
}

body.portal-site .portal-apply-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--ds-text-strong, #231f20);
	margin: 16px 0 0;
}

body.portal-site .portal-apply-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

body.portal-site .portal-apply-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

body.portal-site .portal-apply-label {
	font-size: var(--ds-font-label-size, 14px);
	font-weight: 500;
	color: var(--ds-text-strong, #231f20);
}

body.portal-site .portal-apply-field input,
body.portal-site .portal-apply-field select,
body.portal-site .portal-apply-field textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--ds-border, #e5e5e5);
	border-radius: 8px;
	background: var(--ds-surface, #f5f5f5);
	font-size: var(--ds-font-body-m-size, 16px);
	color: var(--ds-text-strong, #231f20);
}

body.portal-site .portal-apply-field textarea {
	padding: 12px 16px;
	resize: vertical;
}

body.portal-site .portal-apply-field input:focus,
body.portal-site .portal-apply-field select:focus,
body.portal-site .portal-apply-field textarea:focus {
	outline: 2px solid var(--ds-primary, #231f20);
	outline-offset: -1px;
}

body.portal-site .portal-apply-hint {
	margin: 0;
	font-size: 13px;
	color: var(--ds-text-muted, #767676);
}

body.portal-site .portal-apply-chips label {
	cursor: pointer;
}

body.portal-site .portal-apply-chips input {
	position: absolute;
	opacity: 0;
}

body.portal-site .portal-apply-chips span {
	display: inline-flex;
	align-items: center;
	height: 36px;
	padding: 0 14px;
	border: 1px solid var(--ds-border, #e5e5e5);
	border-radius: 999px;
	background: var(--ds-surface, #f5f5f5);
	font-size: var(--ds-font-label-size, 14px);
	color: var(--ds-text, #3a3a3a);
}

body.portal-site .portal-apply-chips input:checked + span {
	background: var(--ds-primary, #231f20);
	border-color: var(--ds-primary, #231f20);
	color: var(--ds-on-primary, #ffffff);
}

body.portal-site .portal-apply-chips input:focus-visible + span {
	outline: 2px solid var(--ds-primary, #231f20);
	outline-offset: 2px;
}

/* 허니팟 — 화면 밖으로(display:none 은 일부 봇이 건너뛴다) */
body.portal-site .portal-apply-hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

body.portal-site .portal-apply-consent {
	font-size: var(--ds-font-label-size, 14px);
	color: var(--ds-text-strong, #231f20);
}

body.portal-site .portal-apply-consent p {
	margin: 6px 0 0 24px;
	font-size: 13px;
	color: var(--ds-text-muted, #767676);
}

body.portal-site .portal-apply-submit {
	width: 100%;
	height: 52px;
	border: 0;
	cursor: pointer;
	font-size: 16px;
}

body.portal-site .portal-apply-submit:disabled {
	opacity: .4;
	cursor: default;
}

body.portal-site .portal-apply-result {
	margin: 0;
	min-height: 1em;
	font-size: var(--ds-font-body-s-size, 14px);
	color: var(--ds-text-strong, #231f20);
}

/* ── 모바일(375) ───────────────────────────────────────────────────────── */
@media (max-width: 480px) {
	body.portal-site .portal-partner-hero {
		padding: 28px 20px;
	}

	body.portal-site .portal-partner-hero h2 {
		font-size: var(--ds-font-h2-size, 32px);
	}

	body.portal-site .portal-partner-steps {
		flex-wrap: nowrap;
		overflow-x: auto;
	}

	body.portal-site .portal-apply-grid {
		grid-template-columns: 1fr;
	}

	body.portal-site .portal-apply-head h2 {
		font-size: 26px;
	}

	body.portal-site .portal-partner-compare {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}

	body.portal-site .portal-board-tabs,
	body.portal-site .portal-policy-tabs {
		overflow-x: auto;
		flex-wrap: nowrap;
	}
}

/* ── F-03 입점 안내 — Figma 03 152:10379 대조(DR-P, 2026-09-28) ─────────────
 * 본문 pt48, 히어로 forest 면(r16·64/56·40px), 단계 칩(첫 칩 primary 채움·13px·사이 ›),
 * 합류 방식 표 = 흰 카드(border·r12·p20) + 제목 17 bold + 행 구분선만, 안내 박스 info-bg. */
body.portal-site .portal-partner-hero {
	background: var(--ds-forest);
	border-radius: 16px;
	padding: 64px 56px;
	margin: 48px 0 24px;
}
body.portal-site .portal-partner-hero p { opacity: 1; }
body.portal-site .container:has(> .portal-partner-hero) { max-width: 1120px; padding-bottom: 80px; }
body.portal-site .portal-partner-steps { gap: 8px 22px; }
body.portal-site .portal-partner-steps li {
	position: relative;
	padding: 8px 14px;
	background: var(--ds-bg);
	font-size: 13px;
	font-weight: 500;
}
body.portal-site .portal-partner-steps li + li::before {
	content: "\203A";
	position: absolute;
	left: -16px;
	color: var(--ds-text-muted);
	font-size: 16px;
	font-weight: 400;
}
body.portal-site .portal-partner-steps li:first-child {
	background: var(--ds-primary);
	border-color: var(--ds-border);
	color: var(--ds-on-primary);
}
body.portal-site .portal-partner-steps .step-no {
	width: auto;
	height: auto;
	background: none;
	font-size: inherit;
	margin-right: 2px;
}
body.portal-site .portal-partner-compare {
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius-card-portal);
	padding: 0 20px 20px;
	margin-bottom: 24px;
}
/* reset.css 가 caption 을 숨긴다(text-indent -9999em) — 표 제목을 다시 보이게 */
body.portal-site .portal-partner-compare caption {
	display: table-caption;
	height: auto;
	text-indent: 0;
	overflow: visible;
	line-height: 1.4;
	font-size: 17px;
	text-align: left;
	padding: 20px 20px 14px;
	border: 1px solid var(--ds-border);
	border-bottom: 0;
	border-radius: var(--ds-radius-card-portal) var(--ds-radius-card-portal) 0 0;
	margin: 0;
}
body.portal-site .portal-partner-compare:has(caption) { border-top: 0; border-radius: 0 0 var(--ds-radius-card-portal) var(--ds-radius-card-portal); }
body.portal-site .portal-partner-compare th,
body.portal-site .portal-partner-compare td {
	border: 0;
	border-bottom: 1px solid var(--ds-border);
	padding: 12px;
	font-size: 13px;
	color: var(--ds-text);
}
body.portal-site .portal-partner-compare thead th {
	padding: 10px 12px;
	color: var(--ds-text-muted);
}
body.portal-site .portal-partner-compare tbody th {
	background: none;
	font-weight: 400;
	color: var(--ds-text);
	width: 152px;
}
body.portal-site .portal-partner-note {
	background: var(--ds-info-bg);
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 13px;
	color: var(--ds-text);
}
@media (max-width: 480px) {
	body.portal-site .portal-partner-hero { padding: 32px 20px; margin-top: 24px; }
	body.portal-site .portal-partner-compare tbody th { width: auto; }
}

/* ── F-11 약관·정책 — Figma 03 157:3010 대조(DR-P) ─────────────────────────
 * 본문 1120 · 상단 여백 80 · 페이지 제목 32 bold, 탭 16px(선택 = text-strong bold + 2px 밑줄),
 * 본문 = 흰 카드(border·r12·p20), 카드 안 소제목 17 bold. 이용약관·개인정보(.policy-wrap)와 고지(.portal-policy-body) 공통. */
body.portal-site .container:has(> .portal-policy-tabs) { max-width: 1120px; padding-top: 80px; padding-bottom: 80px; }
body.portal-site .container:has(> .portal-policy-tabs) > .policy-title {
	margin: 0 0 56px;
	font-size: var(--ds-font-h2-size);
	font-weight: 700;
	color: var(--ds-text-strong);
}
body.portal-site .portal-policy-tabs { gap: 4px; margin-bottom: 24px; }
body.portal-site .portal-policy-tabs .portal-tab { font-size: var(--ds-font-body-m-size); padding: 12px 16px; }
body.portal-site .container:has(> .portal-policy-tabs) .policy-wrap,
body.portal-site .portal-policy-body {
	border: 1px solid var(--ds-border);
	border-radius: var(--ds-radius-card-portal);
	padding: 20px;
	color: var(--ds-text);
}
body.portal-site .policy-wrap .policy-title,
body.portal-site .portal-policy-body h3 {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ds-text-strong);
}
