/**
 * Capris Floor Plan — front-end styles
 *
 * Shares the Rezidenca Capris page language: Playfair Display display serif,
 * PT Serif body, Montserrat for UI/labels, square corners, hairline rules,
 * ink + gold palette.
 *
 * Runs inside the theme document (wp_head() still loads YOOtheme's
 * theme.1.css — see mijaks.si), so every component selector is anchored with
 * `.capris-floorplan.capris-floorplan` (doubling the root class). That's
 * specificity (0,3,0)+ for any rule with one of its own classes, which beats
 * every bare-element (p/ul/li/h2/h3/dl/dt/dd/svg/a/img), single `.uk-*`
 * class, and `.uk-section>:last-child`-shaped rule in the live theme CSS —
 * without `!important`. `.uk-section`/`.uk-container` still add their own
 * padding/margin around the widget, which is why the wrapper stays flush.
 *
 * !important survives only where a rule fights an actual inline style (the
 * `.apartment` SVG shapes get `pointer-events`/`cursor` set via
 * `el.style.x = y` in JS) or arbitrates between same-specificity sibling
 * classes (status vs. hover vs. filtered layering on those same shapes).
 * Nothing here defends against a bare `button` reset — theme.1.css has none;
 * every `button`-related rule in it is scoped under `.woocommerce`, which
 * this page never has.
 */

.capris-floorplan.capris-floorplan {
	--capris-ink: #1c1d20;
	--capris-ink-soft: #2d2e33;
	--capris-muted: #85868c;
	--capris-line: #e5e5e7;
	--capris-line-strong: #c9c9ce;
	--capris-surface: #f7f7f7;
	--capris-white: #ffffff;
	--capris-accent: #c8a45d;
	--capris-accent-dark: #a8863f;
	--capris-available: #9dbf39;
	--capris-reserved: #c97050;
	--capris-sold: #6c6d74;
	--capris-selected: #1c1d20;
	--capris-radius: 4px;
	--capris-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--capris-body: "PT Serif", Georgia, serif;
	--capris-sans: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;
	display: block;
	box-sizing: border-box;
	color: var(--capris-ink);
	font-family: var(--capris-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	float: none;
	clear: both;
}

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

/* Kill YOOtheme/UIkit defaults on *unstyled* elements only.
   `.capris-floorplan p` (0,1,1) outranks a single component class (0,1,0), so
   without the :not() every classed <p>/<li>/<h3> would lose its own styling. */
.capris-floorplan.capris-floorplan p:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan h2:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan h3:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan ul:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan li:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan dl:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan dt:not([class*="capris-floorplan__"]),
.capris-floorplan.capris-floorplan dd:not([class*="capris-floorplan__"]) {
	float: none;
	clear: none;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: none;
	text-decoration: none;
	text-align: inherit;
	box-shadow: none;
	border-radius: 0;
	max-width: none;
	background: transparent;
	border: none;
	color: inherit;
}

.capris-floorplan.capris-floorplan ul {
	list-style: none;
}

.capris-floorplan.capris-floorplan a.capris-floorplan__btn {
	cursor: pointer;
	text-decoration: none;
}

.capris-floorplan.capris-floorplan :focus-visible {
	outline: 2px solid var(--capris-accent-dark);
	outline-offset: 2px;
}

.capris-floorplan.capris-floorplan .capris-floorplan__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ————————————————————————————————— Toolbar: floors + legend */

.capris-floorplan.capris-floorplan .capris-floorplan__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	margin: 0 0 1.25rem;
	padding: 0 0 1rem;
	border-bottom: 1px solid var(--capris-line);
}

