/* Gateway Estates — front end
   Palette variables are printed inline from the settings screen. */

:root {
	/* Sampled directly from the reference design. */
	--ge-green: #162F2F;   /* active tab, field values, search button */
	--ge-gold: #B9944E;    /* active tab underline, badges */
	--ge-cream: #FBF7F0;
	--ge-ink: #23292B;     /* body copy */
	--ge-line: #E0DDD2;    /* warm hairline, not grey */
	--ge-muted: #606764;   /* field labels, inactive tabs */
	--ge-white: #fff;
	--ge-radius: 0px;
	--ge-shadow: 0 22px 46px -22px rgba(0, 0, 0, .38);
	--ge-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--ge-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ge-shell: 1280px;
}

.ge-page,
.ge-searchbar,
.ge-results,
.ge-detail {
	font-family: var(--ge-sans);
	color: var(--ge-ink);
	box-sizing: border-box;
}

.ge-page *,
.ge-searchbar *,
.ge-results *,
.ge-detail * {
	box-sizing: border-box;
}

.ge-shell {
	width: 100%;
	max-width: var(--ge-shell);
	margin-inline: auto;
	padding-inline: 24px;
}

.ge-icon { display: block; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ------------------------------------------------------------------ *
 * Search bar
 * ------------------------------------------------------------------ */

.ge-searchbar {
	width: 100%;
	max-width: var(--ge-shell);
	margin-inline: auto;
}

.ge-searchbar--card .ge-searchbar__form {
	background: var(--ge-white);
	box-shadow: var(--ge-shadow);
	border-radius: var(--ge-radius);
	overflow: hidden;
}

.ge-searchbar--inline .ge-searchbar__form {
	background: transparent;
	border: 1px solid var(--ge-line);
}

.ge-tabs {
	display: flex;
	padding: 0;
	border-bottom: 1px solid var(--ge-line);
	overflow-x: auto;
	scrollbar-width: none;
}

.ge-tabs::-webkit-scrollbar { display: none; }

.ge-tab {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 3px solid transparent;
	padding: 18px 29px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ge-muted);
	cursor: pointer;
	white-space: nowrap;
	transition: color .18s ease, border-color .18s ease;
}

.ge-tab:hover { color: var(--ge-green); }

.ge-tab.is-active {
	color: var(--ge-green);
	font-weight: 600;
	border-bottom-color: var(--ge-gold);
}

.ge-tab:focus-visible {
	outline: 2px solid var(--ge-gold);
	outline-offset: -4px;
}

.ge-fields {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) 170px;
}

.ge-field {
	padding: 22px 29px 19px;
	border-left: 1px solid var(--ge-line);
	min-width: 0;
}

.ge-field:first-child { border-left: 0; }

.ge-field__label {
	display: block;
	font-size: 12px;
	line-height: 1.2;
	font-weight: 400;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--ge-muted);
	margin-bottom: 8px;
}

.ge-select {
	position: relative;
	display: flex;
	align-items: center;
}

.ge-select select,
.ge-input {
	appearance: none;
	width: 100%;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-family: var(--ge-serif);
	font-size: 18px;
	line-height: 1.3;
	color: var(--ge-green);
	padding: 0;
	margin: 0;
	cursor: pointer;
	text-overflow: ellipsis;
}

.ge-input {
	font-family: var(--ge-sans);
	font-size: 16px;
	cursor: text;
}

.ge-select select:focus-visible,
.ge-input:focus-visible {
	outline: 2px solid var(--ge-gold);
	outline-offset: 3px;
}

/* The reference design carries no dropdown arrow inside the search fields —
   the chevron stays on the results sort control only. */
.ge-fields .ge-chevron { display: none; }

.ge-chevron {
	position: absolute;
	right: 0;
	pointer-events: none;
	color: var(--ge-muted);
}

