/**
 * Pegasus Home Search — Pegasus Care brand styles (v2.5.2)
 *
 * Elementor compatibility: !important is applied selectively to properties
 * Elementor's global widget styles tend to override (borders, radius, padding,
 * backgrounds, line-height). Layout/positional properties are left alone.
 *
 * Typography: Cormorant Garamond (display) + Manrope (body)
 * Brand: Maroon #6a082f / Forest #455749 / Cream #f7f1e8 / Charcoal #242220
 */

@import url( 'https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Manrope:wght@400;500;600;700;800&display=swap' );

/* ============================== BRAND TOKENS ============================ */
.pegasus-homes-filters,
.pegasus-homes-grid,
.pegasus-home-card {
	--phs-maroon:        #6a082f;
	--phs-maroon-dark:   #40051b;
	--phs-maroon-light:  #ab4b70;
	--phs-maroon-pale:   #f7a6c4;

	--phs-forest:        #455749;
	--phs-forest-light:  #7f9886;
	--phs-forest-pale:   #e3f1e6;

	--phs-warm:          #654e32;
	--phs-warm-light:    #c08a45;
	--phs-warm-pale:     #ffdeb1;

	--phs-cream:         #f7f1e8;
	--phs-cream-deep:    #f0e5d6;
	--phs-grey-warm:     #ada08f;
	--phs-charcoal:      #242220;

	--phs-font-display:  'Cormorant Garamond', Georgia, serif;
	--phs-font-body:     'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--phs-radius:        24px;
	--phs-radius-sm:     14px;
	--phs-shadow:        0 2px 4px rgba(36, 34, 32, 0.04), 0 12px 32px rgba(36, 34, 32, 0.08);
	--phs-shadow-hover:  0 4px 8px rgba(36, 34, 32, 0.06), 0 20px 48px rgba(36, 34, 32, 0.12);
}

/* ================================ FILTERS ================================ */
.pegasus-homes-filters {
	width: 100%;
	font-family: var( --phs-font-body );
	color: var( --phs-charcoal );
}

.pegasus-homes-filters__row {
	display: grid;
	gap: 0.75rem;
}

.pegasus-homes-filters__row--main {
	grid-template-columns: 2fr 1fr auto;
	align-items: end;
}

@media ( max-width: 640px ) {
	.pegasus-homes-filters__row--main {
		grid-template-columns: 1fr;
	}
}

.pegasus-homes-filters__field {
	display: flex;
	flex-direction: column;
}

.pegasus-homes-filters__label,
.pegasus-homes-filters__legend {
	display: block;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	margin-bottom: 0.5rem !important;
	color: var( --phs-charcoal ) !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	padding: 0 !important;
	line-height: 1.4 !important;
}

/* Both inputs and selects share the same cream-tinted styling */
.pegasus-homes-filters__input,
.pegasus-homes-filters__select {
	width: 100% !important;
	height: 56px !important;
	padding: 0 1.2rem !important;
	font-size: 1rem !important;
	font-family: var( --phs-font-body ) !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: var( --phs-charcoal ) !important;
	background: var( --phs-cream ) !important;
	border: 1.5px solid var( --phs-cream-deep ) !important;
	border-radius: var( --phs-radius-sm ) !important;
	box-sizing: border-box;
	box-shadow: none !important;
	transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
}

.pegasus-homes-filters__input::placeholder {
	color: var( --phs-grey-warm ) !important;
	font-weight: 400 !important;
	opacity: 1 !important;
}

.pegasus-homes-filters__input:focus,
.pegasus-homes-filters__select:focus {
	outline: none !important;
	background: #fff !important;
	border-color: var( --phs-maroon ) !important;
	box-shadow: 0 0 0 4px rgba( 106, 8, 47, 0.10 ) !important;
}

.pegasus-homes-filters__location-wrap {
	position: relative;
}

.pegasus-homes-filters__location-wrap .pegasus-homes-filters__input {
	padding-right: 4rem !important;
}

