:root {
	--sa-cream: #fbf4e6;
	--sa-paper: #fffaf0;
	--sa-ink: #1c1b18;
	--sa-muted: #5d564b;
	--sa-red: #9d241f;
	--sa-red-dark: #731713;
	--sa-green: #0f3f32;
	--sa-green-light: #1f604e;
	--sa-gold: #b88432;
	--sa-blue: #244d61;
	--sa-line: rgba(52, 38, 22, 0.16);
	--sa-shadow: 0 16px 36px rgba(28, 27, 24, 0.12);
	--sa-radius: 18px;
}

.sa-section {
	margin-block: clamp(2.5rem, 5vw, 5rem);
	padding: clamp(1.5rem, 3vw, 3rem);
	background: var(--sa-paper);
	border: 1px solid var(--sa-line);
	border-radius: var(--sa-radius);
	box-shadow: 0 10px 28px rgba(28, 27, 24, 0.06);
}

.sa-hero {
	background: radial-gradient(circle at top right, rgba(184, 132, 50, 0.16), transparent 32%), linear-gradient(135deg, #fff7e7 0%, #f6ead1 100%);
	border-color: rgba(184, 132, 50, 0.32);
}

.sa-kicker,
.sa-card-label,
.sa-timeline-date {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--sa-red);
	margin-bottom: 0.6rem;
}

.sa-hero-title,
.sa-page-title {
	font-size: clamp(2.4rem, 6vw, 5.5rem);
	line-height: 0.95;
	letter-spacing: -0.045em;
	margin-bottom: 1rem;
	color: var(--sa-ink);
}

.sa-lede,
.sa-section-intro {
	font-size: clamp(1.08rem, 2vw, 1.35rem);
	line-height: 1.55;
	color: var(--sa-muted);
	max-width: 68ch;
}

.sa-section-title {
	font-size: clamp(1.8rem, 3vw, 3rem);
	line-height: 1.05;
	margin-bottom: 0.75rem;
	color: var(--sa-green);
}

.sa-card,
.sa-claim-box,
.sa-problem-box,
.sa-record-box,
.sa-note {
	height: 100%;
	padding: clamp(1.1rem, 2vw, 1.6rem);
	background: #ffffff;
	border: 1px solid var(--sa-line);
	border-radius: 16px;
	box-shadow: 0 8px 22px rgba(28, 27, 24, 0.06);
}

.sa-card h3,
.sa-claim-box h3,
.sa-problem-box h3,
.sa-record-box h3 {
	margin-top: 0;
	margin-bottom: 0.65rem;
	font-size: 1.25rem;
}

.sa-card p:last-child,
.sa-note p:last-child {
	margin-bottom: 0;
}

.sa-button-primary .wp-block-button__link,
.wp-block-button.sa-button-primary .wp-block-button__link {
	background: var(--sa-red);
	color: #fff;
	border-radius: 999px;
	font-weight: 700;
	padding: 0.78rem 1.25rem;
	box-shadow: 0 9px 18px rgba(157, 36, 31, 0.22);
}

.sa-button-secondary .wp-block-button__link,
.wp-block-button.sa-button-secondary .wp-block-button__link {
	border-color: var(--sa-green);
	color: var(--sa-green);
	border-radius: 999px;
	font-weight: 700;
	padding: 0.78rem 1.25rem;
}

.sa-image-placeholder,
.sa-document-image-placeholder {
	min-height: 380px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
	background: repeating-linear-gradient(45deg, rgba(184,132,50,.12), rgba(184,132,50,.12) 10px, rgba(255,255,255,.48) 10px, rgba(255,255,255,.48) 20px), #f3e2c3;
	border: 2px dashed rgba(184, 132, 50, 0.55);
	border-radius: 18px;
	color: var(--sa-muted);
	font-weight: 700;
}

.sa-portrait-placeholder {
	min-height: 520px;
}

.sa-caption {
	font-size: 0.86rem;
	color: var(--sa-muted);
	margin-top: 0.75rem;
}

.sa-claim-box {
	border-top: 6px solid var(--sa-red);
}

.sa-problem-box {
	border-top: 6px solid var(--sa-gold);
}

.sa-record-box {
	border-top: 6px solid var(--sa-green);
}

.sa-chain {
	gap: 0.65rem;
	align-items: center;
}

.sa-chain-item {
	padding: 0.75rem 1rem;
	background: var(--sa-green);
	color: #fff;
	border-radius: 999px;
	font-weight: 800;
	margin: 0;
}

.sa-chain-arrow {
	font-size: 1.65rem;
	font-weight: 900;
	color: var(--sa-gold);
	margin: 0;
}

.sa-timeline {
	position: relative;
	padding-left: 1.5rem;
	border-left: 4px solid var(--sa-gold);
}

.sa-timeline-item {
	margin-bottom: 1rem;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid var(--sa-line);
	border-radius: 14px;
}

.sa-timeline-item:last-child {
	margin-bottom: 0;
}

.sa-note {
	background: #fff6db;
	border-color: rgba(184, 132, 50, 0.38);
}

.sa-colorized-note {
	font-size: 0.95rem;
}

.sa-legacy-card {
	border-top: 6px solid var(--sa-green);
}

.sa-featured-document {
	background: linear-gradient(135deg, #fffaf0 0%, #f7ecd5 100%);
}

@media (max-width: 781px) {
	.sa-section {
		margin-block: 2rem;
		padding: 1.2rem;
		border-radius: 14px;
	}

	.sa-hero-title,
	.sa-page-title {
		font-size: clamp(2rem, 12vw, 3.25rem);
	}

	.sa-portrait-placeholder,
	.sa-image-placeholder,
	.sa-document-image-placeholder {
		min-height: 280px;
	}

	.sa-chain {
		justify-content: flex-start;
	}
}
