/**
 * Smart Pregnancy — Portal section styles.
 * Self-contained (own tokens), full-width, RTL-aware, Hero UI mint-green theme.
 */

.spc-portal {
	/* "Joyful Bloom" portal tokens — bold, vibrant, premium. */
	--spc-primary: #43c98e;
	--spc-primary-bright: #5fd09a;
	--spc-secondary: #43c5c1;
	--spc-accent: #8fe7b8;
	--spc-coral: #ff8a78;
	--spc-peach: #ffb38a;
	--spc-sun: #ffd166;
	--spc-lavender: #a99cf0;
	--spc-sky: #7fb0f5;
	--spc-grad: linear-gradient(135deg, #5fd09a 0%, #43c98e 45%, #43c5c1 100%);
	--spc-grad-strong: linear-gradient(135deg, #2fae79, #1f9f88);
	--spc-grad-warm: linear-gradient(135deg, #ff8a78, #ffb38a);
	--spc-primary-text: #0d7a52;
	--spc-ink: #0f2a20;
	--spc-soft: #5e7269;
	--spc-line: #d9ece4;
	--spc-surface: #ffffff;
	--spc-surface-2: #f1faf5;
	--spc-radius: 24px;
	--spc-shadow: 0 12px 30px rgba(20, 120, 82, 0.12), 0 2px 8px rgba(15, 42, 32, 0.06);
	--spc-shadow-lg: 0 22px 50px rgba(20, 120, 82, 0.18);
	--spc-glow: 0 14px 34px color-mix(in srgb, var(--spc-primary) 40%, transparent);

	box-sizing: border-box;
	max-width: 1180px;
	margin: 1.5rem auto;
	padding: 0 1rem;
	font-family: "Tajawal", "Cairo", system-ui, -apple-system, sans-serif;
	color: var(--spc-ink);
}
.spc-portal *,
.spc-portal *::before,
.spc-portal *::after { box-sizing: border-box; }

.spc-portal__title {
	text-align: center;
	font-size: clamp(1.6rem, 1rem + 2.2vw, 2.3rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	margin: 0.5rem 0 1.5rem;
	background: linear-gradient(105deg, #0d7a52 0%, #0a7d72 60%, #2f6fb0 120%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.spc-portal__heading {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	text-align: center;
	font-size: clamp(1.25rem, 0.9rem + 1.3vw, 1.7rem);
	font-weight: 900;
	letter-spacing: -0.015em;
	color: var(--spc-ink);
	margin: 2.6rem 0 1.5rem;
}
.spc-portal__heading::after {
	content: "";
	position: absolute;
	bottom: -0.7rem;
	left: 50%;
	transform: translateX(-50%);
	width: 64px;
	height: 5px;
	border-radius: 999px;
	background: var(--spc-grad);
	box-shadow: var(--spc-glow);
}

/* ============ Category circles ============ */
.spc-portal__cats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1rem, 3vw, 2rem);
	margin: 1rem 0 2.5rem;
}
.spc-cat {
	flex: 1 1 180px;
	max-width: 240px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
}
.spc-cat__circle {
	position: relative;
	width: clamp(140px, 20vw, 190px);
	aspect-ratio: 1;
	border-radius: 50%;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: linear-gradient(150deg, var(--spc-c1, #8fe7b8), var(--spc-c2, #43c5c1));
	border: 5px solid color-mix(in srgb, var(--spc-c2, #43c5c1) 60%, #fff);
	box-shadow: var(--spc-shadow), 0 0 0 8px color-mix(in srgb, var(--spc-c2, #43c5c1) 12%, transparent);
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s;
}
/* Playful inner sheen + hover bloom. */
.spc-cat__circle::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: radial-gradient(circle at 32% 26%, rgba(255, 255, 255, 0.55), transparent 52%);
	pointer-events: none;
}
.spc-cat:hover .spc-cat__circle,
.spc-cat:focus-visible .spc-cat__circle {
	transform: translateY(-8px) scale(1.04);
	box-shadow: var(--spc-shadow-lg), 0 0 0 12px color-mix(in srgb, var(--spc-c2, #43c5c1) 18%, transparent);
}
.spc-cat__img { width: 100%; height: 100%; object-fit: cover; }
.spc-cat__emoji { font-size: clamp(2.8rem, 6vw, 3.6rem); line-height: 1; filter: drop-shadow(0 4px 8px rgba(15, 42, 32, 0.18)); transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.spc-cat:hover .spc-cat__emoji { transform: scale(1.12) rotate(-6deg); }
.spc-cat__label {
	position: relative;
	z-index: 2;
	margin-top: -1.5rem;
	padding: 0.55rem 1.6rem;
	border-radius: 999px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--spc-c1, #8fe7b8) 70%, #0b3d2a), color-mix(in srgb, var(--spc-c2, #43c5c1) 60%, #0b3a3d));
	color: #fff;
	font-weight: 900;
	font-size: 1.04rem;
	border: 2px solid #fff;
	box-shadow: 0 8px 18px rgba(15, 42, 32, 0.18);
	transition: transform 0.25s ease;
}
.spc-cat:hover .spc-cat__label { transform: translateY(2px); }

/* ============ Trimester / month / week grid ============ */
.spc-weeks__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}
.spc-tricol {
	background: var(--spc-surface);
	border: 1px solid var(--spc-line);
	border-radius: var(--spc-radius);
	overflow: hidden;
	box-shadow: var(--spc-shadow);
	transition: transform 0.25s, box-shadow 0.25s;
}
.spc-tricol:hover { transform: translateY(-4px); box-shadow: var(--spc-shadow-lg); }
.spc-tricol__head {
	background: linear-gradient(135deg, var(--spc-primary-bright), var(--spc-primary) 55%, var(--spc-secondary));
	color: #fff;
	text-align: center;
	font-weight: 900;
	font-size: 1.08rem;
	padding: 0.95rem;
	text-shadow: 0 1px 2px rgba(11, 61, 42, 0.25);
	box-shadow: inset 0 -3px 8px rgba(11, 61, 42, 0.08);
}
.spc-tricol--2 .spc-tricol__head { background: linear-gradient(135deg, var(--spc-secondary), var(--spc-sky)); }
.spc-tricol--3 .spc-tricol__head { background: linear-gradient(135deg, var(--spc-sky), var(--spc-lavender)); }
.spc-tricol__months { padding: 0.4rem 0.5rem; }
.spc-month {
	padding: 0.7rem 0.4rem;
	border-bottom: 1px dashed var(--spc-line);
}
.spc-month:last-child { border-bottom: 0; }
.spc-month__name {
	text-align: center;
	font-weight: 700;
	color: var(--spc-soft);
	font-size: 0.88rem;
	margin-bottom: 0.55rem;
}
.spc-month__weeks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
}
.spc-wk {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--spc-surface-2);
	border: 1.5px solid var(--spc-line);
	color: var(--spc-primary-text);
	font-weight: 800;
	font-size: 0.92rem;
	text-decoration: none;
	transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.18s, color 0.18s, border-color 0.18s, box-shadow 0.2s;
}
.spc-wk:hover,
.spc-wk:focus-visible {
	background: var(--spc-grad);
	color: #fff;
	border-color: transparent;
	transform: scale(1.18) translateY(-2px);
	box-shadow: var(--spc-glow);
}
.spc-wk--plain { opacity: 0.45; }

/* ============ Calculators grid ============ */
.spc-calcs__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 1.4rem 1rem;
}
.spc-calc {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	text-align: center;
	text-decoration: none;
}
.spc-calc__icon {
	position: relative;
	width: 88px;
	height: 88px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	font-size: 2.15rem;
	background:
		radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.7), transparent 55%),
		linear-gradient(150deg, color-mix(in srgb, var(--spc-c1, #43c98e) 38%, #fff), color-mix(in srgb, var(--spc-c1, #43c98e) 16%, #fff));
	border: 2.5px solid color-mix(in srgb, var(--spc-c1, #43c98e) 65%, #fff);
	box-shadow: var(--spc-shadow), 0 0 0 6px color-mix(in srgb, var(--spc-c1, #43c98e) 10%, transparent);
	transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.28s;
}
.spc-calc:hover .spc-calc__icon,
.spc-calc:focus-visible .spc-calc__icon {
	transform: translateY(-7px) scale(1.06) rotate(-3deg);
	box-shadow: var(--spc-shadow-lg), 0 0 0 9px color-mix(in srgb, var(--spc-c1, #43c98e) 16%, transparent);
}
.spc-calc__label {
	font-weight: 700;
	color: var(--spc-ink);
	font-size: 0.95rem;
	line-height: 1.45;
	max-width: 12rem;
}

/* ============ Topics ============ */
.spc-topics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 1.3rem;
}
.spc-topic-card {
	display: flex;
	flex-direction: column;
	background: var(--spc-surface);
	border: 1px solid var(--spc-line);
	border-radius: var(--spc-radius);
	overflow: hidden;
	text-decoration: none;
	box-shadow: var(--spc-shadow);
	transition: transform 0.2s, box-shadow 0.2s;
}
.spc-topic-card:hover,
.spc-topic-card:focus-visible {
	transform: translateY(-6px);
	box-shadow: var(--spc-shadow-lg);
	border-color: color-mix(in srgb, var(--spc-primary) 35%, var(--spc-line));
}
.spc-topic-card__media {
	position: relative;
	height: 140px;
	background-size: cover;
	background-position: center;
	display: grid;
	place-items: center;
	font-size: 2.6rem;
}
.spc-topic-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgba(15, 42, 32, 0.18));
	pointer-events: none;
}
.spc-topic-card__media.is-placeholder {
	background:
		radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--spc-sun) 35%, transparent), transparent 55%),
		var(--spc-grad);
	color: #fff;
}
.spc-topic-card__media.is-placeholder::after { display: none; }
/* Vary placeholder colors so a grid of topics feels lively, not monotonous. */
.spc-topics__grid .spc-topic-card:nth-child(4n + 2) .spc-topic-card__media.is-placeholder { background: linear-gradient(140deg, var(--spc-secondary), var(--spc-sky)); }
.spc-topics__grid .spc-topic-card:nth-child(4n + 3) .spc-topic-card__media.is-placeholder { background: linear-gradient(140deg, var(--spc-lavender), var(--spc-sky)); }
.spc-topics__grid .spc-topic-card:nth-child(4n + 4) .spc-topic-card__media.is-placeholder { background: var(--spc-grad-warm); }
/* Only the emoji glyph is large — never the category tag pill. */
.spc-topic-card__media.is-placeholder > span[aria-hidden="true"] {
	font-size: 3rem;
	filter: drop-shadow(0 4px 9px rgba(15, 42, 32, 0.28));
}
.spc-topic-card__media.is-placeholder > span[aria-hidden="true"] img.emoji { width: 1em; height: 1em; }
.spc-topic-card__body { padding: 1rem 1.15rem 1.2rem; }
.spc-topic-card__title {
	display: block;
	font-weight: 800;
	color: var(--spc-ink);
	margin-bottom: 0.45rem;
	line-height: 1.5;
}
.spc-topic-card__excerpt {
	display: block;
	color: var(--spc-soft);
	font-size: 0.88rem;
	line-height: 1.7;
}
.spc-topic-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.8rem;
	font-weight: 800;
	font-size: 0.85rem;
	color: var(--spc-primary-text);
}
.spc-topic-card__tag {
	position: absolute;
	inset-block-start: 0.7rem;
	inset-inline-start: 0.7rem;
	z-index: 1;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--spc-primary-text);
	font-size: 0.72rem;
	font-weight: 800;
	box-shadow: 0 2px 8px rgba(15, 42, 32, 0.18);
}

/* ============ Archive: hero, chips, pagination ============ */
.spc-archive { display: block; }
.spc-archive__hero {
	--spc-c1: var(--spc-primary);
	--spc-c2: var(--spc-secondary);
	position: relative;
	text-align: center;
	padding: 2.4rem 1.5rem 2.2rem;
	margin-bottom: 1.6rem;
	border-radius: var(--spc-radius);
	background:
		radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--spc-c1) 26%, transparent), transparent 55%),
		radial-gradient(circle at 82% 78%, color-mix(in srgb, var(--spc-c2) 26%, transparent), transparent 55%),
		var(--spc-surface);
	border: 1px solid var(--spc-line);
	box-shadow: var(--spc-shadow);
}
.spc-archive__back {
	position: absolute;
	inset-block-start: 1rem;
	inset-inline-start: 1.2rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--spc-primary-text);
	text-decoration: none;
}
.spc-archive__back:hover { text-decoration: underline; }
.spc-archive__badge {
	display: inline-block;
	padding: 0.4rem 1.2rem;
	border-radius: 999px;
	background: var(--spc-grad);
	color: #fff;
	font-weight: 800;
	font-size: 0.9rem;
	box-shadow: var(--spc-glow);
	margin-bottom: 0.7rem;
}
.spc-archive__emoji {
	display: block;
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 0.4rem;
	filter: drop-shadow(0 6px 12px rgba(15, 42, 32, 0.2));
}
.spc-archive__title {
	margin: 0.2rem 0 0.5rem;
	font-size: clamp(1.6rem, 1rem + 2.6vw, 2.3rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	color: var(--spc-ink);
}
.spc-archive__lead {
	max-width: 60ch;
	margin: 0 auto;
	color: var(--spc-soft);
	line-height: 1.8;
}
.spc-archive__empty {
	text-align: center;
	color: var(--spc-soft);
	padding: 2rem 0;
}
.spc-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	justify-content: center;
	margin-bottom: 1.8rem;
}
.spc-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	background: var(--spc-surface);
	border: 1px solid var(--spc-line);
	color: var(--spc-ink);
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
	box-shadow: var(--spc-shadow);
	transition: transform 0.15s, border-color 0.2s, box-shadow 0.2s;
}
.spc-chip:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--spc-primary) 45%, var(--spc-line));
}
.spc-chip.is-active {
	background: var(--spc-grad);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--spc-glow);
}
.spc-chip__emoji { font-size: 1.05rem; }
.spc-chip__count {
	min-width: 1.4rem;
	padding: 0 0.4rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--spc-primary) 14%, var(--spc-surface-2));
	color: var(--spc-primary-text);
	font-size: 0.74rem;
	font-weight: 800;
	text-align: center;
}
.spc-chip.is-active .spc-chip__count {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}
.spc-pagination { margin-top: 2rem; }
.spc-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}
.spc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.6rem;
	border-radius: 12px;
	background: var(--spc-surface);
	border: 1px solid var(--spc-line);
	color: var(--spc-ink);
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.15s, border-color 0.2s;
}
.spc-pagination .page-numbers:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--spc-primary) 45%, var(--spc-line));
}
.spc-pagination .page-numbers.current {
	background: var(--spc-grad);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--spc-glow);
}

