/* =================================================================
   Nexta Properties — Estate design (4.0)

   One stylesheet for the header, homepage, search page and property
   page. Everything lives under .ne so it never leaks into a theme.

   Contents
     1. Tokens            6. Homepage
     2. Base              7. Search page
     3. Controls          8. Property page
     4. Header + footer   9. Lightbox, map
     5. Listing card     10. Print, reduced motion

   The colour of the current deal (sale / rent / lease) is carried by
   --ne-deal. Set data-deal="rent" on any wrapper to recolour its
   buttons, tabs and tags.
   ================================================================= */


/* ---------- 1. Tokens ---------- */

.ne {
	--ne-ink: #17211e;
	--ne-ink-2: #4c5854;
	--ne-ink-3: #68746f;
	--ne-paper: #ffffff;
	--ne-wash: #f2f5f2;
	--ne-line: #dde3de;
	--ne-line-strong: #c3cbc5;

	--ne-brand: #0d4a3f;
	--ne-brand-deep: #08352d;
	--ne-sale: #0e6e55;
	--ne-rent: #2747c7;
	--ne-lease: #8a2a6b;
	--ne-accent: #e8b13a;
	--ne-heart: #c9264a;
	--ne-deal: var(--ne-brand);

	--ne-display: 'Geologica', 'Noto Sans Georgian', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ne-text: 'Golos Text', 'Noto Sans Georgian', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--ne-r-s: 6px;
	--ne-r-m: 10px;
	--ne-r-l: 16px;
	--ne-wrap: 1240px;
	--ne-gutter: 24px;
	--ne-header-h: 68px;
}

