/*
 * HL2 UX-FOOT — dark footer (footer.php, footer-mini.php). Loaded after the legacy stylesheet.
 * Desktop: CTA row, brand + 3 menu columns, notes, bottom bar. Phones: stacked CTA, accordions, language dropdown.
 */
.hf {
	--hf-tx: rgba(255, 255, 255, .78);
	--hf-hd: #ffffff;
	--hf-mut: rgba(255, 255, 255, .62);
	--hf-ln: rgba(255, 255, 255, .13);
	--hf-pill: rgba(255, 255, 255, .08);
	--hf-pillb: rgba(255, 255, 255, .18);
	--hf-acc: #8db2ff;
	background: radial-gradient(1000px 460px at 88% -20%, rgba(46, 107, 255, .30), transparent 60%), linear-gradient(#0e1f57, #091437);
	color: var(--hf-tx);
	font-family: Montserrat, system-ui, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	padding: 0 0 24px;
}
.hf *, .hf *::before, .hf *::after { box-sizing: border-box; }
.hf p { margin: 0; }
.hf ul { list-style: none; margin: 0; padding: 0; }
.hf li { margin: 0; padding: 0; }
.hf li::before { display: none; }
.hf a { color: var(--hf-tx); text-decoration: none; }
.hf a:hover { color: var(--hf-hd); }
.hf a:focus-visible, .hf summary:focus-visible { outline: 2px solid var(--hf-acc); outline-offset: 2px; border-radius: 6px; }
.hf summary { list-style: none; }
.hf summary::-webkit-details-marker { display: none; }
.hf-in { max-width: 1170px; margin: 0 auto; padding: 0 20px; }
.hf-chev { flex: none; transition: transform .15s ease; }
details[open] > summary .hf-chev { transform: rotate(180deg); }

/* CTA */
.hf-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 32px 0; border-bottom: 1px solid var(--hf-ln); }
.hf .hf-cta-h { font: 700 24px/1.2 Archivo, sans-serif; color: var(--hf-hd); letter-spacing: -.01em; }
.hf .hf-cta-p { margin-top: 6px; }
.hf .hf-cta-btn {
	flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 26px; border-radius: 10px;
	background: linear-gradient(90deg, #ff8a57, #ff5a10); color: #fff;
	font: 700 15px Montserrat, sans-serif; white-space: nowrap;
	box-shadow: 0 6px 18px rgba(255, 90, 16, .28);
}
.hf .hf-cta-btn:hover { color: #fff; filter: brightness(1.05); }

/* Brand + menus */
.hf-main { display: grid; grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, .8fr)); gap: 32px; padding: 34px 0 26px; }
.hf-brand-row { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.hf .hf-logo { display: inline-flex; align-items: center; gap: 8px; font: 800 19px Archivo, sans-serif; color: var(--hf-hd); }
.hf .hf-logo b { color: var(--hf-acc); font-weight: 800; }
.hf-lang { display: flex; flex-wrap: wrap; gap: 6px; }
.hf .hf-lang a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 36px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--hf-pillb); background: var(--hf-pill); font-size: 13px; font-weight: 700; color: var(--hf-hd); }
.hf .hf-lang a.on { background: var(--hf-acc); border-color: var(--hf-acc); color: #0a1640; }
.hf-langdd { display: none; position: relative; }
.hf-partners { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.hf-partners img { max-height: 36px; width: auto; }
.hf-g > summary { display: flex; align-items: center; justify-content: space-between; margin: 0 0 10px; font: 700 12px/1.3 Montserrat, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: var(--hf-mut); cursor: default; }
.hf-g > summary .hf-chev { display: none; }
.hf-list { display: grid; gap: 2px; }
.hf .hf-list a { display: inline-flex; align-items: center; min-height: 32px; font-size: 14px; font-weight: 500; }

.hf-legal-list { display: flex; flex-wrap: wrap; gap: 0 18px; }
.hf .hf-legal-list a { display: inline-flex; align-items: center; min-height: 32px; color: var(--hf-mut); font-size: 13px; }
.hf .hf-legal-list a:hover { color: var(--hf-hd); }

@media (max-width: 1023px) {
	.hf-main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.hf-brand { grid-column: 1 / -1; }
	.hf-brand-row { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
}

/* Phones */
@media (max-width: 767px) {
	.hf-cta { flex-direction: column; align-items: stretch; gap: 16px; padding: 28px 0 24px; }
	.hf .hf-cta-h { font-size: 21px; }
	.hf .hf-cta-p { display: none; }
	.hf .hf-cta-btn { width: 100%; }
	.hf-main { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 22px 0 8px; }
	.hf-brand { padding-bottom: 18px; }
	.hf-brand-row { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: nowrap; }
	.hf-lang { display: none; }
	.hf-langdd { display: block; }
	.hf-langdd > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--hf-pillb); background: var(--hf-pill); color: var(--hf-hd); font-size: 14px; font-weight: 600; cursor: pointer; }
	.hf-langdd > ul { position: absolute; right: 0; bottom: calc(100% + 8px); z-index: 20; min-width: 190px; padding: 6px; border-radius: 12px; background: #13286b; border: 1px solid var(--hf-pillb); box-shadow: 0 12px 32px rgba(0, 0, 0, .35); }
	.hf .hf-langdd a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 8px; color: var(--hf-hd); font-size: 15px; }
	.hf .hf-langdd a.on { background: rgba(141, 178, 255, .18); font-weight: 700; }
	.hf-g { border-top: 1px solid var(--hf-ln); }
	.hf-g > summary { margin: 0; min-height: 52px; cursor: pointer; color: var(--hf-tx); }
	.hf-g > summary .hf-chev { display: block; }
	.hf-g > .hf-list { padding-bottom: 12px; }
	.hf .hf-list a { min-height: 44px; font-size: 15px; }
	.hf .hf-legal-list a { min-height: 40px; }
	.hf { padding-bottom: 76px; } /* room for the floating consent button at the very end of the page */
}
@media (prefers-reduced-motion: reduce) {
	.hf-chev { transition: none; }
}

/*
 * Desktop (council review 2026-11-09): every row on one 4-column grid.
 * Brand row full width (logo left, languages right); About | Help | longest menu over 2 columns, split in 2;
 * notes and bottom bar snap to the same column lines; even spacing between links.
 */
@media (min-width: 768px) {
	.hf-list { gap: 0; }
	.hf .hf-list a { display: block; min-height: 0; padding: 5px 0; line-height: 1.4; }
	.hf-g > summary { margin-bottom: 8px; }
}
@media (min-width: 1024px) {
	.hf-main { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 32px; padding: 30px 0 28px; }
	.hf-brand { grid-column: 1 / -1; }
	.hf-brand-row { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; }
	.hf-partners { margin-top: 12px; }
	.hf-g--wide { grid-column: span 2; }
	.hf-g--wide > .hf-list { display: block; columns: 2; column-gap: 32px; }
	.hf-list > li { break-inside: avoid; }
	.hf .hf-legal-list a { font-size: 12px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
	.hf { padding-bottom: 72px; } /* the floating consent button sits over the owner line when the side gutter is small */
}

/*
 * UX-FOOT2 2026-11-09 (VT): one compact legal block instead of two short notes + a collapsed disclaimer.
 * The full disclaimer (theme option) is always visible; copyright and the owner line close the block in the same small type.
 * Bottom bar = legal links + 18+.
 */
.hf-legal-blk { padding: 18px 0 14px; border-top: 1px solid var(--hf-ln); font-size: 12px; line-height: 1.6; color: var(--hf-mut); }
.hf-disc p { margin: 0; }
.hf-disc p + p { margin-top: 6px; }
.hf-disc b, .hf-disc strong { color: var(--hf-tx); font-weight: 600; }
.hf .hf-disc a { color: var(--hf-tx); text-decoration: underline; text-underline-offset: 2px; }
.hf .hf-own { margin-top: 10px; }
.hf-own span { white-space: normal; }
.hf-bot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding-top: 10px; border-top: 1px solid var(--hf-ln); font-size: 12px; color: var(--hf-mut); }
.hf-18 { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--hf-pillb); font-size: 11px; font-weight: 700; color: var(--hf-hd); }
.hf--mini { padding-top: 8px; }
.hf--mini .hf-legal-blk { border-top: 0; }
@media (max-width: 767px) {
	.hf-legal-blk { padding-top: 16px; }
	.hf .hf-legal-list a { min-height: 40px; }
}
@media (min-width: 1024px) {
	.hf-legal-blk { font-size: 12.5px; }
	.hf .hf-legal-list a { font-size: 12px; }
}

/* chat 9 round 5 (VT): disclaimer in one column (2 columns split sentences); "HeyLocate is free" lead line. */
.hf .hf-free { margin: 0 0 8px; color: var(--hf-tx); }
.hf-free b { color: var(--hf-hd); font-weight: 700; }

/* chat 9 round 8 (VT): full disclaimer collapsible on phones only ("HeyLocate is free" line and owner line stay visible). */
.hf-discd > summary { display: none; }
@media (max-width: 767px) {
	.hf-discd > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--hf-tx); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
	.hf-discd[open] > summary { margin-bottom: 4px; }
}

