/* ── Resources hub & guides ── */
.res-page {
	position: relative;
	z-index: 1;
}

.res-hero {
	text-align: center;
	padding: clamp(64px, 10vh, 100px) 24px clamp(48px, 8vh, 72px);
	max-width: 640px;
	margin: 0 auto;
}

.res-hero h1 {
	margin: 0;
	font-size: clamp(32px, 5vw, 48px);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1.12;
}

.res-hero-lead {
	margin: 20px 0 0;
	font-size: 17px;
	line-height: 1.65;
	color: var(--mute);
	font-weight: 500;
}

.res-hero-lead br {
	display: none;
}

@media (min-width: 560px) {
	.res-hero-lead br {
		display: inline;
	}
}

.res-hub {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 28px 80px;
	display: grid;
	gap: 16px;
}

.res-hub-card {
	display: block;
	padding: 28px 28px 26px;
	border: 1px solid #cfd9de;
	border-radius: 16px;
	background: var(--white);
	transition:
		border-color 0.2s var(--ease),
		box-shadow 0.2s var(--ease);
}

.res-hub-card:hover {
	border-color: var(--blue);
	box-shadow: 0 8px 32px rgba(15, 20, 25, 0.06);
}

.res-hub-card strong {
	display: block;
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 700;
	color: var(--blue);
}

.res-hub-card h2 {
	margin: 0 0 10px;
	font-size: clamp(20px, 3vw, 24px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--ink);
}

.res-hub-card p {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--mute);
	max-width: 36em;
}

.res-hub-link {
	font-size: 14px;
	font-weight: 700;
	color: var(--blue);
}

.res-foot {
	text-align: center;
	padding: 48px 24px 100px;
	border-top: 1px solid var(--line);
	max-width: 480px;
	margin: 0 auto;
}

.res-foot p {
	margin: 0 0 20px;
	font-size: 17px;
	font-weight: 600;
	color: var(--ink);
}

/* Guide pages */
.res-guide-hero {
	max-width: 640px;
	margin: 0 auto;
	padding: clamp(56px, 8vh, 88px) 28px 56px;
}

.res-guide-hero h1 {
	margin: 0;
	font-size: clamp(30px, 4.5vw, 44px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.res-guide-hero p {
	margin: 16px 0 0;
	font-size: 17px;
	line-height: 1.6;
	color: var(--mute);
}

.res-steps {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 28px 100px;
}

.res-step {
	padding: 48px 0;
	border-top: 1px solid var(--line);
}

.res-step:first-child {
	border-top: 0;
	padding-top: 0;
}

.res-step-num {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--blue);
}

.res-step h2 {
	margin: 0 0 16px;
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.res-step p,
.res-step li {
	font-size: 15px;
	line-height: 1.65;
	color: var(--mute);
}

.res-step p {
	margin: 0 0 16px;
}

.res-step ul {
	margin: 0 0 16px;
	padding-left: 1.2em;
}

.res-step li {
	margin-bottom: 6px;
}

.res-step-aside {
	margin: 24px 0;
	padding: 20px 22px;
	border-radius: 12px;
	background: #f7f9f9;
	border: 1px solid var(--line);
}

.res-step-aside p {
	margin: 0;
	color: var(--ink);
	font-weight: 500;
}

.res-progress {
	margin: 16px 0 8px;
	height: 6px;
	border-radius: 999px;
	background: var(--line);
	overflow: hidden;
}

.res-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--blue);
}

.res-progress-label {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
}

.res-url {
	display: inline-block;
	margin: 12px 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--blue);
}

.res-cta {
	display: inline-flex;
	align-items: center;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--blue);
}

.res-cta:hover {
	text-decoration: underline;
}

.res-chapter {
	max-width: 640px;
	margin: 0 auto;
	padding: 48px 28px;
	border-top: 1px solid var(--line);
}

.res-chapter:first-of-type {
	border-top: 0;
}

.res-chapter-num {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--mute);
}

.res-chapter h2 {
	margin: 0 0 16px;
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 700;
	letter-spacing: -0.02em;
}

.res-chapter h3 {
	margin: 24px 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--ink);
}

.res-quote {
	margin: 20px 0;
	padding-left: 16px;
	border-left: 3px solid var(--blue);
	font-size: 15px;
	line-height: 1.6;
	color: var(--ink);
	font-weight: 500;
}

.res-flow {
	margin: 16px 0;
	font-size: 14px;
	line-height: 2;
	color: var(--mute);
	font-weight: 600;
}

/* Stories */
.res-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 32px auto 48px;
	padding: 0 24px;
	max-width: 640px;
}

.res-filters span,
.res-filters a {
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid #cfd9de;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
}

.res-filters a.is-on,
.res-filters span.is-on {
	border-color: var(--blue);
	background: #e8f5fd;
	color: var(--blue);
}

.res-stories {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 28px 100px;
}

.res-story-preview {
	padding: 40px 0;
	border-top: 1px solid var(--line);
}

.res-story-preview:first-child {
	border-top: 0;
}

.res-story-tag {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--mute);
}

.res-story-preview h2 {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.res-story-pull {
	margin: 0 0 12px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--ink);
}

.res-story-detail {
	max-width: 640px;
	margin: 0 auto;
	padding: 56px 28px 48px;
	border-top: 1px solid var(--line);
}

.res-story-detail h2 {
	margin: 0 0 24px;
	font-size: clamp(24px, 3.5vw, 32px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.res-story-block h3 {
	margin: 32px 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
}

.res-story-block p,
.res-story-block li {
	font-size: 15px;
	line-height: 1.65;
	color: var(--mute);
}

.res-story-block ul {
	margin: 0;
	padding-left: 1.2em;
}

/* Blog */
.res-pillars {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 28px 100px;
}

.res-pillar {
	padding: 40px 0;
	border-top: 1px solid var(--line);
}

.res-pillar:first-child {
	border-top: 0;
}

.res-pillar h2 {
	margin: 0 0 16px;
	font-size: 20px;
	font-weight: 700;
}

.res-article-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.res-article-list li {
	border-bottom: 1px solid var(--line);
}

.res-article-list a {
	display: block;
	padding: 14px 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	transition: color 0.2s var(--ease);
}

.res-article-list a:hover {
	color: var(--blue);
}

.res-article-list span {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 500;
	color: var(--mute);
}

/* Updates */
.res-updates {
	max-width: 640px;
	margin: 0 auto;
	padding: 0 28px 100px;
}

.res-update {
	padding: 32px 0;
	border-top: 1px solid var(--line);
}

.res-update:first-child {
	border-top: 0;
}

.res-update time {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--mute);
}

.res-update h2 {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

.res-update p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--mute);
}

.res-update ul {
	margin: 0 0 12px;
	padding-left: 1.2em;
	font-size: 15px;
	line-height: 1.65;
	color: var(--mute);
}

.res-nav-sub {
	max-width: 720px;
	margin: 0 auto;
	padding: 16px 28px 0;
	font-size: 13px;
}

.res-nav-sub a {
	color: var(--mute);
	font-weight: 600;
}

.res-nav-sub a:hover {
	color: var(--blue);
}

@media (max-width: 1200px) {
	.res-hub,
	.res-steps,
	.res-guide-hero,
	.res-chapter,
	.res-stories,
	.res-pillars,
	.res-updates {
		padding-left: 24px;
		padding-right: 24px;
	}
}
