/* ==========================================================================
   Nick Blatchley Copywriting: policy pages (privacy, cookies, accessibility, terms)
   Builds on nb-home.css and nb-blog.css.
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
	html:has(.nb-policy) { scroll-behavior: smooth; }
}

.nb-policy .nb-policy-hero__title { max-width: 18ch; font-size: clamp(2.25rem, 4.6vw, 3.75rem); }
.nb-policy .nb-policy-hero .nb-hero__lead { margin-top: 22px; }
.nb-policy .nb-policy-hero__date { margin: 20px 0 0; font-size: .9375rem; font-weight: 600; color: var(--nb-muted); }

.nb-policy .nb-policy-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); }
.nb-policy .nb-policy-layout.has-toc { grid-template-columns: minmax(200px, 260px) minmax(0, 720px); align-items: start; }

.nb-policy .nb-policy-toc {
	position: sticky;
	top: 28px;
	padding: 20px 22px;
	background: var(--nb-pad);
	border-radius: var(--nb-radius);
	font-size: .9375rem;
}
.nb-policy .nb-policy-toc__title { margin: 0 0 10px; font-family: var(--nb-hand); font-size: 1.75rem; line-height: 1; color: var(--nb-pencil); }
.nb-policy .nb-policy-toc ol { margin: 0; padding-left: 20px; }
.nb-policy .nb-policy-toc li { margin: 0 0 8px; line-height: 1.35; }
.nb-policy .nb-policy-toc li::marker { color: var(--nb-pencil); font-weight: 600; }
.nb-policy .nb-policy-toc a { color: var(--nb-ink); text-decoration: none; }
.nb-policy .nb-policy-toc a:hover { text-decoration: underline; text-decoration-color: var(--nb-margin); }

/* Calmer prose for legal text: slightly smaller, no oversized first paragraph */
.nb-policy .nb-policy-prose { font-size: 1.0625rem; line-height: 1.7; }
.nb-policy .nb-policy-prose > p:first-child { font-size: 1.1875rem; }
.nb-policy .nb-policy-prose h2 {
	margin-top: 2em;
	padding-top: 1em;
	border-top: 1px solid var(--nb-rule);
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
	scroll-margin-top: 20px;
}
.nb-policy .nb-policy-prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.nb-policy .nb-policy-prose h3 { font-size: 1.25rem; }
.nb-policy .nb-policy-prose table { font-size: .9375rem; }
.nb-policy .nb-policy-prose td:first-child { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .875rem; color: var(--nb-ink); white-space: nowrap; }
.nb-policy .nb-policy-prose .wp-block-table { margin: 1.4em 0; overflow-x: auto; }

.nb-policy .nb-policy-contact {
	margin-top: 2.4em;
	padding: 20px 24px;
	background: var(--nb-pad);
	border-left: 3px solid var(--nb-margin);
	border-radius: 0 var(--nb-radius) var(--nb-radius) 0;
}
.nb-policy .nb-policy-contact__note { margin: 0 0 4px !important; font-family: var(--nb-hand); font-size: 1.75rem !important; line-height: 1; color: var(--nb-pencil) !important; }
.nb-policy .nb-policy-contact p { margin: 0; }

/* The "Change your cookie settings" link inside the cookie policy looks like a button */
.nb-policy .nb-prose a[href$="#cookie-settings"] {
	display: inline-block;
	padding: 10px 20px;
	border: 1.5px solid var(--nb-ink);
	border-radius: var(--nb-radius);
	font-weight: 600;
	text-decoration: none;
}
.nb-policy .nb-prose a[href$="#cookie-settings"]:hover { background: var(--nb-ink); color: #fff; }

@media (max-width: 900px) {
	.nb-policy .nb-policy-layout.has-toc { grid-template-columns: minmax(0, 1fr); }
	.nb-policy .nb-policy-toc { position: static; }
}
