/**
 * Clinic search archive — three-term bar + results (docs/website-redesign/archive-types.md).
 * Rule: the grey canvas only separates blocks; everything lives inside a white panel.
 */

body.fkz-search-page #masthead:not(.fkz-site-header),
body.fkz-search-page .elementor-location-header,
body.fkz-search-page .site-footer:not(.fkz-site-footer),
body.fkz-search-page .elementor-location-footer {
	display: none !important;
}

body.fkz-search-page #page,
body.fkz-search-page .site,
body.fkz-search-page #content,
body.fkz-search-page main.site-main {
	border: none;
	box-shadow: none;
	margin: 0 !important;
	max-width: none;
	padding: 0 !important;
	width: 100%;
}

html:has(body.fkz-search-page),
body.fkz-search-page {
	background: var(--fkz-bg-page);
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.fkz-search-page #comments,
body.fkz-search-page .comments-area,
body.fkz-search-page #respond {
	display: none;
}

.fkz-search {
	box-sizing: border-box;
	color: var(--fkz-ink);
	display: flex;
	flex-direction: column;
	font-family: var(--fkz-font);
	gap: var(--fkz-gap);
	margin: var(--fkz-gap) auto 0;
	max-width: var(--fkz-max-desktop);
	position: relative;
	width: 100%;
	z-index: 1;
}

.fkz-search-panel {
	background: var(--fkz-bg-surface);
	border-radius: var(--fkz-radius-card);
	box-sizing: border-box;
	padding: 14px;
	position: relative;
}

/* ---------- results ---------- */
.fkz-sr {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 60vh;
}

.fkz-sr__head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
}

/* Page heading = archive hero size (18px; phone 16px). The theme's h1 size must not leak in. */
body.fkz-search-page .fkz-sr__title,
.fkz-sr__title {
	color: var(--fkz-ink);
	font-family: var(--fkz-font);
	font-size: 18px !important;
	font-weight: 800;
	line-height: 1.7 !important;
	margin: 0;
	text-wrap: balance;
}

.fkz-sr__sort {
	display: flex;
	gap: 6px;
}

.fkz-sr__chip {
	align-items: center;
	background: var(--fkz-neutral-btn) !important;
	border: 1px solid var(--fkz-border) !important;
	border-radius: var(--fkz-radius-pill);
	box-shadow: none !important;
	color: var(--fkz-ink) !important;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--fkz-font);
	font-size: var(--fkz-fs-secondary);
	padding: 3px 14px;
	text-decoration: none;
	white-space: nowrap;
}

.fkz-sr__chip[hidden] {
	display: none;
}

.fkz-sr__chip.is-active {
	background: var(--fkz-badge-insurance-bg) !important;
	border-color: transparent !important;
	color: var(--fkz-badge-insurance-fg) !important;
	font-weight: 800;
}

.fkz-sr__notice {
	background: var(--fkz-neutral-btn);
	border-radius: var(--fkz-radius-lg);
	color: var(--fkz-body);
	font-size: var(--fkz-fs-body);
	line-height: var(--fkz-lh-body);
	margin: 0;
	padding: 8px 14px;
}

/* Related directory pages — one line: label · short chips · «همه» (prototype look: chips on the strip's own tint, hairline border). */
.fkz-sr__dirs {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border-radius: var(--fkz-radius-lg);
	display: flex;
	gap: 10px;
	padding: 8px 12px;
}

.fkz-sr__dirs-toggle {
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--fkz-ink) !important;
	cursor: default;
	display: inline-flex;
	flex: none;
	font-family: var(--fkz-font);
	font-size: var(--fkz-fs-secondary);
	font-weight: 800;
	gap: 6px;
	padding: 0;
	white-space: nowrap;
}

.fkz-sr__dirs-count,
.fkz-sr__dirs-chev {
	display: none;
}

.fkz-sr__dirs-list {
	display: flex;
	flex: 1;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}