.ge-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	border: 0;
	background: var(--ge-green);
	color: var(--ge-white);
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 20px 10px;
	transition: background .18s ease;
}

.ge-submit:hover { background: #0F2322; }
.ge-submit:focus-visible { outline: 2px solid var(--ge-gold); outline-offset: -4px; }

/* ------------------------------------------------------------------ *
 * Results
 * ------------------------------------------------------------------ */

.ge-results { margin: 40px 0; }

.ge-results__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ge-line);
	margin-bottom: 28px;
}

.ge-results__count {
	margin: 0;
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ge-muted);
}

.ge-select--sm select { font-family: var(--ge-sans); font-size: 14px; }

.ge-results.is-loading { opacity: .45; pointer-events: none; transition: opacity .2s ease; }

.ge-grid-cards {
	display: grid;
	gap: 28px;
}

.ge-cols-1 { grid-template-columns: 1fr; }
.ge-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ge-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ge-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ge-card {
	background: var(--ge-white);
	border: 1px solid var(--ge-line);
	border-radius: var(--ge-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}

.ge-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ge-shadow);
}

.ge-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ge-cream);
}

.ge-card__media img,
.ge-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ge-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--ge-gold);
	color: var(--ge-white);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 6px 10px;
}

.ge-badge--flat {
	position: static;
	display: inline-block;
	margin-bottom: 12px;
}

.ge-card__body { padding: 22px 24px 26px; }

.ge-card__eyebrow {
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ge-gold);
}

.ge-card__title {
	margin: 0 0 6px;
	font-family: var(--ge-serif);
	font-size: 22px;
	line-height: 1.25;
	font-weight: 500;
}

.ge-card__title a { color: var(--ge-green); text-decoration: none; }
.ge-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }

.ge-card__address {
	margin: 0 0 14px;
	font-size: 14px;
	color: var(--ge-muted);
}

.ge-card__price {
	margin: 0 0 16px;
	font-family: var(--ge-serif);
	font-size: 20px;
	color: var(--ge-ink);
}

.ge-card__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 0;
	padding: 16px 0 0;
	list-style: none;
	border-top: 1px solid var(--ge-line);
	font-size: 13px;
	color: var(--ge-muted);
}

.ge-card__stats strong { color: var(--ge-ink); font-weight: 600; }

.ge-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: flex-end;
	padding: 18px;
	background: linear-gradient(160deg, var(--ge-green), #3d5a4f);
	color: rgba(255, 255, 255, .7);
	font-family: var(--ge-serif);
	font-size: 15px;
}

.ge-empty {
	text-align: center;
	padding: 64px 24px;
	border: 1px dashed var(--ge-line);
	background: var(--ge-white);
}

.ge-empty h3 {
	margin: 0 0 8px;
	font-family: var(--ge-serif);
	font-size: 24px;
	color: var(--ge-green);
}

.ge-empty p { margin: 0 0 20px; color: var(--ge-muted); }

/* Pagination */

.ge-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
	flex-wrap: wrap;
}

.ge-page {
	appearance: none;
	background: none;
	border: 1px solid var(--ge-line);
	color: var(--ge-green);
	font-family: inherit;
	font-size: 13px;
	padding: 10px 14px;
	cursor: pointer;
	transition: background .18s ease, color .18s ease;
}

.ge-page:hover:not(:disabled) { background: var(--ge-green); color: var(--ge-white); }
.ge-page.is-current { background: var(--ge-green); color: var(--ge-white); border-color: var(--ge-green); }
.ge-page:disabled { opacity: .4; cursor: not-allowed; }
.ge-page__numbers { display: flex; gap: 6px; flex-wrap: wrap; }
.ge-page__gap { color: var(--ge-muted); padding: 0 4px; }

/* ------------------------------------------------------------------ *
 * Buttons
 * ------------------------------------------------------------------ */

.ge-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	padding: 14px 22px;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	text-decoration: none;
	transition: filter .18s ease;
}