/* The footer shade follows the brand colour, so changing one colour is enough. */
@supports (color: color-mix(in srgb, red, blue)) {
	.ne { --ne-brand-deep: color-mix(in srgb, var(--ne-brand) 76%, #000); }
}

.ne [data-deal="sale"],  .ne[data-deal="sale"],  .ne-deal-sale .ne  { --ne-deal: var(--ne-sale); }
.ne [data-deal="rent"],  .ne[data-deal="rent"],  .ne-deal-rent .ne  { --ne-deal: var(--ne-rent); }
.ne [data-deal="lease"], .ne[data-deal="lease"], .ne-deal-lease .ne { --ne-deal: var(--ne-lease); }


/* ---------- 2. Base ---------- */

body.ne-canvas {
	margin: 0;
	background: #fff;
}
html.ne-lock,
html.ne-lock body {
	overflow: hidden;
}

.ne {
	font-family: var(--ne-text);
	font-size: 16px;
	line-height: 1.5;
	color: var(--ne-ink);
	background: var(--ne-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	-webkit-text-size-adjust: 100%;
}
.ne--embedded { background: transparent; }

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

.ne :where(h1),
.ne :where(h2),
.ne :where(h3),
.ne :where(p),
.ne :where(ul),
.ne :where(ol),
.ne :where(dl),
.ne :where(dd),
.ne :where(figure),
.ne :where(fieldset) { margin: 0; padding: 0; }
.ne :where(ul),
.ne :where(ol) { list-style: none; }
.ne :where(fieldset) { border: 0; min-width: 0; }
.ne :where(a) { color: inherit; text-decoration: none; }
.ne :where(img) { display: block; max-width: 100%; height: auto; }
.ne :where(button),
.ne :where(input),
.ne :where(select),
.ne :where(textarea) { font: inherit; color: inherit; margin: 0; }
.ne :where(button) { cursor: pointer; background: none; border: 0; padding: 0; }
.ne :where(h1),
.ne :where(h2),
.ne :where(h3) {
	font-family: var(--ne-display);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--ne-ink);
	text-wrap: balance;
}
.ne :where([hidden]) { display: none !important; }

.ne :focus-visible {
	outline: 2px solid var(--ne-ink);
	outline-offset: 2px;
	border-radius: 4px;
}

.ne-icon { flex: none; display: inline-block; vertical-align: middle; }

.ne-wrap {
	width: 100%;
	max-width: calc(var(--ne-wrap) + var(--ne-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--ne-gutter);
}

.ne-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.ne-skip {
	position: absolute;
	left: 16px;
	top: -60px;
	z-index: 300;
	padding: 10px 14px;
	background: var(--ne-ink);
	color: #fff;
	border-radius: var(--ne-r-s);
}
.ne-skip:focus { top: 12px; }

.ne-main { display: block; min-height: 50vh; }

.ne-section { padding: 64px 0; }
.ne-section--wash { background: var(--ne-wash); }

.ne-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px 24px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}
.ne-head h2 { font-size: 1.75rem; }

.ne-more {
	color: var(--ne-brand);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.ne-more:hover { text-decoration-thickness: 2px; }

.ne-count {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--ne-ink);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
}

.ne-blank {
	max-width: 520px;
	padding: 40px;
	margin: 24px 0 64px;
	background: var(--ne-wash);
	border-radius: var(--ne-r-l);
	color: var(--ne-ink-2);
}
.ne-blank .ne-icon { color: var(--ne-ink-3); margin-bottom: 16px; }
.ne-blank h2 { font-size: 1.375rem; margin-bottom: 8px; }
.ne-blank p { margin-bottom: 20px; }
.ne-empty-line { color: var(--ne-ink-2); }

.ne-notice {
	padding: 16px 18px;
	border-radius: var(--ne-r-m);
	background: var(--ne-wash);
}
.ne-notice strong { display: block; font-family: var(--ne-display); font-weight: 600; }
.ne-notice p { margin-top: 4px; color: var(--ne-ink-2); }
.ne-notice--ok { background: #e4f1ec; color: #0a3d31; }
.ne-notice--ok p { color: #0a3d31; }
.ne-notice--closed {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	align-items: baseline;
	margin-bottom: 20px;
	border: 1px solid var(--ne-line);
}
.ne-notice--closed a { text-decoration: underline; text-underline-offset: 3px; }


/* ---------- 3. Controls ---------- */

.ne-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, filter 0.15s;
}
.ne-btn--solid { background: var(--ne-brand); color: #fff; }
.ne-btn--deal { background: var(--ne-deal); color: #fff; }
.ne-btn--solid:hover,
.ne-btn--deal:hover { filter: brightness(0.88); }
.ne-btn--outline { background: #fff; color: var(--ne-ink); border-color: var(--ne-line-strong); }
.ne-btn--outline:hover { border-color: var(--ne-ink); }
.ne-btn--light { background: #fff; color: var(--ne-brand); }
.ne-btn--light:hover { background: var(--ne-wash); }
.ne-btn--block { width: 100%; }

.ne-field { display: block; min-width: 0; }
.ne-field__label {
	display: block;
	padding: 0;
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ne-ink-2);
}
.ne-field__label em { font-style: normal; font-weight: 400; color: var(--ne-ink-3); }
.ne-field input,
.ne-field select,
.ne-field textarea {
	display: block;
	width: 100%;
	min-height: 26px;
	padding: 2px 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: 1rem;
	line-height: 1.4;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}
.ne-field textarea { resize: vertical; min-height: 84px; }
.ne-field input::placeholder,
.ne-field textarea::placeholder { color: var(--ne-ink-3); opacity: 1; }
.ne-field input[type="number"] { -moz-appearance: textfield; }
.ne-field input[type="number"]::-webkit-outer-spin-button,
.ne-field input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ne-field select,
.ne-sort select {
	padding-right: 22px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%234c5854' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	cursor: pointer;
	text-overflow: ellipsis;
}

/* Boxed fields: forms outside the hero search. */
.ne-form .ne-field,
.ne-filters .ne-field,
.ne-calc .ne-field {
	padding: 8px 12px 9px;
	border: 1px solid var(--ne-line-strong);
	border-radius: 8px;
	background: #fff;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.ne-form .ne-field:focus-within,
.ne-filters .ne-field:focus-within,
.ne-calc .ne-field:focus-within {
	border-color: var(--ne-ink);
	box-shadow: 0 0 0 1px var(--ne-ink);
}

.ne-form { display: grid; gap: 10px; }
.ne-form__note { font-size: 0.8125rem; color: var(--ne-ink-3); }
.ne-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* Deal tag */
.ne-tag {
	display: inline-flex;
	align-items: center;
	padding: 5px 8px;
	border-radius: 4px;
	background: var(--ne-ink);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.1;
	white-space: nowrap;
}
.ne-tag--sale { background: var(--ne-sale); }
.ne-tag--rent { background: var(--ne-rent); }
.ne-tag--lease { background: var(--ne-lease); }
.ne-tag.is-closed { background: var(--ne-ink-2); }
.ne-tag--plain { background: #fff; color: var(--ne-ink); }
.ne-tag--featured { background: var(--ne-accent); color: #2a1d00; }

/* Dropdown menus (language, "More") */
[data-ne-dropdown] { position: relative; }
.ne-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 120;
	display: none;
	min-width: 180px;
	padding: 6px;
	background: #fff;
	border: 1px solid var(--ne-line);
	border-radius: var(--ne-r-m);
	box-shadow: 0 12px 32px -8px rgba(23, 33, 30, 0.22);
}
.ne-menu--right { left: auto; right: 0; }
[data-ne-dropdown].is-open > .ne-menu { display: block; }
.ne-menu a {
	display: block;
	padding: 9px 12px;
	border-radius: var(--ne-r-s);
	white-space: nowrap;
}
.ne-menu a:hover { background: var(--ne-wash); }
.ne-menu a[aria-current] { font-weight: 600; }


/* ---------- 4. Header + footer ---------- */

.ne-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--ne-line);
}
.admin-bar .ne-header { top: 32px; }
.ne-header__row {
	display: flex;
	align-items: center;
	gap: 32px;
	height: var(--ne-header-h);
}

.ne-brand {
	display: inline-flex;
	align-items: baseline;
	flex: none;
	font-family: var(--ne-display);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1;
	color: var(--ne-brand);
}
.ne-brand__tld { font-weight: 400; color: var(--ne-ink-3); }
.ne-brand__logo { max-height: 40px; width: auto; align-self: center; }
.ne-brand--light,
.ne-brand--light .ne-brand__tld { color: #fff; }

.ne-nav { flex: 1; min-width: 0; }
.ne-nav__list { display: flex; align-items: center; gap: 4px; }
.ne-nav__list > li > a,
.ne-nav__more > button {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px 12px;
	border-radius: var(--ne-r-s);
	font-weight: 500;
	white-space: nowrap;
}
.ne-nav__list > li > a:hover,
.ne-nav__more > button:hover { background: var(--ne-wash); }
.ne-nav__list > li > a[aria-current] { box-shadow: inset 0 -2px 0 var(--ne-brand); border-radius: 0; color: var(--ne-brand); }

.ne-header__tools { display: flex; align-items: center; gap: 4px; margin-left: auto; flex: none; }
.ne-iconlink,
.ne-lang > button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 40px;
	padding: 0 10px;
	border-radius: var(--ne-r-s);
	font-size: 0.9375rem;
	font-weight: 500;
}
.ne-iconlink:hover,
.ne-lang > button:hover { background: var(--ne-wash); }
.ne-currency__symbol { display: inline-block; min-width: 1em; text-align: center; font-weight: 600; }
.ne-currency .ne-menu { min-width: 220px; }
.ne-currency .ne-menu a { display: flex; align-items: baseline; gap: 8px; }
.ne-currency__name { margin-left: auto; padding-left: 12px; color: var(--ne-ink-3); font-size: 0.8125rem; font-weight: 400; white-space: nowrap; }
.ne-drawer__langs + .ne-drawer__langs { margin-top: -8px; }
.ne-iconlink .ne-count { background: var(--ne-heart); }
.ne-header__cta { margin-left: 10px; min-height: 40px; }
.ne-burger { display: none; width: 44px; height: 44px; place-items: center; border-radius: var(--ne-r-s); }
.ne-burger:hover { background: var(--ne-wash); }

.ne-drawer {
	position: fixed;
	inset: 0;
	z-index: 400;
	background: rgba(23, 33, 30, 0.45);
}
.ne-drawer__panel {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(380px, 100%);
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 12px 20px 24px;
	background: #fff;
	overflow-y: auto;
}
.ne-drawer__top { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
.ne-drawer .ne-burger { display: grid; }
.ne-drawer__nav a {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--ne-line);
	font-family: var(--ne-display);
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: -0.02em;
}
.ne-drawer__nav a[aria-current] { color: var(--ne-brand); }
.ne-drawer__links a { display: flex; align-items: center; gap: 10px; padding: 10px 0; font-weight: 500; }
.ne-drawer__langs { display: flex; flex-wrap: wrap; gap: 8px; }
.ne-drawer__langs a { display: block; padding: 8px 12px; border: 1px solid var(--ne-line-strong); border-radius: 999px; font-size: 0.9375rem; }
.ne-drawer__langs a[aria-current] { background: var(--ne-ink); border-color: var(--ne-ink); color: #fff; }
.ne-drawer .ne-btn--block { margin-top: auto; }

.ne-footer {
	background: var(--ne-brand-deep);
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.9375rem;
}
.ne-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ne-footer :focus-visible,
.ne-owner :focus-visible { outline-color: #fff; }
.ne-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr));
	gap: 40px 48px;
	padding-block: 56px 44px;
}
.ne-footer__about p { margin: 14px 0 0; max-width: 34ch; }
.ne-footer__contact { margin-top: 20px; display: grid; gap: 10px; }
.ne-footer__contact a,
.ne-footer__contact span { display: inline-flex; align-items: flex-start; gap: 10px; color: #fff; }
.ne-footer__contact .ne-icon { margin-top: 2px; opacity: 0.7; }
.ne .ne-footer__col h2 {
	margin-bottom: 14px;
	font-family: var(--ne-text);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0;
	color: #fff;
}
.ne-footer__col ul { display: grid; gap: 9px; }
.ne-footer__base {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	padding-block: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.875rem;
}
.ne-footer__social { display: flex; flex-wrap: wrap; gap: 20px; }


/* ---------- 5. Listing card ---------- */

.ne-grid { display: grid; gap: 36px 24px; }
.ne-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ne-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ne-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ne-card { position: relative; min-width: 0; }
.ne-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--ne-r-m);
	background: var(--ne-wash);
}
.ne-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
}
.ne-card__img.is-active { opacity: 1; }
.ne-card.is-closed .ne-card__img { filter: grayscale(0.6); }
.ne-card__blank {
	position: absolute;
	inset: 0;
	color: var(--ne-line-strong);
}
.ne-plan { display: block; width: 100%; height: 100%; }
.ne-card__bars {
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 8px;
	display: flex;
	gap: 4px;
	opacity: 0;
	transition: opacity 0.15s;
}
.ne-card:hover .ne-card__bars { opacity: 1; }
.ne-card__bars i { flex: 1; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, 0.55); }
.ne-card__bars i.is-active { background: #fff; }
.ne-card__tags {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	gap: 6px;
	z-index: 1;
}

.ne-save {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #fff;
	color: var(--ne-ink);
}
.ne-save:hover { color: var(--ne-heart); }
[data-save][aria-pressed="true"] { color: var(--ne-heart); }
[data-save][aria-pressed="true"] .ne-icon { fill: currentColor; }

.ne-card__body { padding-top: 12px; }
.ne-card__price { display: flex; align-items: baseline; gap: 3px; }
.ne-card__amount {
	font-family: var(--ne-display);
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
}
.ne-card__per { color: var(--ne-ink-2); font-size: 0.9rem; }
.ne .ne-card__title {
	margin-top: 4px;
	font-family: var(--ne-text);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ne-card__title a::after { content: ''; position: absolute; inset: 0; z-index: 2; }
.ne-card__title a:focus-visible { outline: none; }
.ne-card:focus-within .ne-card__media { outline: 2px solid var(--ne-ink); outline-offset: 2px; }
.ne-card:hover .ne-card__title { text-decoration: underline; text-underline-offset: 3px; }
.ne-card__place {
	color: var(--ne-ink-2);
	font-size: 0.9rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ne-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin-top: 8px;
	color: var(--ne-ink-2);
	font-size: 0.875rem;
}
.ne-card__facts li { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.ne-card__facts .ne-icon { color: var(--ne-ink-3); }


/* ---------- 6. Homepage ---------- */

.ne-hero { background: var(--ne-wash); padding: 56px 0 64px; }
.ne-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	gap: 56px;
	align-items: center;
}
.ne-hero h1 {
	font-size: clamp(2.25rem, 4.7vw, 3.875rem);
	line-height: 1.03;
	letter-spacing: -0.035em;
	max-width: 13.5ch;
}
.ne-hero__sub {
	margin-top: 18px;
	max-width: 46ch;
	font-size: 1.125rem;
	color: var(--ne-ink-2);
}

.ne-hero__visual { position: relative; }
.ne-hero__img,
.ne-hero__blank {
	width: 100%;
	height: clamp(340px, 46vw, 560px);
	border-radius: var(--ne-r-l);
	object-fit: cover;
}
.ne-hero__blank { background: var(--ne-brand); color: rgba(255, 255, 255, 0.28); overflow: hidden; }
.ne-spot {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: grid;
	justify-items: start;
	gap: 2px;
	max-width: min(320px, calc(100% - 32px));
	padding: 14px 16px 15px;
	background: #fff;
	border-radius: var(--ne-r-m);
}
.ne-spot__price {
	margin-top: 8px;
	font-family: var(--ne-display);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
}
.ne-spot__price small { margin-left: 3px; font-family: var(--ne-text); font-size: 0.9rem; font-weight: 400; color: var(--ne-ink-2); letter-spacing: 0; }
.ne-spot__title { font-weight: 500; }
.ne-spot__place { font-size: 0.9rem; color: var(--ne-ink-2); }
.ne-spot:hover .ne-spot__title { text-decoration: underline; text-underline-offset: 3px; }

/* The three-way search. Tabs are the signature: choosing one recolours the box. */
.ne-find { margin-top: 32px; max-width: 640px; }
.ne-find[data-deal="sale"] { --ne-deal: var(--ne-sale); }
.ne-find[data-deal="rent"] { --ne-deal: var(--ne-rent); }
.ne-find[data-deal="lease"] { --ne-deal: var(--ne-lease); }
.ne-find__tabs { display: flex; gap: 2px; }
.ne-find__tab { position: relative; cursor: pointer; }
.ne-find__tab input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ne-find__tab span {
	display: flex;
	align-items: baseline;
	gap: 7px;
	padding: 11px 20px 12px;
	border-radius: var(--ne-r-m) var(--ne-r-m) 0 0;
	font-family: var(--ne-display);
	font-size: 1.0625rem;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--ne-ink-2);
	transition: background-color 0.15s, color 0.15s;
}
.ne-find__tab small { font-family: var(--ne-text); font-size: 0.8125rem; font-weight: 400; letter-spacing: 0; opacity: 0.75; }
.ne-find__tab:hover span { color: var(--ne-ink); }
.ne-find__tab input:checked + span { background: var(--ne-deal); color: #fff; }
.ne-find__tab input:focus-visible + span { outline: 2px solid var(--ne-ink); outline-offset: 2px; }
.ne-find__fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	background: #fff;
	border: 2px solid var(--ne-deal);
	border-radius: 0 var(--ne-r-m) var(--ne-r-m) var(--ne-r-m);
	transition: border-color 0.15s;
}
.ne-find__fields .ne-field { padding: 12px 16px 13px; border-top: 1px solid var(--ne-line); }
.ne-find__fields .ne-field + .ne-field { border-left: 1px solid var(--ne-line); }
.ne-find__fields .ne-field:focus-within { background: var(--ne-wash); }
.ne-find__where { grid-column: 1 / -1; border-top: 0 !important; border-left: 0 !important; }
.ne-find__where + .ne-field { border-left: 0 !important; }
.ne-find__go {
	grid-column: 1 / -1;
	min-height: 52px;
	border-radius: 0 0 7px 7px;
	font-size: 1rem;
}


.ne-purposes { padding-bottom: 24px; }
.ne-purposes__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ne-purposes__list li + li { border-left: 1px solid var(--ne-line); }
.ne-purposes__list a {
	display: grid;
	gap: 2px;
	height: 100%;
	align-content: start;
	padding: 4px 22px 6px;
}
.ne-purposes__list li:first-child a { padding-left: 0; }
.ne-purposes__list .ne-icon { color: var(--ne-brand); margin-bottom: 12px; }
.ne-purposes__name {
	font-family: var(--ne-display);
	font-size: 1.1875rem;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.ne-purposes__blurb { color: var(--ne-ink-2); font-size: 0.9rem; line-height: 1.4; }
.ne-purposes__count { margin-top: 10px; color: var(--ne-ink-3); font-size: 0.875rem; }
.ne-purposes__list a:hover .ne-purposes__name { text-decoration: underline; text-underline-offset: 4px; }

.ne-head--tabs { align-items: center; }
.ne-tabs { display: inline-flex; gap: 4px; padding: 4px; max-width: 100%; overflow-x: auto; scrollbar-width: none; background: #fff; border: 1px solid var(--ne-line); border-radius: 999px; }
.ne-tabs::-webkit-scrollbar { display: none; }
.ne-tabs__tab {
	padding: 8px 16px;
	border-radius: 999px;
	font-weight: 500;
	font-size: 0.9375rem;
	color: var(--ne-ink-2);
	white-space: nowrap;
	flex: 0 0 auto;
}
@media (max-width: 480px) { .ne-tabs__tab { padding: 8px 12px; font-size: 0.875rem; } }
.ne-tabs__tab:hover { color: var(--ne-ink); }
.ne-tabs__tab[aria-selected="true"] { color: #fff; background: var(--ne-ink); }
.ne-tabs__tab--sale[aria-selected="true"] { background: var(--ne-sale); }
.ne-tabs__tab--rent[aria-selected="true"] { background: var(--ne-rent); }
.ne-tabs__tab--lease[aria-selected="true"] { background: var(--ne-lease); }
.ne-tabs__all { margin-top: 36px; }

.ne-places__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 32px;
}
.ne-places__list a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--ne-line);
}
.ne-places__name {
	font-family: var(--ne-display);
	font-size: 1.25rem;
	font-weight: 500;
	letter-spacing: -0.02em;
}
.ne-places__count { color: var(--ne-ink-3); font-variant-numeric: tabular-nums; }
.ne-places__list a:hover { border-bottom-color: var(--ne-ink); }
.ne-places__list a:hover .ne-places__count { color: var(--ne-ink); }

.ne-owner { background: var(--ne-brand); color: rgba(255, 255, 255, 0.85); padding: 56px 0; }
.ne-owner__grid { display: flex; align-items: center; justify-content: space-between; gap: 28px 48px; flex-wrap: wrap; }
.ne-owner h2 { color: #fff; font-size: clamp(1.5rem, 2.6vw, 2.125rem); max-width: 22ch; }
.ne-owner p { margin-top: 10px; max-width: 46ch; font-size: 1.0625rem; }
.ne-owner__actions { display: flex; align-items: center; gap: 12px 24px; flex-wrap: wrap; }
.ne-owner__phone { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 500; }
.ne-owner__phone:hover { text-decoration: underline; text-underline-offset: 3px; }


/* The header on pages the theme draws: theme button and link rules must not repaint it. */
.ne--embedded .ne-header button,
.ne--embedded .ne-drawer button {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: inherit !important;
	text-transform: none !important;
}
.ne--embedded .ne-header button:hover,
.ne--embedded .ne-drawer button:hover { background: var(--ne-wash) !important; }
.ne--embedded .ne-header a,
.ne--embedded .ne-drawer a { text-decoration: none !important; }
.ne--block { margin-block: 24px 32px; }

/* Plain pages and the account page */
.ne-page { padding-block: 48px 80px; }
.ne-page__title { font-size: clamp(1.75rem, 3.3vw, 2.5rem); letter-spacing: -0.03em; margin-bottom: 24px; }
.ne-auth { max-width: 440px; }
.ne-auth h1 { font-size: clamp(1.75rem, 3.3vw, 2.375rem); letter-spacing: -0.03em; }
.ne-auth__lead { margin: 10px 0 24px; color: var(--ne-ink-2); }
.ne-auth .ne-tabs { margin-bottom: 20px; border-color: var(--ne-line-strong); }
.ne-auth__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 0.9375rem; }
.ne-auth__row a { color: var(--ne-brand); text-decoration: underline; text-underline-offset: 3px; }
.ne-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.ne-check input { width: 18px; height: 18px; accent-color: var(--ne-brand); }
.ne-notice--error { margin-bottom: 14px; background: #fbeaea; color: #8f1d1d; }
.ne-notice--error a { text-decoration: underline; }
.ne-notice--error strong { display: inline; font-family: inherit; }
.ne-me { max-width: 640px; }
.ne-me__mail { margin-top: 6px; color: var(--ne-ink-2); }
.ne-rows { margin: 28px 0; border-top: 1px solid var(--ne-line); }
.ne-rows a {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--ne-line);
}
.ne-rows .ne-icon:first-child { color: var(--ne-brand); }
.ne-rows .ne-icon:last-child { color: var(--ne-ink-3); }
.ne-rows strong { display: block; font-family: var(--ne-display); font-weight: 600; font-size: 1.0625rem; letter-spacing: -0.01em; }
.ne-rows span { color: var(--ne-ink-2); font-size: 0.9rem; }
.ne-rows a:hover strong { text-decoration: underline; text-underline-offset: 3px; }


/* ---------- 7. Search page ---------- */

.ne-searchbar { padding: 18px 0 20px; border-bottom: 1px solid var(--ne-line); background: #fff; }
.ne-searchbar__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.ne-deals { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.ne-deals a {
	padding: 8px 16px;
	border-radius: 999px;
	font-weight: 500;
	color: var(--ne-ink-2);
	white-space: nowrap;
}
.ne-deals a:hover { background: var(--ne-wash); color: var(--ne-ink); }
.ne-deals a[aria-current] { background: var(--ne-ink); color: #fff; }
.ne-deals a.ne-deals__sale[aria-current] { background: var(--ne-sale); }
.ne-deals a.ne-deals__rent[aria-current] { background: var(--ne-rent); }
.ne-deals a.ne-deals__lease[aria-current] { background: var(--ne-lease); }
.ne-searchbar__toggle { display: none; }

.ne-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.ne-filters .ne-field { flex: 1 1 150px; }
.ne-filters .ne-filters__where { flex: 1.6 1 220px; }
.ne-filters .ne-field--narrow { flex: 0.6 1 110px; }
.ne-filters .ne-field--range { flex: 1.2 1 190px; }
.ne-field--range > div { display: flex; gap: 10px; }
.ne-field--range > div input + input { padding-left: 10px; border-left: 1px solid var(--ne-line); }
.ne-filters__go { flex: none; min-height: 54px; }
@media (min-width: 1101px) {
	.ne-filters { flex-wrap: nowrap; }
	.ne-filters .ne-field { flex-basis: 0; }
	.ne-filters .ne-filters__where { flex-basis: 0; }
}

.ne-results { padding-bottom: 72px; }
.ne-results__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	flex-wrap: wrap;
	padding: 28px 0 20px;
}
.ne-results__head h1 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.ne-results__count { margin-top: 4px; color: var(--ne-ink-2); min-height: 1.5em; }
.ne-results__tools { display: flex; align-items: center; gap: 10px; }
.ne-sort select {
	min-height: 40px;
	padding: 0 34px 0 14px;
	border: 1px solid var(--ne-line-strong);
	border-radius: 8px;
	background-color: #fff;
	background-position: right 12px center;
	font-size: 0.9375rem;
	-webkit-appearance: none;
	appearance: none;
}
.ne-views { display: inline-flex; padding: 3px; border: 1px solid var(--ne-line-strong); border-radius: 8px; background: #fff; }
.ne-views button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 5px;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--ne-ink-2);
}
.ne-views button[aria-pressed="true"] { background: var(--ne-ink); color: #fff; }

.ne-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ne-chips a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px 6px 12px;
	border: 1px solid var(--ne-line-strong);
	border-radius: 999px;
	font-size: 0.875rem;
}
.ne-chips a:hover { border-color: var(--ne-ink); }
.ne-chips a.ne-chips__clear { border-color: transparent; padding-inline: 6px; text-decoration: underline; text-underline-offset: 3px; color: var(--ne-ink-2); }

.ne-results__map { display: none; }
[data-view="map"] .ne-results__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
	gap: 28px;
	align-items: start;
}
[data-view="map"] .ne-results__map {
	display: block;
	position: sticky;
	top: calc(var(--ne-header-h) + 16px);
}
.admin-bar [data-view="map"] .ne-results__map { top: calc(var(--ne-header-h) + 48px); }
[data-view="map"] .ne-results__list .ne-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-view="map"] .ne-results__map .ne-map { height: calc(100vh - var(--ne-header-h) - 32px); min-height: 420px; }
.ne-card.is-hot .ne-card__media { outline: 3px solid var(--ne-ink); outline-offset: 2px; }

.ne-pages { margin-top: 48px; }
.ne-pages ul { display: flex; flex-wrap: wrap; gap: 6px; }
.ne-pages a,
.ne-pages span {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 10px;
	border-radius: 8px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.ne-pages a { border: 1px solid var(--ne-line-strong); }
.ne-pages a:hover { border-color: var(--ne-ink); }
.ne-pages .current { background: var(--ne-ink); color: #fff; }


/* ---------- 8. Property page ---------- */

.ne-crumbs { padding: 18px 0 14px; font-size: 0.875rem; color: var(--ne-ink-2); }
.ne-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; }
.ne-crumbs li + li::before { content: '/'; margin-right: 6px; color: var(--ne-line-strong); }
.ne-crumbs a:hover { color: var(--ne-ink); text-decoration: underline; text-underline-offset: 3px; }

.ne-listing__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 32px;
	flex-wrap: wrap;
}
.ne-listing__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; color: var(--ne-ink-2); font-size: 0.9rem; }
.ne-listing__ref { color: var(--ne-ink-3); }
.ne-listing__head h1 { margin: 12px 0 8px; font-size: clamp(1.75rem, 3.3vw, 2.625rem); letter-spacing: -0.03em; max-width: 24ch; }
.ne-listing__place { display: flex; align-items: flex-start; gap: 6px; color: var(--ne-ink-2); }
.ne-listing__place .ne-icon { margin-top: 3px; }
.ne-listing__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ne-listing__actions .ne-btn { min-height: 40px; padding: 0 14px; }

.ne-gallery {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 8px;
	height: clamp(300px, 44vw, 540px);
	margin: 24px 0 8px;
	border-radius: var(--ne-r-l);
	overflow: hidden;
}
.ne-gallery__cell { position: relative; display: block; overflow: hidden; background: var(--ne-wash); }
.ne-gallery__cell img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.15s; }
.ne-gallery__cell:hover img { filter: brightness(0.9); }
.ne-gallery__cell:focus-visible { outline-offset: -4px; outline-color: #fff; }
.ne-gallery__cell:first-child { grid-column: span 2; grid-row: span 2; }
.ne-gallery--1 .ne-gallery__cell:first-child { grid-column: 1 / -1; }
.ne-gallery--2 .ne-gallery__cell { grid-column: span 2; grid-row: span 2; }
.ne-gallery--3 .ne-gallery__cell:not(:first-child) { grid-column: span 2; }
.ne-gallery--4 .ne-gallery__cell:last-of-type { grid-column: span 2; }
.ne-gallery__all {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 14px;
	border-radius: 8px;
	background: #fff;
	font-weight: 600;
	font-size: 0.9375rem;
}
.ne-gallery__all:hover { background: var(--ne-wash); }
.ne-gallery--none {
	display: grid;
	place-items: center;
	grid-template: none;
	height: 320px;
	background: var(--ne-wash);
	color: var(--ne-line-strong);
}
.ne-gallery--none .ne-plan { position: absolute; inset: 0; }
.ne-gallery--none p { position: relative; padding: 8px 14px; background: #fff; border-radius: 8px; color: var(--ne-ink-2); font-weight: 500; }

.ne-listing__cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 384px;
	gap: 64px;
	align-items: start;
	padding-bottom: 72px;
}

.ne-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
	gap: 24px 16px;
	padding: 28px 0;
	border-bottom: 1px solid var(--ne-line);
}
.ne-facts li { display: grid; gap: 2px; justify-items: start; }
.ne-facts .ne-icon { color: var(--ne-ink-3); margin-bottom: 6px; }
.ne-facts__value { font-family: var(--ne-display); font-size: 1.3125rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; }
.ne-facts__label { color: var(--ne-ink-2); font-size: 0.875rem; }