.fkz-sr__dir {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-pill);
	color: var(--fkz-ink) !important;
	display: inline-flex;
	font-size: var(--fkz-fs-secondary);
	gap: 6px;
	line-height: 1.8;
	max-width: 100%;
	padding: 1px 12px;
	text-decoration: none !important;
	transition: border-color 0.16s ease, color 0.16s ease;
}

.fkz-sr__dir-text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fkz-sr__dir:hover,
.fkz-sr__dir:focus-visible {
	border-color: var(--fkz-primary);
	color: var(--fkz-primary-hover) !important;
}

.fkz-sr__dirs > .fkz-sr__more {
	flex: none;
}

.fkz-sr__vizhe {
	align-self: flex-start;
}

.fkz-sr__vizhe {
	background: var(--fkz-badge-open-bg);
	border-radius: var(--fkz-radius-pill);
	color: var(--fkz-badge-open-fg);
	font-size: var(--fkz-fs-micro);
	font-weight: 800;
	padding: 0 8px;
}

.fkz-sr__more {
	align-items: center;
	color: var(--fkz-primary) !important;
	display: inline-flex;
	font-size: var(--fkz-fs-secondary);
	font-weight: 700;
	gap: 4px;
	text-decoration: none;
	white-space: nowrap;
}

.fkz-sr__more:hover,
.fkz-sr__more:focus-visible {
	color: var(--fkz-ink) !important;
}

.fkz-sr__full {
	align-items: center;
	background: var(--fkz-badge-insurance-bg);
	border-radius: var(--fkz-radius-lg);
	color: var(--fkz-badge-insurance-fg);
	display: flex;
	gap: 10px;
	justify-content: space-between;
	padding: 10px 14px;
	text-decoration: none;
}

.fkz-sr__full strong {
	display: block;
	font-size: var(--fkz-fs-body);
}

.fkz-sr__full small {
	display: block;
	font-size: var(--fkz-fs-caption);
	font-weight: 500;
}

.fkz-sr__full .fkz-sr__more {
	color: var(--fkz-badge-insurance-fg) !important;
}