.ge-btn--gold { background: var(--ge-gold); color: var(--ge-white); width: 100%; }
.ge-btn--gold:hover { filter: brightness(.93); }
.ge-btn--ghost { background: transparent; border: 1px solid var(--ge-green); color: var(--ge-green); }
.ge-btn--ghost:hover { background: var(--ge-green); color: var(--ge-white); }

.ge-chip {
	flex: 1;
	appearance: none;
	background: none;
	border: 1px solid var(--ge-line);
	color: var(--ge-green);
	font-family: inherit;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 10px;
	cursor: pointer;
}

.ge-chip:hover { border-color: var(--ge-gold); color: var(--ge-gold); }
.ge-chip.is-saved { background: var(--ge-green); color: var(--ge-white); border-color: var(--ge-green); }

/* ------------------------------------------------------------------ *
 * Single listing
 * ------------------------------------------------------------------ */

.ge-page { background: var(--ge-cream); padding-bottom: 80px; }

.ge-hero {
	position: relative;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	background: var(--ge-green);
	overflow: hidden;
}

.ge-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ge-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(9, 24, 20, .25) 0%, rgba(9, 24, 20, .82) 100%);
}

.ge-hero__inner {
	position: relative;
	width: 100%;
	max-width: var(--ge-shell);
	margin-inline: auto;
	padding: 0 24px 56px;
	color: var(--ge-white);
}

.ge-hero__eyebrow {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .78);
}

.ge-hero__title {
	margin: 0;
	font-family: var(--ge-serif);
	font-weight: 500;
	font-size: clamp(32px, 5vw, 62px);
	line-height: 1.08;
	max-width: 16ch;
}

.ge-detail { padding-top: 48px; }

/* Gallery */

.ge-gallery {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 12px;
	margin-bottom: 44px;
}

.ge-gallery__main,
.ge-gallery__thumb {
	margin: 0;
	overflow: hidden;
	background: var(--ge-cream);
}

.ge-gallery__main { aspect-ratio: 4 / 3; }

.ge-gallery__side {
	display: grid;
	grid-template-rows: 1fr 1fr;
	gap: 12px;
}

.ge-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ge-gallery__more {
	grid-column: 1 / -1;
	justify-self: start;
	appearance: none;
	background: none;
	border: 1px solid var(--ge-line);
	color: var(--ge-green);
	font-family: inherit;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 12px 18px;
	cursor: pointer;
}

.ge-gallery__rest {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

/* Headline */

.ge-headline {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	padding-bottom: 26px;
	border-bottom: 1px solid var(--ge-line);
}

.ge-headline__title {
	margin: 0 0 8px;
	font-family: var(--ge-serif);
	font-weight: 500;
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.2;
	color: var(--ge-green);
}

.ge-headline__address {
	margin: 0;
	font-size: 14px;
	color: var(--ge-muted);
}

.ge-headline__right { text-align: right; flex-shrink: 0; }

.ge-headline__price {
	margin: 0 0 4px;
	font-family: var(--ge-serif);
	font-size: clamp(24px, 3vw, 34px);
	color: var(--ge-ink);
}

.ge-headline__ref {
	margin: 0;
	font-size: 12px;
	letter-spacing: .06em;
	color: var(--ge-muted);
}

/* Stats */

.ge-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	list-style: none;
	margin: 0;
	padding: 26px 0 34px;
	border-bottom: 1px solid var(--ge-line);
}

.ge-stats__item { display: flex; flex-direction: column; gap: 6px; }

.ge-stats__value {
	font-family: var(--ge-serif);
	font-size: 26px;
	line-height: 1;
	color: var(--ge-ink);
}

.ge-stats__label {
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ge-muted);
}

/* Two column layout */

.ge-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	padding-top: 40px;
	align-items: start;
}

.ge-section { margin-bottom: 44px; }

.ge-section__title {
	margin: 0 0 16px;
	font-family: var(--ge-serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--ge-green);
}

