/* =============================================================
   page-privatliv.css — /privatliv (handoff-template)
   Design-pattern: sticky TOC sidebar + nummererede paragraph-sections
   (mirrorer /vedtaegter-layoutet men med eget .priv- scope + eyebrow/num-stil).
   ============================================================= */

main#vk-design-main,
.vk-design-handoff {
	--vk-cream: #EBE4D1;
	background: var(--vk-cream);
}

/* ---------- Hero (shared handoff-hero pattern) ---------- */
.vk-design-handoff .page-hero {
	position: relative;
	padding: 48px 0 56px;
	background: linear-gradient(180deg, #F5EFE2 0%, var(--vk-cream) 100%);
	overflow: hidden;
}
.vk-design-handoff .page-hero-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
}
.vk-design-handoff .breadcrumb {
	display: flex; gap: 8px; align-items: center;
	font-size: 13px; color: var(--vk-muted);
	margin-bottom: 18px;
}
.vk-design-handoff .breadcrumb a { color: var(--vk-sage-text); text-decoration: none; }
.vk-design-handoff .breadcrumb a:hover { color: var(--vk-sage); text-decoration: underline; }
.vk-design-handoff .breadcrumb .sep { color: var(--vk-muted); }
.vk-design-handoff .breadcrumb .current { color: var(--vk-dark); font-weight: 600; }
.vk-design-handoff .ph-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 12px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--vk-sage-text);
	margin-bottom: 14px;
}
.vk-design-handoff .ph-eyebrow .dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--vk-red);
}
.vk-design-handoff .ph-title {
	font-size: clamp(40px, 5vw, 56px);
	font-weight: 900; line-height: 1.05; letter-spacing: -0.02em;
	color: var(--vk-dark); margin: 0 0 12px;
}
.vk-design-handoff .ph-sub {
	font-size: 17px; line-height: 1.55;
	color: var(--vk-body);
	max-width: 640px; margin: 0;
}

/* ---------- Meta-row (sidst ændret + org) ---------- */
.priv-meta {
	display: flex; flex-wrap: wrap; gap: 10px;
	margin-top: 20px;
}
.priv-meta-item {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 12.5px; font-weight: 600;
	color: var(--vk-sage-text);
	background: rgba(255,255,255,.7);
	border: 1px solid var(--vk-border);
	padding: 6px 12px; border-radius: 999px;
}
.priv-meta-item svg { flex: none; opacity: .8; }

/* ---------- Layout grid ---------- */
.priv-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 56px 24px 80px;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 48px;
}

/* ---------- Sticky TOC ---------- */
.priv-toc {
	position: sticky; top: 110px;
	align-self: start;
	background: #fff;
	border: 1px solid var(--vk-border);
	border-radius: 16px;
	padding: 22px 20px;
	max-height: calc(100vh - 140px);
	overflow-y: auto;
	box-shadow: 0 2px 10px rgba(0,0,0,.04);
}
.priv-toc-title {
	font-size: 12px; font-weight: 800;
	text-transform: uppercase; letter-spacing: .12em;
	color: var(--vk-muted); margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--vk-border);
}
.priv-toc-list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 2px;
	font-size: 13.5px;
	counter-reset: none;
}
.priv-toc-list li { margin: 0; padding: 0; }
.priv-toc-list a {
	display: grid;
	grid-template-columns: 28px 1fr;
	align-items: baseline;
	gap: 10px;
	padding: 9px 12px;
	border-radius: 10px;
	color: var(--vk-dark);
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.priv-toc-list a:hover {
	background: var(--vk-cream);
	color: var(--vk-sage-text);
}
.priv-toc-num {
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--vk-red);
	font-size: 12.5px;
	letter-spacing: .02em;
}
.priv-toc-title-text {
	font-weight: 600;
	line-height: 1.35;
}

/* ---------- Body ---------- */
.priv-body {
	background: #fff;
	border: 1px solid var(--vk-border);
	border-radius: 18px;
	padding: 40px 48px;
	box-shadow: 0 4px 16px rgba(0,0,0,.04);
}
.priv-section {
	margin: 0 0 40px;
	scroll-margin-top: 120px;
}
.priv-section:last-of-type { margin-bottom: 0; }
.priv-section + .priv-section {
	padding-top: 40px;
	border-top: 1px dashed var(--vk-border);
}

.priv-section-eyebrow {
	display: inline-block;
	font-size: 11.5px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .14em;
	color: var(--vk-sage-text);
	margin-bottom: 10px;
}
.priv-section-h {
	display: flex; align-items: baseline; gap: 14px;
	font-size: clamp(22px, 2.6vw, 26px);
	font-weight: 800; letter-spacing: -0.01em;
	color: var(--vk-dark); margin: 0 0 20px;
	line-height: 1.2;
}
.priv-section-num {
	color: var(--vk-red);
	font-weight: 900;
	font-size: .7em;
	letter-spacing: .04em;
	font-variant-numeric: tabular-nums;
	flex: none;
	padding: 3px 8px;
	background: #F9EEEE;
	border-radius: 6px;
	line-height: 1;
}
.priv-section-body p {
	font-size: 15.75px; line-height: 1.7;
	color: var(--vk-body); margin: 0 0 14px;
}
.priv-section-body p:last-child { margin-bottom: 0; }
.priv-section-body a {
	color: var(--vk-sage-text);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(106,142,92,.4);
}
.priv-section-body a:hover {
	color: var(--vk-sage);
	text-decoration-color: var(--vk-sage);
}