.fkz-sr__cards {
	align-content: start;
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ---------- layout with the «دقیق‌تر کنید» side column (desktop) ---------- */
.fkz-search__body {
	align-items: start;
	display: grid;
	gap: var(--fkz-gap);
	/* the shared side-column width (profile, directory; design-system.md §5): the archive map will sit here too */
	grid-template-columns: var(--fkz-sidebar) minmax(0, 1fr);
}

.fkz-search__body--full {
	grid-template-columns: minmax(0, 1fr);
}

/* Side column (map-architecture.md §4.3.1): compact filters, the map under them. Desktop: sticky together, the map fills
   the rest of the screen height; its z-index keeps a filter's floating list above the cards and the map. */
.fkz-search__side {
	display: flex;
	flex-direction: column;
	gap: var(--fkz-gap);
	position: sticky;
	top: calc(var(--fkz-gap) + var(--wp-admin--admin-bar--height, 0px));
	z-index: 2;
}

.fkz-search__side:has(> .fkz-directory-map:not([hidden])) {
	height: calc(100vh - 2 * var(--fkz-gap) - var(--wp-admin--admin-bar--height, 0px));
	min-height: 420px;
}

.fkz-search__side > .fkz-directory-map {
	flex: 1;
	min-height: 0;
}

.fkz-search__side .fkz-directory-map__canvas {
	flex: 1;
	min-height: 260px;
}

/* the white results block reaches the bottom of the column when the cards are fewer (the canvas only separates) */
.fkz-search__body > .fkz-sr {
	align-self: stretch;
}

.fkz-rf {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px;
}

.fkz-rf__title {
	color: var(--fkz-ink);
	font-size: var(--fkz-fs-body);
	font-weight: 800;
	padding: 2px 8px 6px;
}

/* one row per group; its list floats over the map (an accordion would push the map down) */
.fkz-rf__group {
	position: relative;
}

.fkz-rf__row {
	align-items: center;
	border-radius: var(--fkz-radius-md);
	color: var(--fkz-ink);
	cursor: pointer;
	display: flex;
	font-size: var(--fkz-fs-secondary);
	gap: 8px;
	list-style: none;
	min-height: 44px;
	padding: 0 8px;
}

.fkz-rf__row::-webkit-details-marker {
	display: none;
}

.fkz-rf__row svg {
	color: var(--fkz-muted);
	flex-shrink: 0;
}

.fkz-rf__label {
	font-weight: 700;
}

.fkz-rf__hint {
	color: var(--fkz-subtle);
	font-size: var(--fkz-fs-caption);
	margin-inline-start: auto;
}

.fkz-rf__chev {
	color: var(--fkz-muted);
	display: inline-flex;
	transition: transform 0.16s ease;
}

.fkz-rf__group[open] .fkz-rf__chev {
	transform: rotate(180deg);
}

.fkz-rf__row:hover,
.fkz-rf__row:focus-visible,
.fkz-rf__group[open] > .fkz-rf__row {
	background: var(--fkz-neutral-btn);
}

.fkz-rf__menu {
	background: var(--fkz-bg-surface);
	border-radius: var(--fkz-radius-xl);
	box-shadow: var(--fkz-shadow-card);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 2px;
	left: 0;
	max-height: 340px;
	overflow-y: auto;
	padding: 10px;
	position: absolute;
	right: 0;
	top: calc(100% + 4px);
	z-index: 40;
}

.fkz-rf__opt {
	align-items: center;
	border-radius: var(--fkz-radius-md);
	color: var(--fkz-ink) !important;
	display: flex;
	font-size: var(--fkz-fs-secondary);
	gap: 8px;
	min-height: 36px;
	padding: 0 8px;
	text-decoration: none !important;
}

.fkz-rf__opt small {
	color: var(--fkz-subtle);
	font-size: var(--fkz-fs-caption);
	margin-inline-start: auto;
}

.fkz-rf__opt:hover,
.fkz-rf__opt:focus-visible {
	background: var(--fkz-neutral-btn);
	color: var(--fkz-primary-hover) !important;
}

@media (prefers-reduced-motion: reduce) {
	.fkz-rf__chev {
		transition: none;
	}
}

/* ---------- one card for every clinic ---------- */
.fkz-sc {
	align-items: center;
	background: var(--fkz-bg-surface);
	border: 1px solid var(--fkz-card-line, rgba(18, 44, 58, 0.16));
	border-radius: var(--fkz-radius-xl);
	box-sizing: border-box;
	display: grid;
	gap: 10px 12px;
	grid-template-columns: 52px minmax(0, 1fr);
	padding: 12px;
	position: relative;
}

.fkz-sc__av {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border-radius: var(--fkz-radius-lg);
	color: var(--fkz-muted);
	display: flex;
	height: 52px;
	justify-content: center;
	overflow: hidden;
	width: 52px;
}

.fkz-sc__av img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.fkz-sc__body {
	min-width: 0;
}

.fkz-sc__name {
	color: var(--fkz-ink) !important;
	display: block;
	font-size: var(--fkz-fs-body);
	font-weight: 800;
	line-height: 1.7;
	text-decoration: none !important;
}

.fkz-sc__name:hover,
.fkz-sc__name:focus-visible {
	color: var(--fkz-primary-hover) !important;
}

.fkz-sc__addr {
	color: var(--fkz-subtle);
	font-size: var(--fkz-fs-caption);
	line-height: var(--fkz-lh-caption);
	overflow-wrap: anywhere;
}

/* Pin + address + distance flow as one text (the pin never ends up alone on a line when the address wraps). */
.fkz-sc__addr > * {
	display: inline;
}

.fkz-sc__addr .fkz-icon-wrap {
	display: inline-flex;
	margin-inline-end: 3px;
	vertical-align: -2px;
}

.fkz-sc__addr .fkz-sc__dist.is-visible {
	display: inline-flex;
	vertical-align: middle;
}

/* The paid star sits in the card's left corner: keep the name clear of it. */
.fkz-sc.is-paid .fkz-sc__name {
	display: block;
	overflow-wrap: anywhere;
	padding-inline-end: 0;
	padding-left: 32px;
}

.fkz-sc__dist {
	align-items: center;
	display: none;
	gap: 3px;
	white-space: nowrap;
}

.fkz-sc__dist.is-visible {
	display: inline-flex;
}

.fkz-sc__act {
	grid-column: 1 / -1;
}

.fkz-sc__tel {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-md);
	color: var(--fkz-ink) !important;
	display: flex;
	font-size: var(--fkz-fs-secondary);
	font-weight: 700;
	gap: 6px;
	justify-content: center;
	padding: 6px;
	text-decoration: none !important;
}

