.ifsfdir-directory,
.ifsfdir-manage {
	--ifsfdir-accent: #8e1b2e;
	--ifsfdir-bg: #f3f1ee;
	--ifsfdir-card: #fff;
	--ifsfdir-ink: #22201d;
	--ifsfdir-muted: #8a8478;
	--ifsfdir-border: #e3dfd8;
	--ifsfdir-soft: #faf8f5;
	box-sizing: border-box;
	color: var(--ifsfdir-ink);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.ifsfdir-directory *,
.ifsfdir-directory *::before,
.ifsfdir-directory *::after,
.ifsfdir-manage *,
.ifsfdir-manage *::before,
.ifsfdir-manage *::after {
	box-sizing: border-box;
}

.ifsfdir-directory button,
.ifsfdir-directory input,
.ifsfdir-directory select,
.ifsfdir-manage button,
.ifsfdir-manage input,
.ifsfdir-manage select {
	font: inherit;
}

.ifsfdir-directory button,
.ifsfdir-manage button {
	cursor: pointer;
}

.ifsfdir-directory [hidden],
.ifsfdir-manage [hidden] {
	display: none !important;
}

.ifsfdir-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ifsfdir-directory {
	width: 100%;
	background: var(--ifsfdir-bg);
	border-radius: 16px;
	overflow: visible;
}

.ifsfdir-page-heading {
	padding: 27px 24px 20px;
	background: #fff;
	border-bottom: 1px solid var(--ifsfdir-border);
}

.ifsfdir-page-heading h2 {
	margin: 0;
	color: #181614;
	font-size: clamp(25px, 3vw, 34px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

.ifsfdir-layout {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	max-width: 1440px;
	margin: 0 auto;
	padding: 24px;
}

.ifsfdir-sidebar {
	position: sticky;
	top: 20px;
	flex: 0 0 288px;
	max-height: calc(100vh - 40px);
	padding: 20px;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 14px;
	scrollbar-color: #d8d3cc transparent;
	scrollbar-width: thin;
}

.ifsfdir-sidebar > * + *,
.ifsfdir-filter-section + .ifsfdir-filter-section {
	margin-top: 26px;
}

.ifsfdir-filter-section {
	min-width: 0;
	margin: 0;
}

.ifsfdir-filter-heading {
	margin: 0 0 12px;
	color: var(--ifsfdir-ink);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.ifsfdir-filter-group {
	min-width: 0;
	padding: 0;
	margin: 0;
	border: 0;
}

.ifsfdir-filter-group + .ifsfdir-filter-group {
	margin-top: 18px;
}

.ifsfdir-filter-group legend {
	width: 100%;
	padding: 0;
	margin: 0 0 9px;
	color: var(--group-colour, var(--ifsfdir-muted));
	font-size: 11.5px;
	font-weight: 750;
	letter-spacing: 0.045em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ifsfdir-check,
.ifsfdir-radio {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 6px 4px;
	margin: 0;
	color: var(--ifsfdir-ink);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.35;
	cursor: pointer;
}

.ifsfdir-check input,
.ifsfdir-radio input {
	position: relative;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	margin: 1px 0 0;
	appearance: none;
	background: #fff;
	border: 1.5px solid #d8d3cc;
	outline: none;
}

.ifsfdir-check input {
	border-radius: 5px;
}

.ifsfdir-radio {
	align-items: center;
	font-size: 13.5px;
}

.ifsfdir-radio input {
	margin-top: 0;
	border-radius: 50%;
}

.ifsfdir-check input:checked,
.ifsfdir-radio input:checked {
	background: var(--ifsfdir-accent);
	border-color: var(--ifsfdir-accent);
}

.ifsfdir-check input:checked::after {
	position: absolute;
	top: 0;
	left: 3px;
	color: #fff;
	content: "✓";
	font-size: 11px;
	font-weight: 800;
	line-height: 14px;
}

.ifsfdir-radio input:checked::after {
	position: absolute;
	inset: 3.5px;
	background: #fff;
	border-radius: inherit;
	content: "";
}

.ifsfdir-check input:focus-visible,
.ifsfdir-radio input:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ifsfdir-accent) 18%, transparent);
}

.ifsfdir-country-list {
	max-height: 220px;
	padding-right: 4px;
	overflow-y: auto;
	scrollbar-color: #d8d3cc transparent;
	scrollbar-width: thin;
}

.ifsfdir-results {
	flex: 1 1 auto;
	min-width: 0;
}

.ifsfdir-search {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
}

.ifsfdir-search svg {
	position: absolute;
	top: 50%;
	left: 15px;
	width: 19px;
	height: 19px;
	fill: none;
	stroke: #9a9488;
	stroke-linecap: round;
	stroke-width: 1.8;
	transform: translateY(-50%);
	pointer-events: none;
}

.ifsfdir-search input {
	width: 100%;
	height: 50px;
	padding: 12px 16px 12px 44px;
	margin: 0;
	color: var(--ifsfdir-ink);
	background: #fff;
	border: 1px solid #d8d3cc;
	border-radius: 12px;
	box-shadow: none;
	outline: none;
}

.ifsfdir-search input::placeholder {
	color: #9a9488;
	opacity: 1;
}

.ifsfdir-search input:focus {
	border-color: var(--ifsfdir-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ifsfdir-accent) 10%, transparent);
}

.ifsfdir-search--desktop {
	margin-bottom: 16px;
}

.ifsfdir-results-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.ifsfdir-result-summary {
	display: flex;
	gap: 5px;
	color: #5b564d;
	font-size: 14px;
	font-weight: 500;
}

.ifsfdir-result-summary strong {
	color: var(--ifsfdir-ink);
	font-weight: 750;
}

.ifsfdir-sort {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: #9a9488;
	font-size: 13px;
	font-weight: 500;
}

.ifsfdir-sort select {
	height: 34px;
	padding: 5px 30px 5px 10px;
	margin: 0;
	color: var(--ifsfdir-ink);
	font-size: 13px;
	font-weight: 650;
	background-color: #fff;
	border: 1px solid #d8d3cc;
	border-radius: 8px;
	outline: none;
}

.ifsfdir-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}