.ne-block { padding: 36px 0; border-bottom: 1px solid var(--ne-line); }
.ne-listing__main > .ne-block:last-child { border-bottom: 0; padding-bottom: 0; }
.ne-block > h2 { font-size: 1.375rem; margin-bottom: 18px; }
.ne-block__lead { color: var(--ne-ink-2); margin-bottom: 16px; }
.ne-block__note { margin-top: 16px; font-size: 0.875rem; color: var(--ne-ink-3); max-width: 62ch; }
.ne-block__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

.ne-prose { max-width: 68ch; font-size: 1.0625rem; line-height: 1.65; }
.ne-prose > * + * { margin-top: 1em; }
.ne-prose > ul,
.ne-prose > ol { padding-left: 1.2em; }
.ne-prose > ul { list-style: disc; }
.ne-prose > ol { list-style: decimal; }
.ne-prose > p a,
.ne-prose > ul a,
.ne-prose > ol a { color: var(--ne-brand); text-decoration: underline; text-underline-offset: 3px; }
.ne-prose--wide { max-width: none; }
.ne-prose--wide > p,
.ne-prose--wide > ul,
.ne-prose--wide > ol,
.ne-prose--wide > blockquote { max-width: 68ch; }
.ne-prose h2,
.ne-prose h3 { font-size: 1.1875rem; margin-top: 1.6em; }
.ne-prose blockquote { margin: 1.2em 0; padding-left: 16px; border-left: 3px solid var(--ne-line-strong); color: var(--ne-ink-2); }