/* ============ Single week page ============ */
.spc-week-single {
	position: relative;
	overflow: hidden;
	max-width: 760px;
	margin: 0 auto;
	background:
		radial-gradient(120% 70% at 100% -5%, color-mix(in srgb, var(--spc-accent) 24%, transparent), transparent 55%),
		radial-gradient(110% 60% at -10% 0%, color-mix(in srgb, var(--spc-secondary) 16%, transparent), transparent 50%),
		var(--spc-surface);
	border: 1px solid var(--spc-line);
	border-radius: var(--spc-radius);
	box-shadow: var(--spc-shadow-lg);
	padding: clamp(1.4rem, 4vw, 2.4rem);
}
.spc-week-single__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-bottom: 1.3rem;
	color: var(--spc-primary-text);
	font-weight: 700;
	text-decoration: none;
}
.spc-week-single__back:hover { text-decoration: underline; }
.spc-week-single__hero { text-align: center; margin-bottom: 1.5rem; }
.spc-week-single__badge {
	display: inline-block;
	padding: 0.45rem 1.5rem;
	border-radius: 999px;
	background: var(--spc-grad);
	color: #fff;
	font-weight: 900;
	font-size: 1.08rem;
	letter-spacing: 0.01em;
	box-shadow: var(--spc-glow);
	text-shadow: 0 1px 2px rgba(11, 61, 42, 0.25);
}
.spc-week-single__sub { display: block; margin-top: 0.7rem; color: var(--spc-soft); font-weight: 600; }
.spc-week-single__title { margin: 0.6rem 0 0; font-size: clamp(1.5rem, 1rem + 2.2vw, 2.1rem); font-weight: 900; letter-spacing: -0.02em; color: var(--spc-ink); }

