/* Homepage hero refinement; shared theme tokens remain authoritative. */
.dsf-hero {
	--dsf-hero-mint: #E2F7EE;
	--dsf-hero-coral: #FF6B5E;
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: calc(clamp(2rem, 3vw, 3rem) + 50px);
	background: var(--dsf-color-background);
	border-block-end: 1px solid var(--dsf-color-border);
}
.dsf-hero::before, .dsf-hero::after { content: ""; position: absolute; z-index: -1; inline-size: clamp(20rem, 36vw, 34rem); aspect-ratio: 1; border-radius: 50%; pointer-events: none; }
.dsf-hero::before { inset-block-start: -17rem; inset-inline-start: -8rem; background: color-mix(in srgb, var(--dsf-color-accent) 5%, transparent); }
.dsf-hero::after { inset-block-end: -17rem; inset-inline-end: -6rem; background: var(--dsf-hero-mint); opacity: 0.7; }
.dsf-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
}
.dsf-hero__copy { min-inline-size: 0; }
.dsf-hero__eyebrow { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--dsf-space-2); max-inline-size: 100%; margin-block-end: var(--dsf-space-3); padding: var(--dsf-space-2) var(--dsf-space-3); border: 1px solid color-mix(in srgb, var(--dsf-color-accent) 16%, transparent); border-radius: 2rem; background: var(--dsf-color-tint); color: var(--dsf-color-primary); font-size: var(--dsf-text-small); font-weight: 600; line-height: 1.4; }
.dsf-hero__eyebrow svg { flex-shrink: 0; color: var(--dsf-color-accent); }
.dsf-hero h1 {
	max-inline-size: 19ch;
	font-size: clamp(2.375rem, 3.85vw, 3.75rem);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
.dsf-hero h1 span { color: var(--dsf-color-accent); }
.dsf-hero__lead {
	max-inline-size: 47ch;
	margin-block-start: var(--dsf-space-4);
	font-size: clamp(1.0625rem, 1.25vw, 1.125rem);
	color: var(--dsf-color-muted);
	line-height: 1.65;
}
.dsf-hero__actions { display: flex; flex-wrap: wrap; gap: var(--dsf-space-3); margin-block-start: var(--dsf-space-5); }
.dsf-hero__actions .dsf-button { min-block-size: 3.25rem; gap: var(--dsf-space-3); padding: var(--dsf-space-3) var(--dsf-space-5); background: var(--dsf-color-accent); color: var(--dsf-color-surface); font-size: var(--dsf-text-body); font-weight: 700; }
.dsf-hero__actions .dsf-button svg { flex-shrink: 0; }
.dsf-hero__actions .dsf-button:hover { background: var(--dsf-color-accent-hover); color: var(--dsf-color-surface); }
.dsf-hero__actions .dsf-button--secondary { border-color: var(--dsf-color-control-border); background: var(--dsf-color-surface); color: var(--dsf-color-primary); }
.dsf-hero__actions .dsf-button--secondary:hover { border-color: var(--dsf-color-accent); background: var(--dsf-color-tint); color: var(--dsf-color-primary); }
.dsf-hero__trust { display: flex; flex-wrap: wrap; gap: var(--dsf-space-2) var(--dsf-space-4); margin-block-start: var(--dsf-space-5); padding: 0; list-style: none; color: var(--dsf-color-muted); font-size: var(--dsf-text-small); }
.dsf-hero__trust li { display: flex; align-items: center; gap: var(--dsf-space-2); }
.dsf-hero__trust svg { flex-shrink: 0; color: var(--dsf-color-accent); }
.dsf-finder {
	min-inline-size: 0;
	padding: clamp(1.5rem, 2.2vw, 2rem);
	border-radius: var(--dsf-radius-large);
	background: var(--dsf-color-surface);
	box-shadow: var(--dsf-shadow-raised);
	scroll-margin-block-start: calc(var(--dsf-header-height, 5rem) + 1rem);
}
.dsf-finder__heading { margin-block-end: var(--dsf-space-4); }
.dsf-finder__heading h2 { font-size: var(--dsf-text-lead); font-weight: 800; letter-spacing: -0.02em; }
.dsf-finder__fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(5.5rem, 0.65fr) minmax(0, 1.3fr); align-items: end; gap: var(--dsf-space-4); }
.dsf-finder__field { position: relative; min-inline-size: 0; }
.dsf-finder__field::after { content: ""; position: absolute; inset-inline-end: 1rem; inset-block-end: 1.15rem; inline-size: 0.4rem; block-size: 0.4rem; border-inline-end: 1.5px solid var(--dsf-color-primary); border-block-end: 1.5px solid var(--dsf-color-primary); transform: rotate(45deg); pointer-events: none; }
.dsf-finder__field label { display: block; margin-block-end: var(--dsf-space-2); font-size: var(--dsf-text-small); font-weight: 600; color: var(--dsf-color-primary); }
.dsf-finder__field select { appearance: none; inline-size: 100%; min-block-size: 2.875rem; padding: var(--dsf-space-2) 2.25rem var(--dsf-space-2) var(--dsf-space-3); border-radius: var(--dsf-radius-medium); font-size: var(--dsf-text-small); text-overflow: ellipsis; }
.dsf-finder__field select:hover { border-color: var(--dsf-color-accent); }
.dsf-finder__submit { inline-size: 100%; min-block-size: 2.75rem; margin-block-start: var(--dsf-space-3); padding-block: var(--dsf-space-2); font-size: var(--dsf-text-small); }
.dsf-finder__submit[aria-busy="true"] { cursor: progress; }
.dsf-finder__feedback { font-size: var(--dsf-text-small); color: var(--dsf-color-muted); }
.dsf-finder__feedback:not(:empty):not(.screen-reader-text) { margin-block-start: var(--dsf-space-3); }
.dsf-finder__feedback.is-error { color: var(--dsf-color-error); }
.dsf-finder__results { margin-block-start: var(--dsf-space-4); }
.dsf-finder__results.is-updated { animation: dsf-result-reveal var(--dsf-duration-normal) var(--dsf-ease); }
.dsf-finder__featured { padding: var(--dsf-space-4) var(--dsf-space-5); border: 1px solid color-mix(in srgb, var(--dsf-color-primary) 11%, var(--dsf-hero-mint)); border-radius: var(--dsf-radius-medium); background: var(--dsf-hero-mint); color: var(--dsf-color-primary); }
.dsf-finder__featured h3 { display: flex; align-items: center; gap: var(--dsf-space-2); font-size: var(--dsf-text-h3); font-weight: 800; }
.dsf-finder__featured h3 svg { flex-shrink: 0; }
.dsf-finder__dates { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--dsf-space-2); margin-block-start: var(--dsf-space-3); font-family: var(--dsf-font-heading); font-size: clamp(1.125rem, 1.5vw, 1.375rem); font-weight: 700; font-variant-numeric: tabular-nums; }
.dsf-finder__dates time { white-space: nowrap; }
.dsf-finder__date-divider { opacity: 0.55; }
.dsf-finder__countdown { display: inline-flex; align-items: center; gap: var(--dsf-space-2); max-inline-size: 100%; margin-block-start: var(--dsf-space-3); padding: 0.375rem var(--dsf-space-3); border-radius: var(--dsf-radius-small); background: var(--dsf-hero-coral); color: var(--dsf-color-text); font-size: var(--dsf-text-small); font-weight: 700; line-height: 1.4; }
.dsf-finder__countdown svg { flex-shrink: 0; }
.dsf-finder__result-scope, .dsf-finder__availability { margin-block-start: var(--dsf-space-2); font-size: var(--dsf-text-small); color: var(--dsf-color-muted); }
.dsf-finder__empty, .dsf-finder__unavailable { padding: var(--dsf-space-4); border-radius: var(--dsf-radius-medium); background: var(--dsf-color-tint); color: var(--dsf-color-primary); font-size: var(--dsf-text-small); }
.dsf-finder__periods { margin-block-start: var(--dsf-space-2); font-size: var(--dsf-text-small); }
.dsf-finder__periods summary { min-block-size: 2.75rem; padding-block: var(--dsf-space-3); color: var(--dsf-color-primary); cursor: pointer; }
.dsf-finder__periods summary:hover { color: var(--dsf-color-accent); }
.dsf-finder__periods ul { max-block-size: 14rem; overflow-y: auto; padding: 0 var(--dsf-space-2) 0 0; list-style: none; scrollbar-color: var(--dsf-color-control-border) var(--dsf-color-background); scrollbar-width: thin; }
.dsf-finder__period { padding-block: var(--dsf-space-3); border-block-start: 1px solid var(--dsf-color-border); font-variant-numeric: tabular-nums; }
.dsf-finder__period > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--dsf-space-2); }
.dsf-finder__period > div span { color: var(--dsf-color-muted); }
.dsf-finder__overview { display: flex; justify-content: space-between; align-items: center; gap: var(--dsf-space-3); min-block-size: 2.75rem; margin-block-start: var(--dsf-space-2); border-block-start: 1px solid var(--dsf-color-border); font-size: var(--dsf-text-small); font-weight: 600; text-decoration: none; }
.dsf-finder__overview:hover { text-decoration: underline; }
#dsf-state { scroll-margin-block-start: calc(var(--dsf-header-height, 5rem) + 1rem); }
@keyframes dsf-result-reveal { from { opacity: 0.7; transform: translateY(2px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 74rem) and (min-width: 56.01rem) {
	.dsf-finder__fields { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); }
	.dsf-finder__field--state { grid-column: 1 / -1; }
}
@media (max-width: 56rem) {
	.dsf-hero__inner { grid-template-columns: minmax(0, 1fr); gap: var(--dsf-space-5); max-inline-size: 42rem; }
	.dsf-hero h1 { font-size: clamp(2.125rem, 5.8vw, 3.25rem); }
	.dsf-hero__actions, .dsf-hero__trust { margin-block-start: var(--dsf-space-4); }
}
@media (max-width: 35rem) {
	.dsf-hero { padding-block: calc(var(--dsf-space-5) + 50px); }
	.dsf-hero__actions { gap: var(--dsf-space-2); }
	.dsf-hero__actions .dsf-button { flex: 1 0 auto; min-inline-size: min-content; min-block-size: 2.875rem; gap: 0.375rem; padding: var(--dsf-space-2); font-size: clamp(0.8125rem, 3.6vw, 0.875rem); white-space: nowrap; }
	.dsf-hero__actions .dsf-button svg { inline-size: 1rem; block-size: 1rem; }
	.dsf-finder { padding: var(--dsf-space-5); }
	.dsf-finder__fields { grid-template-columns: minmax(0, 1fr); gap: var(--dsf-space-3); }
	.dsf-finder__field select { font-size: var(--dsf-text-body); }
	.dsf-finder__featured { padding: var(--dsf-space-4); }
	.dsf-finder__dates { gap: var(--dsf-space-1); font-size: var(--dsf-text-body); }
}
@media print { .dsf-finder__form, .dsf-hero__actions { display: none; } .dsf-finder { box-shadow: none; } .dsf-hero__inner { display: block; } }

.dsf-hero__public-link { display: inline-flex; align-items: center; gap: var(--dsf-space-2); min-block-size: 2.75rem; margin-block-start: var(--dsf-space-2); font-size: var(--dsf-text-small); font-weight: 600; text-underline-offset: 0.2em; }