.ne-terms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.ne-terms > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ne-line);
}
.ne-terms dt { flex: none; color: var(--ne-ink-2); }
.ne-terms dd { font-weight: 500; text-align: right; }
.ne-terms dd a { color: var(--ne-brand); text-decoration: underline; text-underline-offset: 3px; }

.ne-build { margin-bottom: 12px; }
.ne-build__bar { height: 8px; border-radius: 4px; background: var(--ne-wash); overflow: hidden; }
.ne-build__bar span { display: block; height: 100%; border-radius: 4px; background: var(--ne-deal); }
.ne-build__stage { display: flex; justify-content: space-between; margin-top: 10px; }
.ne-build__stage span { color: var(--ne-ink-2); font-variant-numeric: tabular-nums; }

.ne-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px 32px; }
.ne .ne-features h3 { margin-bottom: 10px; font-family: var(--ne-text); font-size: 0.875rem; font-weight: 500; letter-spacing: 0; color: var(--ne-ink-2); }
.ne-features ul { display: grid; gap: 8px; }
.ne-features li { display: flex; align-items: flex-start; gap: 8px; }
.ne-features .ne-icon { margin-top: 4px; color: var(--ne-deal); }

.ne-plan-img { display: block; padding: 16px; border: 1px solid var(--ne-line); border-radius: var(--ne-r-m); }
.ne-plan-img img { margin-inline: auto; max-height: 560px; width: auto; }
.ne-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--ne-r-m); overflow: hidden; background: var(--ne-wash); }
.ne-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.ne-calc__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.ne-calc__inputs { display: grid; gap: 10px; align-content: start; }
.ne-calc__result { padding: 22px 24px; border-radius: var(--ne-r-m); background: var(--ne-wash); }
.ne-calc__label { display: block; color: var(--ne-ink-2); font-size: 0.875rem; }
.ne-calc__amount { display: block; margin: 2px 0 14px; font-family: var(--ne-display); font-size: 2rem; font-weight: 600; letter-spacing: -0.03em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.ne-calc__result dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--ne-line); font-size: 0.9375rem; }
.ne-calc__result dt { color: var(--ne-ink-2); }
.ne-calc__result dd { font-weight: 500; font-variant-numeric: tabular-nums; }

