/* ─── Resource Inner Hero ─────────────────────────── */
.ri-hero {
	height: 480px;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	background-color: #000;
}

.ri-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ri-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius);
}

.ri-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background-color: #070707;
	opacity: 0.57;
}

.ri-hero__content {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	max-width: 900px;
	padding: 0 var(--section-padding);
	text-align: center;
}

.ri-hero__title {
	font-size: 44px;
	font-weight: 700;
	color: var(--text-white);
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.ri-hero__subtitle {
	font-size: 18px;
	font-weight: var(--font-weight-light);
	color: rgba(220, 220, 220, 0.85);
	line-height: 1.5;
}

/* ─── Article Content Section ────────────────────── */
.ri-content {
	padding: 64px var(--section-padding) 80px;
}

.ri-content__body {
	max-width: 1500px;
	margin: 0 auto;
}

/* Article meta byline (author · date · topic) */
.ri-content__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding-bottom: 32px;
	margin-bottom: 48px;
	border-bottom: 1px solid #c8c8c8;
	font-size: 20px;
	font-weight: var(--font-weight-regular);
	color: var(--text-dark);
	letter-spacing: 0.01em;
}

.ri-content__meta-author {
	color: var(--text-dark);
	font-weight: var(--font-weight-bold);
}

.ri-content__meta-date {
	color: var(--text-body-gray);
}

.ri-content__meta-dot {
	color: #9a9a9a;
}

.ri-content__meta-topic {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 17px;
	color: var(--primary-red);
	font-weight: var(--font-weight-bold);
}

/* Article body typography — rendered from content_body HTML.
   All inline-level emphasis (<strong>, <em>, <b>) and block-level content
   render at a single regular weight so CMS over-bolding doesn't read as
   a wall of headlines. */
.ri-content__article {
	font-size: 17px;
	font-weight: var(--font-weight-regular);
	color: var(--text-dark);
	line-height: 1.75;
}

.ri-content__article p,
.ri-content__article ul,
.ri-content__article ol,
.ri-content__article li,
.ri-content__article blockquote,
.ri-content__article strong,
.ri-content__article b,
.ri-content__article em,
.ri-content__article i {
	font-weight: var(--font-weight-regular);
}

.ri-content__article p {
	font-size: 17px;
	line-height: 1.75;
}