.ge-section__note { margin: 0 0 20px; color: var(--ge-muted); font-size: 14px; line-height: 1.75; }

.ge-prose p {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.8;
	color: #43514C;
}

.ge-section--quiet .ge-prose p { font-size: 13.5px; color: var(--ge-muted); }

.ge-findings {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 40px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ge-findings li {
	position: relative;
	padding-left: 18px;
	font-size: 14px;
	color: #43514C;
}

.ge-findings li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 6px;
	height: 6px;
	background: var(--ge-gold);
}

/* Amenities */

.ge-amenities {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 28px 16px;
	list-style: none;
	margin: 0;
	padding: 34px 26px;
	background: var(--ge-white);
	border: 1px solid var(--ge-line);
}

.ge-amenities__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}

.ge-amenities__icon { color: var(--ge-green); }

.ge-amenities__label {
	font-size: 11px;
	letter-spacing: .04em;
	color: var(--ge-muted);
	line-height: 1.4;
}

/* Agent panel */

.ge-layout__side { position: sticky; top: 24px; }

.ge-agent-card {
	background: var(--ge-white);
	border: 1px solid var(--ge-line);
	padding: 22px;
}

.ge-agent-card__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--ge-line);
	margin-bottom: 18px;
}

.ge-agent-card__avatar {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ge-green);
	color: var(--ge-white);
	font-size: 13px;
	letter-spacing: .04em;
}

.ge-agent-card__avatar img { width: 100%; height: 100%; object-fit: cover; }

.ge-agent-card__meta { display: flex; flex-direction: column; gap: 2px; }
.ge-agent-card__meta strong { font-size: 14px; color: var(--ge-ink); }
.ge-agent-card__meta span { font-size: 12px; color: var(--ge-muted); }

.ge-enquiry { display: flex; flex-direction: column; gap: 10px; }

.ge-enquiry input,
.ge-enquiry textarea {
	width: 100%;
	border: 1px solid var(--ge-line);
	background: #fdfcfa;
	padding: 11px 12px;
	font-family: inherit;
	font-size: 13px;
	color: var(--ge-ink);
	resize: vertical;
}

.ge-enquiry input:focus,
.ge-enquiry textarea:focus {
	outline: none;
	border-color: var(--ge-gold);
}