.fkz-sc__tel:hover,
.fkz-sc__tel:focus-visible {
	background: var(--fkz-badge-insurance-bg);
	color: var(--fkz-badge-insurance-fg) !important;
}

.fkz-sc__tel.is-off {
	color: var(--fkz-subtle) !important;
	font-weight: 500;
}

/* paid badge: a small star in the corner; dark rounded tag on hover (no native title) */
.fkz-sc__paid {
	align-items: center;
	background: var(--fkz-badge-open-bg);
	border-radius: var(--fkz-radius-pill);
	color: var(--fkz-badge-open-fg);
	cursor: default;
	display: inline-flex;
	height: 24px;
	justify-content: center;
	left: 10px;
	position: absolute;
	top: 10px;
	width: 24px;
}

.fkz-sc__paid::after {
	background: var(--fkz-ink);
	border-radius: var(--fkz-radius-sm);
	color: #fff;
	content: attr(data-tip);
	font-size: var(--fkz-fs-caption);
	font-weight: 700;
	left: 0;
	opacity: 0;
	padding: 3px 10px;
	pointer-events: none;
	position: absolute;
	top: -32px;
	transition: opacity 0.16s ease;
	white-space: nowrap;
}

.fkz-sc__paid:hover::after,
.fkz-sc__paid:focus-visible::after {
	opacity: 1;
}

/* ---------- pagination, empty, CTA ---------- */
.fkz-sr__pager {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}

.fkz-sr__pager .page-numbers {
	align-items: center;
	background: var(--fkz-bg-surface);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-sm);
	color: var(--fkz-ink);
	display: inline-flex;
	font-size: var(--fkz-fs-secondary);
	height: 32px;
	justify-content: center;
	min-width: 32px;
	padding: 0 10px;
	text-decoration: none;
}

.fkz-sr__pager .page-numbers.current {
	background: var(--fkz-primary);
	border-color: transparent;
	color: #fff;
}

.fkz-sr__empty {
	background: var(--fkz-neutral-btn);
	border-radius: var(--fkz-radius-lg);
	color: var(--fkz-body);
	display: grid;
	font-size: var(--fkz-fs-body);
	gap: 4px;
	padding: 20px;
	text-align: center;
}

.fkz-sr__empty strong {
	color: var(--fkz-ink);
}

.fkz-sr__cta {
	align-items: center;
	background: var(--fkz-bg-surface);
	border: 1px dashed var(--fkz-teal);
	border-radius: var(--fkz-radius-xl);
	color: var(--fkz-body);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--fkz-fs-body);
	gap: 12px;
	justify-content: space-between;
	margin-top: auto;
	padding: 12px 16px;
}

.fkz-sr__cta strong {
	color: var(--fkz-ink);
}

/* Wrapped (phones): the action stays at the end of the line, i.e. on the left in RTL (J1.6). */
.fkz-sr__cta .fkz-sr__cta-btn {
	margin-inline-start: auto;
}

.fkz-sr__cta-btn {
	background: var(--fkz-primary) !important;
	border-radius: var(--fkz-radius-md);
	color: #fff !important;
	font-size: var(--fkz-fs-secondary);
	font-weight: 700;
	padding: 6px 16px;
	text-decoration: none !important;
	white-space: nowrap;
}

