/* Related/Explore card grid (§3) */

.related-grid {
	padding-block: var(--section-pad);
}

.related-grid--tint {
	background: var(--cyan-tint);
}

.related-grid__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 48px;
	flex-wrap: wrap;
	margin-bottom: 40px;
}

.related-grid__intro {
	max-width: 30em;
	color: var(--slate);
	margin: 0;
}

.related-grid__grid {
	display: grid;
	gap: 32px;
}

.related-grid__grid--4 { grid-template-columns: repeat(4, 1fr); }
.related-grid__grid--3 { grid-template-columns: repeat(3, 1fr); }
.related-grid__grid--2 { grid-template-columns: repeat(2, 1fr); }

.related-grid__card {
	display: block;
	padding: 32px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	transition: border-color 180ms ease-out, transform 180ms ease-out, box-shadow 180ms ease-out;
}

.related-grid__card:hover,
.related-grid__card:focus-visible {
	border-color: var(--cyan);
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(1, 36, 126, 0.08);
}

.related-grid__icon {
	width: 44px;
	height: 44px;
	padding: 8px;
	border-radius: 10px;
	background: var(--cyan-tint);
	margin-bottom: 20px;
}

.related-grid__card h3 {
	font-size: 1.125rem;
	margin-bottom: 0.5em;
}

.related-grid__card p {
	color: var(--slate);
	margin: 0 0 20px;
	font-size: 0.9375rem;
}

.related-grid__link {
	display: inline-flex;
	color: var(--navy);
	font-weight: 600;
}

.related-grid__link--text {
	font-size: 0.9375rem;
	border-bottom: 1.5px solid var(--navy);
	transition: color 180ms ease-out, border-color 180ms ease-out;
}

/* The whole card is the link, so the text link reacts to card hover/focus. */
.related-grid__card:hover .related-grid__link--text,
.related-grid__card:focus-visible .related-grid__link--text {
	color: var(--cyan-dark);
	border-bottom-color: var(--cyan-dark);
}

.related-grid__link--arrow {
	font-size: 1.125rem;
	transition: transform 180ms ease-out;
}

.related-grid__card:hover .related-grid__link--arrow,
.related-grid__card:focus-visible .related-grid__link--arrow {
	transform: translateX(4px);
}

/* ---- Responsive (§6) --------------------------------------------------- */
@media (max-width: 1024px) {
	.related-grid__grid--4,
	.related-grid__grid--3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.related-grid__grid--4,
	.related-grid__grid--3,
	.related-grid__grid--2 {
		grid-template-columns: 1fr;
	}
}
