@font-face {
	font-family: 'Pretendard Variable';
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
	src: url('/css/geo/fonts/PretendardVariable.woff2') format('woff2-variations');
}

/* =====================================================================
 * GEO 기초 진단 리포트 — 화면 · 인쇄 · PDF 공용
 *
 * 방향: 대시보드가 아니라 "읽는 문서".
 *   - 그라데이션을 쓰지 않는다. 바탕은 단색, 강조색은 브랜드 레드 하나만.
 *   - 카드 안에 카드를 겹치지 않는다. 여백과 얇은 선으로만 나눈다.
 *   - 색 배경 위 본문을 흐리게 두지 않는다.
 *   - 상태는 색만으로 구분하지 않고 기호와 이름을 함께 쓴다.
 * ===================================================================== */

:root {
	--rp-ink:    #16192a;	/* 본문 */
	--rp-cover:  #141527;	/* 표지 바탕 — 남보라 기운을 준다 */
	--rp-mid:    #4e5769;
	--rp-dim:    #838d9f;
	--rp-hair:   #e8eaf1;	/* 얇은 선 */
	--rp-rule:   #16192a;	/* 굵은 구분선 */
	--rp-paper:  #ffffff;
	--rp-wash:   #f2f3f9;
	--rp-brand:  #f5384e;

	/* 상태색 — 진한색(글자·막대)과 옅은색(배경)을 쌍으로 쓴다 */
	--rp-good:   #00b27a;	--rp-good-t: #e1f7ef;
	--rp-fair:   #2e6ff2;	--rp-fair-t: #e8f0fe;
	--rp-warn:   #ff7a00;	--rp-warn-t: #fff0e0;
	--rp-bad:    #f5384e;	--rp-bad-t:  #ffebee;
	--rp-none:   #98a2b3;	--rp-none-t: #f0f2f6;

	/* 데이터 축 색 — 이 세 색은 그래프 안에서만 쓴다 */
	--rp-seo:    #2e6ff2;	--rp-seo-t:  #e8f0fe;
	--rp-aeo:    #00b0a6;	--rp-aeo-t:  #e0f6f5;
	--rp-geo:    #f5384e;	--rp-geo-t:  #ffebee;

	/* 예전 이름을 쓰는 규칙이 남아 있어도 깨지지 않게 */
	--rp-line:   #e6e9ee;
	--rp-soft:   #f7f8fa;
}

* { box-sizing: border-box; }

.rp-body {
	margin: 0;
	background: var(--rp-wash);
	color: var(--rp-ink);
	font-family: "Pretendard Variable", Pretendard, "Noto Sans CJK KR",
	             "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
	font-size: 16.5px;
	line-height: 1.9;
	word-break: keep-all;
	overflow-wrap: break-word;
	text-wrap: pretty;
	-webkit-font-smoothing: antialiased;
}

