/*
 * SedraPrime premium frontend layer (Task 12, theme v0.4.0). Loaded after presentation.css.
 * Targets: /property/ (CPT archive), /property/{slug}/ (single), and the Core shortcode components
 * ([sedraprime_property_search], search bar, cards, forms) wherever the owner places them in Elementor.
 * Presentation only. Logical properties => one file for Arabic RTL and English LTR.
 * Everything is scoped under `.sp-theme` and Core `.sp-*` classes; Elementor header/footer are not touched.
 */

.sp-theme { --spt-max: 1560px; --spt-radius: 8px; --spt-radius-lg: 12px; --spt-card-min: 16.5rem; --spt-sec: clamp(2rem, 4vw, 3.5rem); }

/* ================= Shared: section rhythm + headings ================= */
.sp-theme .sp-pt { display: block; }
.sp-theme .sp-pt__sec { padding-block: var(--spt-sec) 0; }
.sp-theme .sp-pt__sec--summary { padding-block-start: clamp(1.25rem, 2.5vw, 2rem); }
.sp-theme .sp-pt__sec--gallery { padding-block-start: clamp(1rem, 2vw, 1.5rem); }
.sp-theme .sp-pt__sec--tint { margin-block-start: var(--spt-sec); padding-block: var(--spt-sec); background: var(--sp-color-surface-alt); border-block: 1px solid var(--sp-color-border); }
.sp-theme .sp-pt__sec--related { padding-block-end: clamp(2.5rem, 5vw, 4.5rem); }
.sp-theme .sp-pt__sec--description + .sp-pt__sec,
.sp-theme .sp-pt__sec--features { border-block-start: 0; }
.sp-theme .sp-pt__sec--description > .sp-wrap,
.sp-theme .sp-pt__sec--features > .sp-wrap { padding-block-start: var(--spt-sec); border-block-start: 1px solid var(--sp-color-border); }
.sp-theme .sp-pt__sec--description { padding-block-start: var(--spt-sec); }
.sp-theme .sp-pt__sec--description > .sp-wrap { padding-block-start: 0; border-block-start: 0; }
.sp-theme .sp-pt .sp-section-block > h2,
.sp-theme .sp-pt__related > h2 { display: flex; align-items: center; gap: var(--sp-space-3); margin-block: 0 var(--sp-space-5); font-size: clamp(1.3rem, 1.1rem + .9vw, 1.75rem); }
.sp-theme .sp-pt .sp-section-block > h2::after,
.sp-theme .sp-pt__related > h2::after { content: ""; flex: 1; inline-size: auto; block-size: 1px; margin: 0; background: linear-gradient(to var(--spt-end, right), var(--sp-color-border), transparent); border-radius: 0; }
.sp-theme.sp-dir-rtl .sp-pt .sp-section-block > h2::after,
.sp-theme.sp-dir-rtl .sp-pt__related > h2::after { background: linear-gradient(to left, var(--sp-color-border), transparent); }
.sp-theme .sp-pt .sp-section-block > h2::before,
.sp-theme .sp-pt__related > h2::before { content: ""; flex: none; inline-size: 4px; block-size: 1.2em; background: var(--sp-color-brand-gold-2); border-radius: 2px; }