.ne-listing__side { position: sticky; top: calc(var(--ne-header-h) + 20px); padding-top: 28px; }
.admin-bar .ne-listing__side { top: calc(var(--ne-header-h) + 52px); }
.ne-panel {
	padding: 22px 22px 24px;
	border: 1px solid var(--ne-line);
	border-top: 4px solid var(--ne-deal);
	border-radius: var(--ne-r-m);
	background: #fff;
}
.ne-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px; }
.ne-panel__price .ne-price { margin-top: 12px; }
.ne-price__amount { font-family: var(--ne-display); font-size: 2rem; font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; }
.ne-price__per { color: var(--ne-ink-2); }
.ne-price__note { margin-top: 4px; color: var(--ne-ink-2); font-size: 0.9rem; }
.ne-price__listed { margin-top: 10px; color: var(--ne-ink-3); font-size: 0.8125rem; line-height: 1.45; }
.ne-agent { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ne-line); }
.ne-agent img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--ne-wash); }
.ne-agent__name { font-weight: 600; }
.ne-agent__title { color: var(--ne-ink-2); font-size: 0.875rem; }
.ne-agent__ways { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ne-agent__ways .ne-btn { flex: 1 1 auto; min-height: 42px; padding: 0 12px; }
.ne .ne-panel__title { margin: 20px 0 12px; padding-top: 18px; border-top: 1px solid var(--ne-line); font-size: 1.0625rem; letter-spacing: -0.01em; }

.ne-stickybar { display: none; }


/* ---------- 9. Lightbox, map ---------- */

.ne-lightbox {
	position: fixed;
	inset: 0;
	z-index: 500;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	background: #0c1211;
	color: #fff;
}
.ne-lightbox__bar { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; }
.ne-lightbox__count { font-variant-numeric: tabular-nums; font-size: 0.9375rem; }
.ne-lightbox__stage { position: relative; display: grid; place-items: center; min-height: 0; padding: 0 64px 24px; }
.ne-lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; }
.ne-lightbox button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: #fff;
}
.ne-lightbox button:hover { background: rgba(255, 255, 255, 0.14); }
.ne-lightbox :focus-visible { outline-color: #fff; }
.ne-lightbox__prev,
.ne-lightbox__next { position: absolute; top: 50%; transform: translateY(-50%); }
.ne-lightbox__prev { left: 10px; }
.ne-lightbox__next { right: 10px; }

.ne-map {
	width: 100%;
	height: 420px;
	border-radius: var(--ne-r-m);
	background: var(--ne-wash);
	overflow: hidden;
	z-index: 0;
}
.ne-map--single { height: 360px; }
.ne .leaflet-container { font: inherit; }
.ne-pin {
	display: inline-block;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--ne-ink);
	color: #fff;
	border: 2px solid #fff;
	font-family: var(--ne-text);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transform: translate(-50%, -50%);
	box-shadow: 0 2px 6px rgba(23, 33, 30, 0.3);
}
.ne-pin--sale { background: var(--ne-sale); }
.ne-pin--rent { background: var(--ne-rent); }
.ne-pin--lease { background: var(--ne-lease); }
.ne-pin.is-hot { background: var(--ne-ink); transform: translate(-50%, -50%) scale(1.12); }
.ne-pin-wrap { background: none; border: 0; width: 0 !important; height: 0 !important; }
.ne-pin-wrap.is-hot { z-index: 1000 !important; }
.ne .leaflet-popup-content-wrapper { border-radius: var(--ne-r-m); padding: 0; overflow: hidden; box-shadow: 0 12px 32px -8px rgba(23, 33, 30, 0.3); }
.ne .leaflet-popup-content { margin: 0; width: 230px !important; }
.ne-pop { display: block; color: var(--ne-ink); }
.ne-pop img { width: 100%; height: 130px; object-fit: cover; }
.ne-pop__body { display: grid; gap: 1px; padding: 10px 12px 12px; }
.ne-pop__price { font-family: var(--ne-display); font-weight: 600; font-size: 1.0625rem; letter-spacing: -0.02em; }
.ne-pop__title { font-weight: 500; font-size: 0.9rem; line-height: 1.3; }
.ne-pop__place { color: var(--ne-ink-2); font-size: 0.8125rem; }


