.btp-tool-directory {
	--directory-ink: #151b23;
	--directory-muted: #5e6875;
	--directory-line: #d8dde3;
	--directory-accent: #b85f0e;
	width: min(calc(100% - 40px), 1040px);
	margin-inline: auto;
	padding-bottom: 76px;
	color: var(--directory-ink);
}

[data-theme="dark"] .btp-tool-directory {
	--directory-ink: #f3f5f7;
	--directory-muted: #b4bec8;
	--directory-line: #344250;
	--directory-accent: #f5a14b;
}

.btp-tool-directory *,
.btp-tool-directory *::before,
.btp-tool-directory *::after {
	box-sizing: border-box;
}

.btp-tool-directory h1,
.btp-tool-directory h2,
.btp-tool-directory strong {
	letter-spacing: 0;
}

.btp-tool-directory__breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	padding: 24px 0;
	color: var(--directory-muted);
	font-size: 1rem;
}

.btp-tool-directory__breadcrumbs a {
	color: inherit;
	text-underline-offset: 4px;
}

.btp-tool-directory__header {
	padding: 44px 0 58px;
	border-bottom: 1px solid var(--directory-line);
}

.btp-tool-directory__header h1 {
	margin: 0;
	font-size: clamp(2.75rem, 6vw, 4.35rem);
	line-height: 1.02;
	overflow-wrap: anywhere;
}

.btp-tool-directory__header p {
	max-width: 680px;
	margin: 22px 0 0;
	color: var(--directory-muted);
	font-size: 1.16rem;
	line-height: 1.68;
}

.btp-tool-directory__group {
	display: grid;
	grid-template-columns: minmax(220px, .72fr) minmax(0, 1.7fr);
	gap: 52px 78px;
	align-items: start;
	padding: 68px 0;
	border-bottom: 1px solid var(--directory-line);
}

.btp-tool-directory__group + .btp-tool-directory__group {
	padding-top: 68px;
}

.btp-tool-directory__group > header {
	display: grid;
	gap: 15px;
}

.btp-tool-directory__group h2 {
	margin: 0;
	font-size: 2.15rem;
	line-height: 1.15;
}

.btp-tool-directory__group > header p {
	margin: 0;
	color: var(--directory-muted);
	font-size: 1rem;
	line-height: 1.65;
}

.btp-tool-directory__method a {
	color: var(--directory-accent);
	font-weight: 720;
	text-underline-offset: 5px;
}

.btp-tool-directory__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--directory-line);
	list-style: none;
}

.btp-tool-directory__list li {
	border-bottom: 1px solid var(--directory-line);
}

.btp-tool-directory__list a {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
	padding: 27px 2px;
	color: var(--directory-ink);
	text-decoration: none;
}

.btp-tool-directory__list a > span:first-child {
	display: grid;
	gap: 8px;
}

.btp-tool-directory__list strong {
	font-size: 1.2rem;
	line-height: 1.35;
}

.btp-tool-directory__list a > span:first-child > span {
	max-width: 760px;
	color: var(--directory-muted);
	font-size: 1rem;
	line-height: 1.62;
}

.btp-tool-directory__list a > span:last-child {
	color: var(--directory-accent);
	font-size: 1.35rem;
	transition: transform 160ms ease;
}

.btp-tool-directory__list a:hover strong {
	color: var(--directory-accent);
}

.btp-tool-directory__list a:hover > span:last-child {
	transform: translateX(4px);
}

.btp-tool-directory__empty {
	margin: 0;
	padding: 24px 0;
	border-block: 1px solid var(--directory-line);
	color: var(--directory-muted);
	font-size: 1rem;
}

.btp-tool-directory__method {
	display: grid;
	grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
	gap: 18px 64px;
	align-items: start;
	margin-top: 74px;
	padding-top: 44px;
	border-top: 1px solid var(--directory-line);
}

.btp-tool-directory__method h2 {
	grid-row: 1 / span 2;
	margin: 0;
	font-size: 1.55rem;
	line-height: 1.3;
}

.btp-tool-directory__method p {
	margin: 0;
	color: var(--directory-muted);
	font-size: 1rem;
	line-height: 1.65;
}

.btp-tool-directory__method a {
	width: fit-content;
}

.btp-tool-directory a:focus-visible {
	outline: 3px solid #f7931a;
	outline-offset: 4px;
}

@media (max-width: 700px) {
	.btp-tool-directory {
		width: min(calc(100% - 32px), 1040px);
		padding-bottom: 58px;
	}

	.btp-tool-directory__header {
		padding: 34px 0 44px;
	}

	.btp-tool-directory__header h1 {
		font-size: 2.75rem;
	}

	.btp-tool-directory__group,
	.btp-tool-directory__group + .btp-tool-directory__group {
		grid-template-columns: 1fr;
		gap: 26px;
		padding: 52px 0;
	}

	.btp-tool-directory__group > header {
		gap: 12px;
	}

	.btp-tool-directory__list a {
		gap: 18px;
		padding: 24px 0;
	}

	.btp-tool-directory__method {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-top: 58px;
	}

	.btp-tool-directory__method h2 {
		grid-row: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.btp-tool-directory__list a > span:last-child {
		transition: none;
	}
}
