/* Butler Tech Program Finder — everything scoped under .btpf so theme styles don't collide. */

.btpf {
	--btpf-navy: #0b2340;
	--btpf-navy-2: #12325a;
	--btpf-gold: #f2a900;
	--btpf-gold-hover: #ffb71a;
	--btpf-gold-dark: #c48900;
	--btpf-rust: #a85a07;
	--btpf-bg: #eef4fb;
	--btpf-surface: #f4f8fd;
	--btpf-card: #fff;
	--btpf-line: #d8e2ee;
	--btpf-text: #0f2540;
	--btpf-muted: #56687e;
	--btpf-display: "Barlow Condensed", "Oswald", "Arial Narrow", sans-serif;
	--btpf-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
	--btpf-radius: 6px;
	--btpf-shadow: 0 1px 2px rgba(11, 35, 64, .06), 0 6px 18px rgba(11, 35, 64, .08);

	color: var(--btpf-text);
	font-family: var(--btpf-body);
	font-size: 16px;
	line-height: 1.5;
	text-align: left;
}

/* Room for a floating (fixed/absolute) theme header; set from JS. */
.btpf--offset {
	padding-top: var(--btpf-offset, 0px);
	background: var(--btpf-navy);
}

.btpf--fullwidth {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.btpf *,
.btpf *::before,
.btpf *::after { box-sizing: border-box; }

/* :where() keeps these resets at class-level specificity so component rules below win. */
.btpf :where(h2, h3, p, ul) { margin: 0; padding: 0; }
.btpf :where(ul) { list-style: none; }

/* Neutralize theme button styles. */
.btpf :where(button) {
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-transform: none;
	text-shadow: none;
	min-height: 0;
	width: auto;
	cursor: pointer;
}
.btpf :where(button:disabled) { cursor: not-allowed; }
.btpf :where(a) { text-decoration: none; box-shadow: none; }

.btpf :focus-visible {
	outline: 3px solid var(--btpf-gold);
	outline-offset: 2px;
}
.btpf [tabindex="-1"]:focus { outline: none; }

.btpf-icon { width: 1em; height: 1em; flex: none; vertical-align: middle; }

.btpf-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.btpf-boot, .btpf-error {
	padding: 48px 16px;
	text-align: center;
	color: var(--btpf-muted);
}

.btpf-eyebrow {
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--btpf-rust);
}
.btpf-eyebrow--gold { color: var(--btpf-gold); }

.btpf-link {
	color: var(--btpf-rust) !important;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 3px;
	transition: text-decoration-color .15s;
}
.btpf-link:hover { text-decoration-color: currentColor; }

.btpf-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 28px !important;
	background: var(--btpf-gold) !important;
	color: var(--btpf-navy) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: .06em;
	text-transform: uppercase !important;
	border-radius: 3px !important;
	transition: background .15s;
}
.btpf-btn:hover { background: var(--btpf-gold-hover) !important; }

/* ======================================================================
 * Wizard
 * ==================================================================== */

.btpf-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 66px;
	padding: 12px clamp(16px, 3.5vw, 48px);
	background: var(--btpf-navy);
}

.btpf-topbar__home {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--btpf-gold) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .1em;
	text-transform: uppercase !important;
}

.btpf-topbar__nav { display: flex; gap: 10px; }

.btpf-btn-ghost {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px !important;
	border: 1.5px solid rgba(255, 255, 255, .35) !important;
	border-radius: 4px !important;
	color: #fff !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase !important;
	transition: border-color .15s, background .15s;
}
.btpf-btn-ghost .btpf-icon { color: var(--btpf-gold); }
.btpf-btn-ghost:hover { border-color: #fff !important; background: rgba(255, 255, 255, .06) !important; }

.btpf-wizard__body {
	display: grid;
	grid-template-columns: 58fr 42fr;
	min-height: 740px;
}

.btpf-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	padding: clamp(32px, 4.5vw, 64px);
	background: radial-gradient(120% 90% at 30% 40%, #1b4271 0%, var(--btpf-navy) 70%);
	color: #fff;
	overflow: hidden;
}
.btpf-hero.has-image {
	background: linear-gradient(180deg, rgba(11, 35, 64, .25) 0%, rgba(11, 35, 64, .55) 55%, rgba(11, 35, 64, .92) 100%), var(--btpf-hero) center / cover no-repeat, var(--btpf-navy);
}

.btpf-hero__content { position: relative; max-width: 540px; }

.btpf-hero__title {
	margin: 14px 0 16px !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: clamp(34px, 4.2vw, 60px);
	line-height: 1.02;
	letter-spacing: -.01em;
	color: #fff;
}

.btpf-hero__text {
	font-size: 17px;
	line-height: 1.55;
	color: rgba(255, 255, 255, .88);
}

.btpf-step {
	display: flex;
	align-items: center;
	padding: 56px clamp(20px, 4.5vw, 64px);
	background: var(--btpf-bg);
}

.btpf-step__inner { width: 100%; max-width: 480px; }

.btpf-step__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.btpf-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--btpf-muted) !important;
	font-size: 14px;
}
.btpf-back:hover { color: var(--btpf-text) !important; }