/* ---------- Responsive ---------- */

@media (max-width: 1180px) {
	.ne-header__row { gap: 20px; }
	.ne-iconlink__label { display: none; }
	.ne-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ne-listing__cols { grid-template-columns: minmax(0, 1fr) 348px; gap: 40px; }
	.ne-places__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ne-hero__grid { gap: 40px; }
}

@media (max-width: 1320px) {
	.ne-iconlink__label { display: none; }
}

/* With the currency menu in the header, long menu labels (Russian, Georgian)
   run out of room below this width, so the menu moves into the drawer. */
@media (max-width: 1140px) {
	.ne-nav,
	.ne-header__cta,
	.ne-header__account,
	.ne-lang { display: none; }
	.ne-burger { display: grid; }
}

@media (max-width: 1000px) {
	.ne-nav,
	.ne-header__cta,
	.ne-header__account,
	.ne-lang { display: none; }
	.ne-burger { display: grid; }
	.ne-iconlink__label { display: none; }

	.ne-hero { padding: 36px 0 48px; }
	.ne-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.ne-hero h1 { max-width: 16ch; }
	.ne-find { max-width: none; }
	.ne-hero__img,
	.ne-hero__blank { height: clamp(260px, 56vw, 420px); }

	.ne-purposes__list { grid-template-columns: minmax(0, 1fr); }
	.ne-purposes__list li + li { border-left: 0; border-top: 1px solid var(--ne-line); }
	.ne-purposes__list a,
	.ne-purposes__list li:first-child a {
		grid-template-columns: 40px minmax(0, 1fr) auto;
		align-items: center;
		column-gap: 12px;
		padding: 14px 0;
	}
	.ne-purposes__list .ne-icon { grid-row: span 2; margin: 0; }
	.ne-purposes__name { grid-column: 2; }
	.ne-purposes__blurb { grid-column: 2; }
	.ne-purposes__count { grid-column: 3; grid-row: 1 / span 2; margin: 0; }

	.ne-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ne-footer__about { grid-column: 1 / -1; }

	.ne-listing__cols { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 48px; }
	.ne-listing__side { position: static; padding-top: 36px; }
	.ne-listing__print { display: none; }

	[data-view="map"] .ne-results__body { grid-template-columns: minmax(0, 1fr); }
	[data-view="map"] .ne-results__map { position: static; order: -1; }
	[data-view="map"] .ne-results__map .ne-map { height: 56vh; min-height: 320px; }

	.ne-stickybar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: flex;
		align-items: center;
		gap: 8px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--ne-line);
		transition: transform 0.2s;
	}
	.ne-stickybar.is-away { transform: translateY(110%); }
	.ne-stickybar .ne-price { margin-right: auto; }
	.ne-stickybar .ne-price__amount { font-size: 1.25rem; }
	.ne-page-property .ne-footer { padding-bottom: 72px; }
}