/* ---------------- 상단 도구 막대 ---------------- */
.rp-toolbar { border-bottom: 1px solid var(--rp-hair); background: var(--rp-paper); }
.rp-toolbar-inner {
	max-width: 940px; margin: 0 auto; padding: 18px 40px;
	display: flex; align-items: center; gap: 12px;
}
.rp-toolbar-title { font-size: 13px; font-weight: 600; color: var(--rp-mid); }
.rp-toolbar-sp { flex: 1; }
.rp-btn {
	display: inline-flex; align-items: center; height: 36px; padding: 0 18px;
	border: 1px solid var(--rp-ink); border-radius: 10px;
	background: var(--rp-paper); color: var(--rp-ink);
	font-size: 13px; font-weight: 600; text-decoration: none; letter-spacing: -.01em;
}
.rp-btn--primary { background: var(--rp-ink); color: #fff; }

.rp-draftbar {
	background: #fff6e5; border-bottom: 1px solid #f0d9ae; color: #7a4a06;
	font-size: 12.5px; line-height: 1.7; padding: 11px 24px; text-align: center;
}

/* ---------------- 지면 ---------------- */
.rp-page { max-width: 940px; margin: 0 auto; padding: 44px 40px 84px; background: var(--rp-paper); }
.rp { padding: 0; }

/* ---------------- 표지 ---------------- */
.rp-cover {
	display: table; width: 100%;
	background: var(--rp-cover); color: #fff;
	border-radius: 20px;
	margin: 0; padding: 44px 40px 40px;
}
.rp-cover-top { display: table-cell; vertical-align: bottom; width: auto; }
.rp-brandbar { margin-bottom: 34px; white-space: nowrap; }
.rp-logo, .rp-tag { display: inline-block; vertical-align: middle; }
.rp-tag { margin-left: 10px; }
.rp-logo { font-size: 11px; font-weight: 700; letter-spacing: .22em; color: #fff; white-space: nowrap; }
.rp-tag {
	white-space: nowrap; border-radius: 999px;
	font-size: 10px; font-weight: 700; letter-spacing: .16em;
	color: #fff; background: var(--rp-brand); padding: 4px 11px;
}
.rp-cover-lead { color: #b6c0cc; font-size: 14.5px; margin: 0 0 12px; letter-spacing: -.01em; }
.rp-cover-title {
	text-wrap: balance;
	font-size: 44px; font-weight: 800; line-height: 1.16;
	margin: 0 0 10px; letter-spacing: -.035em; color: #fff; word-break: break-all;
}
.rp-cover-sub { margin: 0; font-size: 16.5px; color: #d3dae2; font-weight: 500; }

.rp-cover-score { display: table-cell; vertical-align: bottom; text-align: right; white-space: nowrap; padding-left: 44px; }
.rp-score-big {
	display: block; font-size: 92px; font-weight: 800; line-height: 1;
	letter-spacing: -.055em; margin: 10px 0 4px; font-variant-numeric: tabular-nums;
}
.rp-score-big em { font-style: normal; font-size: 20px; font-weight: 600; letter-spacing: -.02em; opacity: .5; margin-left: 2px; }
.rp-meter {
	display: table; width: 272px; table-layout: fixed;
	margin: 20px -5px 0 auto;
	border-collapse: separate; border-spacing: 5px 0;
}
.rp-meter-seg {
	display: table-cell; border-radius: 7px; padding: 6px 0;
	background: rgba(255,255,255,.09); text-align: center; vertical-align: middle;
}
.rp-meter-lab {
	display: block; font-size: 11px; letter-spacing: .01em;
	color: #8b95a9; font-weight: 700; line-height: 1.5;
}
.rp-meter-seg.is-on .rp-meter-lab { color: #14192b; }
.rp-cover-score-cap { display: block; font-size: 12px; color: #8b95a9; letter-spacing: .1em; font-weight: 600; }
.rp-cover-grade { display: block; font-size: 16px; font-weight: 700; margin-top: 2px; letter-spacing: -.01em; }

/* ---------------- 표지 아래 정보 ---------------- */
.rp-cover-meta { display: table; width: 100%; margin: 0; border-bottom: 1px solid var(--rp-hair); }
.rp-cover-meta > div { display: table-cell; width: 33.33%; vertical-align: top; padding: 24px 26px 24px 0; }
.rp-cover-meta > div + div { padding-left: 26px; border-left: 1px solid var(--rp-hair); }
.rp-cover-meta dt {
	color: var(--rp-dim); font-size: 12px; margin: 0 0 5px;
	letter-spacing: .06em; font-weight: 600;
}
.rp-cover-meta dd { margin: 0; font-size: 15.5px; font-weight: 600; word-break: keep-all; line-height: 1.6; }
.rp-cover-meta dd.is-url { word-break: break-all; }	/* 주소만 아무 데서나 끊는다 */
.rp-meta-sub { display: block; font-weight: 500; color: var(--rp-mid); font-size: 13.5px; margin-top: 2px; }

.rp-disclaimer {
	font-size: 13.5px; color: var(--rp-dim); line-height: 1.85;
	margin: 0; padding: 18px 0 0; max-width: 720px;
}

/* ---------------- 섹션 ---------------- */
.rp-sec { padding-top: 56px; }

/*	섹션 머리 — 큰 숫자를 왼쪽에 세우고 제목과 밑선을 나란히 둔다.
	작은 라벨 하나로 번호를 처리하면 어느 문서에나 있는 모양이 된다. */
.rp-sec-head {
	display: table; width: 100%; margin-bottom: 28px;
	border-bottom: 2px solid var(--rp-rule);
}
.rp-sec-no {
	display: table-cell; width: 74px; vertical-align: bottom;
	font-size: 42px; font-weight: 800; line-height: .8;
	letter-spacing: -.06em; color: var(--rp-brand);
	padding-bottom: 13px; font-variant-numeric: tabular-nums;
}
.rp-sec-en { display: none; }		/* 영문 라벨은 번호와 중복이라 뺀다 */
.rp-sec-head > div { display: table-cell; vertical-align: bottom; padding-bottom: 15px; }
.rp-sec-head h2 {
	text-wrap: balance;
	font-size: 27px; font-weight: 800; margin: 0;
	letter-spacing: -.035em; color: var(--rp-ink); line-height: 1.28;
	padding-bottom: 0; border-bottom: none;
}
.rp-sec-lead { font-size: 14.5px; color: var(--rp-mid); margin: 0 0 26px; max-width: 720px; }

/* ---------------- 총평 ---------------- */
.rp-summary-text {
	text-wrap: pretty;
	font-size: 21px; line-height: 1.72; margin: 0 0 34px;
	letter-spacing: -.02em; font-weight: 600; max-width: 760px;
}

/* ---------------- 3축 요약 (SEO · AEO · GEO) ---------------- */
.rp-axes {
	display: table; width: 100%; margin: 0 0 38px;
	border-collapse: separate; border-spacing: 18px 0;
}
.rp-axis {
	display: table-cell; width: 33.33%; vertical-align: top;
	padding: 20px 18px 20px; border-radius: 18px; text-align: center;
}
.rp-axis[data-axis="SEO"] { background: var(--rp-seo-t); }
.rp-axis[data-axis="AEO"] { background: var(--rp-aeo-t); }
.rp-axis[data-axis="GEO"] { background: var(--rp-geo-t); }
.rp-axis-key {
	display: block; font-size: 13px; font-weight: 800; letter-spacing: .16em;
	margin-bottom: 5px;
}
.rp-axis[data-axis="SEO"] .rp-axis-key { color: var(--rp-seo); }
.rp-axis[data-axis="AEO"] .rp-axis-key { color: var(--rp-aeo); }
.rp-axis[data-axis="GEO"] .rp-axis-key { color: var(--rp-geo); }
.rp-axis-title { display: block; font-size: 13.5px; color: var(--rp-ink); font-weight: 600; letter-spacing: -.01em; }
.rp-axis-gauge { display: block; margin: 14px 0 10px; }
.rp-ring { display: block; margin: 0 auto; }
.rp-ring-num { font-size: 30px; font-weight: 800; letter-spacing: -.04em; }
.rp-axis[data-axis="SEO"] .rp-axis-num { color: var(--rp-seo); }
.rp-axis[data-axis="AEO"] .rp-axis-num { color: var(--rp-aeo); }
.rp-axis[data-axis="GEO"] .rp-axis-num { color: var(--rp-geo); }
.rp-axis-num em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--rp-mid); letter-spacing: 0; }
.rp-axis-meta { display: block; font-size: 12.5px; color: var(--rp-mid); text-align: center; line-height: 1.6; }
.rp-axis-meta b { color: var(--rp-ink); font-weight: 700; }

/* ---------------- 오각형 레이더 ---------------- */
.rp-radar-wrap { display: table; width: 100%; margin: 0 0 42px; }
.rp-radar-box { display: table-cell; width: 54%; vertical-align: middle; }
.rp-penta { display: block; width: 100%; max-width: 524px; height: auto; }
.rp-penta-plate { fill: #f5f6fb; }
.rp-penta-web   { fill: none; stroke: #e2e6f0; stroke-width: 1; }
.rp-penta-spoke { stroke: #e2e6f0; stroke-width: 1; }
.rp-penta-goal  { fill: none; stroke: #a8b2c6; stroke-width: 1.4; stroke-dasharray: 5 4; }
.rp-penta-area  { fill: #2e6ff2; fill-opacity: .16; stroke: #2e6ff2; stroke-width: 2.6; stroke-linejoin: round; }
.rp-penta-dot   { stroke: #fff; stroke-width: 2.2; }
.rp-penta-label { font-size: 13px; font-weight: 700; fill: #16192a; letter-spacing: -.02em; }
.rp-penta-value { font-size: 13px; font-weight: 800; fill: #5a677c; }

.rp-radar-legend { display: table-cell; width: 46%; vertical-align: middle; padding-left: 26px; }
.rp-radar-desc { font-size: 14.5px; color: var(--rp-mid); margin: 0 0 18px; }
.rp-radar-desc b { color: var(--rp-ink); }
.rp-penta-list { list-style: none; margin: 0; padding: 0; }
.rp-penta-list li {
	position: relative; padding: 10px 0 10px 20px;
	border-bottom: 1px solid var(--rp-hair); font-size: 14px;
}
.rp-penta-list li:last-child { border-bottom: none; }
.rp-penta-list i {
	position: absolute; left: 0; top: 18px;
	width: 10px; height: 10px; border-radius: 50%;
}
.rp-penta-name { color: var(--rp-ink); font-weight: 600; }
.rp-penta-num {
	float: right; font-weight: 800; color: var(--rp-ink);
	font-variant-numeric: tabular-nums;
}
.rp-penta-num em { font-style: normal; font-weight: 500; color: var(--rp-dim); font-size: 12.5px; }

.rp-warnbox {
	margin: 0 0 26px; padding: 15px 18px; border-radius: 12px;
	background: var(--rp-warn-t); color: var(--rp-mid);
	font-size: 14px; line-height: 1.75;
}
.rp-warnbox b { color: var(--rp-warn); }
.rp-warnbox-sub { display: block; margin-top: 5px; font-size: 12.5px; color: var(--rp-dim); }

/* ---------------- 회차 비교 ---------------- */
.rp-score-delta {
	display: inline-block; margin-top: 10px; padding: 4px 12px; border-radius: 999px;
	font-size: 12.5px; font-weight: 700; letter-spacing: -.01em;
}
.rp-score-delta.is-up   { background: rgba(0,178,122,.18);  color: #2ad9a0; }
.rp-score-delta.is-down { background: rgba(245,56,78,.18);  color: #ff6b7a; }
.rp-score-delta.is-flat { background: rgba(255,255,255,.10); color: #9aa4b8; }

.rp-delta-sum {
	display: table; width: 100%; margin: 0 0 34px;
	border-collapse: separate; border-spacing: 12px 0;
}
.rp-delta-stat {
	display: table-cell; width: 25%; vertical-align: top; text-align: center;
	padding: 18px 12px; border-radius: 14px; background: var(--rp-none-t);
}
.rp-delta-stat b {
	display: block; font-size: 34px; font-weight: 800; line-height: 1.1;
	letter-spacing: -.045em; font-variant-numeric: tabular-nums;
}
.rp-delta-stat span { display: block; font-size: 12.5px; color: var(--rp-mid); margin-top: 4px; }
.rp-delta-stat.is-up   { background: var(--rp-good-t); }
.rp-delta-stat.is-up b { color: var(--rp-good); }
.rp-delta-stat.is-down   { background: var(--rp-bad-t); }
.rp-delta-stat.is-down b { color: var(--rp-bad); }
.rp-delta-stat.is-new   { background: var(--rp-fair-t); }
.rp-delta-stat.is-new b { color: var(--rp-fair); }
.rp-delta-stat.is-flat b { color: var(--rp-dim); }

.rp-delta-list { list-style: none; margin: 0; padding: 0; }
.rp-delta-list li {
	display: table; width: 100%; table-layout: fixed;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-delta-list li:last-child { border-bottom: none; }
.rp-delta-name {
	display: table-cell; vertical-align: middle; padding: 12px 16px 12px 0;
	font-size: 15px; color: var(--rp-ink);
}
.rp-delta-prev, .rp-delta-cur {
	display: table-cell; vertical-align: middle; width: 74px; text-align: right;
	font-size: 15px; font-variant-numeric: tabular-nums;
}
.rp-delta-prev { color: var(--rp-dim); }
.rp-delta-cur  { color: var(--rp-ink); font-weight: 700; }
.rp-delta-arrow {
	display: table-cell; vertical-align: middle; width: 34px; text-align: center;
	color: #b9c0cf; font-size: 13px;
}
.rp-delta-diff {
	display: table-cell; vertical-align: middle; width: 76px; text-align: right;
	font-size: 14.5px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.rp-delta-list li.is-up   .rp-delta-diff { color: var(--rp-good); }
.rp-delta-list li.is-down .rp-delta-diff { color: var(--rp-bad); }
.rp-delta-list li.is-flat .rp-delta-diff { color: var(--rp-dim); font-weight: 500; }
.rp-delta-list li.is-new  .rp-delta-diff { color: var(--rp-fair); font-size: 12.5px; }
.rp-remain-score { font-style: normal; font-weight: 800; color: var(--rp-warn); margin-left: 6px; }

/* ---------------- 경쟁사 비교 ---------------- */
.rp-rival-head { display: table; width: 100%; margin-bottom: 30px; }
.rp-rival-rank {
	display: table-cell; width: 190px; vertical-align: middle;
	padding: 20px 22px; border-radius: 16px; background: var(--rp-fair-t);
}
.rp-rival-cap { display: block; font-size: 12.5px; font-weight: 700; color: var(--rp-mid); }
.rp-rival-num {
	display: block; font-size: 46px; font-weight: 800; line-height: 1.1;
	letter-spacing: -.05em; color: var(--rp-fair); font-variant-numeric: tabular-nums;
}
.rp-rival-num em { font-style: normal; font-size: 20px; font-weight: 700; margin-left: 2px; }

.rp-rival-list { display: table-cell; vertical-align: middle; padding-left: 26px; list-style: none; margin: 0; }
.rp-rival-list li { display: table; width: 100%; table-layout: fixed; padding: 7px 0; }
.rp-rival-name {
	display: table-cell; width: 170px; vertical-align: middle; padding-right: 14px;
	font-size: 14px; color: var(--rp-mid); white-space: nowrap; overflow: hidden;
}
.rp-rival-list li.is-me .rp-rival-name { color: var(--rp-ink); font-weight: 700; }
.rp-rival-track { display: table-cell; vertical-align: middle; }
.rp-rival-bar { display: block; height: 12px; border-radius: 7px; }
.rp-rival-score {
	display: table-cell; width: 56px; text-align: right; vertical-align: middle;
	font-size: 15px; font-weight: 700; color: var(--rp-mid); font-variant-numeric: tabular-nums;
}
.rp-rival-list li.is-me .rp-rival-score { color: var(--rp-fair); font-weight: 800; }

.rp-vs-list { list-style: none; margin: 0; padding: 0; }
.rp-vs-list li {
	display: table; width: 100%; table-layout: fixed;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-vs-list li:last-child { border-bottom: none; }
.rp-vs-name { display: table-cell; vertical-align: middle; padding: 12px 12px 12px 0; font-size: 15px; }
.rp-vs-mine, .rp-vs-avg {
	display: table-cell; width: 78px; text-align: right; vertical-align: middle;
	font-size: 15px; font-variant-numeric: tabular-nums;
}
.rp-vs-mine { font-weight: 800; color: var(--rp-ink); }
.rp-vs-avg  { color: var(--rp-dim); }
.rp-vs-vs {
	display: table-cell; width: 40px; text-align: center; vertical-align: middle;
	font-size: 11.5px; color: #b9c0cf;
}
.rp-vs-diff {
	display: table-cell; width: 62px; text-align: right; vertical-align: middle;
	font-size: 14.5px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.rp-vs-list li.is-up   .rp-vs-diff { color: var(--rp-good); }
.rp-vs-list li.is-down .rp-vs-diff { color: var(--rp-bad); }
.rp-vs-list li.is-flat .rp-vs-diff { color: var(--rp-dim); font-weight: 500; }

/* ---------------- 유입 성과 ---------------- */
.rp-traffic {
	display: table; width: 100%; margin: 0 0 34px;
	border-collapse: separate; border-spacing: 12px 0;
}
.rp-traffic-card {
	display: table-cell; width: 25%; vertical-align: top;
	padding: 20px 16px; border-radius: 16px; background: var(--rp-none-t);
}
.rp-traffic-card.is-ai { background: var(--rp-good-t); }
.rp-traffic-cap { display: block; font-size: 12.5px; font-weight: 700; color: var(--rp-mid); }
.rp-traffic-num {
	display: block; font-size: 34px; font-weight: 800; line-height: 1.15;
	letter-spacing: -.045em; margin-top: 4px; font-variant-numeric: tabular-nums;
}
.rp-traffic-num em { font-style: normal; font-size: 14px; font-weight: 600; color: var(--rp-mid); margin-left: 3px; }
.rp-traffic-card.is-ai .rp-traffic-num { color: var(--rp-good); }
.rp-traffic-diff { display: block; font-size: 12px; font-weight: 700; margin-top: 6px; }
.rp-traffic-diff.is-up   { color: var(--rp-good); }
.rp-traffic-diff.is-down { color: var(--rp-bad); }
.rp-traffic-diff.is-flat { color: var(--rp-dim); font-weight: 500; }

/* ---------------- AI 언급률 ---------------- */
.rp-mention-head { display: table; width: 100%; margin-bottom: 26px; }
.rp-mention-big {
	display: table-cell; vertical-align: middle; width: 260px;
	padding: 22px 26px; border-radius: 16px; background: var(--rp-fair-t);
}
.rp-mention-cap { display: block; font-size: 12.5px; font-weight: 700; color: var(--rp-mid); }
.rp-mention-num {
	display: block; font-size: 52px; font-weight: 800; line-height: 1.05;
	letter-spacing: -.05em; color: var(--rp-fair); font-variant-numeric: tabular-nums;
}
.rp-mention-num em { font-style: normal; font-size: 22px; font-weight: 700; }
.rp-mention-big .rp-score-delta { background: #fff; }
.rp-mention-big .rp-score-delta.is-up   { color: var(--rp-good); }
.rp-mention-big .rp-score-delta.is-down { color: var(--rp-bad); }
.rp-mention-big .rp-score-delta.is-flat { color: var(--rp-dim); }

.rp-mention-models { display: table-cell; vertical-align: middle; padding-left: 26px; list-style: none; margin: 0; }
.rp-mention-models li {
	display: table; width: 100%; padding: 10px 0;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-mention-models li:last-child { border-bottom: none; }
.rp-mention-model { display: table-cell; vertical-align: middle; font-size: 14.5px; font-weight: 600; }
.rp-mention-rate {
	display: table-cell; vertical-align: middle; width: 72px; text-align: right;
	font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.rp-mention-cnt {
	display: table-cell; vertical-align: middle; width: 76px; text-align: right;
	font-size: 12.5px; color: var(--rp-dim);
}

.rp-mention-q { list-style: none; margin: 0 0 20px; padding: 0; }
.rp-mention-q li {
	display: table; width: 100%; padding: 13px 0;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-mention-q li:last-child { border-bottom: none; }
.rp-mention-qtext { display: table-cell; vertical-align: middle; font-size: 15px; color: var(--rp-ink); }
.rp-mention-qrate {
	display: table-cell; vertical-align: middle; width: 108px; text-align: right;
	font-size: 16px; font-weight: 800; color: var(--rp-dim); font-variant-numeric: tabular-nums;
}
.rp-mention-qrate.is-hit { color: var(--rp-good); }
.rp-mention-qrate em { font-style: normal; font-size: 12px; font-weight: 500; color: var(--rp-dim); margin-left: 6px; }
.rp-mention-note {
	font-size: 13.5px; color: var(--rp-dim); line-height: 1.8; margin: 0;
	padding: 16px 18px; border-radius: 12px; background: var(--rp-none-t);
}
.rp-mention-note b { color: var(--rp-mid); }

/* ---------------- AI 노출 (AEO) ----------------
 * 오각형 레이더의 규칙을 그대로 쓴다. 색·선 굵기·라벨은 rp-penta-* 가
 * 이미 정해 두었으므로 여기서는 이 섹션에만 필요한 것만 더한다.
 * ------------------------------------------------------------------ */

/* 직전 회차 — 점선으로 뒤에 깔린다 */
.rp-penta-prev {
	fill: #ff7a00; fill-opacity: .10;
	stroke: #ff7a00; stroke-width: 1.6; stroke-dasharray: 4 3;
	stroke-linejoin: round;
}

.rp-aeo-vendor {
	display: block; font-style: normal; font-size: 11.5px;
	font-weight: 500; color: var(--rp-dim); margin-top: 1px;
}

.rp-aeo-two { display: table; width: 100%; margin: 0 0 26px; }
.rp-aeo-stat {
	display: table-cell; width: 34%; vertical-align: middle;
	padding: 20px 22px; border-radius: 14px; background: var(--rp-aeo-t);
}
.rp-aeo-stat-cap { display: block; font-size: 12.5px; font-weight: 700; color: var(--rp-mid); }
.rp-aeo-stat-num {
	display: block; font-size: 40px; font-weight: 800; color: var(--rp-aeo);
	line-height: 1.15; letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}
.rp-aeo-stat-num em { font-style: normal; font-size: 21px; font-weight: 700; }
.rp-aeo-stat-sub { display: block; font-size: 12.5px; color: var(--rp-dim); }
.rp-aeo-stat-desc {
	display: table-cell; vertical-align: middle; padding-left: 24px;
	font-size: 14.5px; color: var(--rp-mid); line-height: 1.85; margin: 0;
}
.rp-aeo-stat-desc b { color: var(--rp-ink); }

.rp-aeo-h3 {
	font-size: 12px; font-weight: 700; color: var(--rp-dim);
	letter-spacing: .12em; margin: 34px 0 12px;
}
.rp-aeo-lead { font-size: 14.5px; color: var(--rp-mid); margin: 0 0 14px; line-height: 1.85; }

/* 근거표 — 좁은 화면에서는 표만 가로로 흐른다. 본문은 흐르지 않는다. */
.rp-aeo-scroll { width: 100%; overflow-x: auto; }
.rp-aeo-grid {
	width: 100%; border-collapse: collapse; table-layout: fixed;
	font-size: 13px; min-width: 560px;
}
.rp-aeo-grid th {
	text-align: left; font-size: 12px; font-weight: 700; color: var(--rp-dim);
	padding: 0 10px 8px; border-bottom: 1px solid var(--rp-rule);
}
.rp-aeo-grid td {
	vertical-align: top; padding: 12px 10px;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-aeo-grid th.rp-aeo-q, .rp-aeo-grid td.rp-aeo-q { width: 31%; padding-left: 0; }
.rp-aeo-qtext { display: block; font-size: 14px; color: var(--rp-ink); font-weight: 600; }
.rp-aeo-qrate {
	display: inline-block; margin-top: 5px; font-size: 12.5px; font-weight: 700;
	color: var(--rp-dim); font-variant-numeric: tabular-nums;
}
.rp-aeo-qrate.is-hit { color: var(--rp-good); }

.rp-aeo-yes, .rp-aeo-no, .rp-aeo-none, .rp-aeo-link {
	display: inline-block; font-size: 11.5px; font-weight: 700;
	padding: 2px 8px; border-radius: 10px; margin: 0 4px 4px 0;
}
.rp-aeo-yes  { color: var(--rp-good); background: var(--rp-good-t); }
.rp-aeo-no   { color: var(--rp-bad);  background: var(--rp-bad-t); }
.rp-aeo-none { color: var(--rp-none); background: var(--rp-none-t); }
.rp-aeo-link { color: var(--rp-aeo);  background: var(--rp-aeo-t); }
.rp-aeo-prev {
	display: block; margin-top: 4px; font-size: 12px; color: var(--rp-dim);
	line-height: 1.65; word-break: keep-all;
}

/* 경쟁사 막대 */
.rp-aeo-rivals { list-style: none; margin: 0 0 26px; padding: 0; }
.rp-aeo-rivals li {
	display: table; width: 100%; padding: 9px 0;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-aeo-rivals li:last-child { border-bottom: none; }
.rp-aeo-rname {
	display: table-cell; width: 26%; vertical-align: middle;
	font-size: 14px; font-weight: 600; color: var(--rp-ink);
}
.rp-aeo-rname em {
	font-style: normal; font-size: 11px; font-weight: 700; color: var(--rp-brand);
	margin-left: 6px;
}
.rp-aeo-rbar {
	display: table-cell; vertical-align: middle; padding: 0 14px;
}
.rp-aeo-rbar i {
	display: block; height: 10px; border-radius: 6px;
	background: var(--rp-none); min-width: 2px;
}
.rp-aeo-rivals li.is-me .rp-aeo-rbar i { background: var(--rp-aeo); }
.rp-aeo-rnum {
	display: table-cell; width: 62px; text-align: right; vertical-align: middle;
	font-size: 14px; font-weight: 800; color: var(--rp-ink);
	font-variant-numeric: tabular-nums;
}

/* ---------------- 한눈에 보기 ---------------- */
.rp-overview { margin-bottom: 40px; }
.rp-overview h3, .rp-priorities h3, .rp-ext-col h3 {
	font-size: 12px; font-weight: 700; color: var(--rp-dim);
	letter-spacing: .12em; margin: 0 0 14px;
}
.rp-ov-list { list-style: none; margin: 0; padding: 0; }
.rp-ov-list li { display: table; width: 100%; table-layout: fixed; }
.rp-ov-name { display: table-cell; width: 264px; padding: 11px 18px 11px 0; font-size: 14.5px; color: var(--rp-ink); vertical-align: middle; white-space: nowrap; }
.rp-ov-track { display: table-cell; vertical-align: middle; width: auto; }
.rp-ov-bar { display: block; height: 13px; border-radius: 7px; background: var(--rp-none-t); }
.rp-ov-fill { display: block; height: 13px; border-radius: 7px; background: var(--rp-none); }
.rp-ov-num {
	display: table-cell; width: 74px; text-align: right; vertical-align: middle;
	padding-left: 16px;
	font-size: 16px; font-weight: 700; color: var(--rp-ink); letter-spacing: -.02em;
}
.rp-ov-list li.is-good .rp-ov-fill { background: var(--rp-good); }
.rp-ov-list li.is-fair .rp-ov-fill { background: var(--rp-fair); }
.rp-ov-list li.is-warn .rp-ov-fill { background: var(--rp-warn); }
.rp-ov-list li.is-bad  .rp-ov-fill { background: var(--rp-bad); }
.rp-ov-list li.is-good .rp-ov-bar { background: var(--rp-good-t); }
.rp-ov-list li.is-fair .rp-ov-bar { background: var(--rp-fair-t); }
.rp-ov-list li.is-warn .rp-ov-bar { background: var(--rp-warn-t); }
.rp-ov-list li.is-bad  .rp-ov-bar { background: var(--rp-bad-t); }
.rp-ov-list li.is-good .rp-ov-num { color: var(--rp-good); }
.rp-ov-list li.is-fair .rp-ov-num { color: var(--rp-fair); }
.rp-ov-list li.is-warn .rp-ov-num { color: var(--rp-warn); }
.rp-ov-list li.is-bad  .rp-ov-num { color: var(--rp-bad); }
.rp-ov-list li.is-none .rp-ov-num { color: var(--rp-dim); font-weight: 500; font-size: 12.5px; }

/* ---------------- 강점 · 약점 ---------------- */
.rp-extremes { display: table; width: 100%; margin: 0 0 40px; border-collapse: separate; border-spacing: 14px 0; }

/* border-spacing 은 상속되는 속성이다.
 * 칸 사이를 띄우려고 border-spacing 을 준 표(.rp-extremes·.rp-axes 등) 안에
 * 또 다른 표가 들어가면, 그 값이 안쪽 표에도 그대로 먹어 첫 칸이 밀려난다.
 * 실제로 .rp-extremes 안의 .rp-ext-head 가 14px 밀려서, 항목 제목만
 * 그 아래 설명보다 안쪽으로 들어가 보였다. 좁은 화면에서 특히 눈에 띈다.
 * 안쪽 표는 전부 0 으로 되돌린다. */
.rp-ext-head, .rp-sec-head, .rp-cover-meta, .rp-radar-wrap,
.rp-rival-head, .rp-rival-list li, .rp-delta-list li, .rp-vs-list li,
.rp-mention-head, .rp-mention-models li, .rp-mention-q li,
.rp-aeo-two, .rp-aeo-rivals li, .rp-ov-list li {
	border-spacing: 0;
}
.rp-ext-col { display: table-cell; width: 50%; vertical-align: top; }
.rp-ext { padding: 15px 18px; border-radius: 12px; margin-bottom: 10px; }
.rp-ext.is-good { background: var(--rp-good-t); }
.rp-ext.is-bad  { background: var(--rp-bad-t); }
.rp-ext-head { display: table; width: 100%; table-layout: fixed; }
.rp-ext-name {
	display: table-cell; vertical-align: top; padding-right: 14px;
	font-size: 16px; font-weight: 700; letter-spacing: -.015em; line-height: 1.45;
}
.rp-ext.is-good .rp-ext-score { color: var(--rp-good); }
.rp-ext.is-bad  .rp-ext-score { color: var(--rp-bad); }
.rp-ext-score { display: table-cell; vertical-align: top; width: 62px; text-align: right;
	font-size: 17px; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; }
.rp-ext-note { display: block; font-size: 13.5px; color: var(--rp-mid); margin-top: 7px; line-height: 1.75; text-wrap: balance; }

/* ---------------- 우선 과제 ---------------- */
.rp-priorities ol { margin: 0; padding: 0; list-style: none; counter-reset: pri; }
.rp-priorities li {
	counter-increment: pri; position: relative;
	padding: 18px 0 18px 46px; border-top: 1px solid var(--rp-hair);
}
.rp-priorities li:last-child { border-bottom: 1px solid var(--rp-hair); }
.rp-priorities li:before {
	content: counter(pri);
	position: absolute; left: 0; top: 17px;
	width: 30px; height: 30px; line-height: 30px; text-align: center; border-radius: 50%;
	background: var(--rp-brand); color: #fff;
	font-size: 14px; font-weight: 800; letter-spacing: -.02em;
}
.rp-priorities strong { font-size: 17.5px; display: block; letter-spacing: -.02em; }
.rp-priorities p { font-size: 15px; color: var(--rp-mid); margin: 6px 0 0; max-width: 700px; }

/* ---------------- 영역별 상세 ---------------- */
.rp-areas { border-top: none; }
.rp-area {
	padding: 20px 24px; margin-bottom: 10px; border-radius: 14px;
	border-left: 5px solid var(--rp-none); background: var(--rp-none-t);
}
.rp-area.is-good { border-left-color: var(--rp-good); background: var(--rp-good-t); }
.rp-area.is-fair { border-left-color: var(--rp-fair); background: var(--rp-fair-t); }
.rp-area.is-warn { border-left-color: var(--rp-warn); background: var(--rp-warn-t); }
.rp-area.is-bad  { border-left-color: var(--rp-bad);  background: var(--rp-bad-t); }
.rp-area.is-good .rp-area-num { color: var(--rp-good); }
.rp-area.is-fair .rp-area-num { color: var(--rp-fair); }
.rp-area.is-warn .rp-area-num { color: var(--rp-warn); }
.rp-area.is-bad  .rp-area-num { color: var(--rp-bad); }

.rp-area-top { display: none; }
.rp-area-foot {
	margin-top: 14px; padding-top: 12px;
	border-top: 1px solid rgba(22,25,42,.08);
}
.rp-area-weight, .rp-area-auto { display: inline-block; vertical-align: middle; }
.rp-area-weight { font-size: 13px; color: var(--rp-mid); }
.rp-area-weight b { color: var(--rp-ink); font-weight: 700; }
.rp-area-auto {
	float: right; font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
	color: var(--rp-brand); background: #fff; border-radius: 999px; padding: 2px 10px;
}
/* AI 가 판단한 값은 실측값과 눈으로 구분되어야 한다 */
.rp-area-auto.is-ai { color: var(--rp-aeo); }
.rp-area-main { display: table; width: 100%; table-layout: fixed; }
.rp-area-name { display: table-cell; vertical-align: middle; width: auto; padding-right: 24px; }
.rp-area-name strong { font-size: 18.5px; display: block; letter-spacing: -.025em; line-height: 1.4; }
.rp-area-desc { display: block; font-size: 14px; color: var(--rp-mid); margin-top: 2px; }
.rp-area-score {
	display: table-cell; vertical-align: middle; text-align: right;
	white-space: nowrap; width: 126px;
}
.rp-area-num { display: block; font-size: 34px; font-weight: 800; letter-spacing: -.045em; line-height: 1.1; }
.rp-area-status { display: block; font-size: 12.5px; font-weight: 700; margin-top: 3px; }
.rp-area.is-good .rp-area-status { color: var(--rp-good); }
.rp-area.is-fair .rp-area-status { color: var(--rp-fair); }
.rp-area.is-warn .rp-area-status { color: var(--rp-warn); }
.rp-area.is-bad  .rp-area-status { color: var(--rp-bad); }
.rp-area.is-none .rp-area-status { color: var(--rp-dim); }

.rp-bar { display: none; }	/* 위 "한눈에 보기"와 중복이라 상세에서는 뺀다 */
.rp-area-lines { display: table; width: 100%; margin: 14px 0 0; }
.rp-area-line { display: table-row; }
.rp-area-lines dt {
	display: table-cell; width: 128px; vertical-align: top; padding: 5px 14px 5px 0;
	font-size: 12.5px; font-weight: 700; color: var(--rp-dim); letter-spacing: -.01em;
}
.rp-area-lines dd {
	display: table-cell; vertical-align: top; padding: 5px 0; margin: 0;
	font-size: 14.5px; color: #5b6578; line-height: 1.75;
	text-wrap: balance;
}
.rp-area-lines dd.is-none { color: #97a0b0; }
.rp-area-line + .rp-area-line dt,
.rp-area-line + .rp-area-line dd {
	border-top: 1px solid rgba(22,25,42,.08); padding-top: 11px;
}
.rp-area-line + .rp-area-line dt { color: var(--rp-ink); }
.rp-area-note { font-size: 14.5px; color: #5b6578; margin: 12px 0 0; line-height: 1.75; }
.rp-area-weight { color: var(--rp-mid); }
.rp-area-note--none { color: var(--rp-dim); }

/* ---------------- 핵심 발견 ---------------- */
.rp-findings { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rp-ink); }
.rp-findings li {
	position: relative; padding: 16px 0 16px 30px;
	border-bottom: 1px solid var(--rp-hair); font-size: 16px; line-height: 1.78;
}
.rp-findings li:before {
	content: ""; position: absolute; left: 0; top: 27px;
	width: 14px; height: 2px; background: var(--rp-brand);
}

/* ---------------- 다음 단계 ---------------- */
.rp-sec--last { padding-bottom: 0; }
.rp-cta { display: table; width: 100%; margin-top: 4px; }
.rp-cta-main { display: table-cell; vertical-align: top; width: 62%; background: var(--rp-ink); color: #fff; padding: 40px; }
.rp-cta-eyebrow {
	font-size: 11px; font-weight: 700; letter-spacing: .18em;
	color: #ff6a6a; margin: 0 0 14px;
}
.rp-cta-title {
	text-wrap: balance;
	font-size: 30px; font-weight: 800; line-height: 1.34;
	letter-spacing: -.035em; margin: 0 0 18px; color: #fff;
}
.rp-cta-desc { font-size: 15.5px; line-height: 1.85; color: #ccd4dc; margin: 0 0 26px; max-width: 460px; }
.rp-cta-btn {
	display: inline-flex; align-items: center; gap: 10px; border-radius: 999px;
	background: var(--rp-brand); color: #fff; padding: 15px 28px;
	font-size: 15px; font-weight: 700; text-decoration: none; letter-spacing: -.01em;
}
.rp-cta-btn span { font-size: 13px; }
.rp-cta-note { font-size: 12.5px; color: #93a0ad; margin: 18px 0 0; line-height: 1.75; max-width: 460px; }

.rp-cta-steps { display: table-cell; vertical-align: top; width: 38%; list-style: none; margin: 0; padding: 40px 0 38px 32px; }
.rp-cta-steps li {
	position: relative; padding: 15px 0 15px 40px;
	border-bottom: 1px solid var(--rp-hair);
}
.rp-cta-steps li:last-child { border-bottom: none; }
.rp-cta-step-no {
	position: absolute; left: 0; top: 16px;
	width: 26px; height: 26px; line-height: 26px; text-align: center;
	border-radius: 50%; background: var(--rp-brand); color: #fff;
	font-size: 12.5px; font-weight: 800; letter-spacing: 0;
}
.rp-cta-step-body { display: block; }
.rp-cta-steps strong { display: block; font-size: 15.5px; color: var(--rp-ink); letter-spacing: -.015em; }
.rp-cta-steps .rp-cta-step-body > span {
	display: block; font-size: 14px; color: var(--rp-mid); line-height: 1.7; margin-top: 4px;
	text-wrap: balance;
}

.rp-foot {
	margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--rp-hair);
	text-align: center; font-size: 12.5px; color: var(--rp-dim); line-height: 2;
}
.rp-foot span { display: inline; }
.rp-foot-sep { margin: 0 10px; color: #c6ccd8; }
.rp-foot-brand { font-weight: 700; color: var(--rp-ink); }

/* ---------------- 좁은 화면 ----------------
 * screen 한정이 반드시 필요하다. PDF 변환기는 지면 폭을 좁게 잡아서
 * 이 블록이 인쇄에까지 적용되면 표 레이아웃이 통째로 세로로 풀린다.
 */
@media screen and (max-width: 820px) {
	.rp-page { padding: 26px 20px 56px; }
	.rp-toolbar-inner { padding: 12px 20px; }
	/* 표(table) 레이아웃을 세로로 푼다 */
	.rp-cover, .rp-cover-top, .rp-cover-score,
	.rp-cover-meta, .rp-cover-meta > div,
	.rp-axes, .rp-axis,
	.rp-radar-wrap, .rp-radar-box, .rp-radar-legend,
	.rp-extremes, .rp-ext-col,
	.rp-area-main, .rp-area-name, .rp-area-score,
	.rp-cta, .rp-cta-main, .rp-cta-steps {
		display: block; width: auto;
	}

	.rp-axes { margin: 0 0 30px; }
	.rp-axis { margin-bottom: 10px; }
	.rp-radar-box { margin-bottom: 22px; }
	.rp-radar-legend { padding-left: 0; }
	.rp-extremes { margin: 0 0 34px; }
	.rp-delta-sum, .rp-delta-stat, .rp-mention-head, .rp-mention-big, .rp-mention-models {
		display: block; width: auto;
	}
	/*	AEO — 좁은 화면에서는 위아래로 쌓는다 */
	.rp-aeo-two, .rp-aeo-stat, .rp-aeo-stat-desc { display: block; width: auto; }
	.rp-aeo-stat { margin-bottom: 12px; }
	.rp-aeo-stat-desc { padding-left: 0; }
	.rp-aeo-rname { width: 30%; font-size: 13px; }

	/* 근거표 — 좁은 화면에서는 표를 포기한다.
	 * 4칸에 응답 미리보기까지 들어가면 가로로 밀어도 읽히지 않는다.
	 * 질문 하나를 카드로 세우고 모델을 그 아래에 쌓는다.
	 * 칸마다 어느 모델인지 이름표를 붙여야 표를 잃어도 뜻이 남는다. */
	.rp-aeo-scroll { overflow-x: visible; }
	.rp-aeo-grid { min-width: 0; display: block; }
	.rp-aeo-grid thead { display: none; }
	.rp-aeo-grid tbody, .rp-aeo-grid tr, .rp-aeo-grid td { display: block; width: auto; }
	.rp-aeo-grid tr.rp-aeo-row {
		margin-bottom: 18px; padding-bottom: 6px;
		border-bottom: 1px solid var(--rp-rule);
	}
	.rp-aeo-grid tr.rp-aeo-row:last-child { border-bottom: none; margin-bottom: 0; }
	.rp-aeo-grid td { border-bottom: none; padding: 8px 0 8px 0; }
	.rp-aeo-grid td.rp-aeo-q { width: auto; padding-bottom: 2px; }
	.rp-aeo-cell {
		padding-left: 12px !important;
		border-left: 2px solid var(--rp-hair) !important;
		margin-bottom: 2px;
	}
	.rp-aeo-cell:before {
		content: attr(data-model);
		display: block; margin-bottom: 4px;
		font-size: 12px; font-weight: 700; color: var(--rp-dim);
	}
	.rp-aeo-prev { font-size: 12.5px; }
	.rp-delta-stat { margin-bottom: 8px; }
	.rp-traffic, .rp-traffic-card { display: block; width: auto; }
	.rp-rival-head, .rp-rival-rank, .rp-rival-list { display: block; width: auto; }
	.rp-rival-list { padding: 18px 0 0; }
	.rp-rival-name { width: 110px; font-size: 13px; }
	.rp-traffic-card { margin-bottom: 8px; }
	.rp-mention-models { padding: 18px 0 0; }
	.rp-delta-name { padding-right: 8px; font-size: 14px; }
	.rp-delta-prev, .rp-delta-cur { width: 56px; }
	.rp-delta-diff { width: 58px; }

	.rp-cover { padding: 30px 22px 28px; border-radius: 16px; }
	.rp-cover-title { font-size: 32px; }
	.rp-cover-score { padding: 26px 0 0; text-align: left; }
	.rp-score-big { font-size: 64px; }
	.rp-meter { width: 100%; margin: 18px -5px 0 -5px; }
	.rp-axis { text-align: center; }
	.rp-donut { margin-left: 0; }
	.rp-cover-meta > div { padding: 14px 0; border-bottom: 1px solid var(--rp-hair); }
	.rp-cover-meta > div + div { padding-left: 0; border-left: none; }
	.rp-cover-meta > div:last-child { border-bottom: none; }
	.rp-sec { padding-top: 44px; }
	.rp-sec-head h2 { font-size: 23px; }
	.rp-sec-no { width: 46px; font-size: 28px; padding-bottom: 10px; }
	.rp-summary-text { font-size: 17.5px; }

	/* 막대는 좁은 화면에서 자리를 못 만든다 — 이름과 점수만 남긴다 */
	.rp-ov-name { width: auto; white-space: normal; font-size: 15px; padding-right: 12px; }
	.rp-ov-track { display: none; }
	.rp-ov-num { width: 76px; }

	.rp-ext-col { padding-right: 0; margin-bottom: 26px; }
	.rp-area-score { text-align: left; margin-top: 8px; }
	.rp-area-lines, .rp-area-line, .rp-area-lines dt, .rp-area-lines dd { display: block; width: auto; }
	.rp-area-lines dt { padding: 10px 0 0; }
	.rp-area-lines dd { padding: 2px 0 0; }
	.rp-cta-main { padding: 30px 24px; }
	.rp-cta-title { font-size: 24px; }
	.rp-cta-desc, .rp-cta-note { max-width: none; }
	.rp-cta-steps { padding: 20px 0 0; }
}

/* ---------------- 인쇄 · PDF ---------------- */
@page { size: A4; margin: 15mm 14mm; }

@media print {
	.rp-body { background: #fff; font-size: 10pt; line-height: 1.75; }
	.rp-toolbar, .rp-draftbar { display: none !important; }
	.rp-page { max-width: none; margin: 0; padding: 0; }
	.rp-cover { border-radius: 0; }

	.rp-cover {
		margin: 0; padding: 300px 30px 430px; border-radius: 0;
		background: #141527 !important; color: #fff !important;
	}
	/* 표지는 한 장을 통으로 쓴다 */
	.rp-disclaimer { page-break-after: always; padding-bottom: 0; }
	/* 영역 사이 실선으로 구분 */
	.rp-area { padding: 14px 16px; margin-bottom: 7px; }
	.rp-area-lines dt { width: 104px; font-size: 8.5pt; }
	.rp-area-lines dd { font-size: 9pt; }
	.rp-cover-title { font-size: 24pt; }
	.rp-donut-num { font-size: 22pt; }
	.rp-sec { padding-top: 22px; }
	.rp-sec-head h2 { font-size: 15pt; }
	.rp-sec-no { font-size: 24pt; width: 58px; padding-bottom: 9px; }
	.rp-summary-text { font-size: 12pt; }
	.rp-area-num { font-size: 15pt; }
	.rp-cta { flex-direction: column; }
	.rp-cta-main { background: #141527 !important; color: #fff !important; padding: 26px 24px; }
	.rp-cta-title { font-size: 16pt; }
	.rp-cta-btn { background: #f5384e !important; color: #fff !important; }
	.rp-cta-steps { width: 100%; padding: 20px 0 0; }

	/* 레이더·게이지는 지면 폭에 맞춰 고정 크기로 */
	.rp-penta { width: 350px; height: 291px; }
	/*	삼각 레이더는 오각형과 비율이 달라 따로 잡는다.
	 *	변환기는 SVG 의 height:auto 를 계산하지 못해 명시 크기가 필요하다. */
	.rp-tri { width: 350px; height: 267px; }
	.rp-penta-label, .rp-penta-value { font-size: 15px; }
	.rp-radar-box { width: 52%; }
	.rp-radar-legend { width: 48%; padding-left: 16px; }
	.rp-radar-label { font-size: 15px; }
	.rp-radar-value { font-size: 14px; }
	.rp-radar-desc { font-size: 9.5pt; }
	.rp-penta-list li { font-size: 9.5pt; }
	.rp-ring { width: 92px; height: 92px; }
	.rp-axes, .rp-radar-wrap { break-inside: avoid; page-break-inside: avoid; }
	.rp-cover-grade { color: inherit; }

	/* 조각나면 읽기 어려운 덩어리는 페이지를 넘긴다 */
	.rp-break { break-before: page; page-break-before: always; }
	.rp-area, .rp-ext, .rp-findings li, .rp-priorities li, .rp-cta {
		break-inside: avoid; page-break-inside: avoid;
	}
	.rp-sec-head { page-break-after: avoid; }

	/* 인쇄에서 배경색이 빠지지 않게 */
	.rp-cover, .rp-tag, .rp-cta-main, .rp-cta-btn, .rp-ov-bar, .rp-ov-fill,
	.rp-findings li:before, .rp-area, .rp-ext, .rp-donut-num, .rp-donut-cap,
	.rp-axis, .rp-penta-plate, .rp-penta-list i, .rp-meter-seg,
	.rp-priorities li:before, .rp-cta-step-no, .rp-area-auto,
	.rp-delta-stat, .rp-mention-big, .rp-mention-note, .rp-traffic-card,
	.rp-rival-rank, .rp-rival-bar, .rp-warnbox {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
	.rp-ov-bar { background: #f0f2f6 !important; }
	.rp-ov-list li.is-good .rp-ov-bar { background: #e1f7ef !important; }
	.rp-ov-list li.is-fair .rp-ov-bar { background: #e8f0fe !important; }
	.rp-ov-list li.is-warn .rp-ov-bar { background: #fff0e0 !important; }
	.rp-ov-list li.is-bad  .rp-ov-bar { background: #ffebee !important; }
	.rp-axis[data-axis="SEO"] { background: #e8f0fe !important; }
	.rp-axis[data-axis="AEO"] { background: #e0f6f5 !important; }
	.rp-axis[data-axis="GEO"] { background: #ffebee !important; }
	.rp-ext.is-good { background: #e1f7ef !important; }
	.rp-ext.is-bad  { background: #ffebee !important; }
	.rp-ov-list li.is-good .rp-ov-fill { background: #00b27a !important; }
	.rp-ov-list li.is-fair .rp-ov-fill { background: #2e6ff2 !important; }
	.rp-ov-list li.is-warn .rp-ov-fill { background: #ff7a00 !important; }
	.rp-ov-list li.is-bad  .rp-ov-fill { background: #f5384e !important; }

	/* ------------------------------------------------------------------
	 * 색상 재선언 — PDF 변환기(WebKit 구버전)는 CSS 변수 var() 를 아예
	 * 해석하지 못한다. 변수로만 준 색은 종이에서 전부 검정/투명이 된다.
	 * 화면에서 보이는 색을 종이에서도 보이게 하려면 여기서 실제 값으로
	 * 한 번 더 적어 주는 수밖에 없다. 값이 바뀌면 :root 와 함께 고쳐야 한다.
	 * ------------------------------------------------------------------ */
	.rp-body { color: #16192a; }
	.rp-sec-lead, .rp-area-desc, .rp-area-note, .rp-radar-desc,
	.rp-radar-keys li, .rp-ext-note, .rp-priorities p, .rp-axis-meta { color: #4e5769; }
	.rp-cover-meta dt, .rp-disclaimer, .rp-radar-note, .rp-area-weight,
	.rp-meta-sub, .rp-overview h3, .rp-priorities h3, .rp-ext-col h3, .rp-foot { color: #838d9f; }
	.rp-area-note--none { color: #838d9f; }
	.rp-area-lines dt { color: #838d9f; }
	.rp-area-lines dd { color: #5b6578; }
	.rp-area-lines dd.is-none { color: #97a0b0; }
	.rp-delta-stat { background: #f0f2f6 !important; }
	.rp-delta-stat.is-up { background: #e1f7ef !important; }
	.rp-delta-stat.is-up b, .rp-delta-list li.is-up .rp-delta-diff { color: #00b27a; }
	.rp-delta-stat.is-down { background: #ffebee !important; }
	.rp-delta-stat.is-down b, .rp-delta-list li.is-down .rp-delta-diff { color: #f5384e; }
	.rp-delta-stat.is-new { background: #e8f0fe !important; }
	.rp-delta-stat.is-new b, .rp-delta-list li.is-new .rp-delta-diff { color: #2e6ff2; }
	.rp-delta-stat.is-flat b, .rp-delta-list li.is-flat .rp-delta-diff { color: #838d9f; }
	.rp-delta-stat span, .rp-delta-prev, .rp-mention-cnt { color: #4e5769; }

	/*	AEO — PDF 변환기가 CSS 변수를 못 읽어 값을 한 번 더 적는다.
	 *	:root 를 고칠 때 여기도 같이 고쳐야 한다. */
	.rp-aeo-stat { background: #e0f6f5 !important; }
	.rp-aeo-stat-num { color: #00b0a6; }
	.rp-aeo-stat-cap, .rp-aeo-stat-desc { color: #4e5769; }
	.rp-aeo-stat-sub, .rp-aeo-h3, .rp-aeo-vendor, .rp-aeo-prev { color: #838d9f; }
	.rp-aeo-lead { color: #4e5769; }
	.rp-aeo-qtext, .rp-aeo-rname, .rp-aeo-rnum { color: #16192a; }
	.rp-aeo-yes  { color: #00b27a; background: #e1f7ef !important; }
	.rp-aeo-no   { color: #f5384e; background: #ffebee !important; }
	.rp-aeo-none { color: #98a2b3; background: #f0f2f6 !important; }
	.rp-aeo-link { color: #00b0a6; background: #e0f6f5 !important; }
	.rp-aeo-qrate.is-hit { color: #00b27a; }
	.rp-aeo-rbar i { background: #98a2b3 !important; }
	.rp-aeo-rivals li.is-me .rp-aeo-rbar i { background: #00b0a6 !important; }
	.rp-aeo-rname em { color: #f5384e; }
	.rp-penta-prev { fill: #ff7a00; fill-opacity: .10; stroke: #ff7a00; }

	/*	표가 페이지 경계에서 잘리지 않게 한다 */
	.rp-aeo-scroll { overflow: visible; }
	.rp-aeo-grid { min-width: 0; font-size: 8.5pt; }
	.rp-aeo-grid tr { page-break-inside: avoid; }
	.rp-aeo-rivals li { page-break-inside: avoid; }
	.rp-aeo-prev { font-size: 8pt; }
	.rp-delta-cur, .rp-delta-name, .rp-mention-qtext { color: #16192a; }
	.rp-remain-score { color: #ff7a00; }
	.rp-mention-big { background: #e8f0fe !important; }
	.rp-rival-rank { background: #e8f0fe !important; }
	.rp-rival-num, .rp-rival-list li.is-me .rp-rival-score { color: #2e6ff2; }
	.rp-rival-name, .rp-rival-score, .rp-vs-avg { color: #4e5769; }
	.rp-vs-name, .rp-vs-mine, .rp-rival-list li.is-me .rp-rival-name { color: #16192a; }
	.rp-vs-list li.is-up .rp-vs-diff { color: #00b27a; }
	.rp-vs-list li.is-down .rp-vs-diff { color: #f5384e; }
	.rp-mention-num { color: #2e6ff2; }
	.rp-mention-qrate.is-hit { color: #00b27a; }
	.rp-mention-note { background: #f0f2f6 !important; color: #838d9f; }
	.rp-warnbox { background: #fff0e0 !important; color: #4e5769; }
	.rp-warnbox b { color: #ff7a00; }
	.rp-warnbox-sub { color: #838d9f; }
	.rp-traffic-card { background: #f0f2f6 !important; }
	.rp-traffic-card.is-ai { background: #e1f7ef !important; }
	.rp-traffic-card.is-ai .rp-traffic-num, .rp-traffic-diff.is-up { color: #00b27a; }
	.rp-traffic-diff.is-down { color: #f5384e; }
	.rp-traffic-cap, .rp-traffic-num em { color: #4e5769; }
	.rp-mention-note b { color: #4e5769; }
	.rp-score-delta { color: #4e5769; }

	.rp-sec-no { color: #f5384e; }
	.rp-sec-head { border-bottom-color: #16192a; }
	.rp-axes { border-top-color: #16192a; }
	.rp-cover-meta, .rp-cover-meta > div + div, .rp-ov-list li,
	.rp-priorities li, .rp-cta-steps li, .rp-findings li, .rp-foot { border-color: #e8eaf1; }

	.rp-tag { background: #f5384e !important; color: #fff !important; }
	.rp-meter-seg:not(.is-on) { background: #2b3048 !important; }
	.rp-meter-lab { color: #8b95a9 !important; }
	.rp-meter-seg.is-on .rp-meter-lab { color: #14192b !important; }
	.rp-penta-plate { fill: #f5f6fb; }
	.rp-penta-value { fill: #5a677c; }
	.rp-penta-label { fill: #16192a; }
	.rp-penta-name, .rp-penta-num { color: #16192a; }
	.rp-penta-num em { color: #838d9f; }
	.rp-radar-desc b { color: #16192a; }
	.rp-axis-meta b { color: #16192a; }
	.rp-cover { border-top-color: #f5384e !important; }
	.rp-cover-lead { color: #b6c0cc !important; }
	.rp-cover-sub  { color: #d3dae2 !important; }
	.rp-cover-score-cap { color: #8f9ba8 !important; }

	.rp-axis[data-axis="SEO"] .rp-axis-key, .rp-axis[data-axis="SEO"] .rp-axis-num { color: #2e6ff2; }
	.rp-axis[data-axis="AEO"] .rp-axis-key, .rp-axis[data-axis="AEO"] .rp-axis-num { color: #00b0a6; }
	.rp-axis[data-axis="GEO"] .rp-axis-key, .rp-axis[data-axis="GEO"] .rp-axis-num { color: #f5384e; }
	.rp-axis-num em { color: #4e5769; }

	.rp-ov-list li.is-good .rp-ov-num, .rp-ext.is-good .rp-ext-score,
	.rp-area.is-good .rp-area-num, .rp-area.is-good .rp-area-status { color: #00b27a; }
	.rp-ov-list li.is-fair .rp-ov-num, .rp-area.is-fair .rp-area-num,
	.rp-area.is-fair .rp-area-status { color: #2e6ff2; }
	.rp-ov-list li.is-warn .rp-ov-num, .rp-area.is-warn .rp-area-num,
	.rp-area.is-warn .rp-area-status { color: #ff7a00; }
	.rp-ov-list li.is-bad .rp-ov-num, .rp-ext.is-bad .rp-ext-score,
	.rp-area.is-bad .rp-area-num, .rp-area.is-bad .rp-area-status { color: #f5384e; }
	.rp-ov-list li.is-none .rp-ov-num, .rp-area.is-none .rp-area-status { color: #838d9f; }
	.rp-area-num em { color: #838d9f; }

	.rp-area { border-left-color: #98a2b3; background: #f0f2f6 !important; }
	.rp-area.is-good { border-left-color: #00b27a; }
	.rp-area.is-fair { border-left-color: #2e6ff2; background: #e8f0fe !important; }
	.rp-area.is-warn { border-left-color: #ff7a00; background: #fff0e0 !important; }
	.rp-area.is-bad  { border-left-color: #f5384e; }
	.rp-area-auto { color: #f5384e; }
	.rp-area-auto.is-ai { color: #ff7a00; }

	.rp-priorities li:before { background: #f5384e !important; color: #fff !important; }
	.rp-findings li:before { background: #f5384e !important; }
	.rp-radar-keys b, .rp-foot-brand { color: #16192a; }
	.rp-cta-eyebrow { color: #ff8a8f !important; }
	.rp-cta-desc { color: #ccd4dc !important; }
	.rp-cta-note { color: #93a0ad !important; }
	.rp-cta-steps strong { color: #16192a; }
	.rp-cta-steps span:not(.rp-cta-step-no) { color: #4e5769; }
	.rp-cta-step-no { background: #f5384e !important; color: #fff !important; }

	a { color: inherit; text-decoration: none; }
}

/* =====================================================================
 * 화면 전용 확대 — 인쇄/PDF 규칙은 위 @media print 가 그대로 유지된다.
 * 종이에서는 10pt 가 적당하지만 화면에서는 같은 크기가 답답해 보인다.
 * ===================================================================== */
@media screen and (min-width: 900px) {
	.rp-body { font-size: 17px; line-height: 1.88; }
	.rp-toolbar-inner { max-width: 940px; padding: 16px 40px; }
	.rp-page { max-width: 940px; padding: 52px 40px 96px; }

	.rp-cover { padding: 56px 44px 48px; }
	.rp-brandbar { margin-bottom: 46px; }
	.rp-logo { font-size: 12px; }
	.rp-tag { font-size: 10.5px; padding: 4px 10px; }
	.rp-cover-lead { font-size: 16px; margin-bottom: 16px; }
	.rp-cover-title { font-size: 52px; margin-bottom: 13px; }
	.rp-cover-sub { font-size: 18px; }
	.rp-cover-score { padding-left: 40px; }
	.rp-donut { width: 158px; height: 158px; margin-bottom: 12px; }
	.rp-cover-score-cap { font-size: 12px; }
	.rp-cover-grade { font-size: 15.5px; margin-top: 5px; }

	.rp-cover-meta > div { padding: 24px 26px 24px 0; }
	.rp-cover-meta > div + div { padding-left: 26px; }
	.rp-cover-meta dt { font-size: 12px; }
	.rp-cover-meta dd { font-size: 17px; }
	.rp-disclaimer { font-size: 14.5px; padding-top: 22px; max-width: 780px; }

	.rp-sec { padding-top: 76px; }
	.rp-sec-head { margin-bottom: 30px; }
	.rp-sec-no { font-size: 50px; width: 84px; padding-bottom: 15px; }
	.rp-sec-head h2 { font-size: 31px; }
	.rp-sec-head > div { padding-bottom: 17px; }
	.rp-sec-lead { font-size: 16.5px; margin-bottom: 32px; max-width: 780px; }
	.rp-summary-text { font-size: 22.5px; line-height: 1.66; margin-bottom: 40px; max-width: 780px; }

	.rp-overview { margin-bottom: 50px; }
	.rp-overview h3, .rp-priorities h3, .rp-ext-col h3 { font-size: 12.5px; margin-bottom: 18px; }
	.rp-ov-name { width: 268px; font-size: 16px; padding: 14px 20px 14px 0; }
	.rp-ov-bar, .rp-ov-fill { height: 10px; }
	.rp-ov-num { width: 84px; font-size: 19px; padding-left: 20px; }
	.rp-ov-list li.is-none .rp-ov-num { font-size: 14px; }

	.rp-extremes { margin-bottom: 50px; }
	.rp-ext { padding: 17px 20px; margin-bottom: 12px; }
	.rp-ext-name, .rp-ext-score { font-size: 17.5px; }
	.rp-ext-note { font-size: 15px; margin-top: 6px; }

	.rp-priorities li { padding: 22px 0 22px 52px; }
	.rp-priorities li:before { font-size: 16px; top: 22px; }
	.rp-priorities strong { font-size: 19px; }
	.rp-priorities p { font-size: 16.5px; margin-top: 8px; max-width: 780px; }

	.rp-area { padding: 24px 26px; border-left-width: 5px; }
	.rp-area-weight { font-size: 12.5px; }
	.rp-area-name strong { font-size: 20px; }
	.rp-area-desc { font-size: 15px; }
	.rp-area-num { font-size: 32px; }
	.rp-area-num em { font-size: 13px; }
	.rp-area-status { font-size: 13px; margin-top: 3px; }
	.rp-area-note { font-size: 16.5px; margin-top: 12px; max-width: 780px; }

	.rp-findings li { font-size: 17px; padding: 20px 0 20px 34px; }
	.rp-findings li:before { top: 32px; width: 16px; }

	.rp-cta-main { padding: 42px; }
	.rp-cta-title { font-size: 31px; }
	.rp-cta-desc { font-size: 16.5px; max-width: 500px; }
	.rp-cta-btn { font-size: 16px; padding: 16px 30px; }
	.rp-cta-note { font-size: 13px; max-width: 500px; }
	.rp-cta-steps { padding: 42px 0 40px 34px; }
	.rp-cta-steps li { padding: 17px 0 17px 42px; }
	.rp-cta-step-no { top: 17px; }
	.rp-cta-steps strong { font-size: 16.5px; }
	.rp-cta-steps span:not(.rp-cta-step-no) { font-size: 15px; }

	.rp-foot { margin-top: 56px; padding-top: 24px; font-size: 13px; }

	.rp-axis-num { font-size: 42px; }
	.rp-axis-title { font-size: 14px; }
	.rp-axis-meta { font-size: 12.5px; }
	.rp-radar-desc { font-size: 15.5px; }
	.rp-radar-keys li { font-size: 14.5px; padding: 7px 0 7px 22px; }
	.rp-radar-note { font-size: 13px; }
}

/* ------------------------------------------------------------------
 * AI 서비스별 언급률 막대
 * 서비스마다 고정 브랜드 색으로 칠해 회차가 쌓여도 줄을 눈으로 따라갈 수
 * 있게 한다. 색은 geo_report_model_color() 가 인라인으로 넣는다.
 * ------------------------------------------------------------------ */
.rp-penta-list li { position: relative; }
.rp-engine-bar {
	display: block;
	flex: 0 0 100%;
	width: 100%;
	height: 6px;
	margin-top: 8px;
	border-radius: 999px;
	background: #eef0f5;
	overflow: hidden;
}
.rp-engine-bar > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	transition: width .4s ease;
}
@media print {
	.rp-engine-bar { background: #eef0f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.rp-engine-bar > span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ==================================================================
 * AI 언급률 회차 추이
 * 2회차부터 나타난다. 세로 눈금은 0~100 고정 — 값이 작다고 늘려 그리면
 * 실제보다 크게 오른 것처럼 보인다.
 * ================================================================== */
.rp-trend { margin: 26px 0 8px; padding: 22px 24px 18px; border: 1px solid var(--rp-hair); border-radius: 14px; background: #fff; }
.rp-trend-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.rp-trend-cap { display: block; font-size: 13px; color: var(--rp-mid); margin-bottom: 2px; }
.rp-trend-num { font-size: 40px; font-weight: 800; color: var(--rp-ink); line-height: 1.05; letter-spacing: -.03em; }
.rp-trend-num em { font-size: 20px; font-weight: 700; font-style: normal; margin-left: 2px; }
.rp-trend-delta { text-align: right; }
.rp-trend-from { display: block; font-size: 12.5px; color: var(--rp-mid); }
.rp-trend-delta b { font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.rp-trend-delta b.is-up   { color: #2e6ff2; }
.rp-trend-delta b.is-down { color: #d71920; }
.rp-trend-delta b.is-flat { color: var(--rp-mid); }

.rp-trend-chart { margin-top: 14px; }
.rp-trend-svg { display: block; width: 100%; height: 176px; }
.rp-trend-grid { stroke: #eef0f5; stroke-width: 1; }
.rp-trend-area { fill: #6b5bf5; fill-opacity: .12; stroke: none; }
.rp-trend-line { fill: none; stroke: #6b5bf5; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.rp-trend-dot  { fill: #6b5bf5; }
.rp-trend-dot.is-last { stroke: #fff; stroke-width: 2.4; }
.rp-trend-axis { display: flex; justify-content: space-between; font-size: 12px; color: var(--rp-soft); margin-top: 2px; }

.rp-trend-h4 { font-size: 13px; color: var(--rp-mid); font-weight: 700; margin: 22px 0 10px; }
.rp-trend-engines, .rp-trend-qs { list-style: none; margin: 0; padding: 0; }
.rp-trend-engines li {
	display: grid; grid-template-columns: 130px 1fr 116px; align-items: center;
	gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--rp-hair); font-size: 13.5px;
}
.rp-trend-engines li:last-child { border-bottom: none; }
.rp-trend-eng { display: flex; align-items: center; gap: 7px; font-weight: 600; color: var(--rp-ink); }
.rp-trend-eng i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.rp-trend-engines .rp-engine-bar { margin-top: 0; }
.rp-trend-ft { text-align: right; color: var(--rp-mid); font-size: 13px; white-space: nowrap; }
.rp-trend-ft i { font-style: normal; margin: 0 3px; color: var(--rp-soft); }
.rp-trend-ft b { color: var(--rp-ink); font-weight: 800; }

.rp-trend-qs li {
	display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
	padding: 9px 0; border-bottom: 1px solid var(--rp-hair); font-size: 13.5px;
}
.rp-trend-qs li:last-child { border-bottom: none; }
.rp-trend-q { color: var(--rp-ink); }
.rp-trend-note { font-size: 12.5px; color: var(--rp-soft); margin: 16px 0 0; line-height: 1.6; }
.rp-trend-note b { color: var(--rp-mid); }

@media (max-width: 720px) {
	.rp-trend { padding: 18px 16px 14px; }
	.rp-trend-engines li { grid-template-columns: 96px 1fr; grid-template-areas: "eng ft" "bar bar"; }
	.rp-trend-eng { grid-area: eng; }
	.rp-trend-ft  { grid-area: ft; }
	.rp-trend-engines .rp-engine-bar { grid-area: bar; margin-top: 6px; }
}
@media print {
	.rp-trend { break-inside: avoid; }
	.rp-trend-area, .rp-trend-line, .rp-trend-dot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