.fkz-sr__cta-btn:hover,
.fkz-sr__cta-btn:focus-visible {
	background: var(--fkz-primary-hover) !important;
	color: #fff !important;
}

/* ---------- phone ---------- */
@media (max-width: 899px) {
	/* Same width as the site header: no side gutter of our own; tighter panel padding to give cards room. */
	.fkz-search-panel {
		padding: 10px;
	}

	.fkz-sr__cards {
		grid-template-columns: 1fr;
	}

	.fkz-search__body {
		grid-template-columns: minmax(0, 1fr);
	}

	.fkz-rf {
		display: none;
	}

	/* no side column on phones: the filters are hidden and the map opens full screen (directory-map.css) */
	.fkz-search__side {
		display: contents;
	}

	.fkz-sr__dirs {
		align-items: center;
		flex-wrap: wrap;
		gap: 8px;
		padding: 6px 12px;
	}

	.fkz-sr__dirs-toggle {
		cursor: pointer;
		flex: 1;
		justify-content: flex-start;
		min-height: 34px;
	}

	.fkz-sr__dirs-count {
		color: var(--fkz-subtle);
		display: inline;
		font-weight: 600;
	}

	.fkz-sr__dirs-chev {
		color: var(--fkz-muted);
		display: inline-flex;
		margin-inline-start: auto;
		transition: transform 0.16s ease;
	}

	.fkz-sr__dirs.is-open .fkz-sr__dirs-chev {
		transform: rotate(180deg);
	}

	.fkz-sr__dirs-list,
	.fkz-sr__dirs > .fkz-sr__more {
		display: none;
	}

	.fkz-sr__dirs.is-open .fkz-sr__dirs-list {
		display: flex;
		flex: 1 1 100%;
		padding-bottom: 4px;
	}

	.fkz-sr__dirs.is-open > .fkz-sr__more {
		display: inline-flex;
		padding-bottom: 6px;
	}

	body.fkz-search-page .fkz-sr__title,
	.fkz-sr__title {
		font-size: 16px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fkz-sc__paid::after {
		transition: none;
	}
}

/* ---------- term hubs (بیمه‌ها / مراکز / شهرها) ---------- */
.fkz-hub__head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	justify-content: space-between;
}

.fkz-hub__title {
	color: var(--fkz-ink);
	font-family: var(--fkz-font);
	font-size: 18px !important;
	font-weight: 800;
	line-height: 1.7 !important;
	margin: 0;
}

.fkz-hub__lead {
	color: var(--fkz-body);
	font-size: var(--fkz-fs-body);
	line-height: var(--fkz-lh-body);
	margin: 0;
}

.fkz-hub__find {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-xl);
	color: var(--fkz-subtle);
	display: flex;
	flex: 0 1 320px;
	gap: 8px;
	padding: 0 14px;
}

.fkz-hub__find input {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--fkz-ink);
	flex: 1;
	font-family: var(--fkz-font);
	font-size: var(--fkz-fs-body);
	min-height: 44px;
	min-width: 0;
	outline: 0;
}

.fkz-hub__tiles {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fkz-hub__tile {
	align-items: center;
	background: var(--fkz-bg-surface);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-xl);
	color: var(--fkz-ink) !important;
	display: grid;
	gap: 3px;
	justify-items: center;
	padding: 14px 8px;
	text-align: center;
	text-decoration: none !important;
	transition: border-color 0.16s ease;
}

.fkz-hub__tile:hover,
.fkz-hub__tile:focus-visible {
	border-color: var(--fkz-primary);
}

.fkz-hub__tile strong {
	font-size: var(--fkz-fs-secondary);
	line-height: 1.6;
}

.fkz-hub__tile small,
.fkz-hub__group small {
	color: var(--fkz-subtle);
	font-size: var(--fkz-fs-caption);
	font-weight: 500;
}