.btpf-progress {
	display: grid;
	grid-auto-flow: column;
	gap: 6px;
	margin: 14px 0 26px;
}
.btpf-progress span {
	height: 4px;
	border-radius: 2px;
	background: #dfe7f1;
}
.btpf-progress span.is-done { background: var(--btpf-gold); }

.btpf-step > .btpf-step__inner > .btpf-eyebrow { margin-bottom: 18px; }

.btpf-step__title {
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: clamp(28px, 2.6vw, 38px);
	line-height: 1.1;
	color: var(--btpf-navy);
}

.btpf-step__sub {
	margin-top: 8px !important;
	color: var(--btpf-muted);
	font-size: 16px;
}

.btpf-choices {
	display: grid;
	gap: 14px;
	margin-top: 26px;
}
.btpf-choices--grid { grid-template-columns: 1fr 1fr; }

.btpf-choice {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100% !important;
	padding: 18px 20px !important;
	background: var(--btpf-card) !important;
	border-radius: var(--btpf-radius) !important;
	box-shadow: var(--btpf-shadow) !important;
	text-align: left;
	transition: transform .15s, box-shadow .15s;
}
.btpf-choice:hover {
	transform: translateY(-1px);
	box-shadow: 0 0 0 2px var(--btpf-gold), var(--btpf-shadow) !important;
}
.btpf-choice__text { display: grid; gap: 3px; }
.btpf-choice__label {
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 19px;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--btpf-navy);
}
.btpf-choice__sub { font-size: 14px; color: var(--btpf-muted); }
.btpf-choice__arrow { color: var(--btpf-rust); font-size: 18px; }

.btpf-checks {
	display: grid;
	gap: 8px;
	margin-top: 24px;
}

.btpf-check {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 !important;
	padding: 12px 16px;
	background: var(--btpf-surface);
	border: 1.5px solid var(--btpf-line);
	border-radius: var(--btpf-radius);
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.btpf-check:hover { border-color: #b9c8da; }
.btpf-check.is-checked {
	border-color: var(--btpf-gold);
	background: #f6f1e6;
}
.btpf-check input,
.btpf-opt input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.btpf-check__box,
.btpf-opt__box {
	display: grid;
	place-items: center;
	flex: none;
	width: 22px;
	height: 22px;
	border: 1.5px solid #c3d0df;
	border-radius: 4px;
	background: #fff;
	color: transparent;
	font-size: 14px;
}
.btpf-check.is-checked .btpf-check__box {
	border-color: var(--btpf-gold);
	background: #fff;
	color: var(--btpf-navy);
}
.btpf-check input:focus-visible + .btpf-check__box,
.btpf-opt input:focus-visible + .btpf-opt__box {
	outline: 3px solid var(--btpf-gold);
	outline-offset: 2px;
}
.btpf-check__icon { color: var(--btpf-rust); font-size: 18px; display: inline-flex; }
.btpf-check__label { flex: 1; font-size: 16px; color: var(--btpf-text); }
.btpf-check__count { font-size: 13px; color: var(--btpf-muted); white-space: nowrap; }

.btpf-cta {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100% !important;
	margin-top: 12px !important;
	padding: 18px 20px !important;
	background: var(--btpf-gold) !important;
	border-bottom: 4px solid var(--btpf-gold-dark) !important;
	color: var(--btpf-navy) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: .05em;
	text-transform: uppercase !important;
	transition: background .15s;
}
.btpf-cta:hover:not(:disabled) { background: var(--btpf-gold-hover) !important; }
.btpf-cta:disabled { opacity: .45; }

.btpf-jump {
	margin-top: 28px !important;
	font-size: 14px;
	color: var(--btpf-muted);
}

.btpf-empty {
	margin-top: 24px !important;
	padding: 32px 24px;
	text-align: center;
	color: var(--btpf-muted);
	background: var(--btpf-surface);
	border: 1.5px dashed var(--btpf-line);
	border-radius: var(--btpf-radius);
}
.btpf-empty .btpf-btn { margin-top: 16px; }

/* ======================================================================
 * Browser
 * ==================================================================== */

.btpf-wrap {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 56px);
}

.btpf-browser__head {
	padding: 36px 0 28px;
	background: var(--btpf-bg);
}

.btpf-crumb {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--btpf-rust) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .1em;
	text-transform: uppercase !important;
}