/* "Use my location" icon button */
.pegasus-homes-filters__geo {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY( -50% );
	width: 42px !important;
	height: 42px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	background: var( --phs-maroon ) !important;
	border: none !important;
	border-radius: 50% !important;
	color: #fff !important;
	cursor: pointer;
	transition: background-color 0.2s, transform 0.15s, box-shadow 0.2s;
	box-shadow: 0 2px 6px rgba(106, 8, 47, 0.25) !important;
}

.pegasus-homes-filters__geo svg {
	width: 20px;
	height: 20px;
	stroke-width: 2.2;
}

.pegasus-homes-filters__geo:hover:not(:disabled) {
	background: var( --phs-maroon-dark ) !important;
	transform: translateY( -50% ) scale( 1.05 );
	box-shadow: 0 4px 10px rgba(106, 8, 47, 0.35) !important;
}

/* Active toggle state — geolocation is currently in use */
.pegasus-homes-filters__geo.is-active {
	background: var( --phs-forest ) !important;
	box-shadow: 0 2px 6px rgba(69, 87, 73, 0.30) !important;
}

.pegasus-homes-filters__geo.is-active:hover:not(:disabled) {
	background: #324135 !important; /* forest dark */
	box-shadow: 0 4px 10px rgba(69, 87, 73, 0.40) !important;
}

.pegasus-homes-filters__geo:focus-visible {
	outline: 2px solid var( --phs-maroon );
	outline-offset: 3px;
}

.pegasus-homes-filters__geo:disabled,
.pegasus-homes-filters__geo.is-loading {
	cursor: wait;
	opacity: 0.8;
}

.pegasus-homes-filters__geo.is-loading svg {
	animation: phs-spin 0.9s linear infinite;
}

.pegasus-homes-filters__select {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url( "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%236a082f' d='M6 8L0 0h12z'/></svg>" ) !important;
	background-repeat: no-repeat !important;
	background-position: right 1.2rem center !important;
	background-size: 10px !important;
	background-color: var( --phs-cream ) !important;
	padding-right: 2.8rem !important;
	cursor: pointer;
}

/* Lock down all interaction states to stop browser native styling from tiling the arrow */
.pegasus-homes-filters__select:hover,
.pegasus-homes-filters__select:active,
.pegasus-homes-filters__select:focus,
.pegasus-homes-filters__select:focus-visible {
	background-image: url( "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%236a082f' d='M6 8L0 0h12z'/></svg>" ) !important;
	background-repeat: no-repeat !important;
	background-position: right 1.2rem center !important;
	background-size: 10px !important;
}

.pegasus-homes-filters__select:focus,
.pegasus-homes-filters__select:focus-visible {
	background-color: #fff !important;
}

.pegasus-homes-filters__select:not(:focus):not(:focus-visible) {
	background-color: var( --phs-cream ) !important;
}

/* Remove any native iOS/Safari select styling */
.pegasus-homes-filters__select::-ms-expand {
	display: none;
}

.pegasus-homes-filters__button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: 56px !important;
	padding: 0 2.2rem !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	font-family: var( --phs-font-body ) !important;
	line-height: 1 !important;
	letter-spacing: 0.01em !important;
	color: #fff !important;
	background: var( --phs-maroon ) !important;
	border: none !important;
	border-radius: 999px !important;
	cursor: pointer;
	white-space: nowrap;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s, transform 0.05s;
}

.pegasus-homes-filters__button:hover:not(:disabled) {
	background: var( --phs-maroon-dark ) !important;
	color: #fff !important;
}

.pegasus-homes-filters__button:active:not(:disabled) {
	transform: translateY( 1px );
}

.pegasus-homes-filters__button:disabled,
.pegasus-homes-filters__button.is-loading {
	opacity: 0.7;
	cursor: wait;
}

.pegasus-homes-filters__button.is-loading::after {
	content: '';
	display: inline-block;
	width: 14px; height: 14px;
	margin-left: 0.6rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: phs-spin 0.7s linear infinite;
}

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