.fkz-hub__logo {
	align-items: center;
	background: var(--fkz-badge-insurance-bg);
	border-radius: 50%;
	color: var(--fkz-badge-insurance-fg);
	display: flex;
	height: 52px;
	justify-content: center;
	overflow: hidden;
	width: 52px;
}

.fkz-hub__logo img {
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.fkz-hub__group {
	border-bottom: 1px solid var(--fkz-border);
	padding: 4px 0;
}

.fkz-hub__group:last-of-type {
	border-bottom: 0;
}

.fkz-hub__group summary {
	align-items: center;
	color: var(--fkz-ink);
	cursor: pointer;
	display: flex;
	font-size: var(--fkz-fs-body);
	font-weight: 800;
	justify-content: space-between;
	list-style: none;
	padding: 10px 4px;
}

.fkz-hub__group summary::-webkit-details-marker {
	display: none;
}

.fkz-hub__chev {
	color: var(--fkz-muted);
	display: inline-flex;
	transition: transform 0.16s ease;
}

.fkz-hub__group[open] .fkz-hub__chev {
	transform: rotate(180deg);
}

.fkz-hub__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0 4px 10px;
}

.fkz-hub__chip {
	background: var(--fkz-neutral-btn);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-pill);
	color: var(--fkz-ink) !important;
	font-size: var(--fkz-fs-secondary);
	padding: 2px 12px;
	text-decoration: none !important;
}

.fkz-hub__chip:hover,
.fkz-hub__chip:focus-visible {
	border-color: var(--fkz-primary);
}

.fkz-hub__chip--all {
	background: var(--fkz-badge-insurance-bg);
	border-color: transparent;
	color: var(--fkz-badge-insurance-fg) !important;
	font-weight: 800;
}

.fkz-hub__none {
	color: var(--fkz-subtle);
	font-size: var(--fkz-fs-body);
	margin: 8px 0 0;
}

@media (max-width: 899px) {
	.fkz-hub__tiles {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fkz-hub__find {
		flex: 1 1 100%;
	}

	.fkz-hub__find input {
		font-size: 16px;
	}
}

/* ---------- name / address box inside the results ---------- */
.fkz-sr__find {
	align-items: center;
	display: flex;
	gap: 8px;
}

.fkz-sr__find-field {
	align-items: center;
	background: var(--fkz-neutral-btn);
	border: 1px solid var(--fkz-border);
	border-radius: var(--fkz-radius-xl);
	color: var(--fkz-subtle);
	display: flex;
	flex: 1;
	gap: 8px;
	min-width: 0;
	padding: 4px;
	padding-inline-start: 14px;
}

.fkz-sr__find input[type="search"] {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--fkz-ink);
	flex: 1;
	font-family: var(--fkz-font);
	font-size: var(--fkz-fs-body);
	min-height: 36px;
	min-width: 0;
	outline: 0;
}

/* the browser's own blue ✕ in a search field is hidden: the field has its own clear link (it also resets the page) */
.fkz-sr__find input[type="search"]::-webkit-search-cancel-button,
.fkz-sr__find input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
	appearance: none;
	display: none;
}

/* the real search button sits at the field's end (36px, inside the rounded field); the map's own icon is a 44px square beside it (phones) */
.fkz-sr__find .fkz-sr__find-go,
.fkz-sr__find .fkz-sr__find-go:hover,
.fkz-sr__find .fkz-sr__find-go:focus,
.fkz-sr__find .fkz-sr__find-go:active {
	align-items: center;
	background: var(--fkz-primary) !important;
	border: 0 !important;
	border-radius: var(--fkz-radius-md);
	box-shadow: none !important;
	color: #fff !important;
	cursor: pointer;
	display: inline-flex;
	flex: none;
	height: 36px;
	justify-content: center;
	padding: 0;
	width: 36px;
}

/* hover / keyboard focus of the search button: a shade darker (pointer devices only, so a phone does not keep it dark after a tap) */
.fkz-sr__find .fkz-sr__find-go {
	transition: background-color 0.16s ease;
}