@media (max-width: 860px) {
	.ne { --ne-gutter: 16px; }
	.ne-section { padding: 48px 0; }
	.ne-head h2 { font-size: 1.5rem; }
	.ne-grid--4,
	.ne-grid--3,
	[data-view="map"] .ne-results__list .ne-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ne-grid { gap: 28px 16px; }
	.ne-places__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }

	.ne-searchbar { padding: 12px 0; }
	.ne-searchbar__top { margin-bottom: 0; }
	.ne-searchbar__toggle { display: inline-flex; min-height: 40px; padding: 0 12px; }
	.ne-filters { display: none; margin-top: 12px; }
	.ne-filters.is-open { display: flex; }
	.ne-filters__go { flex: 1 1 100%; }
	.ne-deals a { padding: 8px 12px; }

	.ne-gallery { display: block; height: auto; }
	.ne-gallery__cell { display: none; aspect-ratio: 4 / 3; width: 100%; }
	.ne-gallery__cell:first-child { display: block; }

	.ne-terms { grid-template-columns: minmax(0, 1fr); }
	.ne-calc__grid { grid-template-columns: minmax(0, 1fr); }
	.ne-lightbox__stage { padding: 0 8px 16px; }
	.ne-lightbox__prev,
	.ne-lightbox__next { background: rgba(12, 18, 17, 0.55); }
}