/* ================= Single: hero fills its container ================= */
.sp-theme .sp-pt__hero .sp-block { display: block; }
.sp-theme .sp-hero { position: relative; overflow: hidden; border-radius: var(--spt-radius-lg); background: var(--sp-color-dark); }
.sp-theme .sp-hero__media,
.sp-theme .sp-hero__map { position: relative; inline-size: 100%; aspect-ratio: 21 / 9; min-block-size: 18rem; max-block-size: min(72vh, 680px); }
.sp-theme .sp-hero__media > .sp-hero__img,
.sp-theme .sp-hero__media > img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; max-inline-size: none; object-fit: cover; object-position: center; display: block; }
.sp-theme .sp-hero__ph { position: absolute; inset: 0; display: grid; place-items: center; }
.sp-theme .sp-hero__tabs { inset-inline: auto; inset-inline-end: var(--sp-space-4); justify-content: flex-end; }
.sp-theme .sp-hero__tabs-group { background: color-mix(in srgb, var(--sp-color-surface) 94%, transparent); padding: 3px; box-shadow: 0 6px 20px rgba(35, 31, 26, .22); }
.sp-theme .sp-hero__tab { min-block-size: 2.25rem; min-inline-size: 5rem; padding-inline: 1.1rem; font-size: .9rem; }
.sp-theme .sp-hero__tab[aria-pressed="true"] { background: var(--sp-color-brand-bronze); color: #fff; }
.sp-theme .sp-hero__tab[aria-pressed="false"]:hover { background: var(--sp-color-gold-100); }

/* ================= Single: summary (title / price / key facts) ================= */
.sp-theme .sp-pt .sp-details {
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto;
	grid-template-areas: "badges badges" "title price" "loc price" "facts facts";
	column-gap: clamp(1.25rem, 3vw, 3rem);
	row-gap: 0;
	align-items: center;
	padding: 0;
}
.sp-theme .sp-pt .sp-details__badges { display: flex; flex-wrap: wrap; gap: var(--sp-space-2); margin-block-end: var(--sp-space-3); }
.sp-theme .sp-pt .sp-details__badges .sp-badge { padding: .2rem .85rem; font-size: var(--sp-size-xs); color: #fff; background: var(--sp-color-brand-bronze); border-radius: var(--sp-radius-pill); }
.sp-theme .sp-pt .sp-details__title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.35rem); margin-block-end: var(--sp-space-2); }
.sp-theme .sp-pt .sp-details__loc { display: flex; align-items: center; gap: var(--sp-space-2); margin: 0; color: var(--sp-color-text-muted); }
.sp-theme .sp-pt .sp-details__loc .sp-icon { color: var(--sp-color-brand-bronze); flex: none; }
.sp-theme .sp-pt .sp-details__price { justify-self: end; margin: 0; padding: var(--sp-space-3) var(--sp-space-5); text-align: center; font-family: var(--sp-font-heading); font-weight: var(--sp-weight-bold); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); line-height: 1.2; color: var(--sp-color-bronze-700); background: var(--sp-color-gold-100); border: 1px solid var(--sp-color-border); border-inline-start: 4px solid var(--sp-color-brand-gold-2); border-radius: var(--spt-radius); }
.sp-theme .sp-pt .sp-details > .sp-facts {
	grid-template-columns: repeat(auto-fit, minmax(8.25rem, 1fr));
	gap: 0;
	margin-block-start: var(--sp-space-5);
	padding: 0;
	background: var(--sp-color-surface);
	border: 1px solid var(--sp-color-border);
	border-radius: var(--spt-radius-lg);
	box-shadow: var(--sp-shadow-sm);
	overflow: hidden;
}
.sp-theme .sp-pt .sp-details > .sp-facts .sp-facts__row,
.sp-theme .sp-pt .sp-details > .sp-facts .sp-facts__row:last-child { flex-direction: column-reverse; align-items: flex-start; justify-content: center; gap: .15rem; padding: var(--sp-space-4) var(--sp-space-4); border-block-end: 0; border-inline-end: 1px solid var(--sp-color-border); }
.sp-theme .sp-pt .sp-details > .sp-facts dt { font-size: var(--sp-size-xs); }
.sp-theme .sp-pt .sp-details > .sp-facts dd { font-size: 1.15rem; text-align: start; color: var(--sp-color-text); }
.sp-theme .sp-pt__cta { margin-block-start: var(--sp-space-5); }

