/* ===== Caratline — Privacy Policy page ===== */
main {
	margin-top: 40px;
}
.policy {
	background: radial-gradient(
			1100px 600px at 10% -12%,
			#ffffff 0 60%,
			transparent 60%
		),
		linear-gradient(180deg, #ffffff 0%, var(--bg-soft) 100%);
	border-top: 1px solid var(--line);
	padding: clamp(28px, 5vw, 56px) 0 28px;
}

.policy-title {
	max-width: var(--maxw);
	margin: 0 auto 10px;
	padding: 0 20px;
	font-family: 'Playfair Display', serif;
	font-weight: 600;
	font-size: clamp(24px, 3.6vw, 42px);
	line-height: 1.15;
	letter-spacing: 0.2px;
}

.policy-intro .lead {
	max-width: var(--maxw);
	margin: 0 auto 16px;
	padding: 0 20px;
	color: var(--muted);
	line-height: 1.65;
}

/* Blocks */
.policy-block {
	max-width: var(--maxw);
	margin: 0 auto 16px;
	padding: 0 20px;
}

.policy-block h2 {
	font-family: 'Playfair Display', serif;
	font-weight: 600;
	font-size: clamp(18px, 2.6vw, 26px);
	margin: 0 0 6px;
}

.policy-block p {
	margin: 0 0 10px;
	color: var(--muted);
	line-height: 1.7;
}

/* Highlight mandatory section */
.policy-block.required {
	padding: 12px 20px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: linear-gradient(#fff, #fff) padding-box,
		repeating-linear-gradient(90deg, #f9efe4 0 8px, #f5f0e8 8px 16px);
	border-radius: 0;
}

.policy-block.required p {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 12px;
}

/* Updated stamp */
.policy-updated {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 20px;
	color: var(--muted);
	font-variant-numeric: tabular-nums;
}

/* Links inside policy */
.policy a {
	color: var(--ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.policy a:hover {
	text-decoration-thickness: 2px;
}

/* Accessibility: focus */
.policy a:focus-visible {
	outline: 3px solid var(--brand-200);
	outline-offset: 3px;
	border-radius: 6px;
}

/* Global image cap safeguard (no images expected here) */
.policy img {
	max-width: 350px;
	height: auto;
	display: block;
}

/* Small screens */
@media (max-width: 520px) {
	.policy {
		padding-top: 22px;
	}
	.policy-block.required {
		padding-inline: 16px;
	}
}
