/**
 * Broker archive and profile styles.
 *
 * Colours and type follow the SellerForce Elementor kit, referenced through the
 * kit's own custom properties so a palette change in Elementor carries over,
 * with the current values as fallbacks for the editor and for pages that load
 * before the kit stylesheet.
 */

.sf-brokers-page,
.sf-broker {
	--sf-accent: var( --e-global-color-accent, #006699 ) !important;
	--sf-ink: var( --e-global-color-primary, #00141E ) !important;
	--sf-tint: var( --e-global-color-30672a8, #EDF9FF ) !important;
	--sf-muted: var( --e-global-color-0045bf6, #788993 ) !important;
	--sf-haze: var( --e-global-color-6e083dd, #F1F3F4 ) !important;
	/* Reading grey: the kit's #788993 only reaches 3.6:1 on white, this one
	 * clears 8:1 while keeping the same blue bias as the rest of the palette. */
	--sf-slate: #3F4F5A !important;
	--sf-accent-dark: #004E75 !important;
	--sf-font: var( --e-global-typography-text-font-family, "Poppins" ), sans-serif !important;
	--sf-radius: 20px !important;
	--sf-shadow: 0 12px 34px rgba( 0, 20, 30, .08 ) !important;
	--sf-shadow-hover: 0 18px 44px rgba( 0, 102, 153, .18 ) !important;

	font-family: var( --sf-font ) !important;
	color: var( --sf-ink ) !important;
}

.sf-broker-container {
	width: 100% !important;
	max-width: 1240px !important;
	margin-inline: auto !important;
	padding-inline: 16px !important;
}

@media ( min-width: 1025px ) {
	.sf-broker-container {
		padding-inline: 10px !important;
	}
}

.sf-broker-container--narrow {
	max-width: 900px !important;
}

/* -------------------------------------------------------------------------
 * Button
 * ---------------------------------------------------------------------- */

.sf-broker-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	padding: 12px 36px !important;
	border: 2px solid var( --sf-accent ) !important;
	border-radius: 50px !important;
	background: var( --sf-accent ) !important;
	color: #fff !important;
	font-family: var( --e-global-typography-accent-font-family, "Poppins" ), sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	text-align: center !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease !important;
}

.sf-broker-button:hover,
.sf-broker-button:focus-visible {
	background: var( --sf-ink ) !important;
	border-color: var( --sf-ink ) !important;
	color: #fff !important;
}

.sf-broker-button--light {
	background: #fff !important;
	border-color: #fff !important;
	color: var( --sf-accent ) !important;
}

.sf-broker-button--light:hover,
.sf-broker-button--light:focus-visible {
	background: transparent !important;
	border-color: #fff !important;
	color: #fff !important;
}

/* -------------------------------------------------------------------------
 * Archive: hero
 * ---------------------------------------------------------------------- */

.sf-broker-hero {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	min-height: 70vh !important;
	padding: 80px 0 !important;
	background-color: var( --sf-ink ) !important;
	background-image: var( --sf-hero-image, none ) !important;
	background-position: top center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
}

/* The photograph fades into the ink over its lower half so the heading always
 * lands on a solid ground, whatever the crop shows. */
.sf-broker-hero::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background-image: linear-gradient(180deg, var( --e-global-color-4d311d6 ) 50%, var( --e-global-color-primary ) 65%);
}

.sf-broker-hero__inner {
	position: relative !important;
	z-index: 1 !important;
}

.sf-broker-hero__content {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	width: 100% !important;
}

.sf-broker-hero__eyebrow {
	margin: 0 !important;
	color: var( --sf-tint ) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
}

.sf-broker-hero__title {
	margin: 0 !important;
	color: #fff !important;
	font-family: var( --sf-font ) !important;
	font-size: clamp( 40px, 5.4vw, 70px ) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	text-wrap: balance !important;
}

@media ( min-width: 768px ) {
	.sf-broker-hero__content {
		width: 80% !important;
	}
}

@media ( min-width: 1280px ) {
	.sf-broker-hero__content {
		width: 60% !important;
	}
}

@media ( max-width: 1480px ) {
	.sf-broker-hero {
		min-height: 60vh !important;
	}
}

@media ( max-width: 1279px ) {
	.sf-broker-hero {
		min-height: 500px !important;
		padding: 40px 0 !important;
	}
}

@media ( max-width: 767px ) {
	.sf-broker-hero {
		min-height: 400px !important;
	}
}

.sf-brokers__lede {
	max-width: 68ch !important;
	margin: 48px 0 32px !important;
	color: var( --sf-ink ) !important;
	font-size: 17px !important;
	line-height: 1.7 !important;
}

/* -------------------------------------------------------------------------
 * Archive: filter bar
 * ---------------------------------------------------------------------- */

.sf-brokers {
	position: relative !important;
	padding-bottom: 72px !important;
}

.sf-brokers.is-loading .sf-brokers__results {
	opacity: .4 !important;
	pointer-events: none !important;
}

.sf-brokers__filter {
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
	margin: 0 0 40px !important;
	padding: 20px !important;
	border-radius: var( --sf-radius ) !important;
	background: linear-gradient( 135deg, var( --sf-accent ) 0%, var( --sf-ink ) 100% ) !important;
	box-shadow: var( --sf-shadow ) !important;
}

@media ( min-width: 1025px ) {
	.sf-brokers__filter {
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 32px !important;
		padding: 20px 24px !important;
	}
}

.sf-brokers__search {
	position: relative !important;
	display: block !important;
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: 340px !important;
}

.sf-brokers__search__input {
	width: 100% !important;
	height: 52px !important;
	margin: 0 !important;
	padding: 0 60px 0 24px !important;
	border: none !important;
	border-radius: 50px !important;
	background: #fff !important;
	color: var( --sf-ink ) !important;
	font-family: var( --sf-font ) !important;
	font-size: 15px !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.sf-brokers__search__input::placeholder {
	color: var( --sf-muted ) !important;
}

.sf-brokers__search__input:focus {
	outline: 3px solid rgba( 255, 255, 255, .45 ) !important;
	outline-offset: 2px !important;
}

.sf-brokers__search__submit {
	position: absolute !important;
	top: 50% !important;
	right: 6px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	transform: translateY( -50% ) !important;
	border: none !important;
	border-radius: 50% !important;
	background: var( --sf-accent ) !important;
	color: #fff !important;
	cursor: pointer !important;
	transition: background-color .25s ease !important;
}

.sf-brokers__search__submit:hover {
	background: var( --sf-accent-dark ) !important;
}

.sf-brokers__search__submit svg {
	width: 16px !important;
	height: 16px !important;
	display: block !important;
}

.sf-brokers__letters {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 4px !important;
}

.sf-brokers__letters__letter {
	min-width: 32px !important;
	padding: 5px 8px !important;
	border: 2px solid #fff !important;
	border-radius: 6px !important;
	background: #fff !important;
	color: var( --sf-accent ) !important;
	font-family: var( --sf-font ) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .5px !important;
	cursor: pointer !important;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease !important;
}

/* A letter no broker sits behind stays in place so the row never reflows, it
 * just recedes into the bar. */
.sf-brokers__letters__letter[disabled] {
	border-color: rgba( 255, 255, 255, .3 ) !important;
	background: transparent !important;
	color: rgba( 255, 255, 255, .5 ) !important;
	pointer-events: none !important;
	cursor: default !important;
}

.sf-brokers__letters__letter:hover,
.sf-brokers__letters__letter.is-current {
	border-color: #fff !important;
	background: var( --sf-accent ) !important;
	color: #fff !important;
}

/* -------------------------------------------------------------------------
 * Archive: grid
 * ---------------------------------------------------------------------- */

.sf-brokers__list {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 20px !important;
}

@media ( min-width: 561px ) {
	.sf-brokers__list {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) ) !important;
	}
}

@media ( min-width: 841px ) {
	.sf-brokers__list {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) ) !important;
	}
}