.btpf-browser__intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 40px;
	flex-wrap: wrap;
	margin-top: 10px;
}
.btpf-browser__intro > div:first-child { flex: 1 1 480px; max-width: 800px; }

.btpf-browser__title {
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
	text-transform: uppercase;
	color: var(--btpf-navy);
}

.btpf-browser__text {
	margin-top: 12px !important;
	color: var(--btpf-muted);
	font-size: 16px;
}

.btpf-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.btpf-tab {
	padding: 9px 16px !important;
	background: var(--btpf-surface) !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 3px !important;
	color: var(--btpf-muted) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .08em;
	text-transform: uppercase !important;
}
.btpf-tab:hover { border-color: #b9c8da !important; color: var(--btpf-text) !important; }
.btpf-tab[aria-pressed="true"] {
	background: var(--btpf-gold) !important;
	border-color: var(--btpf-gold) !important;
	color: var(--btpf-navy) !important;
}

.btpf-searchrow {
	display: flex;
	gap: 12px;
	margin-top: 24px;
}

.btpf-search {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1;
	margin: 0 !important;
}
.btpf-search > .btpf-icon {
	position: absolute;
	left: 18px;
	color: var(--btpf-rust);
	font-size: 20px;
	pointer-events: none;
}
.btpf-search input {
	width: 100% !important;
	height: 48px !important;
	margin: 0 !important;
	padding: 0 16px 0 50px !important;
	background: #fff !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	color: var(--btpf-text) !important;
	font: 16px var(--btpf-body) !important;
}
.btpf-search input:focus { border-color: var(--btpf-gold) !important; outline: none; }

.btpf-favbtn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0 18px !important;
	height: 48px;
	background: var(--btpf-surface) !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 4px !important;
	color: var(--btpf-navy) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .08em;
	text-transform: uppercase !important;
	white-space: nowrap;
}
.btpf-favbtn .btpf-icon { color: var(--btpf-rust); font-size: 18px; }
.btpf-favbtn[aria-pressed="true"] { border-color: var(--btpf-gold) !important; background: #f6f1e6 !important; }
.btpf-favbtn[aria-pressed="true"] .btpf-icon { fill: currentColor; }

.btpf-browser__body {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 40px;
	padding-top: 32px;
	padding-bottom: 64px;
	background: #fff;
}
.btpf-browser { background: #fff; }

/* Filters */
.btpf-filters__panel {
	position: sticky;
	top: 24px;
	padding: 20px;
	background: var(--btpf-surface);
	border: 1.5px solid var(--btpf-line);
	border-radius: var(--btpf-radius);
}

.btpf-filters__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--btpf-gold);
}
.btpf-filters__head h3 {
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 22px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--btpf-navy);
}
.btpf-filters__head .btpf-link { font-size: 13px; }

.btpf-facet { border-bottom: 1.5px solid var(--btpf-line); }
.btpf-facet summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 0 10px;
	list-style: none;
	cursor: pointer;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 17px;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--btpf-navy);
}
.btpf-facet summary::-webkit-details-marker { display: none; }
.btpf-facet summary .btpf-icon { color: var(--btpf-rust); transition: transform .2s; }
.btpf-facet:not([open]) summary .btpf-icon { transform: rotate(-90deg); }
.btpf-facet__opts { display: grid; gap: 2px; padding-bottom: 12px; }

.btpf-opt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	padding: 4px 0;
	cursor: pointer;
	font-size: 14.5px;
	color: var(--btpf-text);
}
.btpf-opt__box { width: 18px; height: 18px; font-size: 12px; border-radius: 3px; }
.btpf-opt input:checked + .btpf-opt__box {
	background: var(--btpf-gold);
	border-color: var(--btpf-gold);
	color: var(--btpf-navy);
}
.btpf-opt__label { flex: 1; }
.btpf-opt__count { font-size: 12px; color: var(--btpf-muted); font-variant-numeric: tabular-nums; }
.btpf-opt.is-empty { opacity: .45; }

.btpf-filters__done { display: none !important; }

/* Toolbar */
.btpf-toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.btpf-toolbar__count { flex: 1; color: var(--btpf-muted); font-size: 15px; }
.btpf-toolbar__controls { display: flex; gap: 10px; }