.ifsfdir-active-filters button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 8px 6px 12px;
	color: var(--ifsfdir-accent);
	font-size: 12.5px;
	font-weight: 650;
	line-height: 1.2;
	background: #fbedee;
	border: 1px solid #f0d3d6;
	border-radius: 999px;
}

.ifsfdir-active-filters button::after {
	display: grid;
	width: 17px;
	height: 17px;
	color: inherit;
	background: color-mix(in srgb, var(--ifsfdir-accent) 12%, transparent);
	border-radius: 50%;
	content: "×";
	font-size: 14px;
	line-height: 1;
	place-items: center;
}

.ifsfdir-active-filters .ifsfdir-clear-chip {
	padding-inline: 9px;
	color: #5b564d;
	background: transparent;
	border-color: transparent;
}

.ifsfdir-active-filters .ifsfdir-clear-chip::after {
	display: none;
}

.ifsfdir-table {
	overflow-x: auto;
	background: #fff;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 14px;
}

.ifsfdir-table-head,
.ifsfdir-table-row {
	display: grid;
	grid-template-columns: minmax(220px, 2.2fr) minmax(120px, 1fr) minmax(140px, 1.2fr) minmax(260px, 2.4fr);
	min-width: 820px;
	padding: 0 20px;
}

.ifsfdir-table-head {
	color: var(--ifsfdir-muted);
	font-size: 11.5px;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--ifsfdir-soft);
	border-bottom: 1px solid var(--ifsfdir-border);
}

.ifsfdir-table-head span {
	padding: 13px 8px;
}

.ifsfdir-table-head span:first-child {
	padding-left: 0;
}

.ifsfdir-table-row {
	width: 100%;
	margin: 0;
	color: var(--ifsfdir-ink);
	text-align: left;
	background: #fff;
	border: 0;
	border-bottom: 1px solid #f0ede7;
	border-radius: 0;
	box-shadow: none;
	appearance: none;
	transition: background-color 150ms ease;
}