/* ================= Single: gallery (1 prominent + 4 supporting, rest in the lightbox) ================= */
.sp-theme .sp-gallery.is-compact {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(2, var(--spt-gal-row));
	grid-auto-flow: row;
	grid-auto-columns: auto;
	overflow: hidden;
	padding-block-end: 0;
	position: static;
}
.sp-theme .sp-gallery.is-compact > li { grid-column: auto; grid-row: auto; }
.sp-theme .sp-gallery.is-compact > li.is-hero-dup,
.sp-theme .sp-gallery.is-compact > li.is-extra { display: none; }
.sp-theme .sp-gallery.is-compact > li.is-first { grid-column: span 2; grid-row: span 2; }
.sp-theme .sp-gallery.is-compact[data-vis="1"] > li.is-first { grid-column: 1 / -1; }
.sp-theme .sp-gallery.is-compact[data-vis="2"] > li { grid-column: span 2; grid-row: span 2; }
.sp-theme .sp-gallery.is-compact[data-vis="3"] > li:not(.is-first):not(.is-hero-dup):not(.is-extra) { grid-column: span 2; grid-row: span 1; }
.sp-theme .sp-gallery__all { position: absolute; z-index: 2; inset-block-end: var(--sp-space-3); inset-inline-end: var(--sp-space-3); display: inline-flex; align-items: center; gap: .5rem; min-block-size: 2.5rem; padding-inline: 1.1rem; font: inherit; font-weight: var(--sp-weight-semibold); font-size: .9rem; color: var(--sp-color-text); background: var(--sp-color-surface); border: 1px solid var(--sp-color-border-strong); border-radius: var(--sp-radius-pill); box-shadow: 0 4px 14px rgba(35, 31, 26, .2); cursor: pointer; }
.sp-theme .sp-gallery__all:hover { background: var(--sp-color-gold-100); }
.sp-theme .sp-gallery__all:focus-visible { outline: 3px solid var(--sp-color-focus); outline-offset: 2px; }
.sp-theme .sp-pt__gallery .sp-section-block { position: relative; }
.sp-theme .sp-pt__gallery .sp-section-block > h2 { display: none; }
.sp-theme .sp-gallery__item:hover .sp-gallery__img { transform: scale(1.04); }
.sp-theme .sp-gallery__item { overflow: hidden; }

/* ================= Single: address + license ================= */
.sp-theme .sp-pt__band { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--spt-gap); }
.sp-theme .sp-pt__band--pair { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: stretch; }
.sp-theme .sp-pt__band > .sp-section-block { padding: 0; background: none; border: 0; }
.sp-theme .sp-pt__band .sp-property-address .sp-facts { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0; background: var(--sp-color-surface); border: 1px solid var(--sp-color-border); border-radius: var(--spt-radius-lg); overflow: hidden; }
.sp-theme .sp-pt__band .sp-property-address .sp-facts__row,
.sp-theme .sp-pt__band .sp-property-address .sp-facts__row:last-child { flex-direction: column-reverse; align-items: flex-start; gap: .15rem; padding: var(--sp-space-4); border-block-end: 0; border-inline-end: 1px solid var(--sp-color-border); }
.sp-theme .sp-pt__band .sp-property-address .sp-facts dt { font-size: var(--sp-size-xs); }
.sp-theme .sp-pt__band .sp-property-address .sp-facts dd { text-align: start; }
.sp-theme .sp-pt__band .sp-property-address > p { margin: var(--sp-space-4) 0 0; }
.sp-theme .sp-pt .sp-license,
.sp-theme .sp-pt__band > .sp-section-block.sp-license { position: relative; padding: clamp(1.25rem, 2.2vw, 1.75rem); background: linear-gradient(160deg, var(--sp-color-gold-100), var(--sp-color-surface) 70%); border: 1px solid var(--sp-color-border); border-inline-start: 4px solid var(--sp-color-brand-gold-2); border-radius: var(--spt-radius-lg); box-shadow: var(--sp-shadow-sm); }
.sp-theme .sp-pt .sp-license > h2 { margin-block-end: var(--sp-space-3); font-size: 1.15rem; }
.sp-theme .sp-pt .sp-license > h2::before,
.sp-theme .sp-pt .sp-license > h2::after { display: none; }
.sp-theme .sp-pt .sp-license .sp-facts { grid-template-columns: minmax(0, 1fr); }
.sp-theme .sp-pt .sp-license .sp-facts__row { flex-direction: column-reverse; align-items: flex-start; gap: .1rem; padding-block: var(--sp-space-3); }
.sp-theme .sp-pt .sp-license .sp-facts dt { font-size: var(--sp-size-xs); }
.sp-theme .sp-pt .sp-license .sp-facts dd { font-size: 1.2rem; text-align: start; font-family: var(--sp-font-heading); }
.sp-theme .sp-pt .sp-license .sp-facts__row:last-child { border-block-end: 0; }