.btpf-select { position: relative; display: inline-flex; align-items: center; margin: 0 !important; }
.btpf-select select {
	appearance: none;
	height: 38px !important;
	margin: 0 !important;
	padding: 0 36px 0 14px !important;
	background: #fff !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 4px !important;
	color: var(--btpf-text) !important;
	font: 14px var(--btpf-body) !important;
	cursor: pointer;
}
.btpf-select .btpf-icon { position: absolute; right: 12px; pointer-events: none; color: var(--btpf-rust); }

.btpf-layout { display: flex; border: 1.5px solid var(--btpf-line); border-radius: 4px; overflow: hidden; }
.btpf-layout button {
	display: grid;
	place-items: center;
	width: 40px;
	height: 35px;
	color: var(--btpf-muted) !important;
	font-size: 18px;
	background: #fff !important;
}
.btpf-layout button[aria-pressed="true"] { background: var(--btpf-gold) !important; color: var(--btpf-navy) !important; }

.btpf-filtertoggle {
	display: none !important;
	align-items: center;
	gap: 8px;
	height: 38px;
	padding: 0 14px !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase !important;
	color: var(--btpf-navy) !important;
}
.btpf-filtertoggle .btpf-icon { color: var(--btpf-rust); }

/* Chips */
.btpf-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 16px 0 0;
}
.btpf-chips:empty { display: none; }
.btpf-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px !important;
	background: var(--btpf-bg) !important;
	border: 1.5px solid var(--btpf-line) !important;
	border-radius: 999px !important;
	font-size: 13.5px;
	color: var(--btpf-text) !important;
}
.btpf-chip .btpf-icon { color: var(--btpf-rust); }
.btpf-chip:hover { border-color: var(--btpf-gold) !important; }
.btpf-chips .btpf-link { font-size: 13.5px; }

/* Banner */
.btpf-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 20px;
	padding: 18px 22px;
	background: var(--btpf-navy);
	border-left: 5px solid var(--btpf-gold);
	border-radius: var(--btpf-radius);
	color: #fff;
}
.btpf-banner p { flex: 1 1 320px; font-size: 16px; }

/* Cards */
.btpf-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 20px;
}

.btpf-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 24px 22px 20px;
	background: var(--btpf-surface);
	border: 1.5px solid var(--btpf-line);
	border-radius: var(--btpf-radius);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.btpf-card:hover {
	border-color: #c4d2e2;
	box-shadow: var(--btpf-shadow);
	transform: translateY(-2px);
}
.btpf-card.is-featured { border-color: var(--btpf-gold); background: #fbf6ea; }

.btpf-card__top { display: flex; align-items: flex-start; justify-content: space-between; }
.btpf-card__icon { color: var(--btpf-rust); font-size: 28px; display: inline-flex; }

.btpf-heart {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin: -6px -6px 0 0 !important;
	border-radius: 50% !important;
	color: var(--btpf-muted) !important;
	font-size: 20px;
	transition: color .15s, background .15s;
}
.btpf-heart:hover { background: rgba(11, 35, 64, .06) !important; color: var(--btpf-rust) !important; }
.btpf-heart[aria-pressed="true"] { color: var(--btpf-rust) !important; }
.btpf-heart[aria-pressed="true"] .btpf-icon { fill: currentColor; }

.btpf-card__main { flex: 1; }

.btpf-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px !important; }
.btpf-badge {
	padding: 2px 8px;
	background: #e5ebf3;
	border-radius: 3px;
	font-size: 12px;
	font-weight: 600;
	color: var(--btpf-muted);
}
.btpf-badge--gold { background: var(--btpf-gold); color: var(--btpf-navy); }

.btpf-card__title {
	margin-top: 14px !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.1;
	color: var(--btpf-navy);
}
.btpf-card__title a { color: inherit !important; }
/* Whole card is clickable via the title link. */
.btpf-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

.btpf-card__desc {
	margin-top: 10px !important;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--btpf-muted);
}

.btpf-card__meta {
	display: grid;
	gap: 6px;
	margin-top: 16px !important;
	padding-top: 14px !important;
	border-top: 1.5px solid var(--btpf-line);
	font-size: 13.5px;
	color: var(--btpf-muted);
}
.btpf-card__meta li { display: flex; align-items: flex-start; gap: 8px; }
.btpf-card__meta .btpf-icon { margin-top: 3px; color: var(--btpf-rust); font-size: 14px; }

.btpf-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 16px;
	color: var(--btpf-rust) !important;
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.btpf-card:hover .btpf-card__cta .btpf-icon { transform: translateX(3px); }
.btpf-card__cta .btpf-icon { transition: transform .15s; }