.spc-week-single__content { color: var(--spc-ink); line-height: 1.9; font-size: 1.02rem; }
.spc-week-single__content figure {
	margin: 0 auto 1.6rem;
	padding: 7px;
	max-width: 300px;
	border-radius: 30px;
	background: var(--spc-grad);
	box-shadow: var(--spc-shadow-lg), 0 0 0 8px color-mix(in srgb, var(--spc-primary) 10%, transparent);
}
.spc-week-single__content figure img { display: block; width: 100%; height: auto; border-radius: 24px; }
.spc-week-single__content h3 {
	position: relative;
	margin: 1.7rem 0 0.5rem;
	padding-inline-start: 0.7rem;
	color: var(--spc-primary-text);
	font-size: 1.18rem;
	font-weight: 900;
}
.spc-week-single__content h3::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 0.15em;
	width: 5px;
	height: 1em;
	border-radius: 999px;
	background: var(--spc-grad);
}
.spc-week-single__content p { margin: 0 0 0.8rem; }
.spc-week-single__content strong { color: var(--spc-primary-text); }
.spc-week-single__content ul { margin: 0 0 1rem; padding: 0; list-style: none; }
.spc-week-single__content li {
	position: relative;
	padding-inline-start: 1.6rem;
	margin-bottom: 0.5rem;
	line-height: 1.7;
}
.spc-week-single__content li::before {
	content: "✓";
	position: absolute;
	inset-inline-start: 0;
	top: 0.05em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--spc-grad);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 900;
	display: grid;
	place-items: center;
}
/* Quick facts strip (size / length / weight). */
.spc-week-facts {
	background: linear-gradient(135deg, color-mix(in srgb, var(--spc-primary) 14%, var(--spc-surface)), var(--spc-surface-2));
	border: 1px solid var(--spc-line);
	border-radius: 14px;
	padding: 0.7rem 1rem;
	font-weight: 600;
	color: var(--spc-ink);
	margin: 0 0 1.2rem;
}
.spc-week-facts strong { color: var(--spc-primary-text); }
/* "When to call your doctor" red-flag note. */
.spc-week-warn {
	background: linear-gradient(135deg, #fff3ee, #ffe9e2);
	border-inline-start: 4px solid var(--spc-coral, #ff8a78);
	border-radius: 0 12px 12px 0;
	padding: 0.85rem 1.1rem;
	color: #8a2f1f;
	line-height: 1.7;
	margin: 1.2rem 0;
}
.spc-week-warn strong { color: #b3331c; }
/* Disclaimer line. */
.spc-week-note,
.spc-topic-note { color: var(--spc-soft); font-size: 0.85rem; margin-top: 1.4rem; }

.spc-week-single__nav {
	display: flex;
	justify-content: space-between;
	gap: 0.8rem;
	margin: 2rem 0 1.3rem;
	padding-top: 1.3rem;
	border-top: 1px solid var(--spc-line);
}
.spc-week-single__navlink {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.15rem;
	border-radius: 999px;
	background: var(--spc-surface-2);
	border: 1px solid var(--spc-line);
	color: var(--spc-primary-text);
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, transform 0.15s, border-color 0.2s;
}
.spc-week-single__navlink:hover { background: var(--spc-grad); color: #fff; border-color: transparent; transform: translateY(-2px); }
.spc-week-single__cta { text-align: center; }
.spc-week-single__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.9rem;
	border-radius: 14px;
	background: var(--spc-grad-strong);
	color: #fff;
	font-weight: 800;
	font-size: 1.05rem;
	text-decoration: none;
	box-shadow: var(--spc-shadow);
	transition: transform 0.15s, filter 0.2s;
}
.spc-week-single__btn:hover { transform: translateY(-2px); filter: brightness(1.05); }

/* ============ Topic single ============ */
a.spc-week-single__badge { text-decoration: none; transition: transform 0.15s, filter 0.2s; }
a.spc-week-single__badge:hover { transform: translateY(-1px); filter: brightness(1.05); }
.spc-topic-single__figure {
	margin: 0 0 1.6rem;
	padding: 7px;
	border-radius: 24px;
	background: var(--spc-grad);
	box-shadow: var(--spc-shadow-lg);
}
.spc-topic-single__figure img { display: block; width: 100%; height: auto; border-radius: 18px; }
.spc-topic-single__related {
	margin: 2rem 0 0;
	padding: 1.3rem 1.4rem;
	border-radius: 18px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--spc-primary) 8%, var(--spc-surface)), var(--spc-surface-2));
	border: 1px solid var(--spc-line);
}
.spc-topic-single__related-title {
	margin: 0 0 0.8rem;
	font-size: 1.15rem;
	font-weight: 900;
	color: var(--spc-ink);
}
.spc-topic-single__related-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.55rem; }
.spc-topic-single__related-list a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.7rem 0.95rem;
	border-radius: 12px;
	background: var(--spc-surface);
	border: 1px solid var(--spc-line);
	color: var(--spc-ink);
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.15s, border-color 0.2s, box-shadow 0.2s;
}
.spc-topic-single__related-list a:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--spc-primary) 45%, var(--spc-line));
	box-shadow: var(--spc-shadow);
}
.spc-topic-single__related-arrow {
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--spc-grad);
	color: #fff;
	font-weight: 900;
	font-size: 0.8rem;
}

/* ============ Responsive ============ */
@media (max-width: 820px) {
	.spc-weeks__grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.spc-wk { width: 36px; height: 36px; font-size: 0.85rem; }
	.spc-calc__icon { width: 72px; height: 72px; font-size: 1.8rem; }
}

/* ============ Reduced motion ============ */
@media (prefers-reduced-motion: reduce) {
	.spc-portal *,
	.spc-portal *::before,
	.spc-portal *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* ============ Focus-visible (brand ring) ============ */
.spc-portal a:focus-visible,
.spc-portal button:focus-visible {
	outline: 3px solid var(--spc-primary);
	outline-offset: 3px;
	border-radius: 8px;
}
