/* Seasonal values stay local to the holiday-type surface. Shared brand tokens are inherited. */
.dsf-holiday--summer {
	--holiday-sun: #FFD166;
	--holiday-coral: #FF7866;
	--holiday-sky: #60C5FA;
	--holiday-mint: #A7E8D0;
	--holiday-sand: #FFF4D5;
	--holiday-sky-wash: #EDF8FF;
	--holiday-mint-wash: #EDF9F3;
}
.dsf-holiday { background: var(--dsf-color-surface); }
.dsf-holiday ::selection { background: var(--holiday-sun); color: var(--dsf-color-primary); }
.dsf-holiday :where(section, #countdown) { scroll-margin-block-start: calc(var(--dsf-header-height, 5rem) + 1.5rem); }
.dsf-holiday :where(h1, h2, h3) { overflow-wrap: break-word; }
.dsf-holiday .dsf-button { min-block-size: 3rem; border-radius: var(--dsf-radius-medium); padding: .8rem 1.15rem; }
.dsf-holiday .dsf-button:not(.dsf-button--secondary) { background: var(--dsf-color-accent); color: var(--dsf-color-surface); }
.dsf-holiday .dsf-button:not(.dsf-button--secondary):hover { background: var(--dsf-color-accent-hover); color: var(--dsf-color-surface); }
.dsf-holiday .dsf-button--secondary { border-color: var(--dsf-color-primary); background: transparent; color: var(--dsf-color-primary); }
.dsf-holiday .dsf-button--secondary:hover { background: var(--dsf-color-tint); color: var(--dsf-color-primary); }
.dsf-holiday .dsf-button svg { flex: 0 0 1.25rem; }
.dsf-holiday__hero { background: var(--holiday-sand); border-block-end: 1px solid var(--holiday-sun); }
.dsf-holiday__hero-inner { padding-block: 1.5rem 3rem; }
.dsf-holiday__breadcrumb { display: flex; flex-wrap: wrap; gap: .65rem; margin-block-end: 2rem; font-size: var(--dsf-text-small); color: var(--dsf-color-primary); }
.dsf-holiday__breadcrumb a { color: inherit; }
.dsf-holiday__hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.dsf-holiday__hero-copy h1 { position: relative; max-inline-size: 13ch; font-size: clamp(2.5rem, 3.7vw, 3.8rem); line-height: 1.1; }
.dsf-holiday__title-mark { display: block; inline-size: 5rem; block-size: .4rem; border-radius: 1rem; background: var(--holiday-coral); margin-block-start: 1rem; }
.dsf-holiday__hero-copy > p { max-inline-size: 62ch; margin-block-start: 1.5rem; font-size: 1.0625rem; }
.dsf-holiday__filters { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem; margin-block-start: 1.5rem; }
.dsf-holiday__field { min-inline-size: 0; flex: 1 1 6rem; }
.dsf-holiday__field--state { flex: 2 1 12rem; }
.dsf-holiday__field label { display: block; color: var(--dsf-color-primary); font-size: .875rem; font-weight: 650; margin-block-end: .4rem; }
.dsf-holiday__select { position: relative; }
.dsf-holiday__select::after { content: ''; pointer-events: none; position: absolute; inset-inline-end: 1.1rem; inset-block-start: 1.15rem; inline-size: .5rem; block-size: .5rem; border-inline-end: 2px solid var(--dsf-color-primary); border-block-end: 2px solid var(--dsf-color-primary); transform: rotate(45deg); }
.dsf-holiday__select select { appearance: none; -webkit-appearance: none; inline-size: 100%; block-size: 3.1rem; min-block-size: 3.1rem; border-radius: var(--dsf-radius-medium); padding: .65rem 2.8rem .65rem .9rem; line-height: 1.4; background: var(--dsf-color-surface); color: var(--dsf-color-primary); font-size: 1rem; text-overflow: ellipsis; }
.dsf-holiday__apply { flex: 1 1 auto; }
.dsf-holiday__next { position: relative; padding: clamp(1.25rem, 2.8vw, 2.5rem); border-radius: var(--dsf-radius-large); background: var(--dsf-color-surface); box-shadow: 0 14px 38px rgb(88 60 13 / 9%); }
.dsf-holiday__sun { color: var(--holiday-coral); flex-shrink: 0; }
.dsf-holiday__next > .dsf-holiday__sun { position: absolute; inset: 1.5rem 1.5rem auto auto; inline-size: 2.75rem; block-size: 2.75rem; }
.dsf-holiday__next h2 { padding-inline-end: 2rem; font-size: 1.125rem; line-height: 1.5; letter-spacing: 0; }
.dsf-holiday__next-dates { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-block: 1rem 1.25rem; color: var(--dsf-color-primary); font-family: var(--dsf-font-heading); font-size: clamp(1.25rem, 1.7vw, 1.75rem); font-weight: 800; font-variant-numeric: tabular-nums; }
.dsf-holiday__countdown-label { font-size: .875rem; color: var(--dsf-color-primary); }
.dsf-holiday__countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-block-start: .75rem; text-align: center; }
.dsf-holiday__countdown > div { padding: .75rem .25rem; background: var(--holiday-sun); border-radius: var(--dsf-radius-medium); color: var(--dsf-color-primary); }
.dsf-holiday__countdown > div:nth-child(2) { background: var(--holiday-coral); color: var(--dsf-color-text); }
.dsf-holiday__countdown > div:nth-child(3) { background: var(--holiday-sky); }
.dsf-holiday__countdown > div:nth-child(4) { background: var(--holiday-mint); }
.dsf-holiday__countdown strong { display: block; font-family: var(--dsf-font-heading); font-size: clamp(1.75rem, 2.8vw, 2.65rem); font-weight: 800; line-height: 1.2; font-variant-numeric: tabular-nums; }
.dsf-holiday__countdown span { font-size: .75rem; font-weight: 650; }
.dsf-holiday__hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 1.5rem; }
.dsf-holiday__section { padding-block: clamp(3rem, 5.5vw, 5rem); }
.dsf-holiday__section h2 { max-inline-size: 25ch; font-size: clamp(1.7rem, 1.2rem + 1.4vw, 2.35rem); }
.dsf-holiday__copy { min-inline-size: 0; }
.dsf-holiday__copy > p { max-inline-size: 70ch; margin-block-start: 1.15rem; }
.dsf-holiday__copy > p + p { margin-block-start: 1rem; }
.dsf-holiday__dates-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.dsf-holiday__text-link { display: inline-flex; align-items: center; gap: .6rem; margin-block-start: 1.25rem; min-block-size: 2.75rem; font-weight: 650; }
.dsf-holiday__text-link svg { flex-shrink: 0; }
.dsf-holiday__table-wrap { min-inline-size: 0; border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-large); overflow: hidden; }
.dsf-holiday__dates { inline-size: 100%; border-collapse: collapse; color: var(--dsf-color-primary); font-variant-numeric: tabular-nums; }
.dsf-holiday__dates :where(th, td) { padding: 1rem; text-align: start; }
.dsf-holiday__dates thead { background: var(--dsf-color-primary); color: var(--dsf-color-surface); font-size: .875rem; }
.dsf-holiday__dates tbody tr + tr { border-block-start: 1px solid var(--dsf-color-border); }
.dsf-holiday__dates tbody th { font-size: .875rem; }
.dsf-holiday__dates tbody a { display: flex; align-items: center; gap: .75rem; min-block-size: 2.75rem; color: inherit; text-decoration: none; }
.dsf-holiday__dates tbody a:hover { text-decoration: underline; }
.dsf-holiday__dates time { display: block; white-space: nowrap; font-size: .9375rem; }
.dsf-holiday__year-chip { display: inline-flex; align-items: center; justify-content: center; padding: .4rem .7rem; border-radius: var(--dsf-radius-small); background: var(--holiday-sun); color: var(--dsf-color-text); font-weight: 800; }
.dsf-holiday__dates tr:nth-child(2) .dsf-holiday__year-chip { background: var(--holiday-coral); }
.dsf-holiday__dates tr:nth-child(3) .dsf-holiday__year-chip { background: var(--holiday-sky); }
.dsf-holiday__dates tr:nth-child(4) .dsf-holiday__year-chip { background: var(--holiday-mint); }
.dsf-holiday__dates .is-selected { background: var(--dsf-color-tint); }
.dsf-holiday__dates [aria-current] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .3em; }
.dsf-holiday__table-note { padding: .9rem 1rem; border-block-start: 1px solid var(--dsf-color-border); font-size: .8rem; color: var(--dsf-color-muted); }
.dsf-holiday__section--sky { background: var(--holiday-sky-wash); }
.dsf-holiday__calendar-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.dsf-holiday__calendar-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; margin-block-start: 1.5rem; max-inline-size: 30rem; }
.dsf-holiday__calendar-form .dsf-button { flex-basis: 100%; }
.dsf-holiday__calendar-range { margin-block-start: 1.5rem; padding: 1rem; background: var(--holiday-sun); color: var(--dsf-color-primary); border-radius: var(--dsf-radius-medium); font-size: .9375rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.dsf-holiday__calendar { padding: clamp(1rem, 2.5vw, 2rem); background: var(--dsf-color-surface); border-radius: var(--dsf-radius-large); }
.dsf-holiday__month-bar { display: grid; grid-template-columns: 2.75rem 1fr 2.75rem; align-items: center; gap: .5rem; margin-block-end: 1rem; }
.dsf-holiday__month-bar h3 { grid-column: 2; grid-row: 1; text-align: center; font-size: 1.25rem; }
.dsf-holiday__month-nav { display: flex; align-items: center; justify-content: center; min-block-size: 2.75rem; border: 1px solid var(--dsf-color-control-border); border-radius: var(--dsf-radius-medium); color: var(--dsf-color-primary); transition: background-color 160ms ease-out; }
.dsf-holiday__month-nav:hover { background: var(--holiday-sand); color: var(--dsf-color-primary); }
.dsf-holiday__month-nav.is-next { grid-column: 3; grid-row: 1; }
.dsf-holiday__month-nav[aria-disabled] { opacity: .45; cursor: default; }
.dsf-holiday__month { inline-size: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 3px 5px; font-variant-numeric: tabular-nums; text-align: center; }
.dsf-holiday__month th { padding-block: .6rem; font-size: .8rem; font-weight: 650; color: var(--dsf-color-muted); }
.dsf-holiday__month td { padding: 0; }
.dsf-holiday__month time { display: grid; place-items: center; min-block-size: 3.3rem; border-radius: var(--dsf-radius-small); color: var(--dsf-color-primary); }
.dsf-holiday__month td:nth-last-child(-n+2) time { background: var(--dsf-color-tint); }
.dsf-holiday__month .is-holiday time { background: var(--holiday-sun); font-weight: 800; }
.dsf-holiday__month .is-holiday time::after { content: ''; inline-size: .25rem; block-size: .25rem; border-radius: 50%; background: var(--dsf-color-primary); margin-block-start: -.65rem; }
.dsf-holiday__legend { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; border-block-start: 1px solid var(--dsf-color-border); padding-block-start: 1rem; margin-block-start: .75rem; font-size: .8rem; color: var(--dsf-color-primary); }
.dsf-holiday__legend span { display: inline-flex; align-items: center; gap: .5rem; }
.dsf-holiday__legend i { inline-size: .9rem; block-size: .9rem; background: var(--holiday-sun); border: 1px solid var(--dsf-color-control-border); border-radius: .2rem; }
.dsf-holiday__editorial-layout { display: grid; gap: 1.75rem; }
.dsf-holiday__editorial-layout > h2 { max-inline-size: 36ch; }
.dsf-holiday__editorial-layout > h2::before { content: ''; display: block; inline-size: 4rem; block-size: .25rem; margin-block-end: 1rem; background: var(--holiday-sun); border-radius: var(--dsf-radius-small); }
.dsf-holiday__editorial-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4rem); }
.dsf-holiday__editorial-body .dsf-holiday__copy > p:first-child { margin-block-start: 0; }
.dsf-holiday__editorial-body > .dsf-holiday__copy:first-child > p:first-child { font-size: 1.125rem; color: var(--dsf-color-primary); }
.dsf-holiday__editorial-body > .dsf-holiday__copy:last-child > p:last-child { padding: 1rem 1.25rem; background: var(--holiday-sand); border-radius: var(--dsf-radius-medium); color: var(--dsf-color-primary); font-weight: 600; }
.dsf-holiday__section--mint { background: var(--holiday-mint-wash); }
.dsf-holiday__download-intro, .dsf-holiday__download-intro > p { max-inline-size: none; }
.dsf-holiday__download-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; margin-block-start: 1.5rem; }
.dsf-holiday__preview { min-inline-size: 0; padding: clamp(1rem, 2vw, 1.5rem); border-radius: var(--dsf-radius-large); background: var(--dsf-color-surface); box-shadow: 0 12px 30px rgb(20 61 99 / 7%); }
.dsf-holiday__preview-heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-block-end: 1.25rem; }
.dsf-holiday__preview-heading > strong { font-family: var(--dsf-font-heading); font-size: 1.125rem; color: var(--dsf-color-primary); }
.dsf-holiday__preview-heading .dsf-holiday__field { flex: 0 0 7rem; }
.dsf-holiday__preview .dsf-download__preview-heading { font-size: 1rem; margin-block-end: 1rem; }
.dsf-holiday__preview .dsf-download__months { gap: .75rem; }
.dsf-holiday__preview .dsf-download__calendar { min-inline-size: 0; }
.dsf-holiday__preview .dsf-download__calendar time.has-holiday { background: var(--holiday-sun); color: var(--dsf-color-primary); }
.dsf-holiday__preview .dsf-button { margin-block-start: 1rem; inline-size: 100%; }
.dsf-holiday__download-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, auto); align-content: start; align-self: center; gap: 1rem; min-inline-size: 0; }
.dsf-holiday__download-option { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); grid-template-rows: auto auto; gap: 1rem .75rem; align-items: start; min-inline-size: 0; padding: clamp(1rem, 1.5vw, 1.5rem); border: 1px solid var(--dsf-color-border); border-radius: var(--dsf-radius-large); background: var(--dsf-color-surface); }
.dsf-holiday__download-option h3 { font-size: 1.25rem; letter-spacing: 0; }
.dsf-holiday__download-option > div { min-inline-size: 0; }
.dsf-holiday__download-option p { font-size: .875rem; line-height: 1.5; margin-block-start: .4rem; }
.dsf-holiday__download-option .dsf-button { grid-column: 1 / -1; inline-size: 100%; min-inline-size: 0; align-self: end; padding-inline: .75rem; font-size: .875rem; }
.dsf-holiday__download-options > .dsf-holiday__fine { grid-column: 1 / -1; margin: 0; }
.dsf-holiday__format { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.75rem; border-radius: var(--dsf-radius-small); color: var(--dsf-color-primary); background: var(--holiday-sand); }
.dsf-holiday__format--xlsx { background: var(--holiday-mint-wash); }
.dsf-holiday__format--ics { background: var(--holiday-sky-wash); }
.dsf-holiday__fine { margin-block-start: 1rem; font-size: .8125rem; color: var(--dsf-color-primary); }
.dsf-holiday__states-intro > h2, .dsf-holiday__states-intro > p { max-inline-size: none; }
.dsf-holiday__states-intro > p { line-height: 1.75; }
.dsf-holiday__states-intro > p + p { margin-block-start: .75rem; }
.dsf-holiday__states { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; list-style: none; padding: 0; margin-block-start: 1.75rem; }
.dsf-holiday__states li { min-inline-size: 0; }
.dsf-holiday__states a { display: flex; align-items: center; gap: .75rem; block-size: 100%; min-block-size: 4rem; padding: 1rem 1.15rem; border: 1px solid var(--dsf-color-border); background: var(--dsf-color-surface); border-radius: var(--dsf-radius-medium); font-size: .875rem; font-weight: 650; line-height: 1.4; color: var(--dsf-color-primary); text-decoration: none; transition: background-color 160ms ease-out, border-color 160ms ease-out; }
.dsf-holiday__states a > span:not(.dsf-holiday__state-dot) { min-inline-size: 0; overflow-wrap: anywhere; }
.dsf-holiday__states a > svg { margin-inline-start: auto; flex: 0 0 1.1rem; }
.dsf-holiday__state-dot { flex: 0 0 .5rem; block-size: .5rem; border-radius: 50%; background: var(--holiday-sun); }
.dsf-holiday__states li:nth-child(3n+2) .dsf-holiday__state-dot { background: var(--holiday-coral); }
.dsf-holiday__states li:nth-child(3n) .dsf-holiday__state-dot { background: var(--holiday-mint); }
.dsf-holiday__states a[aria-current] { border-color: var(--dsf-color-primary); background: var(--holiday-sand); outline: 1px solid var(--dsf-color-primary); outline-offset: -2px; font-weight: 800; }
.dsf-holiday__states a[aria-current] .dsf-holiday__state-dot { background: var(--dsf-color-primary); }
.dsf-holiday__faq { background: var(--dsf-color-background); }
.dsf-holiday__faq h2 { max-inline-size: 35ch; }
.dsf-holiday__faq .dsf-faq__accordion { background: var(--dsf-color-surface); }
.dsf-holiday__sources { background: var(--dsf-color-tint); border-block-end: 4px solid var(--holiday-sun); }
.dsf-holiday__sources-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: start; }
.dsf-holiday__source-links { list-style: none; padding: 0; }
.dsf-holiday__source-links li + li { border-block-start: 1px solid var(--dsf-color-border); }
.dsf-holiday__source-links a { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1rem; font-size: .9375rem; font-weight: 600; }
.dsf-holiday__source-links svg { flex-shrink: 0; }
.dsf-holiday__all-holidays { justify-self: start; }
@media (hover: hover) { .dsf-holiday__states a:hover { border-color: var(--dsf-color-primary); background: var(--holiday-sand); } }
@media (prefers-reduced-motion: no-preference) {
	.dsf-holiday__next > .dsf-holiday__sun { animation: dsf-summer-float 5s ease-in-out 1; }
	@keyframes dsf-summer-float { 50% { transform: translateY(-3px) rotate(12deg); } }
}
@media (max-width: 75rem) {
	.dsf-holiday__download-form { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
	.dsf-holiday__download-option { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(3, auto); gap: .75rem; }
	.dsf-holiday__dates tbody a > span:last-child { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
}
@media (max-width: 60rem) {
	.dsf-holiday__hero-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.dsf-holiday__hero-copy { display: contents; }
	.dsf-holiday__hero-copy h1 { order: 0; max-inline-size: 20ch; }
	.dsf-holiday__next { order: 1; margin-block-start: 1rem; }
	.dsf-holiday__hero-copy > p { order: 2; margin: 0; }
	.dsf-holiday__filters { order: 3; margin: 0; }
	.dsf-holiday__next > .dsf-holiday__sun { inset: 1rem 1rem auto auto; inline-size: 2.25rem; block-size: 2.25rem; }
	.dsf-holiday__dates-layout, .dsf-holiday__calendar-layout, .dsf-holiday__download-form, .dsf-holiday__sources-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.dsf-holiday__calendar-form { max-inline-size: 100%; }
	.dsf-holiday__calendar-form .dsf-button { flex-basis: auto; }
	.dsf-holiday__download-options { grid-template-rows: repeat(2, auto) auto; }
	.dsf-holiday__download-option { grid-template-columns: 2.5rem minmax(0, 1fr); grid-template-rows: auto auto; padding: 1.25rem; }
	.dsf-holiday__states { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 40rem) {
	.dsf-holiday__hero-inner { padding-block: 1rem 2rem; }
	.dsf-holiday__breadcrumb { font-size: .75rem; margin-block-end: 1.25rem; }
	.dsf-holiday__hero-copy h1 { max-inline-size: 14ch; font-size: clamp(2.1rem, 7.5vw, 2.65rem); }
	.dsf-holiday__title-mark { margin-block-start: .75rem; block-size: .3rem; }
	.dsf-holiday__next { padding: 1.15rem; }
	.dsf-holiday__next h2 { padding-inline-end: 2.25rem; font-size: 1rem; }
	.dsf-holiday__next-dates { font-size: clamp(1.05rem, 4.5vw, 1.5rem); margin-block: .75rem; gap: .4rem; }
	.dsf-holiday__countdown { gap: .4rem; }
	.dsf-holiday__countdown strong { font-size: 1.75rem; }
	.dsf-holiday__countdown span { font-size: .6875rem; }
	.dsf-holiday__hero-copy > p { font-size: .9375rem; }
	.dsf-holiday__filters .dsf-holiday__field--state { flex-basis: 60%; }
	.dsf-holiday__apply { flex-basis: 100%; }
	.dsf-holiday__hero-actions { flex-direction: column; }
	.dsf-holiday__hero-actions .dsf-button { inline-size: 100%; }
	.dsf-holiday__dates :where(th, td) { padding: .75rem .5rem; }
	.dsf-holiday__dates time { font-size: .8125rem; }
	.dsf-holiday__year-chip { padding-inline: .55rem; }
	.dsf-holiday__calendar-form .dsf-button { flex-basis: 100%; }
	.dsf-holiday__month { border-spacing: 2px 4px; }
	.dsf-holiday__month time { min-block-size: 2.75rem; font-size: .875rem; }
	.dsf-holiday__month-bar h3 { font-size: 1.125rem; }
	.dsf-holiday__editorial-body { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.dsf-holiday__download-options { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	.dsf-holiday__download-option { grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1rem; }
	.dsf-holiday__states { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
	.dsf-holiday__states a { padding: .8rem; gap: .5rem; font-size: .8125rem; }
	.dsf-holiday__state-dot { display: none; }
}
@media (forced-colors: active) {
	.dsf-holiday__select select { appearance: auto; }
	.dsf-holiday__select::after { display: none; }
	.dsf-holiday__countdown > div, .dsf-holiday__year-chip, .dsf-holiday__calendar, .dsf-holiday__states a { border: 1px solid CanvasText; }
	.dsf-holiday__month .is-holiday time { outline: 2px solid Highlight; outline-offset: -2px; }
}