/* List layout */
.btpf-cards--list { grid-template-columns: 1fr; gap: 12px; }
.btpf-cards--list .btpf-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) minmax(200px, 280px) auto;
	grid-template-areas: "icon main meta cta";
	align-items: center;
	gap: 24px;
	padding: 18px 22px;
}
.btpf-cards--list .btpf-card__top { display: contents; }
.btpf-cards--list .btpf-card__icon { grid-area: icon; }
.btpf-cards--list .btpf-heart { position: absolute; top: 12px; right: 12px; margin: 0 !important; }
.btpf-cards--list .btpf-card__main { grid-area: main; }
.btpf-cards--list .btpf-card__title { margin-top: 0 !important; font-size: 23px; }
.btpf-cards--list .btpf-badges { margin: 0 0 6px !important; }
.btpf-cards--list .btpf-card__desc { margin-top: 4px !important; }
.btpf-cards--list .btpf-card__meta { grid-area: meta; margin: 0 !important; padding: 0 0 0 20px !important; border-top: 0; border-left: 1.5px solid var(--btpf-line); }
.btpf-cards--list .btpf-card__cta { grid-area: cta; margin: 0 40px 0 0; }

.btpf-more { display: flex; justify-content: center; margin-top: 36px; }

.btpf-group + .btpf-group { margin-top: 44px; }
.btpf-group:first-child { margin-top: 20px; }
.btpf-group__title {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--btpf-gold);
	font-family: var(--btpf-display);
	font-weight: 700;
	font-size: 26px;
	text-transform: uppercase;
	color: var(--btpf-navy);
}
.btpf-group__title span { font-family: var(--btpf-body); font-weight: 500; font-size: 14px; text-transform: none; color: var(--btpf-muted); }

.btpf-scrim { display: none; }

/* ======================================================================
 * Responsive
 * ==================================================================== */

@media (max-width: 1200px) {
	.btpf-cards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.btpf-cards--list .btpf-card { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "icon main cta" "icon meta cta"; }
	.btpf-cards--list .btpf-card__meta { padding: 0 !important; border-left: 0; }
}

@media (max-width: 960px) {
	.btpf-wizard__body { grid-template-columns: 1fr; min-height: 0; }
	.btpf-hero { min-height: 280px; padding: 32px 20px; }
	.btpf-hero__title { font-size: 34px; }
	.btpf-hero__text { font-size: 15.5px; }
	.btpf-step { padding: 32px 20px 44px; }
	.btpf-step__inner { max-width: 560px; margin: 0 auto; }

	.btpf-browser__body { grid-template-columns: 1fr; gap: 0; padding-top: 20px; }
	.btpf-filtertoggle { display: inline-flex !important; }

	.btpf-filters {
		position: fixed;
		inset: 0 auto 0 0;
		z-index: 100000;
		width: min(360px, 88vw);
		transform: translateX(-100%);
		visibility: hidden;
		transition: transform .25s ease, visibility 0s .25s;
	}
	.btpf-filters.is-open { transform: none; visibility: visible; transition: transform .25s ease; }
	.btpf-filters__panel {
		position: static;
		height: 100%;
		overflow-y: auto;
		border-radius: 0;
		border: 0;
		background: #fff;
	}
	.btpf-filters__done { display: flex !important; justify-content: center; width: 100% !important; margin-top: 20px !important; }
	.btpf-scrim:not([hidden]) {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 99999;
		background: rgba(11, 35, 64, .5);
	}
}

@media (max-width: 640px) {
	.btpf-topbar { padding: 10px 16px; }
	.btpf-topbar__home span { display: none; }
	.btpf-btn-ghost { padding: 7px 10px !important; font-size: 12px; }
	.btpf-choices--grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.btpf-choice { padding: 16px !important; }
	.btpf-choice__label { font-size: 17px; }

	.btpf-browser__head { padding: 24px 0 20px; }
	.btpf-tabs { width: 100%; }
	.btpf-tab { flex: 1 1 auto; padding: 8px 10px !important; font-size: 13px; }
	.btpf-searchrow { flex-direction: column; }
	.btpf-favbtn { justify-content: center; }
	.btpf-toolbar__count { order: 3; flex-basis: 100%; }
	.btpf-toolbar__controls { margin-left: auto; }

	.btpf-cards--grid,
	.btpf-cards--list { grid-template-columns: 1fr; }
	.btpf-cards--list .btpf-card { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon main" "meta meta" "cta cta"; gap: 12px 16px; }
	.btpf-cards--list .btpf-card__cta { margin: 0; }
	.btpf-card__title { font-size: 24px; }
}

html.btpf-lock,
html.btpf-lock body { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.btpf *, .btpf *::before, .btpf *::after { transition: none !important; }
}
