@font-face {
	font-family: "Lato";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/lato-regular.ttf") format("truetype");
}
@font-face {
	font-family: "Lato";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/lato-bold.ttf") format("truetype");
}
@font-face {
	font-family: "Lato";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("../fonts/lato-black.ttf") format("truetype");
}

:root {
	--dsgf-navy: #172b4d;
	--dsgf-blue: #2563eb;
	--dsgf-blue-dark: #174eb8;
	--dsgf-pale: #eef5ff;
	--dsgf-border: #dbe5f1;
	--dsgf-muted: #5e6c84;
	--dsgf-white: #fff;
}

.dsgf-finder,
.dsgf-finder * {
	box-sizing: border-box;
	font-family: "Lato", Arial, sans-serif !important;
}
.dsgf-finder {
	position: relative;
	overflow: visible;
	max-width: 1040px;
	margin: 32px auto;
	padding: clamp(28px, 5vw, 64px);
	border: 1px solid var(--dsgf-border);
	border-radius: 28px;
	background:
		radial-gradient(circle at 90% 0%, rgba(69, 139, 255, .13), transparent 33%),
		linear-gradient(145deg, #fff 0%, #f8fbff 100%);
	box-shadow: 0 24px 70px rgba(23, 43, 77, .1);
	color: var(--dsgf-navy);
	font-family: "Lato", Arial, sans-serif !important;
}
.dsgf-finder input,
.dsgf-finder button,
.dsgf-finder a {
	font-family: "Lato", Arial, sans-serif !important;
	letter-spacing: normal;
	text-transform: none;
}
.dsgf-finder__intro { max-width: 670px; margin: 0 auto 28px; text-align: center; }
.dsgf-finder__eyebrow {
	display: inline-flex;
	margin-bottom: 12px;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--dsgf-pale);
	color: var(--dsgf-blue-dark);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.dsgf-finder h2 { margin: 0 0 10px; color: var(--dsgf-navy); font-size: clamp(30px, 4vw, 48px); line-height: 1.08; letter-spacing: -.035em; }
.dsgf-finder__intro p { margin: 0; color: var(--dsgf-muted); font-size: clamp(16px, 2vw, 19px); line-height: 1.6; }
.dsgf-search { position: relative; z-index: 3; max-width: 780px; margin: auto; }
.dsgf-search__row { display: flex; gap: 10px; padding: 8px; border: 1px solid var(--dsgf-border); border-radius: 18px; background: #fff; box-shadow: 0 12px 35px rgba(37, 99, 235, .1); }
.dsgf-search__field { position: relative; flex: 1; min-width: 0; }
.dsgf-search__pin { position: absolute; z-index: 2; top: 50%; left: 17px; width: 22px; height: 22px; transform: translateY(-50%); fill: var(--dsgf-blue); pointer-events: none; }
.dsgf-search input[type="search"] {
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 0 18px 0 50px;
	border: 0;
	border-radius: 12px;
	outline: none;
	background: transparent;
	box-shadow: none;
	color: var(--dsgf-navy);
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 17px;
	font-weight: 400;
	letter-spacing: normal !important;
	line-height: normal;
}
.dsgf-search input[type="search"]:focus { background: #f8fbff; box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .25); }
.dsgf-search input::placeholder { color: #8795aa; opacity: 1; }
.dsgf-search__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 155px;
	height: 54px;
	margin: 0;
	padding: 0 21px;
	border: 0;
	border-radius: 12px;
	background: var(--dsgf-blue);
	box-shadow: 0 8px 18px rgba(37, 99, 235, .25);
	color: #fff;
	cursor: pointer;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal !important;
	transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.dsgf-search__submit:hover { background: var(--dsgf-blue-dark); box-shadow: 0 10px 25px rgba(37, 99, 235, .32); transform: translateY(-1px); }
.dsgf-search__submit:focus-visible,.dsgf-geolocate:focus-visible,.dsgf-card__link:focus-visible { outline: 3px solid rgba(37, 99, 235, .35); outline-offset: 3px; }
.dsgf-search__submit svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.dsgf-search.is-loading .dsgf-search__submit { pointer-events: none; opacity: .72; }
.dsgf-search.is-loading .dsgf-search__submit svg { animation: dsgf-pulse .8s ease-in-out infinite alternate; }
@keyframes dsgf-pulse { to { transform: translateX(4px); } }
.dsgf-geolocate {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 12px auto 0;
	padding: 4px 8px;
	border: 0;
	background: none;
	color: var(--dsgf-blue-dark);
	cursor: pointer;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 14px;
	font-weight: 700;
}
.dsgf-geolocate:hover { text-decoration: underline; }
.dsgf-geolocate svg { width: 17px; height: 17px; fill: currentColor; }
.dsgf-search__status { min-height: 24px; margin: 8px 0 0; color: var(--dsgf-muted); text-align: center; font-size: 14px; }
.dsgf-search__status.is-error { color: #b42318; }
.dsgf-suggestions {
	position: absolute;
	z-index: 20;
	top: calc(100% + 12px);
	right: 0;
	left: 0;
	overflow: hidden;
	max-height: 360px;
	border: 1px solid var(--dsgf-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 45px rgba(23, 43, 77, .18);
}
.dsgf-suggestion {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 0;
	padding: 12px 15px;
	border: 0;
	border-bottom: 1px solid #edf1f6;
	min-height: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--dsgf-navy) !important;
	cursor: pointer;
	text-align: left;
	font-family: "Lato", Arial, sans-serif !important;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: normal !important;
	line-height: 1.3;
	text-transform: none !important;
}
.dsgf-suggestion:last-child { border-bottom: 0; }
.dsgf-suggestion:hover,.dsgf-suggestion[aria-selected="true"] { background: var(--dsgf-pale) !important; color: var(--dsgf-navy) !important; }
.dsgf-suggestion__icon { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: var(--dsgf-pale); color: var(--dsgf-blue); }
.dsgf-suggestion strong,.dsgf-suggestion small { display: block; }
.dsgf-suggestion strong { margin-bottom: 2px; color: var(--dsgf-navy) !important; font-size: 15px; font-weight: 700; line-height: 1.3; }
.dsgf-suggestion small { color: var(--dsgf-muted) !important; font-size: 12px; font-weight: 400; line-height: 1.35; }
.dsgf-results { margin-top: 35px; animation: dsgf-reveal .35s ease both; }
@keyframes dsgf-reveal { from { opacity: 0; transform: translateY(10px); } }
.dsgf-results__heading { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; color: var(--dsgf-muted); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.dsgf-results__line { flex: 1; height: 1px; background: var(--dsgf-border); }
.dsgf-card { display: flex; overflow: hidden; border: 1px solid var(--dsgf-border); border-radius: 18px; background: #fff; }
.dsgf-card--primary { border-color: rgba(37, 99, 235, .3); box-shadow: 0 14px 35px rgba(23, 43, 77, .08); }
.dsgf-card__image { width: 36%; min-height: 250px; object-fit: cover; }
.dsgf-card__body { flex: 1; padding: 24px; }
.dsgf-card__topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.dsgf-card__badge { padding: 5px 9px; border-radius: 999px; background: var(--dsgf-pale); color: var(--dsgf-blue-dark); font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.dsgf-card__distance { margin-left: auto; color: var(--dsgf-blue-dark); font-size: 13px; font-weight: 700; white-space: nowrap; }
.dsgf-card h3 { margin: 0 0 12px; color: var(--dsgf-navy); font-size: 25px; line-height: 1.2; letter-spacing: -.02em; }
.dsgf-card__meta,.dsgf-card__excerpt { margin: 7px 0; color: var(--dsgf-muted); font-size: 14px; line-height: 1.5; }
.dsgf-card__meta span { display: inline-block; width: 19px; color: var(--dsgf-blue); font-weight: 900; }
.dsgf-card__excerpt { margin-top: 13px; }
.dsgf-card__link { display: inline-flex; gap: 7px; align-items: center; margin-top: 10px; color: var(--dsgf-blue-dark); font-weight: 700; text-decoration: none; }
.dsgf-card__link:hover { text-decoration: underline; }
.dsgf-card__link span { transition: transform .18s ease; }
.dsgf-card__link:hover span { transform: translateX(3px); }
.dsgf-results__alternatives { margin: 28px 0 12px; color: var(--dsgf-navy); font-size: 18px; }
.dsgf-results__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dsgf-results__grid .dsgf-card__body { padding: 20px; }
.dsgf-results__grid .dsgf-card h3 { font-size: 19px; }
.dsgf-results__grid .dsgf-card__image { display: none; }
[hidden] { display: none !important; }
.screen-reader-text { position: absolute !important; overflow: hidden; width: 1px; height: 1px; padding: 0; border: 0; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
@media (max-width: 680px) {
	.dsgf-finder { margin: 18px auto; padding: 26px 18px; border-radius: 20px; }
	.dsgf-search__row { display: block; padding: 7px; }
	.dsgf-search__submit { width: 100%; margin-top: 7px; }
	.dsgf-suggestions { top: 64px; }
	.dsgf-card,.dsgf-results__grid { display: block; }
	.dsgf-card__image { width: 100%; min-height: 180px; max-height: 220px; }
	.dsgf-results__grid { display: grid; grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.dsgf-finder * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