/* Care type pills */
.pegasus-homes-filters__group {
	margin-top: 1.5rem;
	padding: 0 !important;
	border: none !important;
}

.pegasus-homes-filters__checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.6rem;
}

.pegasus-homes-filters__checkbox {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: var( --phs-charcoal ) !important;
	cursor: pointer;
	user-select: none;
	padding: 0.5rem 1rem !important;
	background: var( --phs-cream ) !important;
	border-radius: 999px !important;
	transition: background-color 0.15s, color 0.15s;
}

.pegasus-homes-filters__checkbox:hover {
	background: var( --phs-cream-deep ) !important;
}

.pegasus-homes-filters__checkbox:has(input:checked) {
	background: var( --phs-maroon ) !important;
	color: #fff !important;
}

.pegasus-homes-filters__checkbox input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pegasus-homes-filters__status {
	margin-top: 1rem;
	min-height: 1.4em;
	font-size: 0.9rem;
	font-weight: 500;
}
.pegasus-homes-filters__status--info    { color: var( --phs-grey-warm ); }
.pegasus-homes-filters__status--error   { color: #b00020; }
.pegasus-homes-filters__status--success { color: var( --phs-charcoal ); }

.pegasus-homes-filters__actions {
	margin-top: 0.5rem;
}

.pegasus-homes-filters__reset {
	background: none !important;
	border: none !important;
	color: var( --phs-grey-warm ) !important;
	font-size: 0.85rem !important;
	font-family: var( --phs-font-body ) !important;
	font-weight: 500 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	cursor: pointer;
	padding: 0 !important;
}
.pegasus-homes-filters__reset:hover { color: var( --phs-maroon ) !important; }

.pegasus-homes-filters__attribution {
	margin: 1rem 0 0;
	font-size: 0.72rem;
	color: var( --phs-grey-warm );
	opacity: 0.75;
}
.pegasus-homes-filters__attribution a {
	color: inherit;
	text-decoration: underline;
}
.pegasus-homes-filters__attribution a:hover { color: var( --phs-charcoal ); }

/* ================================== GRID ================================= */
.pegasus-homes-grid {
	display: grid;
	gap: 2rem;
	width: 100%;
	font-family: var( --phs-font-body );
	transition: opacity 0.2s ease;
}

.pegasus-homes-grid--cols-1 { grid-template-columns: 1fr; }
.pegasus-homes-grid--cols-2 { grid-template-columns: repeat( 2, 1fr ); }
.pegasus-homes-grid--cols-3 { grid-template-columns: repeat( 3, 1fr ); }
.pegasus-homes-grid--cols-4 { grid-template-columns: repeat( 4, 1fr ); }

@media ( max-width: 960px ) {
	.pegasus-homes-grid--cols-3,
	.pegasus-homes-grid--cols-4 { grid-template-columns: repeat( 2, 1fr ); }
}

@media ( max-width: 600px ) {
	.pegasus-homes-grid--cols-2,
	.pegasus-homes-grid--cols-3,
	.pegasus-homes-grid--cols-4 { grid-template-columns: 1fr; }
}

.pegasus-homes-grid--loading {
	opacity: 0.4;
	pointer-events: none;
}

.pegasus-homes-grid__message {
	grid-column: 1 / -1;
	padding: 3rem 1.5rem !important;
	text-align: center;
	background: var( --phs-cream ) !important;
	border-radius: var( --phs-radius ) !important;
	color: var( --phs-charcoal );
	font-size: 1rem;
	font-weight: 500;
}

.pegasus-homes-grid__message--error { color: #b00020; }

.pegasus-homes-filters {
    width: 100% !important;
    align-self: stretch !important;
}

/* ================================== CARD ================================= */
.pegasus-home-card {
	position: relative;
	display: block;
	font-family: var( --phs-font-body );
	border-radius: var( --phs-radius ) !important;
	overflow: hidden;
	background: var( --phs-cream-deep ) !important;
	aspect-ratio: 3 / 4;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	box-shadow: var( --phs-shadow ) !important;
}

.pegasus-home-card:hover {
	transform: translateY( -3px );
	box-shadow: var( --phs-shadow-hover ) !important;
}

.pegasus-home-card__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.pegasus-home-card__image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	border-radius: 0 !important;
	transition: transform 0.5s ease;
}

.pegasus-home-card:hover .pegasus-home-card__image {
	transform: scale( 1.04 );
}

.pegasus-home-card__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(
		135deg,
		var( --phs-cream ),
		var( --phs-cream-deep ) 50%,
		var( --phs-warm-pale )
	);
}