@media ( min-width: 1200px ) {
	.sf-brokers__list {
		grid-template-columns: repeat( 4, minmax( 0, 1fr ) ) !important;
	}
}

.sf-brokers__not-found {
	padding: 64px 0 !important;
	color: var( --sf-slate ) !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	text-align: center !important;
}

/* -------------------------------------------------------------------------
 * Archive: card
 * ---------------------------------------------------------------------- */

.sf-broker-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	border-radius: var( --sf-radius ) !important;
	background: #fff !important;
	box-shadow: var( --sf-shadow ) !important;
	transition: transform .3s ease, box-shadow .3s ease !important;
}

.sf-broker-card:hover {
	transform: translateY( -6px ) !important;
	box-shadow: var( --sf-shadow-hover ) !important;
}

.sf-broker-card__image {
	position: relative !important;
	width: 100% !important;
	padding-top: 112% !important;
	background: var( --sf-haze ) !important;
}

.sf-broker-card__image img {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: top center !important;
}

.sf-broker-card__meta {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	gap: 10px !important;
	padding: 20px 20px 24px !important;
}

.sf-broker-card__name {
	color: var( --sf-accent ) !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	text-align: center !important;
	text-decoration: none !important;
	transition: color .25s ease !important;
}

/* The name covers the whole card so the card reads as one link, the contact
 * rows sit above it and stay clickable in their own right. */
.sf-broker-card__name::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	z-index: 1 !important;
}

.sf-broker-card:hover .sf-broker-card__name {
	color: var( --sf-accent-dark ) !important;
}

.sf-broker-card__row {
	position: relative !important;
	z-index: 2 !important;
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	color: var( --sf-slate ) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
	overflow-wrap: anywhere !important;
}

a.sf-broker-card__row:hover {
	color: var( --sf-accent ) !important;
}

.sf-broker-card__icon {
	display: flex !important;
	flex: 0 0 20px !important;
	align-items: center !important;
	justify-content: center !important;
	width: 20px !important;
	color: var( --sf-accent ) !important;
}

.sf-broker-card__icon svg {
	width: 100% !important;
	height: auto !important;
	max-height: 18px !important;
}