.capris-floorplan.capris-floorplan .capris-floorplan__floors-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
	min-width: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__floors-heading {
	margin: 0;
	padding: 0;
	font-family: var(--capris-serif);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--capris-ink);
	text-transform: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__floors {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__floor-btn {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	padding: 0.7rem 1.15rem 0.65rem;
	border: 1px solid var(--capris-line);
	border-radius: var(--capris-radius);
	background: var(--capris-white);
	color: var(--capris-ink);
	font-family: var(--capris-sans);
	line-height: 1.2;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__floor-btn:hover {
	border-color: var(--capris-accent);
	background: var(--capris-white);
	color: var(--capris-ink);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__floor-btn.is-active {
	background: var(--capris-ink);
	border-color: var(--capris-ink);
	color: var(--capris-white);
}

.capris-floorplan.capris-floorplan .capris-floorplan__floor-main {
	display: block;
	white-space: nowrap;
	font-family: var(--capris-sans);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.capris-floorplan.capris-floorplan .capris-floorplan__floor-num {
	margin-right: 0.3rem;
}

/* Klet/Pritličje: full word by default, single-letter swap kicks in on
   narrow screens (see the matching rule inside the mobile media query). */
.capris-floorplan.capris-floorplan .capris-floorplan__floor-num--short {
	display: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__floor-count {
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__floor-btn.is-active .capris-floorplan__floor-count {
	color: rgba(255, 255, 255, 0.72);
}

.capris-floorplan.capris-floorplan .capris-floorplan__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.15rem;
	margin: 0;
	padding: 0 0 0.35rem;
	list-style: none;
	font-family: var(--capris-sans);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan .capris-floorplan__legend-item {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__swatch {
	width: 0.7rem;
	height: 0.7rem;
	display: inline-block;
	flex-shrink: 0;
	border-radius: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__swatch--available {
	background: var(--capris-available);
}
.capris-floorplan.capris-floorplan .capris-floorplan__swatch--reserved {
	background: var(--capris-reserved);
}
.capris-floorplan.capris-floorplan .capris-floorplan__swatch--sold {
	background: var(--capris-sold);
}

/* ————————————————————————————————— The plan */

.capris-floorplan.capris-floorplan .capris-floorplan__plan {
	position: relative;
	margin: 0 0 1rem;
	background: var(--capris-white);
	border: 1px solid var(--capris-line);
}

.capris-floorplan.capris-floorplan .capris-floorplan__plan-scroll {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.capris-floorplan.capris-floorplan .capris-floorplan__svg-wrap {
	position: relative;
	width: 100%;
	min-height: 200px;
	padding: 0.85rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__stack {
	position: relative;
	width: 100%;
	line-height: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__floor-image {
	display: block;
	width: 100%;
	height: auto;
}

.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .capris-floorplan__floor-svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.capris-floorplan.capris-floorplan .capris-floorplan__svg-wrap svg,
.capris-floorplan.capris-floorplan .capris-floorplan__floor-svg {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	overflow: visible;
}

.capris-floorplan.capris-floorplan .capris-floorplan__loading {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, 0.9);
	color: var(--capris-muted);
	font-family: var(--capris-sans);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__expand {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.8rem;
	border: 1px solid var(--capris-line);
	background: rgba(255, 255, 255, 0.94);
	color: var(--capris-ink);
	font-family: var(--capris-sans);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__expand:hover {
	border-color: var(--capris-accent);
	color: var(--capris-accent-dark);
}

.capris-floorplan.capris-floorplan .capris-floorplan__scroll-hint {
	margin: 0;
	padding: 0.5rem 0.85rem 0.65rem;
	border-top: 1px solid var(--capris-line);
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--capris-muted);
	text-align: center;
}

.capris-floorplan.capris-floorplan .capris-floorplan__scroll-hint[hidden] {
	display: none;
}

/* !important here fights real inline styles (pointer-events/cursor set
   via el.style in JS) and arbitrates same-specificity status/hover/
   active layering below — not a YOOtheme workaround. */
.capris-floorplan.capris-floorplan .apartment,
.capris-floorplan.capris-floorplan .apartment path,
.capris-floorplan.capris-floorplan .apartment rect,
.capris-floorplan.capris-floorplan .apartment polygon,
.capris-floorplan.capris-floorplan .apartment polyline,
.capris-floorplan.capris-floorplan .apartment circle,
.capris-floorplan.capris-floorplan .apartment ellipse {
	cursor: pointer;
	pointer-events: all !important;
	transition: fill 0.2s ease, stroke 0.2s ease, fill-opacity 0.2s ease;
	stroke: #ffffff !important;
	stroke-width: 2 !important;
	outline: none;
}

.capris-floorplan.capris-floorplan .apartment.status-available,
.capris-floorplan.capris-floorplan .apartment.status-available path,
.capris-floorplan.capris-floorplan .apartment.status-available rect,
.capris-floorplan.capris-floorplan .apartment.status-available polygon {
	fill: var(--capris-available) !important;
	fill-opacity: 0.42 !important;
	color: var(--capris-available);
}

.capris-floorplan.capris-floorplan .apartment.status-reserved,
.capris-floorplan.capris-floorplan .apartment.status-reserved path,
.capris-floorplan.capris-floorplan .apartment.status-reserved rect,
.capris-floorplan.capris-floorplan .apartment.status-reserved polygon {
	fill: var(--capris-reserved) !important;
	fill-opacity: 0.45 !important;
	color: var(--capris-reserved);
}

.capris-floorplan.capris-floorplan .apartment.status-sold,
.capris-floorplan.capris-floorplan .apartment.status-sold path,
.capris-floorplan.capris-floorplan .apartment.status-sold rect,
.capris-floorplan.capris-floorplan .apartment.status-sold polygon {
	fill: var(--capris-sold) !important;
	fill-opacity: 0.4 !important;
	color: var(--capris-sold);
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-label.is-filtered-out {
	opacity: 0.25;
}

/* When a JPG sits under the SVG, keep hit-areas translucent */
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-available,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-available path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-available rect,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-reserved,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-reserved path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-reserved rect {
	fill-opacity: 0.34 !important;
}

.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-sold,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-sold path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.status-sold rect {
	fill-opacity: 0.3 !important;
}

.capris-floorplan.capris-floorplan .apartment:not(.status-sold):hover,
.capris-floorplan.capris-floorplan .apartment.is-hover:not(.status-sold),
.capris-floorplan.capris-floorplan .apartment:focus-visible:not(.status-sold),
.capris-floorplan.capris-floorplan .apartment:not(.status-sold):hover path,
.capris-floorplan.capris-floorplan .apartment:not(.status-sold):hover rect,
.capris-floorplan.capris-floorplan .apartment.is-hover:not(.status-sold) path,
.capris-floorplan.capris-floorplan .apartment.is-hover:not(.status-sold) rect {
	fill-opacity: 0.68 !important;
	stroke: var(--capris-ink) !important;
	stroke-width: 2.5 !important;
}

.capris-floorplan.capris-floorplan .apartment.is-active,
.capris-floorplan.capris-floorplan .apartment.is-active path,
.capris-floorplan.capris-floorplan .apartment.is-active rect,
.capris-floorplan.capris-floorplan .apartment.is-active polygon {
	fill: var(--capris-selected) !important;
	fill-opacity: 0.72 !important;
	stroke: var(--capris-selected) !important;
	stroke-width: 3.5 !important;
	color: var(--capris-selected);
}

.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment:not(.status-sold):hover,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-hover:not(.status-sold),
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment:not(.status-sold):hover path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-hover:not(.status-sold) path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment:not(.status-sold):hover rect,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-hover:not(.status-sold) rect {
	fill-opacity: 0.52 !important;
}

.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-active,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-active path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-active rect,
.capris-floorplan.capris-floorplan .capris-floorplan__stack.has-image .apartment.is-active polygon {
	fill: var(--capris-selected) !important;
	fill-opacity: 0.55 !important;
	stroke: var(--capris-selected) !important;
	stroke-width: 3.5 !important;
}

/* Filtering the list also dims the plan, so the two always agree.
   Declared last, and with enough classes to outrank the .has-image and
   :hover blocks above. Dimmed units stop responding to the pointer, so a
   filtered-out unit can never be hovered or opened from the plan. */
.capris-floorplan.capris-floorplan .capris-floorplan__stack .apartment.is-filtered-out,
.capris-floorplan.capris-floorplan .capris-floorplan__stack .apartment.is-filtered-out path,
.capris-floorplan.capris-floorplan .capris-floorplan__stack .apartment.is-filtered-out rect,
.capris-floorplan.capris-floorplan .capris-floorplan__stack .apartment.is-filtered-out polygon {
	fill-opacity: 0.07 !important;
	stroke-opacity: 0.3 !important;
	pointer-events: none !important;
	cursor: default !important;
}

/* Unit numbers drawn over the plan */
.capris-floorplan.capris-floorplan .capris-floorplan__labels {
	pointer-events: none;
}

/* Ink numerals with a white halo — reads like a printed plan and stays
   legible over all three status fills. */
.capris-floorplan.capris-floorplan .capris-floorplan__apt-label {
	font-family: var(--capris-sans);
	font-weight: 700;
	fill: #2d2e33;
	stroke: rgba(255, 255, 255, 0.92);
	paint-order: stroke fill;
	text-anchor: middle;
	dominant-baseline: central;
	pointer-events: none;
	user-select: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-label.is-sold {
	fill: #6c6d74;
}

/* ————————————————————————————————— Layout (plan + sticky detail + list) */

.capris-floorplan.capris-floorplan .capris-floorplan__layout {
	display: block;
	margin: 0 0 1.5rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__below {
	min-width: 0;
}

/* ————————————————————————————————— Selected apartment card */

.capris-floorplan.capris-floorplan .capris-floorplan__selection {
	margin: 1rem 0 1.5rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__selection-prompt {
	margin: 0;
	padding: 1.05rem 1.15rem;
	border: 1px dashed var(--capris-line-strong);
	background: var(--capris-surface);
	font-family: var(--capris-sans);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--capris-muted);
	text-align: center;
}

/* Desktop swaps prompt → detail card in place. On mobile the detail is a
   fixed sheet, so the prompt stays put and the layout does not collapse. */
@media (min-width: 768px) {
	.capris-floorplan.capris-floorplan.is-detail-open .capris-floorplan__selection-prompt {
		display: none;
	}
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail[hidden],
.capris-floorplan.capris-floorplan .capris-floorplan__sheet-backdrop[hidden] {
	display: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail {
	position: relative;
	background: var(--capris-white);
	border: 1px solid var(--capris-line);
	border-radius: var(--capris-radius);
	padding: 1.35rem 1.5rem 1.4rem;
	animation: capris-fade-in 0.2s ease;
	box-shadow: 0 2px 8px rgba(28, 29, 32, 0.06), 0 12px 32px rgba(28, 29, 32, 0.08);
}

/* `button.` keeps this matching only actual <button> elements. */
.capris-floorplan.capris-floorplan button.capris-floorplan__detail-close {
	appearance: none;
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	left: auto;
	width: 2.5rem;
	height: 2.5rem;
	border: none;
	background: transparent;
	font-size: 1.7rem;
	line-height: 1;
	cursor: pointer;
	color: var(--capris-muted);
	display: grid;
	place-items: center;
	z-index: 2;
	padding: 0;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__detail-close:hover {
	color: var(--capris-ink);
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-grid {
	display: grid;
	gap: 1.25rem;
}

/* Wide-but-not-side-panel: three-column detail under the plan, sticky while
   scrolling the list below. */
@media (min-width: 768px) and (max-width: 1099px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__selection {
		position: sticky;
		top: 1rem;
		z-index: 5;
		margin: 1rem 0 1.5rem;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail {
		max-height: calc(100vh - 2rem);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
}

@media (min-width: 900px) and (max-width: 1099px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__detail-grid {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) minmax(0, 0.95fr);
		gap: 2.25rem;
		align-items: start;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail-col--areas {
		border-left: 1px solid var(--capris-line);
		border-right: 1px solid var(--capris-line);
		padding: 0 2.25rem;
	}

	/* Keep the third column clear of the absolutely positioned close button */
	.capris-floorplan.capris-floorplan .capris-floorplan__detail {
		padding-right: 3.25rem;
	}
}

/* Large screens: detail sticks beside plan + list while scrolling. */
@media (min-width: 1100px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__layout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 21rem);
		grid-template-rows: auto 1fr;
		gap: 0 1.15rem;
		align-items: start;
		margin-bottom: 0;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__plan {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: 1rem;
		min-width: 0;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__below {
		grid-column: 1;
		grid-row: 2;
		min-width: 0;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__selection {
		grid-column: 2;
		grid-row: 1 / -1;
		position: sticky;
		top: 1rem;
		align-self: start;
		margin: 0;
		z-index: 5;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__selection-prompt {
		min-height: 12rem;
		display: grid;
		place-items: center;
		padding: 1.5rem 1.25rem;
		text-align: center;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail {
		padding: 1.2rem 1.15rem 1.25rem;
		padding-right: 2.75rem;
		max-height: calc(100vh - 2rem);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail-col--areas {
		border-left: none;
		border-right: none;
		border-top: 1px solid var(--capris-line);
		border-bottom: 1px solid var(--capris-line);
		padding: 0.9rem 0;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail-title {
		font-size: clamp(1.45rem, 1.8vw, 1.85rem);
	}
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-kicker {
	margin: 0 0 0.2rem;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-title {
	margin: 0 0 0.65rem;
	padding: 0;
	font-family: var(--capris-serif);
	font-size: clamp(1.85rem, 3vw, 2.4rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--capris-ink);
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex-shrink: 0;
	font-family: var(--capris-sans);
	font-size: 0.63rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 600;
	line-height: 1;
}

.capris-floorplan.capris-floorplan .capris-floorplan__status--available {
	color: var(--capris-available);
}
/* Slightly darkened for text legibility on white — the default reserved
   gold reads thin as small uppercase text at full brightness. Tracks
   whatever color the admin picks (Capris Tloris → Nastavitve tlorisa)
   instead of a second hardcoded value, so it can't drift out of sync. */
.capris-floorplan.capris-floorplan .capris-floorplan__status--reserved {
	/* Plain value first: a browser without color-mix() drops the second
	   declaration and still follows the configured colour. */
	color: var(--capris-reserved);
	color: color-mix(in srgb, var(--capris-reserved) 78%, black);
}
.capris-floorplan.capris-floorplan .capris-floorplan__status--sold {
	color: var(--capris-sold);
}

.capris-floorplan.capris-floorplan .capris-floorplan__status::before {
	content: "";
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	background: currentColor;
	flex-shrink: 0;
}

/* The square is a solid block, not text, so it takes the status colour exactly
   as configured. Inheriting the darkened text colour above would leave it
   disagreeing with the legend swatch, which shows the raw value. */
.capris-floorplan.capris-floorplan .capris-floorplan__status--available::before {
	background: var(--capris-available);
}
.capris-floorplan.capris-floorplan .capris-floorplan__status--reserved::before {
	background: var(--capris-reserved);
}
.capris-floorplan.capris-floorplan .capris-floorplan__status--sold::before {
	background: var(--capris-sold);
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-status {
	padding: 0.4rem 0.65rem;
	border: 1px solid currentColor;
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-rooms {
	font-family: var(--capris-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--capris-muted);
	padding: 0.4rem 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-row,
.capris-floorplan.capris-floorplan .capris-floorplan__spec-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	font-family: var(--capris-sans);
	padding: 0.3rem 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-label {
	color: var(--capris-muted);
	font-size: 0.82rem;
	letter-spacing: 0.02em;
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-value {
	color: var(--capris-ink);
	font-size: 0.88rem;
	font-weight: 500;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-total {
	margin-top: 0.35rem;
	padding-top: 0.7rem;
	border-top: 1px solid var(--capris-line);
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-total .capris-floorplan__spec-label {
	color: var(--capris-ink);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.capris-floorplan.capris-floorplan .capris-floorplan__spec-total .capris-floorplan__spec-value {
	font-family: var(--capris-serif);
	font-size: 1.35rem;
	font-weight: 600;
}

.capris-floorplan.capris-floorplan .capris-floorplan__price {
	margin: 0 0 1rem;
	padding: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__price-label {
	display: block;
	margin: 0 0 0.15rem;
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan .capris-floorplan__price-value {
	display: block;
	font-family: var(--capris-serif);
	font-size: clamp(1.6rem, 2.6vw, 2rem);
	font-weight: 600;
	line-height: 1.15;
	color: var(--capris-ink);
	font-variant-numeric: tabular-nums;
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-notes {
	margin: 0 0 1rem;
	padding: 0.7rem 0 0.7rem 0.9rem;
	border-left: 2px solid var(--capris-accent);
	font-family: var(--capris-body);
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--capris-ink-soft);
	font-style: italic;
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-empty {
	margin: 0.5rem 0 0;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	color: var(--capris-muted);
	text-align: center;
}

.capris-floorplan.capris-floorplan .capris-floorplan__detail-actions {
	display: grid;
	gap: 0.5rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__contact {
	display: grid;
	justify-items: start;
	gap: 0.3rem;
	margin: 1.1rem 0 0;
	padding: 0.9rem 0 0;
	border-top: 1px solid var(--capris-line);
}

.capris-floorplan.capris-floorplan .capris-floorplan__contact-label {
	margin: 0;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

/* A full sentence, so it keeps sentence case instead of the label's caps. */
.capris-floorplan.capris-floorplan .capris-floorplan__contact-note {
	margin: 0;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan a.capris-floorplan__contact-link {
	font-family: var(--capris-sans);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--capris-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--capris-line-strong);
	padding-bottom: 0.08rem;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.capris-floorplan.capris-floorplan a.capris-floorplan__contact-link:hover,
.capris-floorplan.capris-floorplan a.capris-floorplan__contact-link:focus {
	color: var(--capris-ink);
	border-bottom-color: var(--capris-accent-dark);
}

/* ————————————————————————————————— Buttons (aligned with Mijaks .btn) */

.capris-floorplan.capris-floorplan .capris-floorplan__btn,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	min-height: 0;
	padding: 0.9rem 1.75rem;
	border: 1px solid var(--capris-ink);
	border-radius: var(--capris-radius);
	background: var(--capris-ink);
	color: var(--capris-white);
	font-family: var(--capris-sans);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	line-height: 1.3;
	text-align: center;
	white-space: normal;
	cursor: pointer;
	text-decoration: none;
	box-shadow: none;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.capris-floorplan.capris-floorplan .capris-floorplan__btn--primary,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--primary,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--primary {
	background: var(--capris-ink);
	border-color: var(--capris-ink);
	color: var(--capris-white);
}

.capris-floorplan.capris-floorplan .capris-floorplan__btn--primary:hover,
.capris-floorplan.capris-floorplan .capris-floorplan__btn--primary:focus,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--primary:hover,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--primary:focus,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--primary:hover,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--primary:focus {
	background: var(--capris-ink-soft);
	border-color: var(--capris-ink-soft);
	color: var(--capris-white);
	transform: translateY(-1px);
}

.capris-floorplan.capris-floorplan .capris-floorplan__btn--secondary,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--secondary,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--secondary {
	background: transparent;
	border-color: var(--capris-ink);
	color: var(--capris-ink);
}

.capris-floorplan.capris-floorplan .capris-floorplan__btn--secondary:hover,
.capris-floorplan.capris-floorplan .capris-floorplan__btn--secondary:focus,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--secondary:hover,
.capris-floorplan.capris-floorplan a.capris-floorplan__btn--secondary:focus,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--secondary:hover,
.capris-floorplan.capris-floorplan button.capris-floorplan__btn--secondary:focus {
	background: var(--capris-surface);
	border-color: var(--capris-ink);
	color: var(--capris-ink);
	transform: translateY(-1px);
}

.capris-floorplan.capris-floorplan .capris-floorplan__btn-icon {
	flex-shrink: 0;
	display: block;
}

/* ————————————————————————————————— Filters + sort */

.capris-floorplan.capris-floorplan .capris-floorplan__controls[hidden] {
	display: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem 1.75rem;
	margin: 0 0 1rem;
	padding: 0 0 0.9rem;
	border-bottom: 1px solid var(--capris-line);
}

.capris-floorplan.capris-floorplan .capris-floorplan__filter-set {
	display: grid;
	gap: 0.4rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__filter-legend {
	display: block;
	font-family: var(--capris-sans);
	font-size: 0.63rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan .capris-floorplan__filter-group {
	display: inline-flex;
	flex-wrap: wrap;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__filter {
	padding: 0.45rem 0.85rem;
	border: 1px solid var(--capris-line);
	margin-left: -1px;
	background: var(--capris-white);
	color: var(--capris-muted);
	font-family: var(--capris-sans);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.capris-floorplan.capris-floorplan .capris-floorplan__filter-group > button.capris-floorplan__filter:first-child {
	margin-left: 0;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__filter:hover {
	color: var(--capris-ink);
	border-color: var(--capris-line-strong);
	z-index: 1;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__filter.is-active {
	background: var(--capris-ink);
	border-color: var(--capris-ink);
	color: var(--capris-white);
	z-index: 2;
}

.capris-floorplan.capris-floorplan select.capris-floorplan__sort {
	appearance: none;
	-webkit-appearance: none;
	padding: 0.45rem 2rem 0.45rem 0.75rem;
	border: 1px solid var(--capris-line);
	border-radius: 0;
	background-color: var(--capris-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236c6d74' stroke-width='1.4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.7rem center;
	color: var(--capris-ink);
	font-family: var(--capris-sans);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.2;
	height: auto;
	cursor: pointer;
	box-shadow: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__count {
	margin: 0 0 0.35rem auto;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--capris-muted);
}

/* ————————————————————————————————— Apartment list */

.capris-floorplan.capris-floorplan .capris-floorplan__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.4rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__list > li {
	margin: 0;
	padding: 0;
	list-style: none;
	min-width: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__empty {
	grid-column: 1 / -1;
	margin: 0;
	padding: 2rem 0;
	list-style: none;
	color: var(--capris-muted);
	font-family: var(--capris-sans);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card {
	width: 100%;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.25rem 0.9rem;
	padding: 0.8rem 0.95rem;
	background: var(--capris-white);
	border: 1px solid var(--capris-line);
	border-left: 3px solid var(--capris-sold);
	border-radius: var(--capris-radius);
	text-align: left;
	font-family: var(--capris-sans);
	line-height: 1.35;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card:hover,
.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card.is-hover {
	border-color: var(--capris-line-strong);
	border-left-color: var(--capris-accent);
	background: var(--capris-surface);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card.is-active {
	border-color: var(--capris-ink);
	background: var(--capris-surface);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card[data-status="available"] {
	border-left-color: var(--capris-available);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card[data-status="reserved"] {
	border-left-color: var(--capris-reserved);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card[data-status="sold"] {
	border-left-color: var(--capris-sold);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card[data-status="sold"] .capris-floorplan__apt-name,
.capris-floorplan.capris-floorplan button.capris-floorplan__apt-card[data-status="sold"] .capris-floorplan__apt-size {
	color: var(--capris-muted);
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-name {
	margin: 0;
	grid-column: 1;
	grid-row: 1;
	font-family: var(--capris-serif);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--capris-ink);
}

/* Deliberately inherits the meta line's size, tracking and case — a second
   type size inside one short line is what made this look bolted on. The lift
   over the grey run is carried by weight and ink alone. */
.capris-floorplan.capris-floorplan .capris-floorplan__apt-size {
	font-weight: 600;
	color: var(--capris-ink);
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-meta {
	margin: 0;
	grid-column: 1;
	grid-row: 2;
	font-family: var(--capris-sans);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--capris-muted);
	font-variant-numeric: tabular-nums;
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-side {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: grid;
	justify-items: end;
	align-content: center;
	gap: 0.25rem;
}

.capris-floorplan.capris-floorplan .capris-floorplan__apt-price {
	font-family: var(--capris-sans);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--capris-ink);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* ————————————————————————————————— Hover tooltip (desktop plan only) */

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip[hidden] {
	display: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip {
	position: fixed;
	z-index: 100010;
	max-width: 220px;
	padding: 0.6rem 0.75rem;
	background: var(--capris-ink);
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
	pointer-events: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-name {
	margin: 0 0 0.15rem;
	font-family: var(--capris-serif);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--capris-white);
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-meta {
	margin: 0 0 0.35rem;
	font-family: var(--capris-sans);
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.72);
	font-variant-numeric: tabular-nums;
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-status {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-status::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	flex-shrink: 0;
	background: currentColor;
}

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-status--available { color: var(--capris-available); }
.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-status--reserved { color: var(--capris-reserved); color: color-mix(in srgb, var(--capris-reserved) 78%, black); }
.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-status--sold { color: var(--capris-sold); }

.capris-floorplan.capris-floorplan .capris-floorplan__tooltip-price {
	margin: 0.3rem 0 0;
	padding-top: 0.3rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	font-family: var(--capris-sans);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--capris-white);
	font-variant-numeric: tabular-nums;
}

/* Hover boxes are a mouse aid — hide on touch/coarse pointers, and below the
   desktop breakpoint where the plan switches to the mobile scroll layout. */
@media (max-width: 767px), (hover: none), (pointer: coarse) {
	.capris-floorplan.capris-floorplan .capris-floorplan__tooltip {
		display: none;
	}
}

/* ————————————————————————————————— Fullscreen plan */

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox[hidden] {
	display: none;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox {
	position: fixed;
	inset: 0;
	z-index: 100002;
	display: flex;
	flex-direction: column;
	background: #1c1c1e;
	animation: capris-fade-in 0.2s ease;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	flex-shrink: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-title {
	margin: 0;
	padding: 0;
	font-family: var(--capris-sans);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
}

.capris-floorplan.capris-floorplan button.capris-floorplan__lightbox-close {
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.3);
	background: transparent;
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	display: grid;
	place-items: center;
	flex-shrink: 0;
}

.capris-floorplan.capris-floorplan button.capris-floorplan__lightbox-close:hover {
	border-color: #fff;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-stage {
	flex: 1;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-stage .capris-floorplan__stack {
	background: #fff;
	padding: 0.5rem;
	width: 100%;
	min-width: 900px;
}

body.capris-floorplan-lightbox-open {
	overflow: hidden;
}

/* ————————————————————————————————— 360° tour (shares the lightbox shell) */

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-bar-actions {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex-shrink: 0;
}

.capris-floorplan.capris-floorplan a.capris-floorplan__lightbox-link {
	font-family: var(--capris-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
	padding-bottom: 0.15rem;
}

.capris-floorplan.capris-floorplan a.capris-floorplan__lightbox-link:hover,
.capris-floorplan.capris-floorplan a.capris-floorplan__lightbox-link:focus {
	color: #fff;
	border-bottom-color: #fff;
}

/* The tour fills its stage edge to edge — the plan's padding and centring
   would only shrink the panorama. */
.capris-floorplan.capris-floorplan .capris-floorplan__lightbox-stage--tour {
	padding: 0;
	display: block;
	overflow: hidden;
}

.capris-floorplan.capris-floorplan .capris-floorplan__tour-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.capris-floorplan.capris-floorplan .capris-floorplan__lightbox--tour {
	/* Above the plan lightbox, so layering never depends on markup order. */
	z-index: 100003;
}

body.capris-floorplan-tour-open {
	overflow: hidden;
}

/* On a narrow screen the label alone would push the close button off the bar. */
@media (max-width: 560px) {
	.capris-floorplan.capris-floorplan a.capris-floorplan__lightbox-link {
		display: none;
	}
}

/* ————————————————————————————————— Animation */

@keyframes capris-fade-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes capris-sheet-up {
	from {
		opacity: 0;
		transform: translateY(100%);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.capris-floorplan.capris-floorplan *,
	.capris-floorplan.capris-floorplan *::before,
	.capris-floorplan.capris-floorplan *::after {
		animation-duration: 0.01ms;
		transition-duration: 0.01ms;
	}
}

/* ————————————————————————————————— Desktop */

@media (min-width: 700px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1040px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ————————————————————————————————— Mobile */

@media (max-width: 767px) {
	.capris-floorplan.capris-floorplan .capris-floorplan__toolbar {
		align-items: stretch;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floors-block {
		width: 100%;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floors {
		width: 100%;
		display: flex;
		flex-wrap: nowrap;
		gap: 0.35rem;
	}

	.capris-floorplan.capris-floorplan button.capris-floorplan__floor-btn {
		flex: 1 1 0;
		align-items: center;
		text-align: center;
		padding: 0.65rem 0.4rem;
		min-width: 0;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floor-main {
		font-size: 0.95rem;
		letter-spacing: 0.08em;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floor-label {
		display: none;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floor-num {
		margin-right: 0;
	}

	/* Klet/Pritličje: "K" / "P" instead of the full word, so the tab stays
	   the same width as 1/2/3 in the equal-width mobile row. Sized up a step
	   further than the shared .floor-main bump above and forced to its own
	   centered block so it lines up with 1/2/3 regardless of the parent's
	   flex alignment. */
	.capris-floorplan.capris-floorplan .capris-floorplan__floor-num--full {
		display: none;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floor-num--short {
		display: block;
		width: 100%;
		text-align: center;
		font-size: 1.15rem;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__floor-count {
		font-size: 0.62rem;
	}

	/* The plan is ~3:1 — let it keep a usable scale and scroll sideways */
	.capris-floorplan.capris-floorplan .capris-floorplan__plan-scroll .capris-floorplan__svg-wrap {
		min-width: 720px;
	}

	.capris-floorplan.capris-floorplan button.capris-floorplan__expand {
		top: 0.5rem;
		right: 0.5rem;
		padding: 0.45rem 0.6rem;
	}

	.capris-floorplan.capris-floorplan button.capris-floorplan__expand span {
		display: none;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__controls {
		gap: 0.85rem 1.25rem;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__count {
		margin-left: 0;
		width: 100%;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__layout {
		margin-bottom: 1.25rem;
	}

	/* Detail becomes a bottom sheet */
	.capris-floorplan.capris-floorplan .capris-floorplan__sheet-backdrop:not([hidden]) {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 100000;
		background: rgba(26, 26, 26, 0.5);
		animation: capris-fade-in 0.2s ease;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail:not([hidden]) {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 100001;
		max-height: min(88vh, 640px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		background: var(--capris-white);
		border: none;
		border-top: 3px solid var(--capris-ink);
		padding: 1.25rem 1.15rem calc(1.35rem + env(safe-area-inset-bottom, 0px));
		box-shadow: 0 -16px 40px rgba(0, 0, 0, 0.22);
		animation: capris-sheet-up 0.26s ease;
	}

	.capris-floorplan.capris-floorplan .capris-floorplan__detail-grid {
		gap: 1.15rem;
	}

	body.capris-floorplan-detail-open {
		overflow: hidden;
	}
}