.ge-enquiry__status { margin: 0; font-size: 12px; color: var(--ge-muted); }
.ge-enquiry__status.is-error { color: #a3352b; }
.ge-enquiry__status.is-ok { color: var(--ge-green); }

.ge-agent-card__links {
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 14px 0;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ge-agent-card__links a { color: var(--ge-gold); text-decoration: none; }
.ge-agent-card__links a:hover { text-decoration: underline; }

.ge-agent-card__actions { display: flex; gap: 10px; }

/* Archive head */

.ge-archive-head {
	background: var(--ge-green);
	color: var(--ge-white);
	padding: 72px 24px 56px;
	text-align: center;
	margin-bottom: 40px;
}

.ge-archive-head__eyebrow {
	margin: 0 0 10px;
	font-size: 11px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .7);
}

.ge-archive-head__title {
	margin: 0;
	font-family: var(--ge-serif);
	font-weight: 500;
	font-size: clamp(30px, 4vw, 48px);
}

.ge-related { margin-top: 24px; }

/* ------------------------------------------------------------------ *
 * Tablet
 * ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.ge-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ge-field { border-top: 1px solid var(--ge-line); }
	.ge-field:nth-child(odd) { border-left: 0; }
	/* First row sits directly under the tab divider — no second line. */
	.ge-field:nth-child(1),
	.ge-field:nth-child(2) { border-top: 0; }
	.ge-submit { grid-column: 1 / -1; }

	.ge-layout { grid-template-columns: 1fr; gap: 40px; }
	.ge-layout__side { position: static; max-width: 460px; }

	.ge-amenities { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.ge-cols-3, .ge-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ge-stats { gap: 32px; }
	.ge-hero { min-height: 340px; }
}

/* ------------------------------------------------------------------ *
 * Mobile
 * ------------------------------------------------------------------ */

@media (max-width: 767px) {
	.ge-shell { padding-inline: 18px; }

	.ge-searchbar--card .ge-searchbar__form { box-shadow: 0 12px 30px -20px rgba(18, 51, 43, .5); }
	.ge-tabs { padding: 0 6px; }
	.ge-tab { padding: 16px 12px; font-size: 11px; }

	.ge-fields { grid-template-columns: 1fr; }
	.ge-field { border-left: 0; padding: 14px 18px; }
	.ge-field:first-child { border-top: 0; }
	.ge-select select { font-size: 17px; }
	.ge-submit { padding: 18px; }

	.ge-gallery { grid-template-columns: 1fr; }
	.ge-gallery__side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
	.ge-gallery__thumb { aspect-ratio: 4 / 3; }
	.ge-gallery__rest { grid-template-columns: 1fr 1fr; }

	.ge-headline { flex-direction: column; align-items: flex-start; gap: 16px; }
	.ge-headline__right { text-align: left; }

	.ge-stats { gap: 22px 30px; padding: 22px 0 26px; }
	.ge-stats__value { font-size: 21px; }

	.ge-findings { grid-template-columns: 1fr; }
	.ge-amenities { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 26px 16px; gap: 24px 8px; }

	.ge-cols-2, .ge-cols-3, .ge-cols-4 { grid-template-columns: 1fr; }
	.ge-grid-cards { gap: 20px; }

	.ge-results__bar { flex-direction: column; align-items: flex-start; gap: 10px; }
	.ge-hero { min-height: 280px; }
	.ge-hero__inner { padding-bottom: 34px; }
	.ge-detail { padding-top: 32px; }
	.ge-page { padding-bottom: 56px; }
}

@media (max-width: 420px) {
	.ge-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ge-stats { gap: 18px 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.ge-card, .ge-results, .ge-submit, .ge-btn { transition: none; }
	.ge-card:hover { transform: none; }
}

/* ------------------------------------------------------------------
 * Property gallery: hero image with a horizontal thumbnail strip
 *
 * Themes style bare <button> and <figure> elements heavily, and those
 * rules were showing through as coloured blocks behind the images.
 * Everything here is therefore reset explicitly and scoped under
 * .ge-gal so it cannot leak outward.
 * ------------------------------------------------------------------ */

.ge-gal {
	margin: 0 0 28px;
	max-width: 1180px;
}

.ge-gal *,
.ge-gal *::before,
.ge-gal *::after {
	box-sizing: border-box;
}

/* --- hero ------------------------------------------------------- */

.ge-gal .ge-gal__hero {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	background: #eceae7;
	height: clamp(320px, 46vw, 600px);
}

.ge-gal .ge-gal__track {
	display: flex;
	height: 100%;
	margin: 0;
	padding: 0;
	transition: transform .4s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}

.ge-gal .ge-gal__slide {
	flex: 0 0 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}

.ge-gal .ge-gal__slide img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* Transparent hit area over the hero. */
.ge-gal .ge-gal__zoom {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	background-color: transparent;
	background-image: none;
	box-shadow: none;
	cursor: zoom-in;
	appearance: none;
	-webkit-appearance: none;
}

.ge-gal .ge-gal__zoom:hover,
.ge-gal .ge-gal__zoom:focus {
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	outline: none;
}

/* --- arrows and counter ----------------------------------------- */

.ge-gal .ge-gal__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	background-image: none;
	color: #1c1b1a;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
	appearance: none;
	-webkit-appearance: none;
	z-index: 3;
	transition: background .2s, opacity .2s;
}

.ge-gal .ge-gal__nav:hover {
	background: #fff;
	color: #1c1b1a;
}

.ge-gal .ge-gal__nav[disabled] {
	opacity: .25;
	cursor: default;
}

.ge-gal .ge-gal__nav--prev { left: 16px; }
.ge-gal .ge-gal__nav--next { right: 16px; }

.ge-gal .ge-gal__count {
	position: absolute;
	right: 16px;
	bottom: 16px;
	margin: 0;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .6);
	color: #fff;
	font-size: 12px;
	line-height: 1.5;
	z-index: 3;
}

