.rn-grader {
	--rn-blue: #0B4FB3;
	--rn-blue-dark: #083B87;
	--rn-navy: #0A2540;
	--rn-muted: #4A5B78;
	--rn-light: #F2F6FC;
	--rn-line: #D6E2F3;
	--rn-yellow: #FFC72C;
	--rn-good: #15803D;
	--rn-ok: #0B4FB3;
	--rn-warn: #B45309;
	--rn-bad: #C62828;
	max-width: 960px;
	margin: 0 auto;
	color: var(--rn-navy);
	text-align: left;
}
.rn-grader [hidden] { display: none !important; }
.rn-g-card {
	background: #FFFFFF;
	border: 1px solid var(--rn-line);
	border-radius: 20px;
	padding: 32px;
	box-shadow: 0 18px 40px -24px rgba(10, 37, 64, .35);
}
.rn-g-label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 12px; color: var(--rn-navy); }
.rn-g-row { display: flex; gap: 12px; }
.rn-g-input {
	flex: 1; min-width: 0; height: 58px; padding: 0 20px !important; font-size: 17px !important;
	border: 2px solid var(--rn-line) !important; border-radius: 14px !important; background: var(--rn-light) !important;
	color: var(--rn-navy) !important; box-shadow: none !important; margin: 0 !important;
}
.rn-g-input:focus { border-color: var(--rn-blue) !important; background: #FFFFFF !important; outline: none; }
.rn-g-btn {
	display: inline-flex; align-items: center; justify-content: center; height: 58px; padding: 0 28px;
	border: 0; border-radius: 14px; background: var(--rn-yellow); color: var(--rn-navy) !important;
	font-weight: 700; font-size: 16px; cursor: pointer; text-decoration: none !important; white-space: nowrap;
	transition: transform .15s ease, box-shadow .15s ease;
}
.rn-g-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 20px -10px rgba(10, 37, 64, .45); }
.rn-g-btn:disabled { opacity: .6; cursor: wait; transform: none; }
.rn-g-btn-ghost { background: transparent; border: 2px solid var(--rn-line); }
.rn-g-hint { margin: 14px 0 0; font-size: 14px; color: var(--rn-muted); padding: 0; }
.rn-g-error { margin: 14px 0 0; padding: 12px 16px; border-radius: 12px; background: #FDECEC; color: var(--rn-bad); font-size: 15px; }

.rn-g-progress { text-align: center; padding: 48px 32px; }
.rn-g-spinner {
	width: 56px; height: 56px; margin: 0 auto 20px; border-radius: 50%;
	border: 5px solid var(--rn-light); border-top-color: var(--rn-blue); animation: rn-g-spin .9s linear infinite;
}
@keyframes rn-g-spin { to { transform: rotate(360deg); } }
.rn-g-progress-title { font-size: 20px; font-weight: 700; margin: 0 0 6px; padding: 0; }
.rn-g-progress-step { color: var(--rn-muted); margin: 0; padding: 0; }

.rn-g-report { display: grid; gap: 20px; }
.rn-g-summary { display: flex; gap: 32px; align-items: center; }
.rn-g-ring { position: relative; width: 168px; height: 168px; flex: 0 0 168px; }
.rn-g-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rn-g-ring circle { fill: none; stroke-width: 12; }
.rn-g-ring-bg { stroke: var(--rn-light); }
.rn-g-ring-fg { stroke: var(--rn-c, var(--rn-blue)); stroke-linecap: round; transition: stroke-dashoffset 1s ease; }
.rn-g-ring-num { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rn-g-ring-num strong { font-size: 48px; line-height: 1; color: var(--rn-c, var(--rn-navy)); }
.rn-g-ring-num span { font-size: 13px; color: var(--rn-muted); margin-top: 6px; }
.rn-g-good { --rn-c: var(--rn-good); }
.rn-g-ok { --rn-c: var(--rn-ok); }
.rn-g-warn { --rn-c: var(--rn-warn); }
.rn-g-bad { --rn-c: var(--rn-bad); }
.rn-g-eyebrow { margin: 0 0 6px; padding: 0; font-size: 14px; color: var(--rn-muted); }
.rn-g-eyebrow span { color: var(--rn-blue); font-weight: 600; }
.rn-g-verdict { margin: 0 0 10px; font-size: 24px; line-height: 1.25; color: var(--rn-navy); }
.rn-g-headline { margin: 0 0 8px; padding: 0; font-size: 16px; color: var(--rn-navy); }
.rn-g-meta { margin: 0; padding: 0; font-size: 13px; color: var(--rn-muted); word-break: break-word; }

.rn-g-cats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.rn-g-cat { padding: 18px; box-shadow: none; }
.rn-g-cat-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.rn-g-cat-name { font-size: 14px; font-weight: 600; line-height: 1.3; }
.rn-g-cat-score { font-size: 26px; color: var(--rn-c); }
.rn-g-bar { height: 6px; background: var(--rn-light); border-radius: 99px; margin: 12px 0 10px; overflow: hidden; }
.rn-g-bar span { display: block; height: 100%; background: var(--rn-c); border-radius: 99px; transition: width 1s ease; }
.rn-g-cat-note { margin: 0; padding: 0; font-size: 12px; color: var(--rn-muted); }

.rn-g-h3 { margin: 0 0 16px; font-size: 22px; color: var(--rn-navy); }
.rn-g-list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 12px; }
.rn-grader ol.rn-g-list > li, .rn-grader ul.rn-g-list > li { list-style: none !important; margin-left: 0 !important; }
.rn-grader ol.rn-g-list > li::marker { content: none; }
.rn-g-item { margin: 0 !important; padding: 18px 20px; border: 1px solid var(--rn-line); border-left: 4px solid var(--rn-warn); border-radius: 14px; background: #FFFFFF; }
.rn-g-item.rn-g-fail { border-left-color: var(--rn-bad); }
.rn-g-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rn-g-item-head strong { font-size: 16px; }
.rn-g-item-cat { margin-left: auto; font-size: 12px; color: var(--rn-muted); }
.rn-g-pill { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 4px 9px; border-radius: 99px; }
.rn-g-pill-fail { background: #FDECEC; color: var(--rn-bad); }
.rn-g-pill-warn { background: #FFF4E0; color: var(--rn-warn); }
.rn-g-item-detail { margin: 8px 0 4px; padding: 0; font-size: 14px; color: var(--rn-muted); word-break: break-word; }
.rn-g-item-fix { margin: 0; padding: 0; font-size: 14px; color: var(--rn-navy); }
.rn-g-item-fix span { font-weight: 700; }

.rn-g-locked { position: relative; margin-top: 12px; }
.rn-g-blur { filter: blur(6px); pointer-events: none; user-select: none; max-height: 420px; overflow: hidden; }
.rn-g-unlock {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center;
	background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.96) 30%);
	padding: 24px; border-radius: 14px;
}
.rn-g-locked:has(.rn-g-unlock[hidden]) { position: static; }
.rn-g-unlock > p { color: var(--rn-muted); margin: 0 0 12px; padding: 0; }
.rn-g-form .wpcf7-form p { margin: 0 0 10px; padding: 0; }
.rn-g-form input[type="text"], .rn-g-form input[type="email"], .rn-g-form input[type="tel"] {
	width: 100%; border: 1px solid var(--rn-line) !important; border-radius: 10px !important; background: var(--rn-light) !important; padding: 12px 14px !important;
}
.rn-g-form .rn-g-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
/* Contact Form 7 wraps fields in <p> and <br>; flatten them so each label is a grid cell. */
.rn-g-form .rn-g-fields > p { display: contents; }
.rn-g-form .rn-g-fields br { display: none; }
.rn-g-form .rn-g-fields label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--rn-navy); margin: 0; }
.rn-g-form .wpcf7-form-control-wrap { display: block; }
.rn-g-form input[type="submit"] {
	background: var(--rn-blue) !important; color: #FFFFFF !important; border-radius: 12px !important; padding: 14px 24px !important; font-weight: 700 !important;
}
.rn-g-passed { margin-top: 24px; }
.rn-g-pass-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rn-g-pass-list li { margin: 0 !important; padding: 10px 14px 10px 36px; position: relative; background: #EEF8F1; border-radius: 10px; font-size: 14px; }
.rn-g-pass-list li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 10px; height: 6px; border-left: 2px solid var(--rn-good); border-bottom: 2px solid var(--rn-good); transform: translateY(-70%) rotate(-45deg); }