.ifsfdir-table-row:last-child {
	border-bottom: 0;
}

.ifsfdir-table-row:hover,
.ifsfdir-table-row:focus-visible {
	background: #fbfaf8;
}

.ifsfdir-table-row:focus-visible {
	outline: 2px solid var(--ifsfdir-accent);
	outline-offset: -2px;
}

.ifsfdir-table-row > span {
	display: flex;
	align-items: center;
	min-width: 0;
	padding: 14px 8px;
	font-size: 13.5px;
}

.ifsfdir-table-row > span:first-child {
	padding-left: 0;
}

.ifsfdir-company-cell {
	gap: 10px;
}

.ifsfdir-company-copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.ifsfdir-company-copy strong {
	overflow: hidden;
	color: var(--ifsfdir-accent);
	font-size: 14.5px;
	font-weight: 750;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ifsfdir-company-copy small {
	color: #9a9488;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
}

.ifsfdir-logo {
	display: grid;
	flex: 0 0 auto;
	overflow: hidden;
	color: #fff;
	font-weight: 750;
	background: var(--avatar-colour);
	place-items: center;
}

.ifsfdir-logo img {
	display: block;
	width: 100%;
	height: 100%;
	padding: 5px;
	object-fit: contain;
	background: #fff;
}

.ifsfdir-logo--small {
	width: 36px;
	height: 36px;
	font-size: 13px;
	border-radius: 9px;
}

.ifsfdir-logo--large {
	width: 58px;
	height: 58px;
	font-size: 19px;
	border-radius: 13px;
}

.ifsfdir-logo--large img {
	padding: 7px;
}

.ifsfdir-level {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 4px 9px;
	font-size: 11.5px;
	font-weight: 750;
	line-height: 1.25;
	border-radius: 6px;
	white-space: nowrap;
}

.ifsfdir-level--gold {
	color: #8a6a0f;
	background: #fbf0d2;
}

.ifsfdir-level--silver {
	color: #5b5a62;
	background: #e7e7e9;
}

.ifsfdir-level--bronze {
	color: #8a5a32;
	background: #f0e0d2;
}

.ifsfdir-group-tags {
	display: flex !important;
	flex-wrap: wrap;
	gap: 5px;
}

.ifsfdir-group-tags > span {
	display: inline-flex;
	padding: 3px 8px;
	color: var(--group-colour);
	font-size: 11px;
	font-weight: 750;
	line-height: 1.35;
	background: var(--group-bg);
	border-radius: 6px;
}

.ifsfdir-cards,
.ifsfdir-mobile-searchbar {
	display: none;
}

.ifsfdir-empty {
	padding: 54px 24px;
	text-align: center;
	background: #fff;
	border: 1px dashed #d8d3cc;
	border-radius: 14px;
}

.ifsfdir-empty svg {
	width: 32px;
	height: 32px;
	fill: none;
	stroke: #8a8478;
	stroke-linecap: round;
	stroke-width: 1.4;
}

.ifsfdir-empty h3 {
	margin: 10px 0 4px;
	color: var(--ifsfdir-ink);
	font-size: 16px;
	font-weight: 750;
}

.ifsfdir-empty p {
	margin: 0 0 17px;
	color: var(--ifsfdir-muted);
	font-size: 14px;
}

.ifsfdir-empty button {
	padding: 10px 18px;
	color: #fff;
	font-size: 13.5px;
	font-weight: 750;
	background: var(--ifsfdir-accent);
	border: 0;
	border-radius: 9px;
}

.ifsfdir-detail-view {
	max-width: 900px;
	min-height: 500px;
	padding: 24px;
	margin: 0 auto;
}

.ifsfdir-back {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 0;
	margin: 0 0 16px;
	color: #5b564d;
	font-size: 13.5px;
	font-weight: 750;
	background: transparent;
	border: 0;
}

.ifsfdir-back:hover,
.ifsfdir-back:focus-visible {
	color: var(--ifsfdir-accent);
}

.ifsfdir-detail-card {
	padding: 28px;
	background: #fff;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 16px;
}

.ifsfdir-detail-header {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ifsfdir-detail-header > div {
	min-width: 0;
}

.ifsfdir-detail-header h3 {
	margin: 0;
	color: #181614;
	font-size: 23px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.ifsfdir-detail-header p {
	margin: 3px 0 0;
	color: #9a9488;
	font-size: 13.5px;
}

.ifsfdir-detail-header > .ifsfdir-level {
	margin-left: auto;
	padding: 6px 12px;
}

.ifsfdir-website-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	margin-top: 20px;
	background: var(--ifsfdir-soft);
	border-radius: 10px;
}

.ifsfdir-website-row > span {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.ifsfdir-website-row small {
	color: var(--ifsfdir-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.ifsfdir-website-row strong {
	overflow: hidden;
	color: var(--ifsfdir-ink);
	font-size: 13.5px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ifsfdir-website-row a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	flex: 0 0 auto;
	color: var(--ifsfdir-accent);
	font-size: 13px;
	font-weight: 750;
	text-decoration: none;
}

.ifsfdir-divider {
	height: 1px;
	margin: 24px 0;
	background: #edeae4;
}

.ifsfdir-detail-section + .ifsfdir-detail-section {
	margin-top: 28px;
}

.ifsfdir-detail-section h4 {
	margin: 0 0 12px;
	color: var(--ifsfdir-muted);
	font-size: 13px;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ifsfdir-standard-rows {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ifsfdir-standard-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	background: var(--ifsfdir-soft);
	border-radius: 9px;
}

.ifsfdir-standard-row > span {
	flex: 0 0 auto;
	padding: 2px 8px;
	color: var(--group-colour);
	font-size: 11px;
	font-weight: 750;
	background: var(--group-bg);
	border-radius: 6px;
}

.ifsfdir-standard-row strong {
	color: var(--ifsfdir-ink);
	font-size: 13.5px;
	font-weight: 650;
}

.ifsfdir-certification-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
	gap: 10px;
}

.ifsfdir-certification-cards > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 11px 14px;
	background: var(--ifsfdir-soft);
	border-radius: 9px;
}

.ifsfdir-certification-cards strong {
	color: var(--ifsfdir-ink);
	font-size: 13.5px;
	font-weight: 650;
}

.ifsfdir-certification-state {
	color: #9a9488;
	font-size: 11px;
	font-weight: 650;
	white-space: nowrap;
}

.ifsfdir-certification-state--certified {
	color: #1f7a47;
	font-weight: 750;
}

.ifsfdir-muted {
	color: var(--ifsfdir-muted);
	font-size: 13px;
}

.ifsfdir-filter-sheet {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
}

.ifsfdir-filter-backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	background: rgb(20 18 16 / 45%);
	border: 0;
	animation: ifsfdir-fade-in 180ms ease both;
}

.ifsfdir-filter-panel {
	position: relative;
	display: flex;
	width: min(360px, 88vw);
	height: 100%;
	margin-left: auto;
	flex-direction: column;
	background: #fff;
	box-shadow: -6px 0 24px rgb(0 0 0 / 18%);
	animation: ifsfdir-slide-in 220ms ease both;
}

.ifsfdir-filter-panel__header,
.ifsfdir-filter-panel__footer {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	border-color: var(--ifsfdir-border);
}

.ifsfdir-filter-panel__header {
	justify-content: space-between;
	border-bottom: 1px solid var(--ifsfdir-border);
}

.ifsfdir-filter-panel__header h3 {
	margin: 0;
	font-size: 16px;
	font-weight: 750;
}

.ifsfdir-filter-panel__header button {
	padding: 4px;
	color: #9a9488;
	font-size: 18px;
	line-height: 1;
	background: transparent;
	border: 0;
}

.ifsfdir-filter-panel__body {
	flex: 1 1 auto;
	padding: 18px;
	overflow-y: auto;
}

.ifsfdir-filter-panel__footer {
	border-top: 1px solid var(--ifsfdir-border);
}

.ifsfdir-button-primary,
.ifsfdir-button-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 42px;
	padding: 10px 18px;
	font-size: 13.5px;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none !important;
	border: 0;
	border-radius: 10px;
}

.ifsfdir-button-primary {
	color: #fff !important;
	background: var(--ifsfdir-accent);
}

.ifsfdir-button-secondary {
	color: #5b564d !important;
	background: #f0ede7;
}

.ifsfdir-filter-panel__footer .ifsfdir-button-secondary {
	flex: 1;
}

.ifsfdir-filter-panel__footer .ifsfdir-button-primary {
	flex: 2;
}

@keyframes ifsfdir-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ifsfdir-slide-in {
	from { transform: translateX(100%); }
	to { transform: translateX(0); }
}

/* Authenticated listing management */
.ifsfdir-manage {
	width: 100%;
	overflow: hidden;
	background: #f5f3f0;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 16px;
}

.ifsfdir-manage-header {
	padding: 28px 30px 25px;
	color: #fff;
	background: #2e2c2a;
}

.ifsfdir-manage-header h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.ifsfdir-manage-header p {
	max-width: 720px;
	margin: 7px 0 0;
	color: rgb(255 255 255 / 72%);
	font-size: 14px;
}

.ifsfdir-account-state {
	padding: 48px 30px;
	text-align: center;
	background: #fff;
}

.ifsfdir-account-state h3 {
	margin: 0 0 7px;
	color: var(--ifsfdir-ink);
	font-size: 20px;
	font-weight: 750;
}

.ifsfdir-account-state p {
	max-width: 620px;
	margin: 0 auto 20px;
	color: var(--ifsfdir-muted);
	font-size: 14px;
}

.ifsfdir-listing-switcher {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 13px 20px;
	overflow-x: auto;
	background: #fff;
	border-bottom: 1px solid var(--ifsfdir-border);
}

.ifsfdir-listing-switcher > span {
	margin-right: 3px;
	color: var(--ifsfdir-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.ifsfdir-listing-switcher a {
	padding: 6px 10px;
	color: #5b564d;
	font-size: 13px;
	font-weight: 650;
	text-decoration: none;
	background: #f3f1ee;
	border-radius: 7px;
	white-space: nowrap;
}

.ifsfdir-listing-switcher a[aria-current="page"] {
	color: #fff;
	background: var(--ifsfdir-accent);
}

.ifsfdir-notice {
	padding: 13px 18px;
	margin: 20px 24px 0;
	font-size: 13.5px;
	font-weight: 600;
	border-radius: 9px;
}

.ifsfdir-notice--success {
	color: #155d35;
	background: #e2f3e8;
	border: 1px solid #b9dec6;
}

.ifsfdir-notice--error {
	color: #7c1c2c;
	background: #fbedee;
	border: 1px solid #f0d3d6;
}

.ifsfdir-manage-form {
	padding: 24px;
}

.ifsfdir-manage-section {
	padding: 25px;
	background: #fff;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 14px;
}

.ifsfdir-manage-section + .ifsfdir-manage-section {
	margin-top: 18px;
}

.ifsfdir-manage-section__heading {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	padding-bottom: 18px;
	margin-bottom: 20px;
	border-bottom: 1px solid #eeeae4;
}

.ifsfdir-manage-section__heading > span {
	display: grid;
	flex: 0 0 31px;
	width: 31px;
	height: 31px;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	background: var(--ifsfdir-accent);
	border-radius: 8px;
	place-items: center;
}

.ifsfdir-manage-section__heading h3 {
	margin: 0;
	color: var(--ifsfdir-ink);
	font-size: 17px;
	font-weight: 750;
	line-height: 1.3;
}

.ifsfdir-manage-section__heading p {
	margin: 3px 0 0;
	color: var(--ifsfdir-muted);
	font-size: 13px;
}

.ifsfdir-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.ifsfdir-form-grid--certs {
	margin-top: 16px;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.ifsfdir-form-grid__wide {
	grid-column: 1 / -1;
}

.ifsfdir-form-grid label,
.ifsfdir-frontend-logo > label {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.ifsfdir-form-grid label > span,
.ifsfdir-frontend-logo > label > span {
	color: #4f4a43;
	font-size: 12.5px;
	font-weight: 700;
}

.ifsfdir-form-grid label b {
	color: var(--ifsfdir-accent);
}

.ifsfdir-form-grid input,
.ifsfdir-form-grid select {
	width: 100%;
	height: 44px;
	padding: 9px 12px;
	margin: 0;
	color: var(--ifsfdir-ink);
	background: #fff;
	border: 1px solid #d8d3cc;
	border-radius: 9px;
	box-shadow: none;
	outline: none;
}

.ifsfdir-form-grid input:focus,
.ifsfdir-form-grid select:focus {
	border-color: var(--ifsfdir-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ifsfdir-accent) 10%, transparent);
}

.ifsfdir-form-grid small,
.ifsfdir-frontend-logo small {
	color: var(--ifsfdir-muted);
	font-size: 11.5px;
}

.ifsfdir-frontend-logo {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr) auto;
	align-items: center;
	gap: 15px;
	padding: 16px;
	margin-top: 18px;
	background: var(--ifsfdir-soft);
	border-radius: 11px;
}

.ifsfdir-frontend-logo__preview {
	display: grid;
	width: 64px;
	height: 64px;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ifsfdir-border);
	border-radius: 11px;
	place-items: center;
}

.ifsfdir-frontend-logo__preview img {
	width: 100%;
	height: 100%;
	padding: 7px;
	object-fit: contain;
}

.ifsfdir-frontend-logo__preview span {
	display: grid;
	width: 100%;
	height: 100%;
	color: #fff;
	font-size: 18px;
	font-weight: 750;
	background: var(--avatar-colour);
	place-items: center;
}

.ifsfdir-frontend-logo input[type="file"] {
	width: 100%;
	color: #5b564d;
	font-size: 12px;
}

.ifsfdir-remove-logo {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	color: #7c1c2c;
	font-size: 12px;
	font-weight: 650;
	white-space: nowrap;
}

.ifsfdir-manage-standard-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ifsfdir-manage-standard-groups fieldset {
	min-width: 0;
	padding: 15px;
	margin: 0;
	background: color-mix(in srgb, var(--group-bg) 45%, #fff);
	border: 1px solid color-mix(in srgb, var(--group-colour) 20%, #e3dfd8);
	border-radius: 11px;
}

.ifsfdir-manage-standard-groups legend {
	padding: 0 6px;
	color: var(--group-colour);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ifsfdir-manage-standard-groups label {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 7px 4px;
	margin: 0;
	cursor: pointer;
}

.ifsfdir-manage-standard-groups input {
	flex: 0 0 auto;
	margin: 3px 0 0;
	accent-color: var(--ifsfdir-accent);
}

.ifsfdir-manage-standard-groups label > span {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.ifsfdir-manage-standard-groups strong {
	color: var(--ifsfdir-ink);
	font-size: 12.5px;
	font-weight: 700;
}

.ifsfdir-manage-standard-groups small {
	color: var(--ifsfdir-muted);
	font-size: 10.5px;
	line-height: 1.35;
}

.ifsfdir-readonly-status {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px;
}

.ifsfdir-readonly-status > div {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 12px 14px;
	background: var(--ifsfdir-soft);
	border-radius: 9px;
}

.ifsfdir-readonly-status small {
	color: var(--ifsfdir-muted);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.ifsfdir-readonly-status strong {
	margin-top: 2px;
	color: var(--ifsfdir-ink);
	font-size: 13px;
	font-weight: 700;
}

.ifsfdir-manage-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 18px;
	padding: 20px 3px 2px;
}

.ifsfdir-manage-actions p {
	margin: 0;
	color: var(--ifsfdir-muted);
	font-size: 12px;
}

.ifsfdir-manage-actions .ifsfdir-button-primary {
	min-width: 132px;
}

@media (max-width: 899px) {
	.ifsfdir-page-heading {
		padding: 18px 16px 14px;
	}

	.ifsfdir-mobile-searchbar {
		position: sticky;
		top: 0;
		z-index: 20;
		display: flex;
		gap: 8px;
		padding: 12px 16px;
		background: var(--ifsfdir-bg);
		border-bottom: 1px solid var(--ifsfdir-border);
	}

	.ifsfdir-mobile-searchbar .ifsfdir-search {
		flex: 1;
	}

	.ifsfdir-mobile-searchbar .ifsfdir-search input {
		height: 44px;
		padding-left: 39px;
		font-size: 15px;
		border-radius: 10px;
	}

	.ifsfdir-mobile-searchbar .ifsfdir-search svg {
		left: 13px;
		width: 17px;
		height: 17px;
	}

	.ifsfdir-filter-trigger {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		padding: 0 15px;
		color: var(--ifsfdir-ink);
		font-size: 13.5px;
		font-weight: 700;
		background: #fff;
		border: 1px solid #d8d3cc;
		border-radius: 10px;
	}

	.ifsfdir-filter-trigger span {
		display: inline-grid;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		color: #fff;
		font-size: 10.5px;
		background: var(--ifsfdir-accent);
		border-radius: 999px;
		place-items: center;
	}

	.ifsfdir-layout {
		display: block;
		padding: 16px;
	}

	.ifsfdir-sidebar,
	.ifsfdir-search--desktop,
	.ifsfdir-sort,
	.ifsfdir-table {
		display: none;
	}

	.ifsfdir-results-toolbar {
		margin-bottom: 12px;
	}

	.ifsfdir-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

	.ifsfdir-card {
		display: flex;
		width: 100%;
		padding: 14px;
		margin: 0;
		flex-direction: column;
		gap: 10px;
		color: var(--ifsfdir-ink);
		text-align: left;
		background: #fff;
		border: 1px solid var(--ifsfdir-border);
		border-radius: 13px;
		box-shadow: none;
	}

	.ifsfdir-card:focus-visible {
		outline: 2px solid var(--ifsfdir-accent);
		outline-offset: 2px;
	}

	.ifsfdir-card__top {
		display: flex;
		align-items: center;
		gap: 11px;
		width: 100%;
	}

	.ifsfdir-card__top .ifsfdir-company-copy {
		flex: 1;
	}

	.ifsfdir-card__top .ifsfdir-level {
		margin-left: auto;
	}

	.ifsfdir-active-filters {
		margin-bottom: 12px;
	}

	.ifsfdir-detail-view {
		min-height: 400px;
		padding: 16px;
	}

	.ifsfdir-detail-card {
		padding: 20px;
	}

	.ifsfdir-detail-header {
		align-items: flex-start;
		flex-wrap: wrap;
		gap: 12px;
	}

	.ifsfdir-detail-header h3 {
		font-size: 20px;
	}

	.ifsfdir-detail-header > .ifsfdir-level {
		margin-left: 0;
	}

	.ifsfdir-website-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.ifsfdir-standard-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.ifsfdir-manage-header {
		padding: 23px 20px;
	}

	.ifsfdir-manage-form {
		padding: 15px;
	}

	.ifsfdir-manage-section {
		padding: 19px;
	}

	.ifsfdir-form-grid,
	.ifsfdir-manage-standard-groups {
		grid-template-columns: 1fr;
	}

	.ifsfdir-frontend-logo {
		grid-template-columns: 64px minmax(0, 1fr);
	}

	.ifsfdir-remove-logo {
		grid-column: 1 / -1;
	}

	.ifsfdir-manage-actions {
		align-items: stretch;
		flex-direction: column;
	}
}

@media (max-width: 479px) {
	.ifsfdir-mobile-searchbar {
		padding-inline: 10px;
	}

	.ifsfdir-layout {
		padding: 12px 10px 16px;
	}

	.ifsfdir-filter-trigger {
		padding-inline: 11px;
	}

	.ifsfdir-card {
		padding: 12px;
	}

	.ifsfdir-detail-view {
		padding-inline: 10px;
	}

	.ifsfdir-detail-card {
		padding: 16px;
	}

	.ifsfdir-certification-cards {
		grid-template-columns: 1fr;
	}

	.ifsfdir-manage-section {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ifsfdir-filter-backdrop,
	.ifsfdir-filter-panel {
		animation: none;
	}
}
