/* datenschutz — page layout only (tokens from theme.css; no colours, no new sizes). Owner: page builder b9. */

/* 02 Index: the numbered toc brick, in columns. */
.ds-index { max-width: none; }
.ds-index ol { display: block; columns: 1; column-gap: var(--sp-6); }
.ds-index li { break-inside: avoid; }
@media (min-width: 48em) { .ds-index ol { columns: 2; } }
@media (min-width: 75em) { .ds-index ol { columns: 3; } }

/* 03–22 Numbered sheet rows: numeral + H2 in the left gutter, text right. */
.ds-row { display: grid; gap: var(--sp-4) var(--sp-8); align-items: start; }
.ds-row__head { max-width: none; margin: 0; }
.ds-row__head h2 { font-size: var(--fs-xl); }
.ds-row__body { max-width: 68ch; min-width: 0; }
.ds-row__head--num-only { display: none; }
@media (min-width: 62em) {
	.ds-row { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
	.ds-row__head { position: sticky; top: calc(var(--admin-bar) + var(--header-h-s) + 24px); }
	.ds-row__head--num-only { display: grid; }
}

/* Lead lines + lists outside .prose keep the prose rhythm. */
.ds-lead { margin: 0 0 var(--sp-4); }
.ds-after { margin: var(--sp-4) 0 0; }

/* 03 At a glance: boxed icon rows with full sentences. */
.ds-glance .icon-list__body p { color: var(--c-text); }

/* 04 / 17 Address cards. */
.ds-address { font-style: normal; }
.ds-address p { color: var(--c-text); font-size: var(--fs-base); line-height: 1.7; }
.ds-address a { overflow-wrap: anywhere; }

/* 05 / 15 / 16 Definition lists: term left, meaning right. */
.ds-defs { display: grid; gap: 0; margin-block: 1.2em; }
.ds-defs > div { display: grid; gap: var(--sp-1) var(--sp-5); padding-block: var(--sp-3); border-top: 1px solid var(--c-line); }
.ds-defs > div:last-child { border-bottom: 1px solid var(--c-line); }
.ds-defs dt { font-weight: 700; color: var(--c-heading); }
.ds-defs dd { margin: 0; }
@media (min-width: 37.5em) { .ds-defs > div { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); } }

/* 17 Rights: 2-column boxed grid (wider than the prose measure). */
.ds-rights .icon-list__body p { color: var(--c-text); }
.ds-rights .icon-list__body strong { display: inline; font-family: inherit; font-size: inherit; font-weight: 700; letter-spacing: 0; }
.ds-row__body:has(.ds-rights) { max-width: none; }

/* 22 Stand line. */
.ds-stand { display: flex; align-items: center; gap: 10px; color: var(--c-muted); font-size: var(--fs-sm); }
.ds-stand .i { flex: none; color: var(--c-accent-text); }