@media (hover: hover) {
	.fkz-sr__find .fkz-sr__find-go:hover {
		background: var(--fkz-primary-hover) !important;
	}
}

.fkz-sr__find .fkz-sr__find-go:focus-visible {
	outline: 2px solid var(--fkz-primary-hover);
	outline-offset: 2px;
}

.fkz-sr .fkz-sr__find .fkz-directory-toolbar__map:not([hidden]),
.fkz-sr .fkz-sr__find .fkz-directory-toolbar__map:not([hidden]):hover,
.fkz-sr .fkz-sr__find .fkz-directory-toolbar__map:not([hidden]):focus,
.fkz-sr .fkz-sr__find .fkz-directory-toolbar__map:not([hidden]):active {
	border-radius: var(--fkz-radius-lg);
	height: 44px;
	justify-content: center;
	margin: 0;
	min-height: 44px;
	padding: 0;
	width: 44px;
}

/* the close ✕ of the remembered-city line (beats the theme's generic button style) */
body .fkz-sb__memo .fkz-sb__memo-x,
body .fkz-sb__memo .fkz-sb__memo-x:hover,
body .fkz-sb__memo .fkz-sb__memo-x:focus {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: inherit !important;
	cursor: pointer;
	font-size: var(--fkz-fs-secondary);
	margin-inline-start: auto;
	padding: 0 4px;
}

/* ---------- phone: the filter row (filter icon + service / city / insurance), the same block as the search box ---------- */
.fkz-sr__quick {
	display: none;
}