/* --- thumbnail strip -------------------------------------------- */

.ge-gal .ge-gal__rail {
	display: flex;
	gap: 8px;
	margin: 10px 0 0;
	padding: 0 0 8px;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
	scrollbar-color: #c9c4bd transparent;
}

.ge-gal .ge-gal__rail::-webkit-scrollbar       { height: 6px; }
.ge-gal .ge-gal__rail::-webkit-scrollbar-track { background: transparent; }
.ge-gal .ge-gal__rail::-webkit-scrollbar-thumb { background: #c9c4bd; border-radius: 3px; }

.ge-gal .ge-gal__thumb {
	flex: 0 0 auto;
	display: block;
	width: 108px;
	height: 76px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 8px;
	overflow: hidden;
	background: #eceae7;
	background-image: none;
	box-shadow: none;
	cursor: pointer;
	opacity: .62;
	appearance: none;
	-webkit-appearance: none;
	transition: opacity .2s, border-color .2s;
}

.ge-gal .ge-gal__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ge-gal .ge-gal__thumb:hover {
	opacity: .88;
	background: #eceae7;
}

.ge-gal .ge-gal__thumb.is-active {
	opacity: 1;
	border-color: #1c1b1a;
}

@media (max-width: 782px) {
	.ge-gal .ge-gal__hero { height: clamp(220px, 62vw, 380px); }

	.ge-gal .ge-gal__thumb {
		width: 78px;
		height: 58px;
	}

	.ge-gal .ge-gal__nav {
		width: 34px;
		height: 34px;
		font-size: 18px;
	}

	.ge-gal .ge-gal__nav--prev { left: 8px; }
	.ge-gal .ge-gal__nav--next { right: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.ge-gal .ge-gal__track { transition: none; }
}

/* Leftover markup from the previous mosaic layout. */
.ge-gallery__more { display: none !important; }

/* ------------------------------------------------------------------ *
 * Standalone lead form — [ge_lead_form]
 * ------------------------------------------------------------------ */

.ge-leadform {
	background: var(--ge-cream, #FBF7F0);
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 10px;
	padding: 26px 24px;
}

.ge-leadform__title {
	margin: 0 0 6px;
	font-family: var(--ge-serif, Fraunces, Georgia, serif);
	font-size: 22px;
	line-height: 1.25;
	color: var(--ge-green, #162F2F);
}

.ge-leadform__intro {
	margin: 0 0 16px;
	color: var(--ge-muted, #6A716E);
	font-size: 15px;
	line-height: 1.55;
}

.ge-leadform__form { display: flex; flex-direction: column; gap: 10px; }

.ge-leadform__form input[type="text"],
.ge-leadform__form input[type="email"],
.ge-leadform__form input[type="tel"],
.ge-leadform__form textarea {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 15px;
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: 6px;
	background: #fff;
	color: inherit;
}

.ge-leadform__form textarea { resize: vertical; min-height: 90px; }

.ge-leadform__form input:focus,
.ge-leadform__form textarea:focus {
	outline: none;
	border-color: var(--ge-gold, #B9944E);
	box-shadow: 0 0 0 3px rgba(185, 148, 78, .18);
}

.ge-leadform__form button { margin-top: 4px; }

/* The honeypot must be reachable by bots and invisible to everyone else.
   display:none is skipped by some bots, so it is moved off-screen instead. */
.ge-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
