/* /feiertage/ only. The theme supplies the 1440px container, fonts and controls. */
.dsf-public { --public-mint: #e9f7f1; --public-amber: #fff1ce; --public-coral: #ffebe6; background: var(--dsf-color-surface); }
.dsf-public ::selection { background: #c5e9dd; color: var(--dsf-color-primary); }
.dsf-public :where(section, #quellen) { scroll-margin-block-start: calc(var(--dsf-header-height, 5rem) + 1.25rem); }
.dsf-public :where(p, li, summary, th, td, a) { overflow-wrap: anywhere; }
.dsf-public svg { flex-shrink: 0; }
.dsf-public .dsf-button { min-block-size: 3rem; border-radius: var(--dsf-radius-medium); text-decoration: none; }
.dsf-public .dsf-button:not(.dsf-button--secondary), .dsf-public .dsf-button:not(.dsf-button--secondary):visited { background: var(--dsf-color-accent); color: var(--dsf-color-surface); }
.dsf-public .dsf-button:not(.dsf-button--secondary):is(:hover, :focus-visible, :active) { background: var(--dsf-color-accent-hover); color: var(--dsf-color-surface); }
.dsf-public .dsf-button--secondary, .dsf-public .dsf-button--secondary:visited { border-color: var(--dsf-color-primary); background: transparent; color: var(--dsf-color-primary); }
.dsf-public .dsf-button--secondary:is(:hover, :focus-visible, :active) { background: var(--dsf-color-tint); color: var(--dsf-color-primary); }
.dsf-public .dsf-button > span { color: inherit; }
.dsf-public__hero { background: var(--dsf-color-tint); border-block-end: 1px solid var(--dsf-color-border); padding-block: 1.5rem 0; }
.dsf-public__breadcrumb { display: flex; flex-wrap: wrap; gap: .75rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-public__hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 1.75rem 4rem; align-items: start; padding-block: 2.5rem; }
.dsf-public__hero-copy { min-inline-size: 0; }
.dsf-public__hero h1 { max-inline-size: 20ch; font-size: clamp(2.1rem, 3.5vw, 3.5rem); }
.dsf-public__hero-copy p { max-inline-size: 65ch; margin-block-start: 1.25rem; color: var(--dsf-color-primary); }
.dsf-public__next { grid-column: 2; grid-row: 1 / span 2; min-inline-size: 0; padding: clamp(1.25rem, 2.7vw, 2.25rem); border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-large); background: var(--dsf-color-surface); }
.dsf-public__next h2 { font-size: var(--dsf-text-body); line-height: 1.5; letter-spacing: normal; }
.dsf-public__next-name { margin-block-start: 1rem; color: var(--dsf-color-primary); font-family: var(--dsf-font-heading); font-size: clamp(1.35rem, 2vw, 1.85rem); font-weight: 700; line-height: 1.3; }
.dsf-public__next-date { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem 1rem; margin-block: .5rem 1rem; color: var(--dsf-color-primary); }
.dsf-public__next-date time { font-size: clamp(1.5rem, 2.3vw, 2.15rem); font-weight: 800; font-variant-numeric: tabular-nums; }
.dsf-public__next-date > span { font-size: var(--dsf-text-small); }
.dsf-public__badge { display: inline-block; padding: .25rem .7rem; border-radius: var(--dsf-radius-small); color: var(--dsf-color-primary); font-size: .8125rem; font-weight: 700; }
.dsf-public__badge.is-national { background: var(--public-mint); }
.dsf-public__badge.is-regional { background: var(--public-amber); }
.dsf-public__next-scope { margin-block-start: .75rem; font-size: var(--dsf-text-small); }
.dsf-public__next-area { margin-block-start: .6rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-public__next-scope summary, .dsf-public__scope summary { color: var(--dsf-color-accent); cursor: pointer; }
.dsf-public__next-scope p, .dsf-public__scope p { margin-block-start: .5rem; color: var(--dsf-color-text); }
.dsf-public__countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin-block-start: 1.25rem; text-align: center; font-variant-numeric: tabular-nums; }
.dsf-public__countdown > div { min-inline-size: 0; padding: .75rem .2rem; border-radius: var(--dsf-radius-medium); background: var(--dsf-color-tint); color: var(--dsf-color-primary); }
.dsf-public__countdown > div:first-child { background: var(--public-mint); }
.dsf-public__countdown > div:last-child { background: var(--public-amber); }
.dsf-public__countdown strong { display: block; font-family: var(--dsf-font-heading); font-size: clamp(1.2rem, 2.2vw, 1.85rem); font-weight: 800; line-height: 1.3; }
.dsf-public__countdown span { display: block; margin-block-start: .2rem; font-size: .6875rem; font-weight: 600; }
.dsf-public__time-note { margin-block-start: .75rem; color: var(--dsf-color-muted); font-size: .75rem; }
.dsf-public__hero-controls { min-inline-size: 0; grid-column: 1; }
.dsf-public__filters { display: grid; grid-template-columns: minmax(0, 1fr) 6.5rem max-content; align-items: end; gap: .85rem; }
.dsf-public__field { min-inline-size: 0; }
.dsf-public__field label { display: block; margin-block-end: .45rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); font-weight: 700; }
.dsf-public__select { position: relative; }
.dsf-public__select::after { content: ''; position: absolute; inset-inline-end: 1.1rem; inset-block-start: 50%; inline-size: .45rem; block-size: .45rem; border-inline-end: 1.5px solid var(--dsf-color-primary); border-block-end: 1.5px solid var(--dsf-color-primary); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.dsf-public__select select { appearance: none; display: block; inline-size: 100%; min-inline-size: 0; block-size: 3.15rem; padding: .7rem 3rem .7rem 1rem; border: 1px solid var(--dsf-color-control-border); border-radius: var(--dsf-radius-medium); background: var(--dsf-color-surface); color: var(--dsf-color-primary); font-size: var(--dsf-text-small); text-overflow: ellipsis; transition: border-color var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__select select:hover { border-color: var(--dsf-color-accent); }
.dsf-public__select select:focus-visible { outline: 2px solid var(--dsf-color-accent); outline-offset: 3px; }
.dsf-public__filters .dsf-button { min-block-size: 3.15rem; padding-inline: 1rem; white-space: nowrap; font-size: var(--dsf-text-small); }
.dsf-public__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-block-start: 1rem; }
.dsf-public__hero-controls .dsf-public__actions { margin-block-start: 1.25rem; }
.dsf-public__jump { display: flex; flex-wrap: wrap; gap: .25rem 1.75rem; padding-block: .8rem; border-block-start: 1px solid var(--dsf-color-border); }
.dsf-public__jump a { padding-block: .45rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); font-weight: 600; text-decoration: none; }
.dsf-public__jump a:hover { color: var(--dsf-color-accent); text-decoration: underline; }
.dsf-public__section { inline-size: 100%; padding-block: clamp(2.75rem, 5vw, 4.5rem); }
.dsf-public__section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.dsf-public__section h2 { max-inline-size: none; }
.dsf-public__copy { max-inline-size: none; margin-block-start: 1rem; color: var(--dsf-color-muted); }
.dsf-public__copy p + p { margin-block-start: .85rem; }
.dsf-public__year { padding: .3rem .85rem; border-radius: var(--dsf-radius-medium); background: var(--dsf-color-tint); color: var(--dsf-color-primary); font-family: var(--dsf-font-heading); font-size: var(--dsf-text-lead); font-weight: 700; font-variant-numeric: tabular-nums; }
.dsf-public #tabelle .dsf-public__filters { grid-template-columns: minmax(12rem, 1.2fr) 8rem minmax(15rem, 1fr) max-content; gap: 1rem; margin-block-start: 1.5rem; padding: 1.25rem; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-large); background: var(--dsf-color-background); }
.dsf-public__result-note { margin-block: 1.25rem .75rem; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); font-weight: 600; }
.dsf-public__table-scroll { max-inline-size: 100%; overflow-x: auto; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-large); scrollbar-color: var(--dsf-color-control-border) var(--dsf-color-tint); }
.dsf-public__table { inline-size: 100%; min-inline-size: 44rem; border-collapse: collapse; color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-public__table th, .dsf-public__table td { padding: .95rem 1.1rem; text-align: start; vertical-align: top; }
.dsf-public__table thead { background: var(--dsf-color-primary); color: var(--dsf-color-surface); }
.dsf-public__table thead th { font-weight: 600; }
.dsf-public__table tbody tr + tr { border-block-start: 1px solid var(--dsf-color-border); }
.dsf-public__table tbody tr:nth-child(even) { background: var(--dsf-color-background); }
.dsf-public__table tbody tr.is-next { background: var(--public-mint); }
.dsf-public__table th:first-child { inline-size: 25%; }
.dsf-public__table td:nth-child(2) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.dsf-public__table td:nth-child(3) { inline-size: 17%; }
.dsf-public__scope { max-inline-size: 54ch; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-medium); background: var(--dsf-color-surface); overflow: hidden; }
.dsf-public__scope summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-block-size: 2.75rem; padding: .65rem .85rem; color: var(--dsf-color-primary); line-height: 1.5; list-style: none; cursor: pointer; transition: background-color var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__scope summary::-webkit-details-marker { display: none; }
.dsf-public__scope summary:hover, .dsf-public__scope[open] summary { background: var(--dsf-color-tint); }
.dsf-public__scope summary > svg { color: var(--dsf-color-accent); transition: transform var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__scope[open] summary > svg { transform: rotate(180deg); }
.dsf-public__scope-label { min-inline-size: 0; }
.dsf-public__scope-body { padding: .85rem; border-block-start: 1px solid var(--dsf-color-border); font-size: .8125rem; }
.dsf-public__scope-body > strong { color: var(--dsf-color-primary); }
.dsf-public__scope-body > p { margin-block-start: .35rem; line-height: 1.65; }
.dsf-public__scope summary:focus-visible, .dsf-public__state summary:focus-visible { outline: 2px solid var(--dsf-color-accent); outline-offset: -3px; }
.dsf-public__local, .dsf-public__weekend { display: block; margin-block-start: .3rem; color: var(--dsf-color-primary); font-size: .75rem; font-weight: 600; }
.dsf-public__local { inline-size: fit-content; padding: .15rem .5rem; background: var(--public-amber); border-radius: var(--dsf-radius-small); }
.dsf-public__small-note { margin-block-start: 1rem; color: var(--dsf-color-muted); font-size: .8125rem; }
.dsf-public__states { background: var(--dsf-color-background); border-block: 1px solid var(--dsf-color-border); }
.dsf-public__state-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: .75rem; margin-block-start: 1.75rem; }
.dsf-public__state { min-inline-size: 0; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-medium); background: var(--dsf-color-surface); overflow: hidden; }
.dsf-public__state:nth-child(4n+1) { --state-wash: var(--public-amber); --state-dot: #d7a43b; }
.dsf-public__state:nth-child(4n+2) { --state-wash: var(--public-coral); --state-dot: #de7663; }
.dsf-public__state:nth-child(4n+3) { --state-wash: var(--dsf-color-tint); --state-dot: var(--dsf-color-accent); }
.dsf-public__state:nth-child(4n) { --state-wash: var(--public-mint); --state-dot: #4a9b7c; }
.dsf-public__state.is-selected { border-color: var(--dsf-color-primary); outline: 1px solid var(--dsf-color-primary); outline-offset: -2px; }
.dsf-public__state summary { display: flex; align-items: center; gap: .75rem; min-block-size: 4rem; padding: 1rem 1.15rem; background: var(--state-wash); list-style: none; color: var(--dsf-color-primary); cursor: pointer; transition: background-color var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__state summary::-webkit-details-marker { display: none; }
.dsf-public__state summary:hover, .dsf-public__state[open] summary { background: color-mix(in srgb, var(--state-wash) 65%, var(--dsf-color-surface)); }
.dsf-public__state summary strong { min-inline-size: 0; font-size: .875rem; font-weight: 650; line-height: 1.4; }
.dsf-public__state.is-selected summary strong { font-weight: 800; }
.dsf-public__state-dot { flex: 0 0 .5rem; block-size: .5rem; border-radius: 50%; background: var(--state-dot); }
.dsf-public__state.is-selected .dsf-public__state-dot { background: var(--dsf-color-primary); }
.dsf-public__state summary > svg { margin-inline-start: auto; inline-size: 1.1rem; transition: transform var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__state[open] summary > svg { transform: rotate(90deg); }
.dsf-public__state-body { padding: 0 1.1rem 1.1rem; }
.dsf-public__state-count { padding-block: 1rem .25rem; color: var(--dsf-color-primary); font-size: .8125rem; font-weight: 700; }
.dsf-public__state-body ul { list-style: none; padding: 0; }
.dsf-public__state-body li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: .5rem; padding-block: .65rem; border-block-end: 1px solid var(--dsf-color-border); font-size: .8125rem; }
.dsf-public__state-body time { color: var(--dsf-color-muted); font-variant-numeric: tabular-nums; }
.dsf-public__state-body small { display: block; margin-block-start: .2rem; color: var(--dsf-color-primary); font-size: .7rem; font-weight: 600; }
.dsf-public__state-body > a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-block-start: .9rem; font-size: .8125rem; font-weight: 600; }
.dsf-public__regional-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-block-start: 2rem; }
.dsf-public__regional-grid article { min-inline-size: 0; padding-block-start: 1.25rem; border-block-start: 3px solid var(--dsf-color-border); }
.dsf-public__regional-grid article:first-child { border-color: #f1c56e; }
.dsf-public__regional-grid article:nth-child(2) { border-color: #9ed6c0; }
.dsf-public__regional-grid article:last-child { border-color: #eeab9d; }
.dsf-public__regional-grid h3 { font-size: var(--dsf-text-lead); }
.dsf-public__regional-grid p { margin-block-start: .8rem; color: var(--dsf-color-muted); }
.dsf-public__regional-grid a, .dsf-public__text-link { display: inline-flex; align-items: center; gap: .5rem; margin-block-start: 1rem; font-weight: 600; font-size: var(--dsf-text-small); }
.dsf-public__bridge { background: var(--public-mint); }
.dsf-public__bridge-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1rem; }
.dsf-public__bridge p { max-inline-size: none; color: var(--dsf-color-primary); }
.dsf-public .dsf-download { background: var(--dsf-color-background); }
.dsf-public #downloads > .dsf-container > :is(h2, .dsf-public__copy, .dsf-public__result-note, .dsf-public__small-note) { text-align: center; }
.dsf-public .dsf-download__layout { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.dsf-public .dsf-download__options { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 1rem; }
.dsf-public .dsf-download__option { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: .75rem; padding: 1.25rem; text-align: center; }
.dsf-public .dsf-download__option > .dsf-button { grid-column: 1 / -1; inline-size: 100%; margin-block-start: .5rem; padding-inline: .5rem; font-size: .8125rem; }
.dsf-public .dsf-download__option h3 { font-size: var(--dsf-text-lead); }
.dsf-public .dsf-download__option p { font-size: .8125rem; }
.dsf-public__format { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.75rem; border-radius: var(--dsf-radius-small); background: var(--public-amber); color: var(--dsf-color-primary); }
.dsf-public .dsf-download__option:nth-child(2) .dsf-public__format { background: var(--public-mint); }
.dsf-public .dsf-download__option:nth-child(3) .dsf-public__format { background: var(--public-coral); }
.dsf-public .dsf-download__option:nth-child(4) .dsf-public__format { background: var(--dsf-color-tint); }
.dsf-public .dsf-download__preview-dates { grid-template-columns: 1fr; }
.dsf-public .dsf-download__preview-heading { justify-content: center; flex-wrap: wrap; }
.dsf-public .dsf-download__preview-dates { text-align: center; }
.dsf-public .dsf-download__preview-actions { justify-content: center; }
.dsf-public .dsf-download__preview-dates li:not(:first-child) { display: none; }
.dsf-public .dsf-download__preview-dates span { overflow-wrap: anywhere; }
.dsf-public__sources { margin-block-start: 3rem; padding-block-start: 2rem; border-block-start: 1px solid var(--dsf-color-border); }
.dsf-public__sources h3 { font-size: var(--dsf-text-h2); }
.dsf-public__sources ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-block-start: 1.5rem; padding: 0; list-style: none; }
.dsf-public__sources li { min-inline-size: 0; }
.dsf-public__sources .dsf-public__source-card { display: flex; align-items: flex-start; gap: .75rem; block-size: 100%; min-block-size: 7rem; padding: 1.15rem; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-medium); background: var(--dsf-color-background); color: var(--dsf-color-primary); text-decoration: none; transition: border-color var(--dsf-duration-fast) var(--dsf-ease), background-color var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-public__source-card:hover { border-color: var(--dsf-color-accent); background: var(--dsf-color-tint); }
.dsf-public__source-icon { display: grid; place-items: center; flex: 0 0 2.25rem; block-size: 2.5rem; border-radius: var(--dsf-radius-small); background: var(--dsf-color-tint); color: var(--dsf-color-accent); }
.dsf-public__source-copy { flex: 1; min-inline-size: 0; }
.dsf-public__source-copy strong, .dsf-public__source-copy small, .dsf-public__source-copy > span { display: block; }
.dsf-public__source-copy strong { font-size: .875rem; font-weight: 700; line-height: 1.45; }
.dsf-public__source-copy small { margin-block-start: .35rem; color: var(--dsf-color-muted); font-size: .75rem; }
.dsf-public__source-copy > span { margin-block-start: .25rem; color: var(--dsf-color-muted); font-size: .6875rem; overflow-wrap: anywhere; }
.dsf-public__source-card > svg { inline-size: 1rem; margin-block-start: .15rem; color: var(--dsf-color-accent); }
@media (max-width: 75rem) {
	.dsf-public__hero-grid { gap: 1.5rem 2rem; }
	.dsf-public__hero-controls .dsf-public__filters { grid-template-columns: minmax(0, 1fr) 7rem; }
	.dsf-public__hero-controls .dsf-public__filters button { grid-column: 1 / -1; }
	.dsf-public .dsf-download__option { padding: 1rem; }
}
@media (max-width: 62rem) {
	.dsf-public__hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dsf-public__hero-controls { grid-column: 1 / -1; }
	.dsf-public__next { grid-row: 1; }
	.dsf-public__hero-controls .dsf-public__filters { grid-template-columns: minmax(0, 1fr) 7rem max-content; }
	.dsf-public__hero-controls .dsf-public__filters button { grid-column: auto; }
	.dsf-public #tabelle .dsf-public__filters { grid-template-columns: minmax(0, 1fr) 7rem; }
	.dsf-public #tabelle .dsf-public__filters > :nth-child(3), .dsf-public #tabelle .dsf-public__filters button { grid-column: 1 / -1; }
	.dsf-public__state-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dsf-public .dsf-download__layout { grid-template-columns: 1fr; }
	.dsf-public .dsf-download__options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.dsf-public .dsf-download__option { grid-template-columns: 1fr; }
	.dsf-public .dsf-download__option > .dsf-button { grid-column: 1; }
}
@media (max-width: 45rem) {
	.dsf-public__hero-grid { grid-template-columns: minmax(0, 1fr); padding-block: 1.75rem; }
	.dsf-public__next, .dsf-public__hero-controls { grid-column: 1; grid-row: auto; }
	.dsf-public__hero h1 { max-inline-size: 22ch; }
	.dsf-public__hero-controls .dsf-public__filters { grid-template-columns: minmax(0, 1fr) 6.5rem; }
	.dsf-public__hero-controls .dsf-public__filters button { grid-column: 1 / -1; }
	.dsf-public__actions > .dsf-button { inline-size: 100%; }
	.dsf-public__jump { gap: .25rem 1.25rem; }
	.dsf-public__section-head { align-items: flex-start; }
	.dsf-public__section-head h2 { max-inline-size: none; }
	.dsf-public__regional-grid, .dsf-public__bridge-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.dsf-public .dsf-download__options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dsf-public .dsf-download__option { grid-template-columns: minmax(0, 1fr); }
	.dsf-public .dsf-download__option > .dsf-button { grid-column: 1 / -1; }
	.dsf-public__sources ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 30rem) {
	.dsf-public #tabelle .dsf-public__filters { grid-template-columns: minmax(0, 1fr); }
	.dsf-public__state summary { padding: .8rem; min-block-size: 4.25rem; gap: .5rem; }
	.dsf-public__state-body { padding-inline: .8rem; }
	.dsf-public .dsf-download__options { grid-template-columns: minmax(0, 1fr); }
	.dsf-public__sources ul { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.dsf-public *, .dsf-public *::before, .dsf-public *::after { scroll-behavior: auto; transition: none; animation: none; }
}