.sf-broker-card__cta,
.sf-broker-card__cta:hover,
.sf-broker-card__cta:focus-visible {
	color: #fff !important;
}

.sf-broker-card__cta {
	position: relative !important;
	z-index: 2 !important;
	margin-top: auto !important;
	padding: 11px 20px !important;
	font-size: 13px !important;
	letter-spacing: 1.5px !important;
}

/* -------------------------------------------------------------------------
 * Archive: pagination
 * ---------------------------------------------------------------------- */

.sf-pagination {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	justify-content: center !important;
	margin: 48px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.sf-pagination li {
	padding: 0 !important;
	list-style: none !important;
}

.sf-pagination li::before {
	display: none !important;
}

.sf-pagination a,
.sf-pagination span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 42px !important;
	height: 42px !important;
	padding: 0 10px !important;
	border-radius: 50px !important;
	color: var( --sf-ink ) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: background-color .25s ease, color .25s ease !important;
}

.sf-pagination a:hover {
	background: var( --sf-tint ) !important;
	color: var( --sf-accent ) !important;
}

.sf-pagination span.current {
	background: var( --sf-accent ) !important;
	color: #fff !important;
}

/* -------------------------------------------------------------------------
 * Single broker
 * ---------------------------------------------------------------------- */

.sf-broker__intro {
	padding: 40px 0 56px !important;
	background: var( --sf-tint ) !important;
}

.sf-broker__back {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin-bottom: 28px !important;
	color: var( --sf-accent ) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
}

.sf-broker__back::before {
	content: "\2190" !important;
	font-size: 16px !important;
}

.sf-broker__back:hover {
	color: var( --sf-accent-dark ) !important;
}

.sf-broker__meta {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 28px !important;
	align-items: start !important;
}

@media ( min-width: 841px ) {
	.sf-broker__meta {
		grid-template-columns: minmax( 0, 400px ) minmax( 0, 1fr ) !important;
		gap: 48px !important;
		align-items: center !important;
	}
}

.sf-broker__photo {
	overflow: hidden !important;
	border-radius: var( --sf-radius ) !important;
	background: var( --sf-haze ) !important;
	box-shadow: var( --sf-shadow ) !important;
	aspect-ratio: 1 / 1.1 !important;
}

.sf-broker__photo img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: top center !important;
}

.sf-broker__details {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 18px !important;
}

.sf-broker__contacts {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.sf-broker__contact {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var( --sf-ink ) !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	overflow-wrap: anywhere !important;
}

.sf-broker__contact::before {
	display: none !important;
}

.sf-broker__contact a {
	color: var( --sf-ink ) !important;
	text-decoration: none !important;
}

.sf-broker__contact a:hover {
	color: var( --sf-accent ) !important;
}

.sf-broker__contact__icon {
	display: flex !important;
	flex: 0 0 42px !important;
	align-items: center !important;
	justify-content: center !important;
	width: 42px !important;
	height: 42px !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var( --sf-accent ) !important;
	box-shadow: 0 4px 14px rgba( 0, 20, 30, .07 ) !important;
}

.sf-broker__contact__icon svg {
	width: 18px !important;
	height: auto !important;
	max-height: 18px !important;
}

.sf-broker__bio {
	padding: 64px 0 !important;
	background: #fff !important;
}

.sf-broker__bio__title {
	margin: 0 0 24px !important;
	color: var( --sf-ink ) !important;
	font-family: var( --sf-font ) !important;
	font-size: clamp( 26px, 4vw, 36px ) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

.sf-broker__bio__text {
	color: var( --sf-ink ) !important;
	font-size: 17px !important;
	line-height: 1.8 !important;
}

.sf-broker__bio__text p {
	margin: 0 0 1.2em !important;
}

.sf-broker__bio__text p:last-child {
	margin-bottom: 0 !important;
}

.sf-broker__bio__text a {
	color: var( --sf-accent ) !important;
}

.sf-broker__outro {
	padding: 56px 0 !important;
	background: linear-gradient( 135deg, var( --sf-accent ) 0%, var( --sf-ink ) 100% ) !important;
	text-align: center !important;
}

.sf-broker__outro__title {
	margin: 0 0 24px !important;
	color: #fff !important;
	font-family: var( --sf-font ) !important;
	font-size: clamp( 24px, 4vw, 34px ) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

/* The other brokers sit on the outro's gradient, between its heading and the
 * button. Cards carry only photo, name and title, so the grid reads as a row of
 * people rather than a second directory. */
.sf-broker__others {
	margin: 0 0 32px !important;
	text-align: left !important;
}

.sf-broker-card--mini .sf-broker-card__meta {
	align-items: center !important;
	gap: 6px !important;
	padding: 18px 16px 22px !important;
}

.sf-broker-card__role {
	color: var( --sf-slate ) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	text-align: center !important;
}

.sf-broker__contact-form {
	padding: 64px 0 !important;
	background: var( --sf-haze ) !important;
}

/* Fallback for themes that do not ship the WordPress screen reader class. */
.sf-brokers .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect( 0, 0, 0, 0 ) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