@media (max-width: 782px) {
	.admin-bar .ne-header { top: 46px; }
}

@media (max-width: 560px) {
	.ne-grid--4,
	.ne-grid--3,
	.ne-grid--2,
	[data-view="map"] .ne-results__list .ne-grid { grid-template-columns: minmax(0, 1fr); }
	.ne-places__list { grid-template-columns: minmax(0, 1fr); }
	.ne-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; padding-block: 40px 32px; }
	.ne-find__tab span { padding: 10px 14px 11px; font-size: 1rem; }
	.ne-find__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ne-find__fields .ne-field:nth-of-type(2) { grid-column: 1 / -1; }
	.ne-find__fields .ne-field:nth-of-type(3) { border-left: 0 !important; }
	.ne-blank { padding: 28px 22px; }

	/* Homepage and "similar" rows scroll sideways instead of stacking. */
	.ne-section .ne-grid {
		display: flex;
		gap: 14px;
		margin-inline: calc(var(--ne-gutter) * -1);
		padding: 2px var(--ne-gutter) 6px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--ne-gutter);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.ne-section .ne-grid::-webkit-scrollbar { display: none; }
	.ne-section .ne-grid > .ne-card { flex: 0 0 78%; scroll-snap-align: start; }
	.ne-hero__img,
	.ne-hero__blank { height: clamp(300px, 86vw, 420px); }
	.ne-spot { left: 12px; bottom: 12px; padding: 12px 14px; max-width: calc(100% - 24px); }
	.ne-head--tabs { align-items: flex-start; flex-direction: column; }
	.ne-views span { display: none; }
	.ne-listing__actions .ne-btn span { display: none; }
	.ne-results__head { align-items: flex-start; }
	.ne-owner { padding: 44px 0; }
}


/* ---------- 10. Print, reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	.ne *,
	.ne *::before,
	.ne *::after { transition: none !important; scroll-behavior: auto !important; }
}

@media print {
	.ne-header,
	.ne-footer,
	.ne-drawer,
	.ne-stickybar,
	.ne-listing__actions,
	.ne-enquire,
	.ne-panel__title,
	.ne-gallery__all,
	.ne-calc,
	.ne-crumbs,
	#similar,
	#wpadminbar { display: none !important; }
	.ne-listing__cols { display: block; }
	.ne-listing__side { position: static; }
	.ne-gallery { height: 320px; }
	.ne-block { break-inside: avoid; }
	.ne-map { display: none; }
}