.pegasus-home-card__distance {
	position: absolute;
	top: 1rem;
	left: 1rem;
	padding: 0.4rem 0.85rem !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em !important;
	line-height: 1.4 !important;
	color: var( --phs-maroon ) !important;
	background: rgba( 255, 255, 255, 0.95 ) !important;
	border-radius: 999px !important;
	backdrop-filter: blur( 6px );
	-webkit-backdrop-filter: blur( 6px );
	box-shadow: 0 2px 8px rgba(36, 34, 32, 0.08);
	z-index: 2;
}

/* Floating panel — edge-to-edge along the bottom */
.pegasus-home-card__panel {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	padding: 1.5rem !important;
	background: var( --phs-cream ) !important;
	border-radius: var( --phs-radius-sm ) !important;
	box-shadow: 0 4px 16px rgba(36, 34, 32, 0.08) !important;
	z-index: 1;
}

.pegasus-home-card__logo {
	margin-bottom: 0.75rem;
	height: 32px;
	display: flex;
	align-items: flex-start;
}

.pegasus-home-card__logo-img {
	max-height: 100% !important;
	max-width: 70% !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	object-position: left center !important;
	margin: 0 !important;
	border-radius: 0 !important;
}

.pegasus-home-card__title {
	margin: 0 0 0.4rem !important;
	padding: 0 !important;
	font-family: var( --phs-font-body ) !important;
	font-size: clamp( 1.2rem, 1.6vw, 1.5rem ) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: var( --phs-charcoal ) !important;
}

.pegasus-home-card__title a {
	color: inherit !important;
	text-decoration: none !important;
	transition: color 0.2s;
}

.pegasus-home-card__title a:hover {
	color: var( --phs-maroon ) !important;
}

.pegasus-home-card__address {
	margin: 0 0 0.75rem !important;
	padding: 0 !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: var( --phs-grey-warm ) !important;
}

.pegasus-home-card__excerpt {
	margin: 0 0 1.25rem !important;
	padding: 0 !important;
	font-size: 0.9rem !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var( --phs-charcoal ) !important;
	opacity: 0.85;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Action buttons — side-by-side, no wrap */
.pegasus-home-card__actions {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
}

.pegasus-home-card__btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 0.7rem 1.1rem !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	font-family: var( --phs-font-body ) !important;
	line-height: 1 !important;
	letter-spacing: 0.01em !important;
	border-radius: 10px !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s, color 0.2s, transform 0.05s;
	white-space: nowrap;
	flex: 0 1 auto;
}

.pegasus-home-card__btn--primary {
	background: var( --phs-maroon ) !important;
	color: #fff !important;
	border: none !important;
}

.pegasus-home-card__btn--primary:hover {
	background: var( --phs-maroon-dark ) !important;
	color: #fff !important;
}

.pegasus-home-card__btn--secondary {
	background: transparent !important;
	color: var( --phs-charcoal ) !important;
	border: 1.5px solid var( --phs-cream-deep ) !important;
}

.pegasus-home-card__btn--secondary:hover {
	background: #fff !important;
	border-color: var( --phs-charcoal ) !important;
	color: var( --phs-charcoal ) !important;
}

.pegasus-home-card__btn:active {
	transform: translateY( 1px );
}