@media (max-width: 899px) {
	.fkz-sr__quick {
		display: flex;
		gap: 6px;
	}

	.fkz-sr .fkz-sr__quick button,
	.fkz-sr .fkz-sr__quick button:hover,
	.fkz-sr .fkz-sr__quick button:focus,
	.fkz-sr .fkz-sr__quick button:active {
		align-items: center;
		background: var(--fkz-neutral-btn) !important;
		border: 1px solid var(--fkz-border) !important;
		border-radius: var(--fkz-radius-lg);
		box-shadow: none !important;
		color: var(--fkz-ink) !important;
		cursor: pointer;
		display: inline-flex;
		font-family: var(--fkz-font);
		font-size: var(--fkz-fs-secondary);
		gap: 4px;
		height: 44px;
		justify-content: center;
		padding: 0 6px;
	}

	.fkz-sr .fkz-sr__quick .fkz-sr__qfilter {
		flex: none;
		position: relative;
		width: 44px;
	}

	.fkz-sr .fkz-sr__quick .fkz-sr__qbtn {
		flex: 1;
		min-width: 0;
	}

	/* a chosen term: filled, with its name */
	.fkz-sr .fkz-sr__quick .fkz-sr__qbtn.is-on,
	.fkz-sr .fkz-sr__quick .fkz-sr__qbtn.is-on:hover {
		background: var(--fkz-badge-insurance-bg) !important;
		border-color: transparent !important;
		color: var(--fkz-badge-insurance-fg) !important;
		font-weight: 700;
	}

	.fkz-sr__qtext {
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.fkz-sr__qcount {
		background: var(--fkz-primary);
		border-radius: 999px;
		color: #fff;
		font-size: var(--fkz-fs-micro);
		line-height: 1;
		padding: 3px 5px;
		position: absolute;
		right: -4px;
		top: -5px;
	}

	/* the «remembered city / insurance» line, moved under the filter buttons (search-archive.js): a quiet strip, not a card */
	.fkz-sr .fkz-sb__memo {
		align-items: center;
		background: var(--fkz-badge-insurance-bg);
		border-radius: var(--fkz-radius-lg);
		color: var(--fkz-badge-insurance-fg);
		display: flex;
		flex-wrap: wrap;
		gap: 4px;
		margin: 0;
		padding: 8px 12px;
	}

	.fkz-sr .fkz-sb__memo[hidden] {
		display: none;
	}

	.fkz-sr .fkz-sb__memo strong,
	.fkz-sr .fkz-sb__memo a {
		color: var(--fkz-badge-insurance-fg);
	}

	/* the bar's own section holds only the (hidden) form now: no empty card, but its location messages (memo) still show.
	   The 404 bar (data-mode=hero) keeps its card and fields (J2.2). */
	.fkz-sb--archive:not([data-mode="hero"]) {
		background: none;
		padding: 0;
	}

	.fkz-sb--archive:not([data-mode="hero"]):not(:has(.fkz-sb__memo:not([hidden]))) {
		display: none;
	}
}

.fkz-sr__find-clear,
.fkz-sr__notice a {
	color: var(--fkz-primary) !important;
	font-size: var(--fkz-fs-secondary);
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
}

/* 16px only where iOS Safari would zoom into a smaller field; everywhere else the site's 14px body size */
@supports (-webkit-touch-callout: none) {
	.fkz-sr__find input[type="search"] {
		font-size: 16px;
	}
}

/* Article under the insurance hub (templates/parts/hub-insurance-article.php): same type scale as the directory article body. */
.fkz-hub__article {
	color: var(--fkz-body);
	font-size: var(--fkz-fs-body);
	line-height: 2;
}

.fkz-hub__article h2 {
	color: var(--fkz-ink);
	font-family: var(--fkz-font);
	font-size: 15px !important;
	font-weight: 700;
	line-height: 1.5 !important;
	margin: 16px 0 6px;
}

.fkz-hub__article h2:first-child {
	margin-top: 0;
}

.fkz-hub__article p {
	margin: 0 0 1em;
}

.fkz-hub__article ul {
	margin: 0 0 1em;
	padding-inline-start: 20px;
}

.fkz-hub__article a {
	color: var(--fkz-badge-insurance-fg);
}

/* «پیدا نشد» (templates/404.php): a quiet page — one centred banner with a small drawing, then the archive search bar. */
.fkz-404 {
	display: flex;
	flex-direction: column;
	gap: var(--fkz-gap);
}

.fkz-404__hero {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 40px 20px 36px;
	text-align: center;
}

.fkz-404__art {
	color: var(--fkz-badge-insurance-fg);
	height: auto;
	margin-bottom: 14px;
	max-width: 100%;
	width: 150px;
}

.fkz-404__code {
	background: var(--fkz-badge-insurance-bg);
	border-radius: 999px;
	color: var(--fkz-badge-insurance-fg);
	font-size: var(--fkz-fs-caption);
	font-weight: 700;
	padding: 1px 12px;
}

.fkz-404__title {
	color: var(--fkz-ink);
	font-family: var(--fkz-font);
	font-size: 26px !important;
	font-weight: 800;
	line-height: 1.5 !important;
	margin: 0;
	text-wrap: balance;
}

.fkz-404__lead {
	color: var(--fkz-body);
	font-size: var(--fkz-fs-body);
	line-height: var(--fkz-lh-body);
	margin: 0 0 6px;
	max-width: 46ch;
}

@media (max-width: 599px) {
	.fkz-404__hero {
		padding: 28px 16px;
	}

	.fkz-404__title {
		font-size: 21px !important;
	}

	.fkz-404__art {
		width: 125px;
	}
}

/* A filter is being applied (search-archive.js apply()): the results dim and one spinner sits mid-screen until the new
   page comes — a reload with no sign looked like the filter did nothing (Mehdi 2026-11-10). */
html.fkz-results-loading .fkz-sr {
	opacity: 0.45;
	pointer-events: none;
	transition: opacity 0.15s;
}

html.fkz-results-loading body::after {
	animation: fkz-results-spin 0.8s linear infinite;
	border: 3px solid var(--fkz-border);
	border-radius: 50%;
	border-top-color: var(--fkz-primary);
	content: "";
	height: 34px;
	left: 50%;
	margin: -17px 0 0 -17px;
	position: fixed;
	top: 50%;
	width: 34px;
	z-index: 2147483001;
}

@keyframes fkz-results-spin {
	to {
		transform: rotate(360deg);
	}
}
