/* National directories reuse the existing brand, controls and comparison tables. */
.dsf-national__intro, .dsf-national__sources { background: var(--dsf-color-tint); }
body:has(.dsf-national) .dsf-header__cta { color: var(--dsf-color-surface); }
.dsf-national__intro .dsf-calendar__controls { max-inline-size: 32rem; }
.dsf-national__intro .dsf-prose { max-inline-size: var(--dsf-measure); }
.dsf-national__families { display: flex; flex-wrap: wrap; gap: var(--dsf-space-3) var(--dsf-space-5); }
.dsf-national__families [aria-current] { font-weight: 700; }
.dsf-national__type-table { min-inline-size: 45rem; table-layout: auto; }
.dsf-national__type-table th:first-child { inline-size: 12rem; }
.dsf-national__year { border-block-start: 1px solid var(--dsf-color-border); padding-block-start: var(--dsf-space-4); }
.dsf-national__year > summary { cursor: pointer; padding-block: var(--dsf-space-3); font-weight: 700; color: var(--dsf-color-primary); }
.dsf-national__year .dsf-calendar__scroll { margin-block-start: var(--dsf-space-3); }
.dsf-national #termine { scroll-margin-block-start: calc(var(--dsf-header-height, 5rem) + 1rem); }
.dsf-national__sources { padding-block: var(--dsf-space-7); }
.dsf-national__sources > .dsf-stack { --dsf-stack-space: var(--dsf-space-4); }
.dsf-national__sources-copy { color: var(--dsf-color-primary); }
.dsf-national__source-links { display: flex; flex-wrap: wrap; gap: var(--dsf-space-2) var(--dsf-space-5); }
.dsf-national__source-links a { display: inline-flex; align-items: center; min-block-size: 2.75rem; max-inline-size: 100%; }

/* Only the six seasonal hub heroes; the school overview and tables stay unchanged. */
.dsf-national__hero--winterferien { --hub-wash: #EEF7FD; --hub-accent: #5867A0; --hub-soft: #DED5F5; }
.dsf-national__hero--osterferien { --hub-wash: #F3F8E9; --hub-accent: #4C7754; --hub-soft: #F7E9B7; }
.dsf-national__hero--pfingstferien { --hub-wash: #EFF9F3; --hub-accent: #79503F; --hub-soft: #C9E9DB; }
.dsf-national__hero--sommerferien { --hub-wash: #FFF4D5; --hub-accent: #956016; --hub-soft: #FFD166; }
.dsf-national__hero--herbstferien { --hub-wash: #FBF0E1; --hub-accent: #A8543E; --hub-soft: #F5D69F; }
.dsf-national__hero--weihnachtsferien { --hub-wash: #EFF5EE; --hub-accent: #24543F; --hub-soft: #EAD593; }
.dsf-national__hero { padding-block: var(--dsf-space-5) var(--dsf-space-6); background: var(--hub-wash); border-block-end: 1px solid var(--hub-soft); }
.dsf-national__hero ::selection { background: var(--hub-soft); color: var(--dsf-color-primary); }
.dsf-national__hero > .dsf-stack { --dsf-stack-space: 0; }
.dsf-national__hero nav[aria-label="Brotkrumennavigation"] { color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-national__hero nav[aria-label="Brotkrumennavigation"] a { color: inherit; }
.dsf-national__hero-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .8fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: var(--dsf-space-5); }
.dsf-national__hero-copy { min-inline-size: 0; }
.dsf-national__hero h1 { color: var(--hub-accent); font-size: clamp(2.125rem, 3.8vw, 3.5rem); line-height: 1.12; letter-spacing: -.025em; overflow-wrap: normal; text-wrap: balance; }
.dsf-national__hero h1 span { display: block; margin-block-start: var(--dsf-space-2); color: var(--dsf-color-primary); font-size: .65em; }
.dsf-national__lead { max-inline-size: 52ch; margin-block-start: var(--dsf-space-4); color: var(--dsf-color-primary); font-size: var(--dsf-text-lead); }
.dsf-national__guidance { margin-block-start: var(--dsf-space-3); color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-national__guidance summary { inline-size: fit-content; min-block-size: 2.75rem; align-content: center; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.dsf-national__guidance summary:hover { color: var(--dsf-color-accent-hover); }
.dsf-national__guidance .dsf-prose { margin-block-start: var(--dsf-space-3); }
.dsf-national__finder { min-inline-size: 0; padding: var(--dsf-space-5); border-radius: var(--dsf-radius-large); background: var(--dsf-color-surface); box-shadow: var(--dsf-shadow-raised); }
.dsf-national__finder .dsf-calendar__field label { margin-block-end: var(--dsf-space-3); font-size: var(--dsf-text-body); }
.dsf-national__finder select { font-size: var(--dsf-text-body); font-variant-numeric: tabular-nums; }
.dsf-national__finder select:hover { border-color: var(--dsf-color-accent); }
.dsf-national__finder .dsf-button { display: flex; gap: var(--dsf-space-3); inline-size: 100%; min-block-size: 3rem; margin-block-start: var(--dsf-space-4); padding-inline: var(--dsf-space-3); border-radius: var(--dsf-radius-medium); color: var(--dsf-color-surface); background: var(--dsf-color-accent); }
.dsf-national__finder .dsf-button:hover { color: var(--dsf-color-surface); background: var(--dsf-color-accent-hover); }
.dsf-national__finder .dsf-button svg { flex-shrink: 0; }
.dsf-national__finder > p { margin-block-start: var(--dsf-space-3); text-align: center; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-national__hero .dsf-national__families { gap: var(--dsf-space-2) var(--dsf-space-5); padding-block-start: var(--dsf-space-3); border-block-start: 1px solid color-mix(in srgb, var(--hub-accent) 20%, transparent); }
.dsf-national__hero .dsf-national__families a { display: inline-flex; align-items: center; min-block-size: 2.75rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-national__hero .dsf-national__families [aria-current] { text-decoration-color: var(--hub-accent); text-decoration-thickness: 2px; }
@media (max-width: 56rem) {
	.dsf-national__hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--dsf-space-4); padding-block: var(--dsf-space-5); }
	.dsf-national__finder { max-inline-size: 34rem; inline-size: 100%; }
}
@media (max-width: 35rem) {
	.dsf-national__hero { padding-block: var(--dsf-space-4) var(--dsf-space-5); }
	.dsf-national__hero-grid { padding-block: var(--dsf-space-4); }
	.dsf-national__hero h1 { font-size: clamp(2.125rem, 8vw, 2.5rem); }
	.dsf-national__lead { font-size: var(--dsf-text-body); }
	.dsf-national__hero .dsf-national__families { gap: var(--dsf-space-1) var(--dsf-space-4); }
	.dsf-national__finder { padding: var(--dsf-space-4); }
}
