/**
 * Smart Living Translate — the language switcher.
 *
 * Kept small and unopinionated so it sits inside whatever the theme already is. The
 * floating variant is the fallback for a theme with nowhere to put a switcher; the
 * inline one takes the surrounding typography.
 */

.smart-living-languages__list {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.smart-living-languages__item {
	margin: 0;
	padding: 0;
}

.smart-living-languages__item + .smart-living-languages__item {
	border-left: 1px solid currentColor;
}

.smart-living-languages__item a {
	display: inline-block;
	padding: 0 0.6em;
	text-decoration: none;
	opacity: 0.7;
}

.smart-living-languages__item a:hover,
.smart-living-languages__item a:focus {
	opacity: 1;
	text-decoration: underline;
}

.smart-living-languages__item.is-current a {
	font-weight: 600;
	opacity: 1;
}

/* The corner fallback. */

.smart-living-languages--floating {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 9990;
	padding: 6px 4px;
	background: #fff;
	color: #1d2327;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
	font-size: 14px;
	line-height: 1.4;
}

.smart-living-languages--floating .smart-living-languages__item + .smart-living-languages__item {
	border-left-color: rgba(0, 0, 0, 0.15);
}

.smart-living-languages--floating a {
	color: inherit;
}

@media (max-width: 600px) {
	.smart-living-languages--floating {
		right: 10px;
		bottom: 10px;
		font-size: 13px;
	}
}

@media (prefers-color-scheme: dark) {
	.smart-living-languages--floating {
		background: #1d2327;
		color: #f0f0f1;
		border-color: rgba(255, 255, 255, 0.18);
	}

	.smart-living-languages--floating .smart-living-languages__item + .smart-living-languages__item {
		border-left-color: rgba(255, 255, 255, 0.2);
	}
}

@media print {
	.smart-living-languages--floating {
		display: none;
	}
}

/* The enquiry form. Inherits the theme's fonts and colours on purpose. */

.sl-enquiry {
	margin: 1.5em 0;
}

.sl-enquiry__title {
	margin: 0 0 0.6em;
}

.sl-enquiry__notice {
	margin: 0 0 1em;
	padding: 0.75em 1em;
	border-left: 4px solid currentColor;
	background: rgba(0, 0, 0, 0.04);
}

.sl-enquiry__notice--ok {
	color: #14622b;
}

.sl-enquiry__notice--error {
	color: #b32d2e;
}

.sl-enquiry__field {
	margin: 0 0 0.9em;
}

.sl-enquiry__field label {
	display: block;
	margin-bottom: 0.25em;
}

/* Inside the theme's contact-form frame (RealHomes), at the full width of the column rather
   than the half the contact page gives it, and without the page's side padding. */
.sl-enquiry.rh_contact__form {
	width: 100%;
	padding: 0;
}

.sl-enquiry__field input,
.sl-enquiry__field textarea {
	width: 100%;
	max-width: 100%;
	padding: 0.6em 0.7em;
	border: 1px solid rgba(0, 0, 0, 0.25);
	border-radius: 4px;
	font: inherit;
	box-sizing: border-box;
}

.sl-enquiry__reference {
	margin: 0 0 0.9em;
	font-size: 0.9em;
	opacity: 0.8;
}

/*
 * The honeypot. Hidden from people without display:none, which some bots check for,
 * and taken out of the tab order and the accessibility tree so nobody meets it.
 */
.sl-enquiry__trap {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* A property brought in from Clix. Deliberately plain and theme-agnostic: this sits inside
   whatever the theme draws, so it borrows the page's own type and colour rather than
   imposing a second design on top of RealHomes. */
.sl-listing__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 0 0 22px; }
.sl-listing__shot { margin: 0; }
.sl-listing__shot.is-primary { grid-column: 1 / -1; }
.sl-listing__shot img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 6px; }
.sl-listing__shot.is-primary img { max-height: 460px; }

.sl-listing__facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1px;
  margin: 0 0 22px; padding: 0; background: rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 6px; overflow: hidden; }
.sl-listing__fact { background: #fff; padding: 11px 14px; }
.sl-listing__fact dt { margin: 0 0 2px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.6; }
.sl-listing__fact dd { margin: 0; font-weight: 600; }

.sl-listing__agent { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin: 22px 0;
  padding: 14px 16px; border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 6px; }
.sl-listing__agent-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.6; }
.sl-listing__agent-link { margin-left: auto; }

@media (max-width: 640px) {
  .sl-listing__shot.is-primary img { max-height: 260px; }
}

/* Property cards. A synced property hands the theme its photograph at its own size, so one
   card stood twice as tall as the next and the grid broke (Christian, 10 Nov 2026). Every card
   now shows its photograph in the same 3:2 frame the theme's own thumbnails use. */
img.sl-listing__thumbnail {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	object-position: center;
}

/* The property map, when the theme's own map script did not start it. */
#property_map[data-sl-map] { min-height: 360px; border-radius: 6px; }
