/* TTA Fly-In Dining — inherits Kadence fonts; colors from the Kadence global palette with fallbacks. */
.fi-main {
	--fi-accent: var(--global-palette1, #2B6CB0);
	--fi-accent-dark: var(--global-palette2, #215387);
	--fi-ink: var(--global-palette3, #1A202C);
	--fi-text: var(--global-palette4, #2D3748);
	--fi-muted: var(--global-palette5, #4A5568);
	--fi-border: var(--global-gray-400, #CBD5E0);
	--fi-soft: var(--global-palette7, #EDF2F7);
	--fi-bg: var(--global-palette9, #fff);
	--fi-ok: var(--global-palette11, #13612e);
	--fi-err: var(--global-palette13, #b82105);
	--fi-radius: 6px;
	padding-block: 1.5rem 3rem;
	color: var(--fi-text);
}
.fi-main h1 { font-family: var(--global-heading-font-family, inherit); color: var(--fi-ink); margin: .25rem 0 1rem; line-height: 1.2; }
.fi-main h2 { font-family: var(--global-heading-font-family, inherit); color: var(--fi-ink); margin: 0 0 .75rem; font-size: 1.4rem; }
.fi-main a { color: var(--fi-accent); }
.fi-main a:hover, .fi-main a:focus { color: var(--fi-accent-dark); }
.fi-section { margin: 2.25rem 0; }
.fi-lede { font-size: 1.1rem; max-width: 70ch; }
.fi-meta { color: var(--fi-muted); font-size: .92rem; margin: .15rem 0 0; }

/* Breadcrumbs */
.fi-crumbs ol { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; font-size: .9rem; color: var(--fi-muted); }
.fi-crumbs li + li::before { content: "›"; margin-right: .25rem; }

/* Quick facts */
.fi-single__top { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 900px) { .fi-single__top { grid-template-columns: minmax(0, 1fr) 360px; } }
.fi-facts { background: var(--fi-soft); border-radius: var(--fi-radius); padding: 1rem 1.25rem; }
.fi-facts__title { font-size: 1.1rem !important; }
.fi-facts dl { margin: 0; }
.fi-facts dl > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: .5rem; padding: .4rem 0; border-top: 1px solid var(--fi-border); }
.fi-facts dl > div:first-child { border-top: 0; }
.fi-facts dt { font-weight: 700; color: var(--fi-ink); }
.fi-facts dd { margin: 0; overflow-wrap: anywhere; }

.fi-list, .fi-links { padding-left: 1.2rem; }
.fi-tip { border-left: 4px solid var(--fi-accent); padding: .5rem .75rem; background: var(--fi-soft); }
.fi-hank { border-left: 4px solid var(--fi-accent-dark); padding-left: 1rem; }
.fi-byline { color: var(--fi-muted); font-style: italic; }
.fi-badge { display: inline-block; background: var(--fi-accent); color: #fff; font-size: .75rem; font-weight: 700; padding: .1rem .5rem; border-radius: 999px; vertical-align: middle; font-family: var(--global-body-font-family, inherit); }
.fi-closed { background: #fff4f2; border: 1px solid var(--fi-err); color: var(--fi-err); border-radius: var(--fi-radius); padding: .75rem 1rem; margin: 0 0 1.5rem; }

/* Cards */
.fi-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.fi-card, .fi-cards--compact li { border: 1px solid var(--fi-border); border-radius: var(--fi-radius); padding: .8rem 1rem; background: var(--fi-bg); }
.fi-card[hidden] { display: none; }
.fi-card__title { font-size: 1.05rem !important; margin: 0 !important; font-family: var(--global-body-font-family, inherit) !important; }
.fi-card__title a { text-decoration: none; }
.fi-verified { font-size: .82rem; color: var(--fi-ok); margin: .25rem 0 0; }

/* Search */
.fi-search { background: var(--fi-soft); border-radius: var(--fi-radius); padding: 1rem; margin: 1.25rem 0; }
.fi-search label { display: block; font-weight: 700; margin-bottom: .4rem; color: var(--fi-ink); }
.fi-search__row { display: flex; flex-wrap: wrap; gap: .5rem; }
.fi-search input[type=search] { flex: 1 1 240px; min-width: 0; }
.fi-search select { flex: 0 1 160px; }
.fi-search input, .fi-search select, .fi-search button { min-height: 44px; }
.fi-search__near { margin: .5rem 0 0; }
.fi-near { background: none; border: 0; padding: 0; color: var(--fi-accent); text-decoration: underline; cursor: pointer; min-height: 0 !important; }

/* Map facade: fixed aspect ratio prevents layout shift. */
.fi-map { position: relative; aspect-ratio: 16 / 9; max-height: 480px; width: 100%; border-radius: var(--fi-radius); overflow: hidden; background: var(--fi-soft); margin: 1.5rem 0; }
/* Direct children only: Leaflet's own tiles and markers are <img> elements deeper inside the map. */
.fi-map > img, .fi-map__placeholder, .fi-map__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.fi-map > img { object-fit: cover; }
.fi-map__placeholder { display: flex; align-items: flex-end; justify-content: flex-start; padding: .75rem; color: var(--fi-muted); font-size: .85rem;
	background-image: linear-gradient(var(--fi-border) 1px, transparent 1px), linear-gradient(90deg, var(--fi-border) 1px, transparent 1px); background-size: 48px 48px; }
.fi-map__load { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2; }
.fi-map.is-live > .fi-map__load, .fi-map.is-live > .fi-map__placeholder, .fi-map.is-live > img { display: none; }

/* States */
.fi-states { list-style: none; padding: 0; columns: 2 12rem; column-gap: 1.5rem; }
.fi-states li { break-inside: avoid; padding: .15rem 0; }
.fi-states__empty { color: var(--fi-muted); }

/* Forms */
.fi-form { max-width: 640px; }
.fi-field label { display: block; font-weight: 700; margin-bottom: .25rem; }
.fi-field input[type=text], .fi-field input[type=email], .fi-field select, .fi-field textarea { width: 100%; }
.fi-field--check label { font-weight: 400; }
.fi-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fi-notice { padding: .75rem 1rem; border-radius: var(--fi-radius); margin: 1rem 0; }
.fi-notice--ok { background: #eef8f1; border: 1px solid var(--fi-ok); }
.fi-notice--err { background: #fff4f2; border: 1px solid var(--fi-err); }

@media (max-width: 600px) {
	.fi-facts dl > div { grid-template-columns: 6.5rem 1fr; }
	.fi-search select { flex: 1 1 45%; }
}

/* FAQ */
.fi-faq dl { margin: 0; }
.fi-faq dt { font-weight: 700; color: var(--fi-ink); margin-top: 1rem; }
.fi-faq dd { margin: .25rem 0 0; max-width: 70ch; }
.fi-badge--candidate { background: var(--global-palette15, #f5a524); color: #3b2a00; }

/* Company block at the foot of the hub. */
.fi-about { margin: 3rem 0 0; padding: 2rem 0 0; border-top: 1px solid var(--fi-rule, #d7dfe9); }
.fi-about h2 { margin: 0 0 .75rem; }
.fi-about h3 { margin: 1.5rem 0 .5rem; font-size: 1.15rem; }
.fi-about p { max-width: 70ch; }