.ri-content__article h1 {
	font-size: 32px;
	font-weight: 700;
	color: var(--text-dark);
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.ri-content__article h2,
.ri-content__article h3 {
	font-size: 26px;
	font-weight: 700;
	color: var(--text-dark);
	line-height: 1.3;
}

.ri-content__article h4 {
	font-size: 21px;
	font-weight: 700;
	color: var(--text-dark);
	line-height: 1.4;
}

.ri-content__article img {
	width: 100%;
	border-radius: var(--radius);
	margin: 0;
}

.ri-content__article ul,
.ri-content__article ol {
	font-size: 17px;
	line-height: 1.75;
	padding-left: 24px;
	list-style: disc;
}

.ri-content__article ol {
	list-style: decimal;
}

.ri-content__article blockquote {
	border-left: 3px solid var(--primary-red);
	padding-left: 20px;
	margin: 0;
	font-size: 18px;
	font-style: italic;
	color: var(--text-body-gray);
	line-height: 1.6;
}

.ri-content__article a {
	color: var(--primary-red);
	text-decoration: underline;
}

.ri-content__article a:hover {
	opacity: 0.8;
}

.ri-content__article p,
.ri-content__article ul,
.ri-content__article ol,
.ri-content__article blockquote {
	margin: 0 0 1.2em;
}

.ri-content__article h2,
.ri-content__article h3 {
	margin: 0 0 0.6em;
}

.ri-content__article h4 {
	margin: 0 0 0.5em;
}

.ri-content__article h1 {
	margin: 0 0 1.6em;
}

.ri-content__article * + h1 {
	margin-top: 1.8em;
}

.ri-content__article * + h2,
.ri-content__article * + h3 {
	margin-top: 1.6em;
}

.ri-content__article * + h4 {
	margin-top: 1.3em;
}

/* Collapse empty spacer paragraphs. TipTap emits both:
   - `<p><br data-type="hardbreak"></p>` (paragraph with just a <br>)
   - `<p></p>` (completely empty paragraph)
   Both otherwise add margin and visually double the gap. */
.ri-content__article p:empty,
.ri-content__article p:has(> br:only-child) {
	display: none;
}

/* TipTap also emits leading hardbreaks inside otherwise-normal paragraphs
   (`<p><br><strong>...</strong></p>`). The <br> pushes the content down
   one line, faking a paragraph break. Hide leading <br> elements so the
   paragraph spacing comes purely from the margin rule above. */
.ri-content__article p > br:first-child {
	display: none;
}

.ri-content__article > *:first-child {
	margin-top: 0;
}

.ri-content__article > *:last-child {
	margin-bottom: 0;
}

/* ─── Related Section ────────────────────────────── */
.ri-related {
	max-width: 1720px;
	margin: 0 auto;
	padding: 60px var(--section-padding) 140px;
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.ri-related__title {
	font-size: 40px;
	font-weight: var(--font-weight-regular);
	color: var(--text-dark);
	line-height: 1.2;
}

.ri-related__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 64px;
}

.ri-related-card {
	display: flex;
	flex-direction: column;
	gap: 18px;
	transition: opacity 0.2s;
}

.ri-related-card:hover {
	opacity: 0.85;
}

.ri-related-card__image {
	border-radius: var(--radius);
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.ri-related-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ri-related-card__image-placeholder {
	width: 100%;
	height: 100%;
	background: var(--bg-light);
}

.ri-related-card__title {
	font-size: 24px;
	font-weight: var(--font-weight-regular);
	color: var(--text-dark);
	line-height: 1.3;
	margin: 0;
}

.ri-related-card__meta {
	font-size: 14px;
	font-weight: var(--font-weight-regular);
	color: var(--text-body-gray);
	margin: 0;
	line-height: 1.4;
}

/* ─── Responsive: 1200px ─────────────────────────── */
@media (max-width: 1200px) {
	.ri-hero {
		height: 420px;
	}

	.ri-hero__title {
		font-size: 32px;
	}

	.ri-hero__subtitle {
		font-size: 17px;
	}

	.ri-content {
		padding: 56px 60px 72px;
	}

	.ri-related {
		padding: 48px 60px 120px;
	}

	.ri-related__title {
		font-size: 32px;
	}

	.ri-related-card__title {
		font-size: 22px;
	}
}

/* ─── Responsive: 1024px ─────────────────────────── */
@media (max-width: 1024px) {
	.ri-hero {
		height: 380px;
	}

	.ri-hero__title {
		font-size: 28px;
	}

	.ri-hero__subtitle {
		font-size: 16px;
	}

	.ri-content {
		padding: 48px 40px 64px;
	}

	.ri-related {
		padding: 40px 40px 100px;
		gap: 36px;
	}

	.ri-related__cards {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px;
	}

	.ri-related__title {
		font-size: 28px;
	}

	.ri-related-card__title {
		font-size: 20px;
	}
}

/* ─── Responsive: 768px ──────────────────────────── */
@media (max-width: 768px) {
	.ri-hero {
		height: 320px;
	}

	.ri-hero__title {
		font-size: 24px;
	}

	.ri-hero__subtitle {
		font-size: 15px;
	}

	.ri-hero__content {
		gap: 16px;
		max-width: 100%;
	}

	.ri-content {
		padding: 32px 20px 56px;
	}

	.ri-content__meta {
		font-size: 16px;
		gap: 8px;
		padding-bottom: 22px;
		margin-bottom: 32px;
	}

	.ri-content__meta-topic {
		font-size: 14px;
	}

	.ri-content__article p,
	.ri-content__article ul,
	.ri-content__article ol {
		font-size: 16px;
		line-height: 1.7;
	}

	.ri-content__article h1 {
		font-size: 26px;
	}

	.ri-content__article h2,
	.ri-content__article h3 {
		font-size: 22px;
	}

	.ri-content__article h4 {
		font-size: 18px;
	}

	.ri-content__article blockquote {
		font-size: 16px;
		padding-left: 16px;
	}

	.ri-related {
		padding: 32px 20px 80px;
		gap: 28px;
	}

	.ri-related__title {
		font-size: 24px;
	}

	.ri-related__cards {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.ri-related-card__title {
		font-size: 20px;
	}
}

/* ─── Responsive: 1680px+ ────────────────────────── */
@media (min-width: 1680px) {
	.ri-hero {
		height: 520px;
	}
	.ri-hero__content {
		max-width: 1100px;
	}
	.ri-hero__title {
		font-size: 52px;
	}
	.ri-hero__subtitle {
		font-size: 19px;
	}
	.ri-content__body {
		max-width: 1620px;
	}
	.ri-content__article p,
	.ri-content__article ul,
	.ri-content__article ol {
		font-size: 18px;
	}
	.ri-content__article h1 {
		font-size: 36px;
	}
	.ri-related__title {
		font-size: 44px;
	}
	.ri-related-card__title {
		font-size: 26px;
	}
}

/* ─── Responsive: 1920px+ ────────────────────────── */
@media (min-width: 1920px) {
	.ri-hero {
		height: 640px;
	}
	.ri-hero__content {
		max-width: 1400px;
		gap: 28px;
	}
	.ri-hero__title {
		font-size: 60px;
	}
	.ri-hero__subtitle {
		font-size: 22px;
	}
	.ri-content {
		padding: 88px var(--section-padding) 96px;
	}
	.ri-content__body {
		max-width: 1920px;
	}
	.ri-content__meta {
		font-size: 22px;
		padding-bottom: 36px;
		margin-bottom: 56px;
	}
	.ri-content__meta-topic {
		font-size: 19px;
	}
	.ri-content__article p,
	.ri-content__article ul,
	.ri-content__article ol {
		font-size: 20px;
		line-height: 1.8;
	}
	.ri-content__article h1 {
		font-size: 40px;
	}
	.ri-content__article h2,
	.ri-content__article h3 {
		font-size: 30px;
	}
	.ri-content__article h4 {
		font-size: 24px;
	}
	.ri-related {
		max-width: 1920px;
	}
	.ri-related__cards {
		gap: 80px;
	}
	.ri-related__title {
		font-size: 52px;
	}
	.ri-related-card__title {
		font-size: 28px;
	}
	.ri-related-card__meta {
		font-size: 16px;
	}
}

/* ─── Responsive: 2400px+ ────────────────────────── */
@media (min-width: 2400px) {
	.ri-hero {
		height: 720px;
	}
	.ri-hero__content {
		max-width: 1600px;
		gap: 32px;
	}
	.ri-hero__title {
		font-size: 72px;
	}
	.ri-hero__subtitle {
		font-size: 26px;
	}
	.ri-content {
		padding: 112px var(--section-padding) 120px;
	}
	.ri-content__body {
		max-width: 2240px;
	}
	.ri-content__meta {
		font-size: 24px;
		padding-bottom: 40px;
		margin-bottom: 64px;
	}
	.ri-content__meta-topic {
		font-size: 21px;
	}
	.ri-content__article p,
	.ri-content__article ul,
	.ri-content__article ol {
		font-size: 22px;
		line-height: 1.8;
	}
	.ri-content__article h1 {
		font-size: 46px;
	}
	.ri-content__article h2,
	.ri-content__article h3 {
		font-size: 34px;
	}
	.ri-content__article h4 {
		font-size: 26px;
	}
	.ri-related {
		max-width: 2160px;
	}
	.ri-related__cards {
		gap: 96px;
	}
	.ri-related__title {
		font-size: 60px;
	}
	.ri-related-card__title {
		font-size: 32px;
	}
	.ri-related-card__meta {
		font-size: 17px;
	}
}
