/*
Theme Name: Vela Estates
Author: Bespoke build
Description: Editorial luxury real-estate theme designed for Vela Property Core.
Version: 1.5.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: vela-estates
License: GPLv2 or later
*/

:root {
	--vela-ink: #1c2220;
	--vela-ink-soft: #39413e;
	--vela-paper: #f5f2ec;
	--vela-white: #fff;
	--vela-sand: #d8c7ad;
	--vela-bronze: #8c6f47;
	--vela-line: rgba(28, 34, 32, 0.16);
	--vela-max: 1440px;
	--vela-gutter: clamp(20px, 4vw, 64px);
	--vela-serif: "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif;
	--vela-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--vela-white);
	color: var(--vela-ink);
	font-family: var(--vela-sans);
	font-size: 17px;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button, .button { cursor: pointer; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.vela-shell { width: min(100% - (2 * var(--vela-gutter)), var(--vela-max)); margin-inline: auto; }
.vela-kicker { margin: 0 0 14px; color: var(--vela-bronze); font-size: .77rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.vela-display { margin: 0; font-family: var(--vela-serif); font-size: clamp(2.5rem, 6vw, 6rem); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.vela-heading { margin: 0; font-family: var(--vela-serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1.05; letter-spacing: -.025em; }
.vela-link-arrow { display: inline-flex; gap: .8rem; align-items: center; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.vela-link-arrow::after { content: "→"; transition: transform .2s ease; }
.vela-link-arrow:hover::after { transform: translateX(4px); }

.site-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid var(--vela-line);
	background: rgba(255,255,255,.96);
}
.site-header__inner { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; min-height: 88px; }
.site-branding { display: inline-flex; align-items: center; text-decoration: none; }
.site-branding .custom-logo { max-height: 46px; width: auto; }
.site-branding__text { font-family: var(--vela-serif); font-size: 1.35rem; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav { justify-self: center; }
.primary-nav ul { display: flex; gap: clamp(18px, 2.5vw, 38px); align-items: center; margin: 0; padding: 0; list-style: none; }
.primary-nav a { font-size: .79rem; font-weight: 650; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.header-cta { padding: 12px 18px; border: 1px solid var(--vela-ink); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.menu-toggle { display: none; border: 0; background: transparent; }

.hero {
	position: relative;
	min-height: min(790px, 82vh);
	display: flex;
	align-items: flex-end;
	background: #333 center/cover no-repeat;
	color: #fff;
	isolation: isolate;
}
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.08) 25%, rgba(8,14,12,.72) 100%); }
.hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: #333; }
.hero__video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.hero__video-toggle { position: absolute; right: var(--vela-gutter); bottom: 46px; z-index: 2; min-width: 72px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.62); border-radius: 999px; background: rgba(10,15,13,.26); color: #fff; font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; backdrop-filter: blur(6px); }
.hero__video-toggle:hover, .hero__video-toggle:focus-visible { background: rgba(10,15,13,.58); }
.hero__content { padding-block: clamp(80px, 12vw, 155px) clamp(52px, 7vw, 92px); }
.hero__copy { max-width: 980px; }
.hero__sub { max-width: 700px; margin: 24px 0 0; font-size: clamp(1rem, 2vw, 1.3rem); color: rgba(255,255,255,.88); }

.property-search { position: relative; z-index: 5; margin-top: -34px; }
.property-search__form { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr auto; gap: 0; border: 1px solid rgba(255,255,255,.22); background: var(--vela-white); box-shadow: 0 24px 70px rgba(20,25,23,.12); }
.property-search label { display: grid; gap: 5px; padding: 16px 20px 14px; border-right: 1px solid var(--vela-line); }
.property-search span { color: #787e7b; font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.property-search select, .property-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--vela-ink); }
.property-search button { min-width: 140px; border: 0; background: var(--vela-ink); color: #fff; font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.section { padding-block: clamp(72px, 10vw, 140px); }
.section--paper { background: var(--vela-paper); }
.section-head { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(250px,.7fr); gap: 40px; align-items: end; margin-bottom: 46px; }
.section-head__aside { justify-self: end; max-width: 420px; color: var(--vela-ink-soft); }

.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 42px) clamp(18px, 2.5vw, 34px); }
.property-card { min-width: 0; }
.property-card__image { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #ddd; }
.property-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.6,.2,1); }
.property-card:hover .property-card__image img { transform: scale(1.035); }
.property-card__flag { position: absolute; top: 16px; left: 16px; padding: 7px 10px; background: rgba(255,255,255,.92); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.property-card__body { padding: 19px 2px 0; }
.property-card__location { margin: 0 0 7px; color: var(--vela-bronze); font-size: .71rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.property-card__title { margin: 0; font-family: var(--vela-serif); font-size: clamp(1.45rem, 2vw, 2rem); font-weight: 400; line-height: 1.12; }
.property-card__title a { text-decoration: none; }
.property-card__price { margin: 12px 0 0; font-weight: 650; }
.property-card__facts { display: flex; flex-wrap: wrap; gap: 9px 17px; margin-top: 13px; color: #69706d; font-size: .8rem; }
.property-card__facts span { white-space: nowrap; }

.location-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--vela-line); border-left: 1px solid var(--vela-line); }
.location-strip a { min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; border-right: 1px solid var(--vela-line); border-bottom: 1px solid var(--vela-line); text-decoration: none; transition: background .2s, color .2s; }
.location-strip a:hover { background: var(--vela-ink); color: #fff; }
.location-strip strong { font-family: var(--vela-serif); font-size: 1.75rem; font-weight: 400; }
.location-strip span { font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }

.editorial-band { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); min-height: 620px; background: var(--vela-ink); color: #fff; }
.editorial-band__image { min-height: 500px; background: #555 center/cover no-repeat; }
.editorial-band__content { align-self: center; padding: clamp(50px, 7vw, 110px); }
.editorial-band__content p { max-width: 650px; color: rgba(255,255,255,.74); }
.editorial-band .vela-link-arrow { margin-top: 18px; }

.archive-hero { padding-block: clamp(70px, 9vw, 130px) 50px; background: var(--vela-paper); }
.archive-hero__row { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; }
.archive-filter { margin-top: -1px; border-top: 1px solid var(--vela-line); border-bottom: 1px solid var(--vela-line); background: var(--vela-white); }
.archive-filter form { display: grid; grid-template-columns: repeat(6, minmax(110px,1fr)) auto; gap: 0; }
.archive-filter label { display: grid; gap: 4px; padding: 14px 14px 12px; border-right: 1px solid var(--vela-line); }
.archive-filter label span { color: #7a817e; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.archive-filter select, .archive-filter input { min-width: 0; width: 100%; border: 0; background: transparent; }
.archive-filter button { padding-inline: 24px; border: 0; background: var(--vela-ink); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.archive-results { padding-block: 60px 120px; }
.archive-count { margin: 0 0 28px; color: #737a77; font-size: .82rem; }
.navigation.pagination { margin-top: 56px; }
.nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.page-numbers { min-width: 40px; min-height: 40px; display: inline-grid; place-items: center; border: 1px solid var(--vela-line); text-decoration: none; }
.page-numbers.current { background: var(--vela-ink); color: #fff; }

.single-property-hero { position: relative; min-height: 74vh; display: flex; align-items: flex-end; background: #444 center/cover no-repeat; color: #fff; isolation: isolate; }
.single-property-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(8,12,11,.76)); }
.single-property-hero__inner { padding-block: 130px 60px; }
.single-property-hero__topline { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; font-size: .69rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.single-property-hero__topline span + span::before { content: "•"; margin-right: 14px; opacity: .6; }
.single-property-hero__title { max-width: 1050px; margin: 0; font-family: var(--vela-serif); font-size: clamp(2.8rem, 6vw, 6.3rem); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.single-property-hero__bottom { display: flex; gap: 30px; justify-content: space-between; align-items: end; margin-top: 30px; }
.single-property-hero__price { font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 650; }

.property-overview { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); gap: clamp(50px, 8vw, 120px); padding-block: clamp(70px, 9vw, 130px); }
.property-intro { max-width: 830px; }
.property-intro__summary { margin: 0 0 36px; font-family: var(--vela-serif); font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.3; }
.property-content { font-size: 1.02rem; }
.property-content > *:first-child { margin-top: 0; }
.property-content h2, .property-content h3 { font-family: var(--vela-serif); font-weight: 400; }
.property-sidebar { align-self: start; position: sticky; top: 28px; border-top: 1px solid var(--vela-ink); }
.property-stat { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--vela-line); }
.property-stat span { color: #747b78; font-size: .78rem; }
.property-stat strong { font-weight: 650; }
.property-actions { display: grid; gap: 10px; margin-top: 22px; }
.property-actions a { display: block; padding: 13px 16px; border: 1px solid var(--vela-ink); text-align: center; text-decoration: none; font-size: .73rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.property-actions a:first-child { background: var(--vela-ink); color: #fff; }

.property-gallery { display: grid; grid-template-columns: 1.35fr .65fr; grid-auto-rows: minmax(210px, 30vw); gap: 8px; background: var(--vela-white); }
.property-gallery figure { margin: 0; overflow: hidden; }
.property-gallery figure:nth-child(n+4) { display: none; }
.property-gallery img { width: 100%; height: 100%; object-fit: cover; }
.property-gallery figure:first-child { grid-row: span 2; }

.taxonomy-pills { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.taxonomy-pills a { padding: 8px 12px; border: 1px solid var(--vela-line); border-radius: 999px; font-size: .74rem; text-decoration: none; }

.related-properties { padding-block: 90px 120px; background: var(--vela-paper); }
.related-properties .section-head { margin-bottom: 34px; }

.generic-page { padding-block: 80px 120px; }
.generic-page__title { max-width: 1000px; margin-bottom: 45px; }
.generic-page__content { max-width: 820px; }
.generic-page__content h2, .generic-page__content h3 { font-family: var(--vela-serif); font-weight: 400; }

.site-footer { padding-block: 70px 35px; background: #151a18; color: rgba(255,255,255,.8); }
.site-footer__top { display: grid; grid-template-columns: 1.1fr .7fr .7fr; gap: 50px; padding-bottom: 55px; }
.site-footer__brand { max-width: 480px; }
.site-footer__brand strong { display: block; margin-bottom: 18px; color: #fff; font-family: var(--vela-serif); font-size: 2rem; font-weight: 400; }
.site-footer__nav ul { margin: 0; padding: 0; list-style: none; }
.site-footer__nav li { margin-bottom: 8px; }
.site-footer__nav a { text-decoration: none; }
.site-footer__label { display: block; margin-bottom: 14px; color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 25px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.14); font-size: .72rem; }

@media (max-width: 1100px) {
	.property-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.location-strip { grid-template-columns: repeat(2, 1fr); }
	.property-search__form { grid-template-columns: repeat(2,1fr); }
	.property-search button { min-height: 60px; grid-column: span 2; }
	.archive-filter form { grid-template-columns: repeat(3,1fr); }
	.archive-filter button { min-height: 52px; }
}
@media (max-width: 850px) {
	.site-header__inner { grid-template-columns: 1fr auto; min-height: 72px; }
	.primary-nav { grid-column: 1 / -1; justify-self: stretch; display: none; padding-bottom: 20px; }
	.primary-nav.is-open { display: block; }
	.primary-nav ul { display: grid; gap: 12px; }
	.header-cta { display: none; }
	.menu-toggle { display: inline-flex; align-items: center; gap: 8px; }
	.section-head, .editorial-band, .property-overview, .site-footer__top { grid-template-columns: 1fr; }
	.section-head__aside { justify-self: start; }
	.property-sidebar { position: static; }
	.editorial-band__image { min-height: 380px; }
	.property-gallery { grid-template-columns: 1fr; grid-auto-rows: 60vw; }
	.property-gallery figure:first-child { grid-row: auto; }
	.single-property-hero__bottom { display: grid; }
}
@media (max-width: 620px) {
	.property-grid, .location-strip, .property-search__form, .archive-filter form { grid-template-columns: 1fr; }
	.property-search button { grid-column: auto; }
	.property-search label, .archive-filter label { border-right: 0; border-bottom: 1px solid var(--vela-line); }
	.archive-hero__row { grid-template-columns: 1fr; }
	.site-footer__bottom { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
	.hero__video { visibility: hidden; }
}

/* --------------------------------------------------------------------------
   Vela 1.1 — prestige editorial presentation
   -------------------------------------------------------------------------- */

body.vela-has-hero .site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	border-bottom-color: rgba(255,255,255,.26);
	background: linear-gradient(180deg, rgba(10,12,11,.38), rgba(10,12,11,0));
	color: #fff;
}
body.vela-has-hero .site-header__inner { min-height: 104px; }
body.vela-has-hero .header-cta { border-color: rgba(255,255,255,.72); }
body.vela-has-hero .site-branding .custom-logo { filter: brightness(0) invert(1); }
body.vela-has-hero .menu-toggle { color: #fff; }

.page-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 74vh;
	background: linear-gradient(135deg,#373a36,#181d1b) center/cover no-repeat;
	color: #fff;
	isolation: isolate;
	overflow: hidden;
}
.page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg,rgba(10,12,11,.10) 20%,rgba(10,12,11,.66) 100%);
}
.page-hero--overlay-light::after { background: linear-gradient(180deg,rgba(10,12,11,.04) 18%,rgba(10,12,11,.46) 100%); }
.page-hero--overlay-strong::after { background: linear-gradient(180deg,rgba(10,12,11,.20) 12%,rgba(10,12,11,.82) 100%); }
.page-hero--compact { min-height: 52vh; }
.page-hero--tall { min-height: 78vh; }
.page-hero--full { min-height: 100svh; }
.page-hero__media { position: absolute; inset: 0; z-index: -2; background: #222; }
.vela-background-video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.page-hero__inner { width: 100%; padding-block: clamp(155px,18vw,245px) clamp(58px,8vw,105px); }
.page-hero__copy { max-width: 980px; }
.page-hero--align-center .page-hero__copy { margin-inline: auto; text-align: center; }
.page-hero--align-center .page-hero__intro { margin-inline: auto; }
.vela-kicker--light { color: rgba(255,255,255,.82); }
.page-hero__title {
	max-width: 1120px;
	margin: 0;
	font-family: var(--vela-serif);
	font-size: clamp(3rem,7.2vw,7.6rem);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.045em;
	text-wrap: balance;
}
.page-hero__intro {
	max-width: 720px;
	margin: 26px 0 0;
	color: rgba(255,255,255,.88);
	font-size: clamp(1rem,1.55vw,1.25rem);
	line-height: 1.6;
}
.vela-video-toggle {
	position: absolute;
	right: var(--vela-gutter);
	bottom: 42px;
	z-index: 3;
	min-width: 72px;
	padding: 9px 13px;
	border: 1px solid rgba(255,255,255,.64);
	border-radius: 999px;
	background: rgba(10,15,13,.24);
	color: #fff;
	font-size: .64rem;
	font-weight: 750;
	letter-spacing: .11em;
	text-transform: uppercase;
	backdrop-filter: blur(8px);
}

body:not(.vela-has-hero) .property-search { margin-top: 0; }

.section-head--refined { padding-bottom: 30px; border-bottom: 1px solid var(--vela-line); }
.section-head--refined .section-head__aside p { margin-top: 0; }
.property-showcase + .site-footer { margin-top: 0; }

.property-grid.property-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(46px,5vw,82px) clamp(24px,3vw,46px); }
.property-grid.property-grid--3,
.property-grid.property-grid--mosaic { grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(30px,3vw,50px) clamp(18px,2.2vw,32px); }
.property-grid.property-grid--mosaic .property-card__title { font-size: clamp(1.35rem,1.8vw,1.85rem); }

.property-card { min-width: 0; }
.property-card__media {
	position: relative;
	aspect-ratio: 1.42 / 1;
	overflow: hidden;
	background: #d9d5cd;
}
.property-card__slides {
	display: flex;
	width: 100%;
	height: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
}
.property-card__slides::-webkit-scrollbar { display: none; }
.property-card__slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	display: block;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	overflow: hidden;
	text-decoration: none;
}
.property-card__slide img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform .8s cubic-bezier(.2,.65,.2,1);
}
.property-card:hover .property-card__slide:first-child img { transform: scale(1.025); }
.property-card__slide--placeholder span { display:block; width:100%; height:100%; background:linear-gradient(135deg,#d8d3ca,#8f9690); }
.property-card__flag {
	top: 18px;
	left: 18px;
	z-index: 4;
	padding: 8px 11px;
	border: 1px solid rgba(255,255,255,.42);
	background: rgba(250,249,246,.91);
	backdrop-filter: blur(5px);
}
.property-card__gallery-controls {
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px;
	border: 1px solid rgba(255,255,255,.38);
	border-radius: 999px;
	background: rgba(12,15,14,.56);
	color: #fff;
	backdrop-filter: blur(7px);
}
.property-card__gallery-button {
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	font-size: 1rem;
}
.property-card__gallery-button:hover:not(:disabled), .property-card__gallery-button:focus-visible { background: rgba(255,255,255,.14); }
.property-card__gallery-button:disabled { opacity: .34; cursor: default; }
.property-card__counter { min-width: 43px; text-align: center; font-size: .68rem; font-weight: 700; letter-spacing: .06em; }
.property-card__body { padding: 22px 1px 0; }
.property-card__eyebrow {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 9px;
	color: var(--vela-bronze);
	font-size: .68rem;
	font-weight: 750;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.property-card__eyebrow span:last-child:not(:first-child) { color: #858a87; }
.property-card__title { margin: 0; max-width: 90%; font-size: clamp(1.65rem,2.35vw,2.45rem); line-height: 1.08; }
.property-card__meta-row {
	display: grid;
	grid-template-columns: minmax(120px,.6fr) minmax(0,1fr);
	gap: 24px;
	align-items: end;
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid var(--vela-line);
}
.property-card__price { margin: 0; font-size: .9rem; font-weight: 700; }
.property-card__facts { justify-content: flex-end; gap: 5px 14px; margin: 0; font-size: .74rem; }
.property-card__facts span + span::before { content: "·"; margin-right: 14px; color: #a3a7a4; }

.archive-results__toolbar { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:34px; padding-bottom:16px; border-bottom:1px solid var(--vela-line); }
.archive-results__toolbar .archive-count { margin:0; }
.view-toggle { display:inline-flex; border:1px solid var(--vela-line); }
.view-toggle button { padding:9px 13px; border:0; background:transparent; color:#747a77; font-size:.67rem; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
.view-toggle button + button { border-left:1px solid var(--vela-line); }
.view-toggle button.is-active { background:var(--vela-ink); color:#fff; }

.single-property-hero { overflow:hidden; }
.single-property-hero--compact { min-height: 54vh; }
.single-property-hero--tall { min-height: 78vh; }
.single-property-hero--full { min-height: 100svh; }
.single-property-hero--overlay-light::after { background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(8,12,11,.52)); }
.single-property-hero--overlay-strong::after { background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(8,12,11,.84)); }
.single-property-hero .page-hero__media { z-index:-2; }
.single-property-hero .vela-video-toggle { bottom: 42px; }
.property-title-block { padding-block: clamp(80px,9vw,130px); background:var(--vela-paper); }
.single-property-hero__topline--dark { color:var(--vela-bronze); }
.property-title-block__price { margin:28px 0 0; font-size:clamp(1.2rem,2vw,1.55rem); font-weight:650; }

.generic-page { padding-block: clamp(78px,9vw,125px); }
.generic-page--after-hero { padding-top: clamp(70px,8vw,110px); }
.generic-page__content { max-width: 940px; margin-inline:auto; }
.generic-page__content > p:first-child { font-family:var(--vela-serif); font-size:clamp(1.35rem,2.2vw,2rem); line-height:1.45; color:var(--vela-ink-soft); }
.generic-page__content h2 { margin-top:2.1em; font-size:clamp(1.8rem,3.5vw,3.3rem); line-height:1.08; }
.generic-page__content h3 { margin-top:1.9em; font-size:clamp(1.4rem,2.3vw,2.1rem); }
.generic-page__content p { margin-block:1.15em; }

@media (max-width: 1100px) {
	.property-grid.property-grid--2,
	.property-grid.property-grid--3,
	.property-grid.property-grid--mosaic { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.property-card__meta-row { grid-template-columns:1fr; gap:10px; }
	.property-card__facts { justify-content:flex-start; }
}

@media (max-width: 850px) {
	body.vela-has-hero .site-header__inner { min-height: 80px; }
	body.vela-has-hero .primary-nav.is-open { padding:18px; background:rgba(20,23,21,.94); }
	.page-hero__inner { padding-top:140px; }
	.page-hero__title { font-size:clamp(2.8rem,11vw,5.2rem); }
	.vela-video-toggle { bottom:24px; }
	.property-card__media { aspect-ratio:1.32/1; }
}

@media (max-width: 620px) {
	.property-grid.property-grid--2,
	.property-grid.property-grid--3,
	.property-grid.property-grid--mosaic { grid-template-columns:1fr; gap:44px; }
	.archive-results__toolbar { align-items:flex-start; }
	.view-toggle { display:none; }
	.property-card__title { max-width:100%; }
	.property-card__gallery-controls { right:10px; bottom:10px; }
	.property-card__facts span + span::before { margin-right:10px; }
	.page-hero--compact { min-height:58vh; }
	.page-hero--tall { min-height:76vh; }
}

@media (prefers-reduced-motion: reduce) {
	.vela-background-video { visibility:hidden; }
	.property-card__slides { scroll-behavior:auto; }
	.property-card__slide img { transition:none; }
}

/* --------------------------------------------------------------------------
   Vela 1.2 — Riviera collection direction
   Inspired by the restraint of European luxury-property publishing without
   reproducing any third-party layout, branding, typography or trade dress.
   -------------------------------------------------------------------------- */

:root {
	--vela-ink: #0b2233;
	--vela-ink-soft: #40515d;
	--vela-paper: #f7f3eb;
	--vela-paper-deep: #eee8dd;
	--vela-white: #ffffff;
	--vela-sand: #d8c8a8;
	--vela-bronze: #b39a62;
	--vela-line: rgba(11, 34, 51, 0.22);
	--vela-max: 1380px;
	--vela-gutter: clamp(20px, 4vw, 62px);
	--vela-serif: "Bodoni 72", Didot, "Iowan Old Style", Baskerville, Georgia, serif;
	--vela-sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body {
	background: var(--vela-paper);
	color: var(--vela-ink);
	font-family: var(--vela-sans);
	font-size: 16px;
	line-height: 1.62;
	letter-spacing: .006em;
}

.vela-kicker {
	margin-bottom: 12px;
	color: var(--vela-bronze);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .16em;
}

.vela-display {
	font-size: clamp(2.55rem, 4.8vw, 5.2rem);
	line-height: 1;
	letter-spacing: .005em;
}

.vela-heading {
	font-size: clamp(2.2rem, 3.8vw, 4.4rem);
	line-height: 1.02;
	letter-spacing: .005em;
}

/* Centered, quieter masthead. The menu remains standard WordPress navigation. */
.site-header {
	border-bottom: 0;
	background: rgba(247,243,235,.98);
}
.site-header__inner {
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas:
		". brand cta"
		"nav nav nav";
	gap: 10px 24px;
	min-height: 126px;
	padding-block: 15px 12px;
}
.site-branding {
	grid-area: brand;
	justify-self: center;
}
.site-branding .custom-logo {
	max-height: 62px;
	max-width: 210px;
}
.site-branding__text {
	font-family: var(--vela-serif);
	font-size: 1.55rem;
	font-weight: 400;
	letter-spacing: .055em;
}
.primary-nav {
	grid-area: nav;
	justify-self: center;
}
.primary-nav ul {
	gap: clamp(24px, 3.3vw, 54px);
	justify-content: center;
}
.primary-nav a {
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .115em;
}
.header-cta {
	grid-area: cta;
	justify-self: end;
	padding: 5px 0 4px;
	border: 0;
	border-bottom: 1px solid currentColor;
	font-size: .64rem;
	font-weight: 600;
	letter-spacing: .11em;
}
.menu-toggle { grid-area: cta; justify-self: end; }

body.vela-has-hero .site-header {
	background: linear-gradient(180deg, rgba(7,22,33,.48), rgba(7,22,33,0));
}
body.vela-has-hero .site-header__inner { min-height: 126px; }
body.vela-has-hero .header-cta { border-color: currentColor; }

/* Search bars: fine rules, quiet labels, strong navy action. */
.property-search {
	margin-top: -31px;
}
.property-search__form {
	border: 1px solid rgba(11,34,51,.64);
	box-shadow: 0 18px 55px rgba(11,34,51,.08);
}
.property-search label {
	min-height: 66px;
	justify-content: center;
	padding: 12px 17px 10px;
}
.property-search span,
.archive-filter label span {
	color: #69747b;
	font-size: .59rem;
	font-weight: 600;
	letter-spacing: .11em;
}
.property-search select,
.property-search input,
.archive-filter select,
.archive-filter input {
	color: var(--vela-ink);
	font-size: .79rem;
}
.property-search button,
.archive-filter button {
	background: var(--vela-ink);
	font-size: .67rem;
	font-weight: 600;
	letter-spacing: .11em;
}

/* Collection archive — search first, then the editorial title. */
.archive-filter--primary {
	margin: 0;
	padding-block: clamp(24px,3vw,42px) 10px;
	border: 0;
	background: var(--vela-paper);
}
.archive-filter--primary form {
	grid-template-columns: 1.3fr 1.05fr .9fr .72fr .95fr .95fr auto;
	border: 1px solid rgba(11,34,51,.68);
	background: rgba(255,255,255,.26);
}
.archive-filter--primary label {
	min-height: 61px;
	justify-content: center;
	padding: 10px 14px 9px;
	border-right: 1px solid rgba(11,34,51,.22);
}
.archive-filter--primary button {
	min-width: 126px;
	border: 0;
}
.archive-hero {
	padding-block: clamp(42px,5.5vw,78px) clamp(25px,3.5vw,45px);
	background: var(--vela-paper);
}
.archive-hero__row {
	grid-template-columns: minmax(0, 1fr);
	max-width: 1040px;
	margin: 0;
}
.archive-hero .vela-display {
	max-width: 940px;
	color: var(--vela-bronze);
	font-size: clamp(2.7rem,4.1vw,4.35rem);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: .015em;
	text-transform: uppercase;
}
.archive-hero__intro {
	max-width: 880px;
	margin: 22px 0 0;
	color: #3f5260;
	font-size: .84rem;
	line-height: 1.65;
}
.archive-hero__intro p { margin: 0; }
.archive-hero--taxonomy { padding-top: clamp(52px,6vw,88px); }

.archive-results {
	padding-block: 8px clamp(92px,10vw,145px);
	background: var(--vela-paper);
}
.archive-results__toolbar {
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 0;
}
.archive-count {
	color: #667681;
	font-size: .73rem;
	letter-spacing: .04em;
}
.archive-results__controls {
	display: flex;
	gap: 12px;
	align-items: center;
}
.archive-sort select {
	min-width: 176px;
	height: 39px;
	padding: 0 34px 0 12px;
	border: 1px solid rgba(11,34,51,.58);
	border-radius: 0;
	background: transparent;
	color: var(--vela-ink);
	font-size: .72rem;
}
.view-toggle {
	height: 39px;
	border-color: rgba(11,34,51,.58);
}
.view-toggle button {
	padding: 8px 14px;
	color: #5f6f79;
	font-size: .61rem;
	font-weight: 600;
	letter-spacing: .11em;
}
.view-toggle button.is-active {
	background: var(--vela-ink);
	color: #fff;
}

/* The default collection is the refined three-column card grid. */
.property-grid,
.property-grid.property-grid--3,
.property-grid.property-grid--mosaic {
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: clamp(12px,1.55vw,24px);
}
.property-grid.property-grid--2 {
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: clamp(24px,3vw,46px);
}
.property-card {
	min-width: 0;
	background: var(--vela-ink);
	box-shadow: 0 1px 0 rgba(11,34,51,.05);
}
.property-card__media {
	aspect-ratio: 1.45 / 1;
	background: #d8d5cf;
}
.property-card__slide img {
	transition-duration: .95s;
}
.property-card:hover .property-card__slide:first-child img { transform: scale(1.018); }
.property-card__flag {
	top: 12px;
	left: 12px;
	padding: 5px 8px;
	border: 1px solid rgba(255,255,255,.6);
	background: rgba(11,34,51,.52);
	color: #fff;
	font-size: .55rem;
	font-weight: 600;
	letter-spacing: .1em;
}
.property-card__gallery-controls {
	inset: 0;
	right: auto;
	bottom: auto;
	display: block;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	backdrop-filter: none;
	pointer-events: none;
}
.property-card__gallery-button {
	position: absolute;
	top: 50%;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	border: 1px solid rgba(255,255,255,.72);
	background: rgba(255,255,255,.82);
	color: var(--vela-ink);
	font-family: Georgia, serif;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
	box-shadow: 0 2px 12px rgba(0,0,0,.12);
	pointer-events: auto;
}
.property-card__gallery-button--prev { left: 11px; }
.property-card__gallery-button--next { right: 11px; }
.property-card__gallery-button:hover:not(:disabled),
.property-card__gallery-button:focus-visible {
	background: #fff;
}
.property-card__counter {
	position: absolute;
	right: 11px;
	bottom: 10px;
	min-width: 0;
	padding: 4px 7px;
	background: rgba(11,34,51,.68);
	color: #fff;
	font-size: .55rem;
	font-weight: 500;
	letter-spacing: .07em;
	pointer-events: auto;
}
.property-card__body {
	min-height: 186px;
	display: flex;
	flex-direction: column;
	padding: 17px 19px 19px;
	background: var(--vela-ink);
	color: #fff;
}
.property-card__location {
	margin: 0 0 4px;
	color: #fff;
	font-family: var(--vela-serif);
	font-size: clamp(1.25rem,1.65vw,1.7rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: .045em;
	text-transform: uppercase;
}
.property-card__title {
	max-width: 100%;
	margin: 0;
	color: #d2bd86;
	font-family: var(--vela-sans);
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .055em;
	text-transform: uppercase;
}
.property-card__facts {
	display: flex;
	justify-content: flex-start;
	gap: 0;
	margin: 8px 0 18px;
	color: #cbb27b;
	font-size: .62rem;
	font-weight: 500;
	letter-spacing: .055em;
	line-height: 1.45;
	text-transform: uppercase;
}
.property-card__facts span + span::before {
	content: " | ";
	margin: 0 6px;
	color: #9b875f;
}
.property-card__meta-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 15px;
	align-items: end;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid rgba(255,255,255,.09);
}
.property-card__reference {
	color: rgba(255,255,255,.88);
	font-size: .62rem;
	font-weight: 650;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.property-card__price {
	margin: 0;
	color: #fff;
	font-size: .92rem;
	font-weight: 500;
	letter-spacing: .01em;
}

/* Sections and editorial accents inherit the warmer collection palette. */
.section { background: var(--vela-paper); }
.section--paper { background: var(--vela-paper-deep); }
.section-head--refined { border-bottom-color: rgba(11,34,51,.16); }
.section-head__aside { color: #50616d; }
.location-strip { border-color: rgba(11,34,51,.2); }
.location-strip a { border-color: rgba(11,34,51,.2); }
.location-strip a:hover { background: var(--vela-ink); }
.editorial-band,
.site-footer { background: var(--vela-ink); }
.related-properties,
.property-title-block { background: var(--vela-paper-deep); }

.navigation.pagination { margin-top: 48px; }
.page-numbers {
	border-color: rgba(11,34,51,.36);
	font-size: .72rem;
}
.page-numbers.current { background: var(--vela-ink); }

@media (max-width: 1180px) {
	.archive-filter--primary form { grid-template-columns: repeat(3,1fr); }
	.archive-filter--primary button { min-height: 55px; grid-column: span 3; }
	.property-grid,
	.property-grid.property-grid--3,
	.property-grid.property-grid--mosaic { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 850px) {
	.site-header__inner {
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"brand toggle"
			"nav nav";
		min-height: 78px;
		padding-block: 11px;
	}
	.site-branding { justify-self: start; }
	.site-branding .custom-logo { max-height: 48px; }
	.header-cta { display: none; }
	.menu-toggle { grid-area: toggle; }
	.primary-nav { grid-area: nav; }
	body.vela-has-hero .site-header__inner { min-height: 78px; }
	.archive-results__controls { width: 100%; justify-content: flex-end; }
	.property-card__body { min-height: 176px; }
}

@media (max-width: 620px) {
	.archive-filter--primary { padding-top: 18px; }
	.archive-filter--primary form { grid-template-columns: 1fr; }
	.archive-filter--primary label { border-right: 0; border-bottom: 1px solid rgba(11,34,51,.2); }
	.archive-filter--primary button { grid-column: auto; min-height: 54px; }
	.archive-hero { padding-top: 42px; }
	.archive-hero .vela-display { font-size: clamp(2.3rem,11vw,3.4rem); }
	.archive-results__toolbar { align-items: flex-start; }
	.archive-results__controls { width: auto; }
	.archive-sort select { min-width: 168px; }
	.property-grid,
	.property-grid.property-grid--2,
	.property-grid.property-grid--3,
	.property-grid.property-grid--mosaic { grid-template-columns: 1fr; gap: 18px; }
	.property-card__body { min-height: 165px; }
	.property-card__location { font-size: 1.45rem; }
}

.property-card__body > .property-card__title:first-child {
	color: #fff;
	font-family: var(--vela-serif);
	font-size: clamp(1.2rem,1.55vw,1.55rem);
	font-weight: 400;
	letter-spacing: .025em;
	line-height: 1.12;
	text-transform: none;
}

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}


/* v1.2.1: resilient card carousel controls. Keep the controls themselves clickable
   without placing a full-size interaction layer over the native swipe/scroll track. */
.property-card__gallery-controls {
	position: static;
	display: contents;
	pointer-events: auto;
}
.property-card__gallery-button {
	z-index: 6;
	touch-action: manipulation;
}
.property-card__counter {
	z-index: 6;
	pointer-events: none;
}
.property-card__slides {
	-webkit-overflow-scrolling: touch;
	touch-action: pan-x pan-y;
}

/* --------------------------------------------------------------------------
   Vela 1.2.2 — legible hero masthead
   A stable midnight-navy brand strip keeps the logo and navigation readable
   over bright or moving hero photography/video.
   -------------------------------------------------------------------------- */
body.vela-has-hero .site-header {
	background: rgba(11,34,51,.96);
	border-bottom: 1px solid rgba(179,154,98,.34);
	box-shadow: 0 10px 34px rgba(4,15,23,.12);
	color: #fff;
	-webkit-backdrop-filter: blur(10px) saturate(110%);
	backdrop-filter: blur(10px) saturate(110%);
}
body.vela-has-hero .site-header__inner {
	min-height: 126px;
}
body.vela-has-hero .primary-nav a,
body.vela-has-hero .header-cta,
body.vela-has-hero .menu-toggle {
	color: #fff;
}
body.vela-has-hero .primary-nav a {
	transition: color .2s ease, opacity .2s ease;
}
body.vela-has-hero .primary-nav a:hover,
body.vela-has-hero .primary-nav a:focus-visible,
body.vela-has-hero .primary-nav .current-menu-item > a,
body.vela-has-hero .primary-nav .current-menu-ancestor > a {
	color: #d8c8a8;
}
body.vela-has-hero .header-cta {
	border-bottom-color: rgba(216,200,168,.82);
}
body.vela-has-hero .site-branding .custom-logo {
	filter: brightness(0) invert(1);
}
body.vela-has-hero .site-branding__text {
	color: #fff;
}

@media (max-width: 850px) {
	body.vela-has-hero .site-header__inner {
		min-height: 78px;
	}
	body.vela-has-hero .primary-nav.is-open {
		margin-inline: calc(-1 * var(--vela-gutter));
		padding: 18px var(--vela-gutter) 20px;
		border-top: 1px solid rgba(216,200,168,.18);
		background: #0b2233;
	}
}


/* --------------------------------------------------------------------------
   Vela 1.3 — single-residence dossier
   An original, editorial listing experience: asymmetric photography,
   long-form description, structured dossier, private enquiry and lightbox.
   -------------------------------------------------------------------------- */

body.is-property {
	background: var(--vela-paper);
}
body.is-property.vela-has-hero .site-header {
	position: relative;
}
body.is-property main#primary {
	overflow: clip;
}

.property-media-stage {
	position: relative;
	background: #091b28;
}
/* Balanced opening gallery: deliberately capped so ordinary listing photography is not over-enlarged. */
.property-media-stage__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr);
	gap: 5px;
	height: clamp(440px, 55vh, 640px);
	min-height: 0;
}
.property-media-stage--single .property-media-stage__grid {
	grid-template-columns: 1fr;
}
.property-media-stage__primary,
.property-media-stage__secondary,
.property-media-stage__image-link {
	min-width: 0;
	min-height: 0;
}
.property-media-stage__primary {
	position: relative;
	overflow: hidden;
}
.property-media-stage__secondary {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 5px;
}
.property-media-stage__image-link {
	display: block;
	height: 100%;
	overflow: hidden;
	background: #263845;
}
.property-media-stage__image-link img,
.property-media-stage__video {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform .9s cubic-bezier(.2,.65,.2,1), filter .35s ease;
}
.property-media-stage__image-link:hover img {
	transform: scale(1.018);
	filter: saturate(1.03);
}
.property-media-stage__primary::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 34%;
	pointer-events: none;
	background: linear-gradient(180deg, transparent, rgba(5,18,27,.42));
}
.property-media-stage__overlay {
	position: absolute;
	left: 50%;
	bottom: 24px;
	z-index: 4;
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 24px;
	transform: translateX(-50%);
	pointer-events: none;
}
.property-media-stage__reference,
.property-media-stage__gallery-button {
	pointer-events: auto;
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.property-media-stage__reference {
	padding: 8px 10px;
	background: rgba(11,34,51,.72);
	color: rgba(255,255,255,.92);
	backdrop-filter: blur(8px);
}
.property-media-stage__gallery-button {
	padding: 11px 15px;
	border: 1px solid rgba(255,255,255,.74);
	background: rgba(11,34,51,.58);
	color: #fff;
	text-decoration: none;
	backdrop-filter: blur(8px);
	transition: background .2s ease, border-color .2s ease;
}
.property-media-stage__gallery-button:hover,
.property-media-stage__gallery-button:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--vela-ink);
}
.property-media-stage__video-toggle {
	right: 22px;
	bottom: 22px;
	z-index: 5;
}

.property-heading-panel {
	padding-block: clamp(54px, 6.5vw, 92px) clamp(46px, 5.5vw, 76px);
	background: var(--vela-paper);
}
.property-heading-panel__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(250px, auto);
	gap: clamp(38px, 6vw, 100px);
	align-items: end;
}
.property-heading-panel__topline {
	margin: 0 0 18px;
	color: var(--vela-bronze);
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .135em;
	line-height: 1.6;
	text-transform: uppercase;
}
.property-heading-panel__title {
	max-width: 1020px;
	margin: 0;
	font-family: var(--vela-serif);
	font-size: clamp(2.7rem, 5.15vw, 5.8rem);
	font-weight: 400;
	line-height: .99;
	letter-spacing: .005em;
}
.property-heading-panel__summary {
	max-width: 900px;
	margin: 28px 0 0;
	color: #415463;
	font-family: var(--vela-serif);
	font-size: clamp(1.15rem, 1.55vw, 1.52rem);
	line-height: 1.55;
}
.property-heading-panel__aside {
	min-width: 250px;
	text-align: right;
}
.property-heading-panel__price {
	margin: 0 0 20px;
	font-family: var(--vela-serif);
	font-size: clamp(1.55rem, 2.2vw, 2.25rem);
	line-height: 1.1;
}
.property-heading-panel__utilities {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}
.property-utility {
	padding: 8px 0 6px;
	border: 0;
	border-bottom: 1px solid rgba(11,34,51,.42);
	background: transparent;
	color: var(--vela-ink);
	font-size: .61rem;
	font-weight: 600;
	letter-spacing: .115em;
	text-decoration: none;
	text-transform: uppercase;
}
.property-utility:hover,
.property-utility:focus-visible {
	border-bottom-color: var(--vela-bronze);
	color: var(--vela-bronze);
}

.property-facts-band {
	border-top: 1px solid rgba(11,34,51,.18);
	border-bottom: 1px solid rgba(11,34,51,.18);
	background: rgba(255,255,255,.28);
}
.property-facts-band__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}
.property-facts-band__item {
	min-height: 112px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 20px clamp(16px, 2vw, 30px);
	border-right: 1px solid rgba(11,34,51,.15);
}
.property-facts-band__item:last-child { border-right: 0; }
.property-facts-band__item span {
	margin-bottom: 5px;
	color: #73808a;
	font-size: .58rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.property-facts-band__item strong {
	font-family: var(--vela-serif);
	font-size: clamp(1.28rem, 1.65vw, 1.75rem);
	font-weight: 400;
	line-height: 1.18;
}

.property-story {
	padding-block: clamp(78px, 9vw, 132px);
	background: #fff;
}
.property-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
	gap: clamp(60px, 9vw, 145px);
	align-items: start;
}
.property-story__heading {
	max-width: 720px;
}
.property-story__lead {
	max-width: 850px;
	margin: 34px 0 28px;
	color: var(--vela-ink);
	font-family: var(--vela-serif);
	font-size: clamp(1.25rem, 1.8vw, 1.72rem);
	line-height: 1.55;
}
.property-description {
	position: relative;
	max-width: 860px;
}
.property-description__body {
	position: relative;
	color: #334956;
	font-size: 1rem;
	line-height: 1.85;
	transition: max-height .35s ease;
}
.property-description__body > :first-child { margin-top: 0; }
.property-description__body > :last-child { margin-bottom: 0; }
.property-description__body p { margin: 0 0 1.35em; }
.property-description__body h2,
.property-description__body h3 {
	margin: 1.8em 0 .65em;
	color: var(--vela-ink);
	font-family: var(--vela-serif);
	font-weight: 400;
	line-height: 1.18;
}
.property-description__body.is-collapsed {
	max-height: 30rem;
	overflow: hidden;
}
.property-description__body.is-collapsed::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 9rem;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff 82%);
	pointer-events: none;
}
.property-description__toggle {
	margin-top: 24px;
	padding: 8px 0 5px;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	color: var(--vela-ink);
	font-size: .64rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.property-private-card {
	position: sticky;
	top: 28px;
	padding: clamp(30px, 3.4vw, 48px);
	background: var(--vela-ink);
	color: #fff;
	box-shadow: 0 24px 70px rgba(11,34,51,.12);
}
.property-private-card .vela-kicker { color: #ccb782; }
.property-private-card h2 {
	margin: 0;
	font-family: var(--vela-serif);
	font-size: clamp(1.9rem, 2.7vw, 3.1rem);
	font-weight: 400;
	line-height: 1.06;
}
.property-private-card > p:not(.vela-kicker) {
	margin: 22px 0 30px;
	color: rgba(255,255,255,.72);
	font-size: .88rem;
	line-height: 1.7;
}
.property-private-card dl { margin: 0 0 30px; }
.property-private-card dl div {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 18px;
	padding: 11px 0;
	border-bottom: 1px solid rgba(255,255,255,.13);
}
.property-private-card dt {
	color: rgba(255,255,255,.55);
	font-size: .58rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.property-private-card dd {
	margin: 0;
	font-size: .78rem;
	text-align: right;
}
.property-private-card__primary {
	display: block;
	padding: 14px 18px;
	border: 1px solid #fff;
	background: #fff;
	color: var(--vela-ink);
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.property-private-card__primary:hover,
.property-private-card__primary:focus-visible {
	background: transparent;
	color: #fff;
}
.property-private-card__links {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 20px;
}
.property-private-card__links a {
	color: #d8c8a8;
	font-size: .61rem;
	letter-spacing: .1em;
	text-decoration: none;
	text-transform: uppercase;
}
.property-private-card__links a:hover { color: #fff; }

.property-section-title {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(250px, .55fr);
	gap: 45px;
	align-items: end;
	margin-bottom: 48px;
}
.property-section-title > p {
	max-width: 480px;
	justify-self: end;
	margin: 0;
	color: #5b6b75;
	font-size: .84rem;
	line-height: 1.75;
}
.property-dossier {
	padding-block: clamp(76px, 9vw, 126px);
}
.property-dossier__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(11,34,51,.22);
	border-left: 1px solid rgba(11,34,51,.22);
}
.property-dossier__item {
	min-height: 122px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 18px;
	padding: 20px 22px;
	border-right: 1px solid rgba(11,34,51,.22);
	border-bottom: 1px solid rgba(11,34,51,.22);
}
.property-dossier__item span {
	color: #6c7982;
	font-size: .57rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.property-dossier__item strong {
	font-family: var(--vela-serif);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.2;
}
.property-signatures {
	margin-top: 52px;
}
.property-signatures__items {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.property-signatures__items span {
	padding: 9px 13px;
	border: 1px solid rgba(11,34,51,.28);
	border-radius: 999px;
	background: rgba(255,255,255,.24);
	font-size: .62rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.property-visual-journal {
	padding-block: clamp(76px, 8vw, 118px);
	background: #fff;
}
.property-visual-journal__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(420px, 42vw);
	gap: 7px;
	overflow-x: auto;
	padding-inline: max(var(--vela-gutter), calc((100vw - var(--vela-max)) / 2));
	padding-bottom: 16px;
	scroll-padding-inline: max(var(--vela-gutter), calc((100vw - var(--vela-max)) / 2));
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
}
.property-visual-journal__track a {
	display: block;
	aspect-ratio: 1.45 / 1;
	overflow: hidden;
	scroll-snap-align: start;
	background: #d6d2cb;
}
.property-visual-journal__track img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}
.property-visual-journal__track a:hover img { transform: scale(1.018); }

.property-floorplans__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.property-floorplans__grid figure {
	margin: 0;
	padding: clamp(18px, 3vw, 40px);
	background: #fff;
	border: 1px solid rgba(11,34,51,.12);
}

.property-location-panel {
	padding-block: clamp(74px, 8vw, 116px);
	background: #fff;
}
.property-location-panel__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, .58fr);
	gap: clamp(55px, 9vw, 135px);
	align-items: end;
}
.property-location-panel__copy {
	padding-left: 30px;
	border-left: 1px solid rgba(11,34,51,.2);
}
.property-location-panel__copy p {
	margin: 0 0 24px;
	color: #50616d;
	line-height: 1.75;
}

.property-enquiry {
	padding-block: clamp(84px, 9vw, 132px);
	background: var(--vela-ink);
	color: #fff;
}
.property-enquiry__grid {
	display: grid;
	grid-template-columns: minmax(0, .75fr) minmax(520px, 1.25fr);
	gap: clamp(60px, 9vw, 135px);
	align-items: start;
}
.property-enquiry__intro {
	padding-top: 18px;
}
.property-enquiry__intro .vela-kicker { color: #d3be8b; }
.property-enquiry__intro h2 {
	max-width: 560px;
	margin: 0;
	font-family: var(--vela-serif);
	font-size: clamp(2.6rem, 4.5vw, 5rem);
	font-weight: 400;
	line-height: .98;
}
.property-enquiry__intro > p:not(.vela-kicker) {
	max-width: 560px;
	margin: 28px 0 0;
	color: rgba(255,255,255,.7);
	font-size: .92rem;
	line-height: 1.78;
}
.property-enquiry__contact {
	display: grid;
	gap: 7px;
	margin-top: 34px;
}
.property-enquiry__contact a {
	width: fit-content;
	color: #d8c8a8;
	font-size: .78rem;
	text-decoration: none;
}
.property-enquiry__form-wrap {
	padding: clamp(28px, 4vw, 54px);
	background: var(--vela-paper);
	color: var(--vela-ink);
}
.property-enquiry__notice {
	margin-bottom: 24px;
	padding: 13px 15px;
	border-left: 3px solid currentColor;
	font-size: .78rem;
	line-height: 1.6;
}
.property-enquiry__notice--success { color: #45634e; background: rgba(69,99,78,.08); }
.property-enquiry__notice--error { color: #8b443e; background: rgba(139,68,62,.07); }
.property-enquiry-form {
	display: grid;
	gap: 22px;
}
.property-enquiry-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.property-enquiry-form label {
	display: grid;
	gap: 7px;
}
.property-enquiry-form label > span {
	color: #697680;
	font-size: .58rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.property-enquiry-form input,
.property-enquiry-form textarea {
	width: 100%;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid rgba(11,34,51,.35);
	border-radius: 0;
	outline: 0;
	background: transparent;
	color: var(--vela-ink);
	font-size: .88rem;
}
.property-enquiry-form textarea {
	min-height: 140px;
	resize: vertical;
}
.property-enquiry-form input:focus,
.property-enquiry-form textarea:focus {
	border-bottom-color: var(--vela-bronze);
}
.property-enquiry-form__consent {
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 10px !important;
}
.property-enquiry-form__consent input {
	width: auto;
	margin-top: 3px;
}
.property-enquiry-form__consent span {
	color: #64747e !important;
	font-size: .68rem !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1.55;
	text-transform: none !important;
}
.property-enquiry-form button[type="submit"] {
	justify-self: start;
	min-width: 210px;
	padding: 14px 20px;
	border: 1px solid var(--vela-ink);
	background: var(--vela-ink);
	color: #fff;
	font-size: .63rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.property-enquiry-form button[type="submit"]:hover,
.property-enquiry-form button[type="submit"]:focus-visible {
	background: transparent;
	color: var(--vela-ink);
}
.property-enquiry-form__honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

body.vela-lightbox-open { overflow: hidden; }
.property-lightbox[hidden] { display: none !important; }
.property-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: grid;
	place-items: center;
	padding: clamp(18px, 3vw, 44px);
}
.property-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(3,12,18,.96);
}
.property-lightbox__stage {
	position: relative;
	z-index: 1;
	width: min(94vw, 1600px);
	height: min(88vh, 1020px);
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr) 58px;
	align-items: center;
}
.property-lightbox figure {
	min-width: 0;
	min-height: 0;
	margin: 0;
	height: 100%;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	gap: 12px;
	place-items: center;
}
.property-lightbox img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.property-lightbox figcaption {
	color: rgba(255,255,255,.68);
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.property-lightbox__close,
.property-lightbox__nav {
	border: 1px solid rgba(255,255,255,.35);
	background: rgba(11,34,51,.3);
	color: #fff;
}
.property-lightbox__close {
	position: absolute;
	top: -4px;
	right: 2px;
	z-index: 2;
	width: 42px;
	height: 42px;
	font-family: Georgia, serif;
	font-size: 1.55rem;
	line-height: 1;
}
.property-lightbox__nav {
	width: 42px;
	height: 42px;
	justify-self: center;
	font-family: Georgia, serif;
	font-size: 1.55rem;
	line-height: 1;
}
.property-lightbox__close:hover,
.property-lightbox__nav:hover,
.property-lightbox__close:focus-visible,
.property-lightbox__nav:focus-visible {
	background: #fff;
	color: var(--vela-ink);
}
.property-lightbox__nav:disabled { opacity: .28; cursor: default; }

body.is-property .related-properties {
	padding-block: clamp(80px, 9vw, 126px);
	background: var(--vela-paper);
}

@media (max-width: 1080px) {
	.property-media-stage__grid { height: clamp(440px, 58vh, 580px); }
	.property-heading-panel__grid,
	.property-story__grid,
	.property-enquiry__grid {
		grid-template-columns: 1fr;
	}
	.property-heading-panel__aside {
		min-width: 0;
		text-align: left;
	}
	.property-heading-panel__utilities { justify-content: flex-start; }
	.property-private-card { position: static; max-width: 640px; }
	.property-facts-band__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.property-facts-band__item:nth-child(3n) { border-right: 0; }
	.property-facts-band__item:nth-child(n+4) { border-top: 1px solid rgba(11,34,51,.15); }
	.property-dossier__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.property-enquiry__grid { gap: 48px; }
	.property-enquiry__form-wrap { max-width: 820px; }
}

@media (max-width: 820px) {
	.property-media-stage__grid {
		height: auto;
		grid-template-columns: 1fr;
		grid-template-rows: minmax(430px, 62vh) 250px;
		min-height: 0;
	}
	.property-media-stage--single .property-media-stage__grid { grid-template-rows: minmax(430px, 66vh); }
	.property-media-stage__secondary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 1fr;
	}
	.property-media-stage__overlay { bottom: 16px; }
	.property-section-title,
	.property-location-panel__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.property-section-title > p { justify-self: start; }
	.property-location-panel__copy { padding-left: 0; border-left: 0; }
	.property-dossier__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.property-floorplans__grid { grid-template-columns: 1fr; }
	.property-visual-journal__track { grid-auto-columns: minmax(320px, 80vw); }
	.property-lightbox__stage {
		width: 96vw;
		height: 88vh;
		grid-template-columns: 44px minmax(0, 1fr) 44px;
	}
}

@media (max-width: 620px) {
	.property-media-stage__grid { grid-template-rows: minmax(360px, 56vh) 180px; }
	.property-media-stage--single .property-media-stage__grid { grid-template-rows: minmax(390px, 62vh); }
	.property-media-stage__overlay {
		width: calc(100% - 32px);
		bottom: 12px;
	}
	.property-media-stage__reference { display: none; }
	.property-media-stage__gallery-button { margin-left: auto; }
	.property-heading-panel { padding-block: 44px 38px; }
	.property-heading-panel__title { font-size: clamp(2.45rem, 12.4vw, 4rem); }
	.property-heading-panel__summary { margin-top: 20px; }
	.property-facts-band__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.property-facts-band__item,
	.property-facts-band__item:nth-child(3n) { border-right: 1px solid rgba(11,34,51,.15); }
	.property-facts-band__item:nth-child(2n) { border-right: 0; }
	.property-facts-band__item:nth-child(n+3) { border-top: 1px solid rgba(11,34,51,.15); }
	.property-story { padding-block: 66px; }
	.property-story__grid { gap: 48px; }
	.property-private-card { margin-inline: calc(-1 * var(--vela-gutter)); }
	.property-dossier__grid { grid-template-columns: 1fr 1fr; }
	.property-dossier__item { min-height: 105px; padding: 17px 15px; }
	.property-enquiry__form-wrap { margin-inline: calc(-1 * var(--vela-gutter)); padding: 28px 20px; }
	.property-enquiry-form__row { grid-template-columns: 1fr; }
	.property-enquiry-form button[type="submit"] { width: 100%; }
	.property-lightbox { padding: 12px; }
	.property-lightbox__stage {
		width: 100%;
		height: 92vh;
		grid-template-columns: 1fr;
	}
	.property-lightbox__nav {
		position: absolute;
		top: 50%;
		z-index: 2;
		transform: translateY(-50%);
	}
	.property-lightbox__nav--prev { left: 0; }
	.property-lightbox__nav--next { right: 0; }
	.property-lightbox__close { top: 0; right: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.property-media-stage__image-link img,
	.property-visual-journal__track img,
	.property-description__body {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   Vela 1.4 — visual page builder
   Homepage and marketing-page sections are now native Gutenberg blocks.
   -------------------------------------------------------------------------- */

.front-page-content,
.generic-page__content {
	width: 100%;
	max-width: none;
	margin: 0;
}

.front-page-content > :where(:not(.alignfull):not(.alignwide):not([class*="wp-block-vela-"])),
.generic-page__content > :where(:not(.alignfull):not(.alignwide):not([class*="wp-block-vela-"])) {
	width: min(100% - (2 * var(--vela-gutter)), 940px);
	margin-left: auto;
	margin-right: auto;
}

.front-page-content > .alignwide,
.generic-page__content > .alignwide {
	width: min(100% - (2 * var(--vela-gutter)), var(--vela-max));
	max-width: var(--vela-max);
	margin-left: auto;
	margin-right: auto;
}

.front-page-content > .alignfull,
.generic-page__content > .alignfull,
.front-page-content > [class*="wp-block-vela-"],
.generic-page__content > [class*="wp-block-vela-"] {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.generic-page--visual {
	padding: 0;
}

.generic-page--visual .generic-page__content {
	max-width: none;
}

.front-page-content > :first-child,
.generic-page--visual .generic-page__content > :first-child {
	margin-top: 0;
}

.front-page-content > :last-child,
.generic-page--visual .generic-page__content > :last-child {
	margin-bottom: 0;
}

.vela-block-bg--white { background: var(--vela-white); }
.vela-block-bg--ivory { background: var(--vela-paper); }
.vela-block-bg--deep { background: var(--vela-paper-deep); }

.wp-block-vela-property-collection .section-head__aside > div,
.wp-block-vela-locations .section-head__aside > div {
	margin-bottom: 18px;
}

.wp-block-vela-property-collection .section-head__aside > div > :first-child,
.wp-block-vela-locations .section-head__aside > div > :first-child,
.editorial-band__body > :first-child { margin-top: 0; }

.wp-block-vela-property-collection .section-head__aside > div > :last-child,
.wp-block-vela-locations .section-head__aside > div > :last-child,
.editorial-band__body > :last-child { margin-bottom: 0; }

.editorial-band--image-right .editorial-band__image { order: 2; }
.editorial-band--image-right .editorial-band__content { order: 1; }
.editorial-band__body { max-width: 650px; color: rgba(255,255,255,.76); }
.vela-editor-empty { padding: 24px; border: 1px solid var(--vela-line); background: rgba(255,255,255,.4); }

/* Keep the individual residence opening gallery restrained on larger screens. */
@media (min-width: 1081px) {
	.property-media-stage__grid {
		grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr);
		height: clamp(340px, 42vh, 480px);
	}
}

@media (min-width: 821px) and (max-width: 1080px) {
	.property-media-stage__grid { height: clamp(340px, 44vh, 460px); }
}

@media (max-width: 850px) {
	.editorial-band--image-right .editorial-band__image,
	.editorial-band--image-right .editorial-band__content { order: initial; }
}

/* --------------------------------------------------------------------------
   Vela 1.4.1 — reliable full-width visual sections
   Vela design blocks are intended as page sections, not narrow article blocks.
   This breakout keeps them full-width even if an editor accidentally nests one
   inside a constrained Gutenberg Group/Columns container.
   -------------------------------------------------------------------------- */
.front-page-content .wp-block-vela-hero,
.front-page-content .wp-block-vela-property-search,
.front-page-content .wp-block-vela-property-collection,
.front-page-content .wp-block-vela-locations,
.front-page-content .wp-block-vela-editorial-split,
.generic-page__content .wp-block-vela-hero,
.generic-page__content .wp-block-vela-property-search,
.generic-page__content .wp-block-vela-property-collection,
.generic-page__content .wp-block-vela-locations,
.generic-page__content .wp-block-vela-editorial-split {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Collection pages should retain the generous catalogue proportions. */
.wp-block-vela-property-collection > .vela-shell {
	width: min(100% - (2 * var(--vela-gutter)), var(--vela-max));
	max-width: var(--vela-max);
}