.rn-g-cta { display: flex; gap: 24px; align-items: center; justify-content: space-between; background: var(--rn-navy); border-color: var(--rn-navy); }
.rn-g-cta .rn-g-h3 { color: #FFFFFF; margin-bottom: 6px; }
.rn-g-cta p { color: #D9E6FA; margin: 0; padding: 0; }
.rn-g-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.rn-g-cta .rn-g-btn-ghost { color: #FFFFFF !important; border-color: rgba(255,255,255,.35); }

@media (max-width: 999px) {
	.rn-g-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rn-g-cta { flex-direction: column; align-items: flex-start; }
	.rn-g-cta-actions { justify-content: flex-start; }
}
@media (max-width: 690px) {
	.rn-g-card { padding: 22px; border-radius: 16px; }
	.rn-g-row { flex-direction: column; }
	.rn-g-input { flex: none; width: 100%; }
	.rn-g-btn { width: 100%; }
	.rn-g-summary { flex-direction: column; text-align: center; gap: 18px; }
	.rn-g-cats { grid-template-columns: 1fr; }
	.rn-g-item-cat { margin-left: 0; width: 100%; }
	.rn-g-form .rn-g-fields, .rn-g-pass-list { grid-template-columns: 1fr; }
	.rn-g-unlock { position: static; background: none; padding: 16px 0 0; }
	.rn-g-blur { max-height: 200px; }
}