/* ---------- Lists inside section body ---------- */
.priv-section-body ul {
	margin: 0 0 16px; padding: 0 0 0 22px;
	font-size: 15.75px; line-height: 1.65;
	color: var(--vk-body);
}
.priv-section-body ul li {
	margin: 0 0 8px;
}
.priv-section-body ul li::marker {
	color: var(--vk-sage);
}
.priv-section-body strong {
	color: var(--vk-dark); font-weight: 700;
}

/* ---------- Definition list (dataansvarlig contact, Datatilsynet) ---------- */
.priv-contact-dl {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 6px 16px;
	margin: 0 0 16px;
	padding: 16px 18px;
	background: rgba(245, 239, 226, .5);
	border-left: 3px solid var(--vk-sage);
	border-radius: 4px;
	font-size: 15px;
}
.priv-contact-dl dt {
	font-weight: 700; color: var(--vk-dark);
	font-size: 13px; text-transform: uppercase; letter-spacing: .04em;
	padding-top: 2px;
}
.priv-contact-dl dd {
	margin: 0; color: var(--vk-body);
}
@media (max-width: 520px) {
	.priv-contact-dl { grid-template-columns: 1fr; gap: 2px 0; padding: 14px 16px; }
	.priv-contact-dl dt { padding-top: 8px; }
	.priv-contact-dl dt:first-child { padding-top: 0; }
}

/* ---------- Tables (formål/modtagere/opbevaring) ---------- */
.priv-table-wrap {
	margin: 0 0 18px;
	overflow-x: auto;
	border: 1px solid var(--vk-border);
	border-radius: 8px;
	background: #fff;
}
.priv-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.5px;
	line-height: 1.5;
}
.priv-table thead th {
	background: #F9F4E6;
	color: var(--vk-dark);
	font-weight: 700;
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: .05em;
	text-align: left;
	padding: 12px 14px;
	border-bottom: 2px solid var(--vk-border);
}
.priv-table tbody td {
	padding: 12px 14px;
	border-top: 1px solid var(--vk-border);
	color: var(--vk-body);
	vertical-align: top;
}
.priv-table tbody tr:first-child td { border-top: 0; }
.priv-table tbody tr:nth-child(even) td { background: rgba(245, 239, 226, .35); }
@media (max-width: 640px) {
	.priv-table { font-size: 13.5px; }
	.priv-table thead th, .priv-table tbody td { padding: 10px 11px; }
}

/* ---------- Cookie-deklaration embed ---------- */
.priv-section-embed {
	margin-top: 14px;
}
.priv-cookie-actions {
	margin: 4px 0 18px;
}
.priv-cookie-declaration {
	border: 1px solid var(--vk-border);
	border-radius: 8px;
	padding: 16px 18px;
	background: #fff;
	font-size: 14px;
}
.priv-cookie-declaration .CookieDeclaration { font-size: 14px; }
.priv-cookie-declaration .CookieDeclarationType {
	border: none !important;
	margin-bottom: 18px !important;
}
.priv-cookie-declaration .CookieDeclarationTypeHeader {
	color: var(--vk-dark) !important;
	font-weight: 700 !important;
}
.priv-cookie-declaration .CookieDeclarationTable th {
	background: #F9F4E6 !important;
	color: var(--vk-dark) !important;
}

/* ---------- Contact CTA block ---------- */
.priv-contact {
	margin-top: 48px;
	padding: 32px clamp(24px, 4vw, 40px);
	background: linear-gradient(135deg, #F5EFE2 0%, #FBF7EC 100%);
	border: 1px solid var(--vk-border);
	border-radius: 16px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 28px;
	align-items: center;
}
.priv-contact h2 {
	margin: 0 0 8px;
	font-size: 22px; font-weight: 800;
	color: var(--vk-dark);
}
.priv-contact p {
	margin: 0; color: var(--vk-body);
	font-size: 15px; line-height: 1.6;
}
.priv-contact-actions {
	display: flex; flex-direction: column;
	gap: 10px;
	align-items: stretch;
}
.priv-contact-actions .vk-btn {
	justify-content: center;
	white-space: nowrap;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.priv-wrap { grid-template-columns: 1fr; gap: 24px; }
	.priv-toc { position: relative; top: 0; max-height: none; }
	.priv-body { padding: 28px 22px; }
	.priv-contact { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 640px) {
	.vk-design-handoff .page-hero { padding: 36px 0 44px; }
	.priv-wrap { padding: 36px 16px 64px; }
	.priv-section-h { font-size: 20px; gap: 10px; }
	.priv-section-body p { font-size: 15px; }
}