/* ================= Single: description + features ================= */
.sp-theme .sp-pt__description .sp-prose { max-inline-size: 78rem; font-size: 1.05rem; line-height: 1.95; }
.sp-theme .sp-pt .sp-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: var(--sp-space-3); padding: 0; margin: 0; list-style: none; }
.sp-theme .sp-pt .sp-features li { display: flex; align-items: center; gap: .7rem; min-block-size: 3.25rem; padding: .6rem 1rem; position: static; font-size: var(--sp-size-sm); font-weight: var(--sp-weight-medium); background: var(--sp-color-surface); border: 1px solid var(--sp-color-border); border-radius: var(--spt-radius); }
.sp-theme .sp-pt .sp-features li::before { content: ""; position: static; inset: auto; display: block; flex: none; inline-size: 1.75rem; block-size: 1.75rem; margin: 0; background-color: var(--sp-color-gold-100); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23956537' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); background-size: 70%; background-repeat: no-repeat; background-position: center; border-radius: 50%; }

/* ================= Single: forms band (booking / rental / calculator) ================= */
.sp-theme .sp-pt__actions { display: grid; gap: var(--spt-gap); grid-template-columns: minmax(0, 1fr); align-items: start; }
/* Row 1: booking + calculator. Two blocks = two balanced columns; one block = centred with a sensible maximum width (no empty half column). */
.sp-theme .sp-pt__actions--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.sp-theme .sp-pt__actions--2 > * > :is(.sp-booking, .sp-calc, .sp-section-block) { block-size: 100%; box-sizing: border-box; }
.sp-theme .sp-pt__actions--1 { grid-template-columns: minmax(0, 1fr); max-inline-size: 56rem; margin-inline: auto; }
/* Last section: rental application, full width, visually separated from row 1. */
.sp-theme .sp-pt__sec--rental { padding-block: var(--spt-sec) 0; }
.sp-theme .sp-pt__sec--rental + .sp-pt__sec--related { padding-block-start: var(--spt-sec); }
.sp-theme .sp-pt__rental { container-type: inline-size; }
.sp-theme .sp-pt__rental .sp-rental-application { border-block-start-color: var(--sp-color-brand-bronze); }
.sp-theme .sp-pt__actions > * { min-inline-size: 0; container-type: inline-size; }
.sp-theme .sp-pt :is(.sp-booking, .sp-rental-application, .sp-calc) { position: relative; padding: clamp(1.25rem, 2.4vw, 2rem); background: var(--sp-color-surface); border: 1px solid var(--sp-color-border); border-block-start: 3px solid var(--sp-color-brand-gold); border-radius: var(--spt-radius-lg); box-shadow: 0 8px 24px rgba(35, 31, 26, .06); }
.sp-theme .sp-pt :is(.sp-booking__title, .sp-rental-application__title, .sp-calc > h2) { margin: 0 0 var(--sp-space-2); font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); }
.sp-theme .sp-pt :is(.sp-booking__title, .sp-rental-application__title, .sp-calc > h2)::before,
.sp-theme .sp-pt :is(.sp-booking__title, .sp-rental-application__title, .sp-calc > h2)::after { display: none; }
.sp-theme .sp-pt :is(.sp-booking__meta, .sp-rental-application__meta) { margin-block-end: var(--sp-space-3); font-size: var(--sp-size-sm); color: var(--sp-color-text-muted); }
.sp-theme .sp-pt :is(.sp-booking__form, .sp-rental-application__form) { grid-template-columns: minmax(0, 1fr); }
@container (min-width: 34rem) {
	.sp-theme .sp-pt .sp-booking__form,
	.sp-theme .sp-pt .sp-rental-application__form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (min-width: 64rem) {
	.sp-theme .sp-pt .sp-rental-application__form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.sp-theme .sp-pt .sp-rental-application__form > h3 { display: flex; align-items: center; gap: .6rem; border-block-end: 0; padding-block-end: 0; font-size: 1rem; color: var(--sp-color-bronze-700); }
.sp-theme .sp-pt .sp-rental-application__form > h3::before { content: ""; inline-size: 1.5rem; block-size: 2px; background: var(--sp-color-brand-gold-2); }
.sp-theme .sp-pt .sp-calc .sp-calc__out { display: grid; gap: 0; margin-block-start: var(--sp-space-4); padding: var(--sp-space-3) var(--sp-space-4); background: var(--sp-color-gold-100); border-radius: var(--spt-radius); }
.sp-theme .sp-pt .sp-calc__out .sp-facts__row[data-k="monthly"],
.sp-theme .sp-pt .sp-calc__out .sp-facts__row:nth-child(3) { padding-block: var(--sp-space-3); }
.sp-theme .sp-pt .sp-calc__out .sp-facts__row:nth-child(3) dd { font-size: 1.3rem; color: var(--sp-color-bronze-700); }
.sp-theme .sp-pt .sp-calc__disclaimer { margin-block-start: var(--sp-space-3); font-size: var(--sp-size-xs); color: var(--sp-color-text-muted); }
.sp-theme .sp-pt .sp-calc__error { padding: .5rem .75rem; color: var(--sp-color-error); background: var(--sp-color-error-bg); border-radius: var(--spt-radius); }

/* ================= Forms (everywhere a Core form is used) ================= */
.sp-theme .sp-field { display: grid; gap: .35rem; min-inline-size: 0; }
.sp-theme .sp-field :is(input:not([type="checkbox"]):not([type="radio"]), select) { inline-size: 100%; min-block-size: 2.9rem; padding-inline: .9rem; font: inherit; color: var(--sp-color-text); }
.sp-theme .sp-field select { appearance: none; padding-inline-end: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23956537' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 1rem; background-position: right .85rem center; }
.sp-theme.sp-dir-rtl .sp-field select,
[dir="rtl"] .sp-theme .sp-field select { background-position: left .85rem center; }
.sp-theme .sp-field :is(input, select, textarea)::placeholder { color: var(--sp-color-text-muted); opacity: .75; }
.sp-theme .sp-field :is(input, select, textarea):focus-visible { outline: 2px solid var(--sp-color-focus); }
.sp-theme .sp-field :is(input, select, textarea):user-invalid { background-color: var(--sp-color-error-bg); }
.sp-theme .sp-btn { border-radius: var(--spt-radius); }
.sp-theme .sp-btn:not(.sp-btn--ghost):not(.sp-btn--outline) { color: #fff; background: var(--sp-color-brand-bronze); border-color: var(--sp-color-brand-bronze); }
.sp-theme .sp-btn:not(.sp-btn--ghost):not(.sp-btn--outline):hover { background: var(--sp-color-bronze-700); border-color: var(--sp-color-bronze-700); }
.sp-theme .sp-btn--ghost,
.sp-theme .sp-btn--outline { color: var(--sp-color-bronze-700); background: transparent; border: 1px solid var(--sp-color-brand-bronze); }
.sp-theme .sp-btn--ghost:hover,
.sp-theme .sp-btn--outline:hover { background: var(--sp-color-gold-100); }
.sp-theme .sp-btn:focus-visible { outline: 3px solid var(--sp-color-focus); outline-offset: 2px; }

/* ================= Listing: /property/ and [sedraprime_property_search] =================
   Visual order: map -> filters -> count/sort -> results. Core DOM order is filters, toolbar, [results, map];
   the grid re-orders it without touching markup, names or scripts. */
.sp-theme .sp-archive-wrap .sp-wrap.sp-section { padding-block-start: clamp(1rem, 2vw, 1.75rem); }
.sp-theme .sp-archive-header { margin-block-end: var(--sp-space-4); }
.sp-theme .sp-search { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-space-5); }
.sp-theme .sp-search > * { min-inline-size: 0; }
.sp-theme .sp-search__split { display: contents; }
.sp-theme .sp-search__mapwrap { order: 1; position: relative; inset: auto; display: block; margin: 0; }
.sp-theme .sp-search > .sp-filters { order: 2; }
.sp-theme .sp-search > .sp-search__toolbar { order: 3; }
.sp-theme .sp-search__results { order: 4; }
.sp-theme .sp-search__toggle { display: none; }
.sp-theme .sp-search__mapwrap .sp-map { block-size: clamp(300px, 34vw, 470px); min-block-size: 0; border-radius: var(--spt-radius-lg); border: 1px solid var(--sp-color-border); box-shadow: var(--sp-shadow-sm); }
.sp-theme .sp-search__mapwrap .sp-map__status { position: absolute; inset-block-end: var(--sp-space-3); inset-inline-start: var(--sp-space-3); margin: 0; padding: .25rem .75rem; font-size: var(--sp-size-xs); background: color-mix(in srgb, var(--sp-color-surface) 92%, transparent); border-radius: var(--sp-radius-pill); box-shadow: var(--sp-shadow-sm); }
.sp-theme .sp-search__mapwrap .sp-map__status:empty { display: none; }
.sp-theme .sp-search .sp-grid { --sp-cols: 4; }

/* Filter toolbar: one compact row on desktop */
.sp-theme .sp-search > .sp-filters { display: flex; flex-wrap: wrap; align-items: end; gap: var(--sp-space-4) var(--sp-space-5); margin-block-start: calc(var(--sp-space-3) * -1); padding: var(--sp-space-4) clamp(1rem, 2vw, 1.5rem); border-radius: var(--spt-radius-lg); }
.sp-theme .sp-search .sp-filters__grid { flex: 1 1 36rem; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: var(--sp-space-3) var(--sp-space-4); }
.sp-theme .sp-search .sp-filters__actions { display: flex; flex-flow: row-reverse wrap; align-items: center; gap: var(--sp-space-3); }
.sp-theme .sp-search .sp-filters__actions .sp-btn:first-child { min-inline-size: 9rem; }
.sp-theme .sp-search .sp-filters__actions .sp-btn--ghost { border: 0; padding-inline: .5rem; text-decoration: underline; text-underline-offset: 3px; }
.sp-theme .sp-search .sp-filters__grid .sp-field--range > div { display: grid; grid-template-columns: 1fr 1fr; }
.sp-theme .sp-search .sp-filters.has-more-toggle:not(.is-expanded) .sp-field--extra { display: none; }
.sp-theme .sp-filters__more { display: inline-flex; align-items: center; gap: .4rem; min-block-size: 2.75rem; padding-inline: .75rem; font: inherit; font-size: var(--sp-size-sm); font-weight: var(--sp-weight-semibold); color: var(--sp-color-bronze-700); background: transparent; border: 1px dashed var(--sp-color-border-strong); border-radius: var(--spt-radius); cursor: pointer; }
.sp-theme .sp-filters__more:hover { background: var(--sp-color-gold-100); }
.sp-theme .sp-filters__more:focus-visible { outline: 3px solid var(--sp-color-focus); outline-offset: 2px; }
.sp-theme .sp-search .sp-field--features { grid-column: 1 / -1; background: var(--sp-color-surface-alt); padding: .5rem .9rem; border: 1px solid var(--sp-color-border); }

/* Count + sort row */
.sp-theme .sp-search__toolbar { align-items: center; margin: 0; padding: 0 0 var(--sp-space-3); border-block-end: 1px solid var(--sp-color-border); }
.sp-theme .sp-search__count { display: flex; align-items: baseline; gap: .4rem; margin: 0; font-family: var(--sp-font-heading); font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); font-weight: var(--sp-weight-bold); }
.sp-theme .sp-search__count .sp-num { color: var(--sp-color-brand-bronze); }
.sp-theme .sp-search__sort .sp-field { grid-auto-flow: column; align-items: center; gap: .6rem; }
.sp-theme .sp-search__sort .sp-field > label { white-space: nowrap; }
.sp-theme .sp-search__sort select { min-inline-size: 11rem; min-block-size: 2.6rem; }

/* Loading / updating / error / empty states (Core sets aria-busy while fetching) */
.sp-theme .sp-search__results { position: relative; min-block-size: 8rem; transition: opacity var(--sp-motion-base) var(--sp-motion-ease); }
.sp-theme .sp-search__results[aria-busy="true"] { opacity: .45; pointer-events: none; }
.sp-theme .sp-search__results[aria-busy="true"]::after { content: ""; position: absolute; inset-block-start: 3rem; inset-inline-start: calc(50% - 1.25rem); inline-size: 2.5rem; block-size: 2.5rem; border: 3px solid var(--sp-color-border); border-block-start-color: var(--sp-color-brand-bronze); border-radius: 50%; animation: spt-spin .8s linear infinite; }
.sp-theme .sp-search__count[aria-busy="true"] { opacity: .6; }
.sp-theme .sp-search .sp-notice--error { margin: 0; padding: var(--sp-space-4); color: var(--sp-color-error); background: var(--sp-color-error-bg); }
.sp-theme .sp-search .sp-empty { display: grid; place-items: center; gap: var(--sp-space-2); text-align: center; color: var(--sp-color-text-muted); background: var(--sp-color-surface); border: 1px dashed var(--sp-color-border-strong); }
@keyframes spt-spin { to { transform: rotate(360deg); } }

/* Pagination from Core */
.sp-theme .sp-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sp-space-2); margin-block-start: var(--sp-space-6); }
.sp-theme .sp-pagination .sp-page { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 2.75rem; min-block-size: 2.75rem; padding-inline: .9rem; color: var(--sp-color-text); text-decoration: none; background: var(--sp-color-surface); border: 1px solid var(--sp-color-border-strong); }
.sp-theme .sp-pagination a.sp-page:hover { background: var(--sp-color-gold-100); }
.sp-theme .sp-pagination .sp-page.is-current { color: #fff; background: var(--sp-color-brand-bronze); border-color: var(--sp-color-brand-bronze); }
.sp-theme .sp-pagination .sp-page--gap { border: 0; background: none; }

/* ================= Cards ================= */
.sp-theme .sp-card { overflow: hidden; background: var(--sp-color-surface); }
.sp-theme .sp-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sp-color-surface-alt); }
.sp-theme .sp-card__img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; transition: transform var(--sp-motion-slow, .4s) var(--sp-motion-ease); }
.sp-theme .sp-card:hover .sp-card__img { transform: scale(1.04); }
.sp-theme .sp-card .sp-badge { background: var(--sp-color-brand-bronze); color: #fff; font-size: var(--sp-size-xs); font-weight: var(--sp-weight-semibold); backdrop-filter: none; }
.sp-theme .sp-card__body { display: flex; flex-direction: column; gap: var(--sp-space-2); }
.sp-theme .sp-card__price { order: 3; margin: 0; font-family: var(--sp-font-heading); font-weight: var(--sp-weight-bold); font-size: 1.3rem; color: var(--sp-color-bronze-700); }
.sp-theme .sp-card__title { order: 1; margin: 0; }
.sp-theme .sp-card__loc { order: 2; display: flex; align-items: center; gap: .35rem; margin: 0; font-size: var(--sp-size-sm); color: var(--sp-color-text-muted); }
.sp-theme .sp-card__loc .sp-icon { color: var(--sp-color-brand-bronze); flex: none; }
.sp-theme .sp-card__specs { order: 4; display: flex; flex-wrap: wrap; margin: var(--sp-space-1) 0 0; padding: var(--sp-space-3) 0 0; list-style: none; border-block-start: 1px solid var(--sp-color-border); }
.sp-theme .sp-card__specs .sp-icon { color: var(--sp-color-brand-bronze); }
.sp-theme .sp-card__meta { order: 5; margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .75rem; }
.sp-theme .sp-card__cta { order: 6; margin-block-start: auto; }

/* ================= Map popup (Core InfoWindow frame; popup content/markers are styled by Core v0.5.4) ================= */
.sp-theme .sp-map__pop { inline-size: 16.5rem; }
.sp-theme .sp-map__pop-title { font-weight: var(--sp-weight-bold); }
.sp-theme .sp-map__pop-price .sp-num { font-variant-numeric: tabular-nums; }
.sp-theme .gm-style .gm-style-iw-c { padding: 0 !important; border-radius: 12px !important; box-shadow: 0 10px 30px rgba(35, 31, 26, .28) !important; }
.sp-theme .gm-style .gm-style-iw-d { overflow: hidden !important; max-block-size: none !important; }
.sp-theme .gm-style .gm-style-iw-chr { position: absolute; inset-block-start: 0; inset-inline-end: 0; z-index: 2; block-size: auto; }

/* ================= Breakpoints ================= */
@media (min-width: 1500px) {
	.sp-theme .sp-search .sp-grid { --sp-cols: 4; }
}
@media (max-width: 1280px) {
	.sp-theme .sp-search .sp-grid { --sp-cols: 3; }
}
@media (max-width: 1024px) {
	.sp-theme .sp-search .sp-grid { --sp-cols: 2; }
	.sp-theme .sp-pt .sp-details { grid-template-columns: minmax(0, 1fr); grid-template-areas: "badges" "title" "loc" "price" "facts"; }
	.sp-theme .sp-pt .sp-details__price { justify-self: start; margin-block-start: var(--sp-space-4); }
	.sp-theme .sp-pt__band--pair { grid-template-columns: minmax(0, 1fr); }
	.sp-theme .sp-pt__actions--2 { grid-template-columns: minmax(0, 1fr); }
	.sp-theme .sp-hero__media,
	.sp-theme .sp-hero__map { aspect-ratio: 16 / 9; }
	.sp-theme .sp-search > .sp-filters { margin-block-start: 0; }
	.sp-theme .sp-search .sp-filters__grid { flex-basis: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.sp-theme { --spt-gutter: 1rem; }
	.sp-theme .sp-search .sp-grid { --sp-cols: 1; }
	.sp-theme .sp-search__mapwrap .sp-map { block-size: 300px; }
	.sp-theme .sp-hero__media,
	.sp-theme .sp-hero__map { aspect-ratio: 4 / 3; min-block-size: 15rem; }
	.sp-theme .sp-hero__tabs { inset-inline: var(--sp-space-3); inset-block-start: var(--sp-space-3); }
	.sp-theme .sp-pt .sp-details > .sp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sp-theme .sp-pt .sp-details > .sp-facts .sp-facts__row { border-block-end: 1px solid var(--sp-color-border); }
	.sp-theme .sp-gallery.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 13rem 7rem 7rem; }
	.sp-theme .sp-gallery.is-compact > li.is-first { grid-column: 1 / -1; grid-row: 1; }
	.sp-theme .sp-search .sp-filters__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sp-theme .sp-search .sp-filters__actions { inline-size: 100%; flex-direction: row; }
	.sp-theme .sp-search .sp-filters__actions .sp-btn:first-child { flex: 1; }
	.sp-theme .sp-filters__more { inline-size: 100%; justify-content: center; }
	.sp-theme .sp-search__toolbar { gap: var(--sp-space-3); }
	.sp-theme .sp-search__sort { inline-size: 100%; }
	.sp-theme .sp-search__sort .sp-field { grid-template-columns: auto 1fr; }
	.sp-theme .sp-pt .sp-features { grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); }
}
@media (max-width: 400px) {
	.sp-theme .sp-search .sp-filters__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.sp-theme .sp-card__img,
	.sp-theme .sp-search__results { transition: none; }
	.sp-theme .sp-search__results[aria-busy="true"]::after { animation: none; }
}

/* Staff portal styles live in portal.css (Task 16.1). */
