/* =============================================================================
   Cloud9 — Soft Modern
   App stylesheet: components, layouts, and motion that sit on top of theme.json
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. Custom properties (shorthands)
   ----------------------------------------------------------------------------- */

/* Backwards-compat: legacy slugs used in pre-rebuild page content.
   Map them to the new tokens so old block markup keeps rendering correctly. */
:root {
	--wp--preset--font-size--2xl: var(--wp--preset--font-size--2-xl);
	--wp--preset--font-size--3xl: var(--wp--preset--font-size--3-xl);
	--wp--preset--font-size--4xl: var(--wp--preset--font-size--4-xl);
}
.has-2xl-font-size { font-size: var(--wp--preset--font-size--2-xl) !important; }
.has-3xl-font-size { font-size: var(--wp--preset--font-size--3-xl) !important; }
.has-4xl-font-size { font-size: var(--wp--preset--font-size--4-xl) !important; }

:root {
	/* Color shorthands */
	--c9-surface:      var(--wp--preset--color--surface);
	--c9-surface-2:    var(--wp--preset--color--surface-2);
	--c9-surface-3:    var(--wp--preset--color--surface-3);
	--c9-ink:          var(--wp--preset--color--ink);
	--c9-ink-2:        var(--wp--preset--color--ink-2);
	--c9-ink-muted:    var(--wp--preset--color--ink-muted);
	--c9-border:       var(--wp--preset--color--border);
	--c9-border-soft:  var(--wp--preset--color--border-soft);
	--c9-accent:       var(--wp--preset--color--accent);
	--c9-accent-soft:  var(--wp--preset--color--accent-soft);
	--c9-accent-deep:  var(--wp--preset--color--accent-deep);

	/* Spacing shorthands */
	--c9-sp-1:  var(--wp--preset--spacing--1);
	--c9-sp-2:  var(--wp--preset--spacing--2);
	--c9-sp-3:  var(--wp--preset--spacing--3);
	--c9-sp-4:  var(--wp--preset--spacing--4);
	--c9-sp-5:  var(--wp--preset--spacing--5);
	--c9-sp-6:  var(--wp--preset--spacing--6);
	--c9-sp-7:  var(--wp--preset--spacing--7);
	--c9-sp-8:  var(--wp--preset--spacing--8);
	--c9-sp-9:  var(--wp--preset--spacing--9);
	--c9-sp-10: var(--wp--preset--spacing--10);

	/* Shadows */
	--c9-shadow-1: 0 1px 2px rgba(31, 26, 23, 0.04);
	--c9-shadow-2: 0 4px 16px rgba(31, 26, 23, 0.06), 0 1px 2px rgba(31, 26, 23, 0.04);
	--c9-shadow-3: 0 12px 32px rgba(31, 26, 23, 0.08), 0 2px 4px rgba(31, 26, 23, 0.04);
	--c9-shadow-4: 0 24px 64px rgba(31, 26, 23, 0.12);

	/* Radii */
	--c9-r-sm: 8px;
	--c9-r-md: 12px;
	--c9-r-lg: 20px;
	--c9-r-xl: 32px;
	--c9-r-pill: 9999px;

	/* Motion */
	--c9-ease: cubic-bezier(0.32, 0.72, 0, 1);
	--c9-ease-out: cubic-bezier(0.16, 1, 0.3, 1);

	/* Page gutter */
	--c9-gutter: clamp(1.25rem, 4vw, 4rem);

	/* Header height */
	--c9-header-h: 76px;
}

/* -----------------------------------------------------------------------------
   2. Reset & base
   ----------------------------------------------------------------------------- */

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

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	font-feature-settings: "ss01", "cv01", "cv02", "cv03", "cv04";
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

img, picture, video, svg { max-width: 100%; height: auto; display: block; }

p { text-wrap: pretty; }
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }

a { transition: color 0.2s var(--c9-ease); }

/* Selection */
::selection { background: var(--c9-accent); color: var(--c9-surface); }

/* Skip link */
.skip-link {
	position: absolute;
	top: -100px;
	left: 1rem;
	background: var(--c9-ink-2);
	color: var(--c9-surface);
	padding: 0.75rem 1.25rem;
	border-radius: var(--c9-r-sm);
	z-index: 999;
	transition: top 0.2s ease;
}
.skip-link:focus { top: 1rem; }

/* -----------------------------------------------------------------------------
   3. Scroll-reveal motion
   ----------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.c9-reveal {
		opacity: 0;
		transform: translateY(20px);
		transition: opacity 0.8s var(--c9-ease-out), transform 0.8s var(--c9-ease-out);
	}
	.c9-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
	.c9-reveal[data-delay="100"] { transition-delay: 100ms; }
	.c9-reveal[data-delay="200"] { transition-delay: 200ms; }
	.c9-reveal[data-delay="300"] { transition-delay: 300ms; }
	.c9-reveal[data-delay="400"] { transition-delay: 400ms; }
}

/* -----------------------------------------------------------------------------
   4. Layout primitives
   ----------------------------------------------------------------------------- */

/* Constrain post content within main */
.wp-block-post-content,
main {
	display: flex;
	flex-direction: column;
}

/* Sections: vertical rhythm */
.c9-section {
	padding-top: clamp(4rem, 8vw, 7rem);
	padding-bottom: clamp(4rem, 8vw, 7rem);
}
.c9-section--lg { padding-top: clamp(5rem, 10vw, 9rem); padding-bottom: clamp(5rem, 10vw, 9rem); }
.c9-section--sm { padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }

/* Inner container */
.c9-container {
	width: 100%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
}
.c9-container--wide { max-width: 1440px; }
.c9-container--narrow { max-width: 800px; }

/* Section heading group */
.c9-section-head {
	max-width: 740px;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.c9-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }

/* Eyebrow */
.c9-eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c9-accent);
	margin-bottom: 1rem;
}

/* Lead paragraph */
.c9-lead {
	font-size: clamp(1.0625rem, 1vw + 0.875rem, 1.25rem);
	line-height: 1.55;
	color: var(--c9-ink-muted);
	max-width: 60ch;
}

/* -----------------------------------------------------------------------------
   5. Header — magenta brand bar
   ----------------------------------------------------------------------------- */

.c9-header {
	position: sticky;
	top: 0;
	z-index: 100;
	padding: 0.875rem var(--c9-gutter);
	background: var(--c9-accent);
	color: var(--c9-surface);
	transition: background 0.3s var(--c9-ease), box-shadow 0.3s var(--c9-ease), padding 0.3s var(--c9-ease);
}
.c9-header.is-scrolled {
	background: var(--c9-accent-deep);
	box-shadow: 0 4px 16px rgba(31, 26, 23, 0.12);
	padding-top: 0.625rem;
	padding-bottom: 0.625rem;
}
.c9-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	max-width: 1440px;
	margin: 0 auto;
}
.c9-header__brand img,
.c9-header__brand svg {
	height: 44px;
	width: auto;
	display: block;
}
.c9-header__nav {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2vw, 2rem);
}
.c9-header__nav .wp-block-navigation { gap: clamp(1rem, 2vw, 2rem); }
.c9-header__nav .wp-block-navigation-item__content,
.c9-header .wp-block-navigation a,
.c9-header .wp-block-navigation-link__label {
	color: var(--c9-surface) !important;
	font-weight: 500;
	font-size: 0.9375rem;
	padding: 0.5rem 0;
	position: relative;
	overflow: hidden;
	text-decoration: none !important;
}
.c9-header__nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1.5px;
	background: var(--c9-surface);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.3s var(--c9-ease);
}
.c9-header__nav .wp-block-navigation-item__content:hover::after,
.c9-header__nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left;
}
.c9-header__cta .wp-block-button__link {
	background: var(--c9-surface) !important;
	color: var(--c9-accent) !important;
	padding: 0.625rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: 999px;
	border: 0;
}
.c9-header__cta .wp-block-button__link:hover {
	background: var(--c9-accent-soft) !important;
	color: var(--c9-accent-deep) !important;
}

/* The submenu indicator + mobile menu icon in nav */
.c9-header .wp-block-navigation__responsive-container-open svg,
.c9-header .wp-block-navigation__responsive-container-close svg,
.c9-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg {
	fill: var(--c9-surface);
}

/* Mobile nav: hide desktop nav, show mobile toggle (WP handles the overlay) */
@media (max-width: 900px) {
	.c9-header__nav .wp-block-navigation > ul:not(.wp-block-navigation__responsive-container-content > ul) {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
   6. Hero — home (editorial, full-bleed image)
   ----------------------------------------------------------------------------- */

.c9-hero-home {
	position: relative;
	min-height: clamp(560px, 78vh, 820px);
	/* overflow removed — moved to __bg so buttons aren't clipped */
	margin-top: calc(-1 * var(--c9-header-h));
	padding-top: var(--c9-header-h);
	display: flex;
	align-items: center;
	background: var(--c9-surface-2);
}
.c9-hero-home__bg {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;   /* clips Ken Burns scale here, not on outer */
	border-radius: 0;
}
.c9-hero-home__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Crop into the Cloud9 frontage instead of carrying the neighbouring shops. */
	object-position: center 32%;
	transform: scale(1.2);
	transform-origin: center 38%;
}
.c9-hero-home__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(251,250,247,0.96) 0%, rgba(251,250,247,0.86) 30%, rgba(251,250,247,0.45) 65%, rgba(251,250,247,0.1) 100%),
		linear-gradient(180deg, rgba(31,26,23,0) 60%, rgba(31,26,23,0.08) 100%);
}
.c9-hero-home__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(3rem, 8vw, 6rem) var(--c9-gutter);
}
.c9-hero-home__content {
	max-width: 640px;
}
.c9-hero-home__heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.75rem, 5.5vw + 0.5rem, 5.25rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 0.98;
	color: var(--c9-ink-2);
	margin: 0 0 1.25rem;
}
.c9-hero-home__heading .accent {
	color: var(--c9-accent);
	font-style: italic;
	font-weight: 500;
}
.c9-hero-home__sub {
	font-size: clamp(1.0625rem, 1vw + 0.875rem, 1.3125rem);
	line-height: 1.55;
	color: var(--c9-ink);
	margin: 0 0 2rem;
	max-width: 30ch;
}
.c9-hero-home__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.c9-hero-home__cta .wp-block-button__link {
	padding: 0.9375rem 2.25rem;
	font-size: 0.9375rem;
}
.c9-hero-home__cta .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--c9-ink-2);
	border: 1.5px solid var(--c9-ink-2);
}
.c9-hero-home__cta .is-style-outline .wp-block-button__link:hover {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}

/* -----------------------------------------------------------------------------
   7. Hero — editorial (interior pages)
   ----------------------------------------------------------------------------- */

.c9-hero-page {
	position: relative;
	margin-top: calc(-1 * var(--c9-header-h));
	padding-top: calc(var(--c9-header-h) + clamp(4rem, 8vw, 7rem));
	padding-bottom: clamp(4rem, 8vw, 7rem);
	background: var(--c9-surface-2);
	overflow: hidden;
}
.c9-hero-page--image {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-hero-page--image .c9-hero-page__bg {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.c9-hero-page--image .c9-hero-page__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.c9-hero-page--image .c9-hero-page__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(31,26,23,0.4) 0%, rgba(31,26,23,0.7) 100%);
}
.c9-hero-page__inner {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
}
.c9-hero-page__eyebrow {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--c9-accent);
	margin: 0 0 1.25rem;
}
.c9-hero-page--image .c9-hero-page__eyebrow {
	color: var(--c9-accent-soft);
}
.c9-hero-page__heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 5vw + 0.5rem, 4.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.02;
	margin: 0 0 1.5rem;
	max-width: 18ch;
	color: var(--c9-ink-2);
}
.c9-hero-page--image .c9-hero-page__heading {
	color: var(--c9-surface);
}
.c9-hero-page__lead {
	font-size: clamp(1.0625rem, 1vw + 0.875rem, 1.25rem);
	line-height: 1.55;
	max-width: 56ch;
	margin: 0;
	color: var(--c9-ink-muted);
}
.c9-hero-page--image .c9-hero-page__lead {
	color: rgba(251, 250, 247, 0.86);
}

/* -----------------------------------------------------------------------------
   8. Sections — alternating + standard
   ----------------------------------------------------------------------------- */

.c9-section--surface { background: var(--c9-surface); }
.c9-section--cream { background: var(--c9-surface-2); }
.c9-section--white { background: var(--c9-surface-3); }
.c9-section--ink {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-section--ink h1, .c9-section--ink h2, .c9-section--ink h3 { color: var(--c9-surface); }
.c9-section--ink .c9-eyebrow { color: var(--c9-accent-soft); }
.c9-section--ink .c9-lead { color: rgba(251,250,247,0.78); }

/* -----------------------------------------------------------------------------
   9. Cards (universal styles)
   ----------------------------------------------------------------------------- */

.c9-card {
	background: var(--c9-surface-3);
	border-radius: var(--c9-r-md);
	padding: var(--c9-sp-6);
	border: 1px solid var(--c9-border-soft);
	transition: transform 0.4s var(--c9-ease), box-shadow 0.4s var(--c9-ease);
	display: flex;
	flex-direction: column;
	gap: var(--c9-sp-3);
}
.c9-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--c9-shadow-3);
}
.c9-card__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--c9-r-sm);
	background: var(--c9-surface-2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c9-accent);
	margin-bottom: var(--c9-sp-2);
}
.c9-card__icon svg { width: 24px; height: 24px; }
.c9-card__title {
	font-size: 1.1875rem;
	font-weight: 600;
	color: var(--c9-ink-2);
	margin: 0;
	line-height: 1.3;
}
.c9-card__body {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--c9-ink-muted);
	margin: 0;
}
.c9-card__link {
	margin-top: auto;
	padding-top: var(--c9-sp-3);
	color: var(--c9-accent);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.c9-card__link::after {
	content: "→";
	transition: transform 0.2s var(--c9-ease);
}
.c9-card__link:hover::after { transform: translateX(3px); }

/* -----------------------------------------------------------------------------
   10. Grids
   ----------------------------------------------------------------------------- */

.c9-grid {
	display: grid;
	gap: clamp(1rem, 2vw, 1.5rem);
}
.c9-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.c9-grid--3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.c9-grid--4 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

@media (min-width: 800px) {
	.c9-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.c9-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* -----------------------------------------------------------------------------
   11. Buttons (additional variants)
   ----------------------------------------------------------------------------- */

.wp-block-button .wp-block-button__link {
	transition: background-color 0.2s var(--c9-ease), color 0.2s var(--c9-ease), transform 0.2s var(--c9-ease);
}
.wp-block-button .wp-block-button__link:hover {
	transform: translateY(-1px);
}
.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--c9-ink-2);
	border: 1.5px solid var(--c9-ink-2);
}
.is-style-outline .wp-block-button__link:hover {
	background: var(--c9-ink-2) !important;
	color: var(--c9-surface);
}
.is-style-accent .wp-block-button__link {
	background: var(--c9-accent) !important;
	color: var(--c9-surface);
}
.is-style-accent .wp-block-button__link:hover {
	background: var(--c9-accent-deep) !important;
}
.is-style-light .wp-block-button__link {
	background: var(--c9-surface-3) !important;
	color: var(--c9-ink-2);
}

/* -----------------------------------------------------------------------------
   12. Property cards (PropertyHive)
   ----------------------------------------------------------------------------- */

.c9-property-card {
	background: var(--c9-surface-3);
	border-radius: var(--c9-r-md);
	overflow: hidden;
	border: 1px solid var(--c9-border-soft);
	transition: transform 0.4s var(--c9-ease), box-shadow 0.4s var(--c9-ease);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.c9-property-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--c9-shadow-3);
}
.c9-property-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--c9-surface-2);
	position: relative;
}
.c9-property-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--c9-ease);
}
.c9-property-card:hover .c9-property-card__media img {
	transform: scale(1.04);
}
.c9-property-card__status {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background: var(--c9-surface-3);
	color: var(--c9-ink-2);
	padding: 0.375rem 0.75rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.c9-property-card__body {
	padding: var(--c9-sp-5);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	flex: 1;
}
.c9-property-card__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--c9-ink-2);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0;
}
.c9-property-card__location {
	font-size: 0.875rem;
	color: var(--c9-ink-muted);
	margin: 0;
	letter-spacing: 0.02em;
}
.c9-property-card__price {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--c9-accent);
	letter-spacing: -0.01em;
	line-height: 1;
	margin: 0.25rem 0 0;
}
.c9-property-card__address {
	font-size: 0.9375rem;
	color: var(--c9-ink);
	margin: 0;
	line-height: 1.4;
}
.c9-property-card__meta {
	display: flex;
	gap: 1.25rem;
	padding-top: var(--c9-sp-3);
	margin-top: auto;
	border-top: 1px solid var(--c9-border-soft);
	color: var(--c9-ink-muted);
	font-size: 0.875rem;
}
.c9-property-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.c9-property-card__meta-item svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--c9-accent);
}

/* -----------------------------------------------------------------------------
   12b. Landlords page — service routes and specialist guidance
   ----------------------------------------------------------------------------- */

.c9-landlord-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.75fr);
	gap: clamp(2.5rem, 7vw, 7rem);
	align-items: center;
}
.c9-landlord-intro__content h2,
.c9-landlord-guidance h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 1.5rem;
	color: var(--c9-ink-2);
}
.c9-landlord-intro__content > p:not(.c9-eyebrow) {
	max-width: 60ch;
	margin: 0 0 1rem;
	color: var(--c9-ink-muted);
	font-size: 1rem;
	line-height: 1.65;
}
.c9-landlord-intro__content > .wp-block-button__link { margin-top: 1rem; }
.c9-landlord-intro__media {
	margin: 0;
	aspect-ratio: 4 / 5;
	border-radius: var(--c9-r-lg);
	overflow: hidden;
	box-shadow: var(--c9-shadow-3);
}
.c9-landlord-intro__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.c9-landlord-services {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 3vw, 2rem);
	max-width: 1080px;
	margin: 0 auto;
}
.c9-landlord-service {
	display: flex;
	flex-direction: column;
	padding: clamp(1.75rem, 4vw, 3rem);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-lg);
	background: var(--c9-surface-3);
	box-shadow: 0 1px 0 rgba(31, 26, 23, 0.04);
}
.c9-landlord-service--featured {
	background: var(--c9-ink-2);
	border-color: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-landlord-service__icon,
.c9-landlord-guidance__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	margin-bottom: 1.5rem;
	background: var(--c9-surface-2);
	color: var(--c9-accent);
}
.c9-landlord-service--featured .c9-landlord-service__icon {
	background: rgba(251, 250, 247, 0.10);
	color: var(--c9-accent-soft);
}
.c9-landlord-service__label {
	margin: 0 0 0.5rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
}
.c9-landlord-service--featured .c9-landlord-service__label { color: var(--c9-accent-soft); }
.c9-landlord-service h3,
.c9-landlord-guidance__card h3 {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.75rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c9-ink-2);
}
.c9-landlord-service--featured h3 { color: var(--c9-surface); }
.c9-landlord-service > p:not(.c9-landlord-service__label) {
	margin: 0;
	color: var(--c9-ink-muted);
	line-height: 1.6;
}
.c9-landlord-service--featured > p:not(.c9-landlord-service__label) { color: rgba(251, 250, 247, 0.78); }
.c9-landlord-service__list {
	display: grid;
	gap: 0.75rem;
	padding: 1.75rem 0;
	margin: 1.75rem 0 auto;
	border-top: 1px solid var(--c9-border-soft);
	border-bottom: 1px solid var(--c9-border-soft);
	list-style: none;
}
.c9-landlord-service__list li {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--c9-ink);
}
.c9-landlord-service__list svg { flex: 0 0 auto; color: var(--c9-accent); margin-top: 0.1rem; }
.c9-landlord-service--featured .c9-landlord-service__list { border-color: rgba(251, 250, 247, 0.16); }
.c9-landlord-service--featured .c9-landlord-service__list li { color: rgba(251, 250, 247, 0.88); }
.c9-landlord-service--featured .c9-landlord-service__list svg { color: var(--c9-accent-soft); }
.c9-landlord-service__cta {
	align-self: flex-start;
	margin-top: 1.75rem;
	border-radius: 999px;
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-landlord-service--featured .c9-landlord-service__cta {
	background: var(--c9-surface);
	color: var(--c9-ink-2);
}

/* -----------------------------------------------------------------------------
   12c. Switching letting agents
   ----------------------------------------------------------------------------- */

.c9-switching-agents__panel {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(230px, 0.55fr);
	gap: clamp(2rem, 6vw, 6rem);
	align-items: center;
	padding: clamp(2rem, 5vw, 4.5rem);
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-xl);
	box-shadow: var(--c9-shadow-2);
}
.c9-switching-agents__content h2 {
	max-width: 17ch;
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.08;
	color: var(--c9-ink-2);
}
.c9-switching-agents__lead,
.c9-switching-agents__message {
	max-width: 60ch;
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--c9-ink-muted);
}
.c9-switching-agents__message { margin-top: 0.75rem; }
.c9-switching-agents__message strong { color: var(--c9-ink-2); }
.c9-switching-agents__cta {
	display: inline-flex;
	margin-top: 2rem;
	border-radius: 999px;
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-switching-agents__proof {
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--c9-r-lg);
	background: var(--c9-accent);
	color: var(--c9-surface);
}
.c9-switching-agents__number {
	display: block;
	margin-bottom: 0.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 7vw, 6.5rem);
	font-weight: 700;
	letter-spacing: -0.07em;
	line-height: 0.9;
}
.c9-switching-agents__proof p {
	margin: 1.25rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: rgba(251, 250, 247, 0.88);
}

.c9-landlord-guidance { background: var(--c9-surface-2); }
.c9-landlord-guidance__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}
.c9-landlord-guidance__card {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-md);
	background: var(--c9-surface-3);
}
.c9-landlord-guidance__card p {
	margin: 0;
	color: var(--c9-ink-muted);
	line-height: 1.6;
}
.c9-landlord-guidance__card ul {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding-left: 1.15rem;
	color: var(--c9-ink-muted);
	line-height: 1.45;
}
.c9-landlord-guidance__card li::marker { color: var(--c9-accent); }

.c9-landlord-stats {
	background: var(--c9-accent);
	color: var(--c9-surface);
}
.c9-landlord-stats .c9-eyebrow { color: var(--c9-accent-soft); }
.c9-landlord-stats .c9-section-head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.c9-landlord-stats h2 { color: var(--c9-surface); }
.c9-landlord-stats__number {
	margin-bottom: 0.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--c9-surface);
}
.c9-landlord-stats__label {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.4;
	color: rgba(251, 250, 247, 0.82);
}
@media (max-width: 780px) {
	.c9-landlord-intro,
	.c9-landlord-services,
	.c9-landlord-guidance__grid,
	.c9-switching-agents__panel { grid-template-columns: 1fr; }
	.c9-switching-agents__proof { max-width: 420px; }
	.c9-landlord-intro__media { max-width: 520px; width: 100%; }
}

/* -----------------------------------------------------------------------------
   13. Testimonial cards
   ----------------------------------------------------------------------------- */

.c9-testimonial {
	background: var(--c9-surface-3);
	border-radius: var(--c9-r-md);
	padding: var(--c9-sp-6);
	border: 1px solid var(--c9-border-soft);
	display: flex;
	flex-direction: column;
	gap: var(--c9-sp-4);
	position: relative;
	overflow: hidden;
}
.c9-testimonial::before {
	content: "“";
	position: absolute;
	top: 0.5rem;
	right: 1.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 6rem;
	line-height: 1;
	color: var(--c9-accent-soft);
	opacity: 0.6;
	font-weight: 700;
}
.c9-testimonial__quote {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--c9-ink);
	margin: 0;
	position: relative;
	z-index: 1;
}
.c9-testimonial__attrib {
	padding-top: var(--c9-sp-3);
	border-top: 1px solid var(--c9-border-soft);
	margin-top: auto;
}
.c9-testimonial__name {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--c9-ink-2);
	margin: 0;
}
.c9-testimonial__role {
	font-size: 0.8125rem;
	color: var(--c9-ink-muted);
	margin: 0.125rem 0 0;
}

/* -----------------------------------------------------------------------------
   14. CTA banner
   ----------------------------------------------------------------------------- */

.c9-cta {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
	border-radius: var(--c9-r-xl) var(--c9-r-xl) 0 0;
	padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
	position: relative;
	overflow: hidden;
	/* Button shadows remain visible; only the gradient is clipped below. */
	isolation: isolate;
}

/* The accreditation section is the foreground layer: it masks the CTA's square
   base so the panel appears to emerge from behind it. The footer is a sibling
   of main (not of the CTA), hence the :has() relationship below. */
.c9-section.c9-cta-section {
	position: relative;
	z-index: 1;
	padding-bottom: 0 !important;
	/* Leave a little more visible breathing room below the buttons before the
	   foreground accreditation layer begins. */
	margin-bottom: calc(-1 * clamp(1.75rem, 4vw, 2.75rem));
}
main:has(.c9-cta-section) + footer {
	position: relative;
	z-index: 2;
}
main:has(.c9-cta-section) + footer .c9-trust {
	padding-top: clamp(1.5rem, 3vw, 2rem);
	background: var(--c9-surface-2);
}

/* The gradient follows the CTA's rounded top corners without leaking outside it. */
.c9-cta__decoration {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}
.c9-cta__gradient {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 100% 0%, rgba(130, 23, 75, 0.35) 0%, transparent 60%);
}

/* Cloud9 "9" mark — sits against the left edge but is clipped by the panel,
 * preserving the CTA's rounded silhouette.
 *
 * The SVG viewBox is 0 0 1920 1080; the "9" character itself lives from
 * x=704 to x=1100 (≈ 21% of SVG width) and y=105 to y=1078 (≈ 90% of SVG height).
 * The SVG has ~10% padding at the top above the character. To eliminate visible
 * top/bottom gaps in the CTA, we oversize the SVG slightly and position it
 * inside the panel's clipping edge.
 */
.c9-cta__mark {
	position: absolute;
	top: -14%;
	left: 0;
	height: 128%;
	width: auto;
	opacity: 0.7;
	/* The drawn numeral sits inside the SVG's wide viewBox. This offset brings
	   the numeral itself flush to the panel's left clipping edge. */
	transform: translateX(-36.5%);
	pointer-events: none;
	mix-blend-mode: screen;
	transition: opacity 1.2s var(--c9-ease-out), transform 1.4s var(--c9-ease-out);
}
@media (max-width: 760px) {
	.c9-cta__mark {
		height: 138%;
		top: -18%;
	}
	.c9-cta__mark { opacity: 0.55; }
}
.c9-trust__trusted-agent { display:inline-flex; align-items:center; gap:10px; min-width:210px; padding:10px 16px; border:1px solid var(--c9-line); border-radius:10px; background:#fff; color:var(--c9-ink-2); text-decoration:none; }
.c9-trust__trusted-agent span { display:flex; flex-direction:column; line-height:1.15; }
.c9-trust__trusted-agent small { font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--c9-ink-muted); }
.c9-trust__trusted-agent strong { font-size:13px; }
.c9-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.c9-cta__heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.875rem, 3vw + 1rem, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: var(--c9-surface);
	margin: 0 0 1rem;
}
.c9-cta__sub {
	font-size: 1.0625rem;
	color: rgba(251, 250, 247, 0.78);
	margin: 0 0 2rem;
	line-height: 1.55;
}
.c9-cta__buttons .wp-block-button__link {
	background: var(--c9-surface);
	color: var(--c9-ink-2);
}
.c9-cta__buttons .wp-block-button__link:hover {
	background: var(--c9-accent-soft);
}

/* -----------------------------------------------------------------------------
   15. Trust badges (single row, modest)
   ----------------------------------------------------------------------------- */

.c9-trust {
	padding: clamp(2rem, 4vw, 3rem) var(--c9-gutter);
	background: var(--c9-surface-3);
	border-top: 1px solid var(--c9-border-soft);
	border-bottom: 1px solid var(--c9-border-soft);
}
.c9-trust__inner {
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}
.c9-trust__label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
	margin: 0;
}
.c9-trust__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(1.5rem, 4vw, 3rem);
	width: 100%;
}
.c9-trust__track > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 8px 12px;
	border: 1px solid var(--c9-border-soft);
	border-radius: 10px;
	background: #fff;
}
.c9-trust__logos img {
	height: 40px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
	opacity: 1;
	filter: none;
	transition: transform 0.3s var(--c9-ease);
}
.c9-trust__logos a:hover img {
	transform: scale(1.03);
}

/* -----------------------------------------------------------------------------
   16. FAQ accordion (native <details>)
   ----------------------------------------------------------------------------- */

.c9-faq { max-width: 760px; margin: 0 auto; }
.c9-faq details {
	border-bottom: 1px solid var(--c9-border);
	padding: var(--c9-sp-5) 0;
}
.c9-faq details:first-of-type { border-top: 1px solid var(--c9-border); }
.c9-faq summary {
	list-style: none;
	cursor: pointer;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--c9-ink-2);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-right: 1rem;
}
.c9-faq summary::-webkit-details-marker { display: none; }
.c9-faq summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--c9-accent);
	transition: transform 0.3s var(--c9-ease);
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.c9-faq details[open] summary::after {
	transform: rotate(45deg);
}
.c9-faq details p {
	margin: var(--c9-sp-4) 0 0;
	color: var(--c9-ink-muted);
	line-height: 1.65;
}

/* -----------------------------------------------------------------------------
   17. Footer
   ----------------------------------------------------------------------------- */

.c9-footer {
	background: var(--c9-ink-2);
	color: rgba(251, 250, 247, 0.78);
	padding-top: clamp(4rem, 7vw, 6rem);
	padding-bottom: clamp(2rem, 3vw, 3rem);
}
.c9-footer__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 var(--c9-gutter);
}
.c9-footer__top {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	margin-bottom: clamp(3rem, 5vw, 4rem);
}
@media (max-width: 900px) {
	.c9-footer__top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
	.c9-footer__top { grid-template-columns: 1fr; gap: 2.5rem; }
}
.c9-footer__brand img,
.c9-footer__brand svg { height: 48px; width: auto; margin-bottom: 1rem; }
.c9-footer__tag {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	color: var(--c9-accent-soft);
	font-size: 1rem;
	margin: 0 0 1rem;
}
.c9-footer__addr {
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(251, 250, 247, 0.62);
	margin: 0;
}
.c9-footer__col-title {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c9-accent-soft);
	margin: 0 0 1.25rem;
}
.c9-footer p,
.c9-footer .wp-block-paragraph {
	font-size: 0.9375rem;
	line-height: 1.6;
	margin: 0 0 0.5rem;
	color: rgba(251, 250, 247, 0.78);
}
.c9-footer a {
	color: rgba(251, 250, 247, 0.78);
	text-decoration: none;
}
.c9-footer a:hover { color: var(--c9-surface); }
.c9-footer .wp-block-navigation {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-size: 0.9375rem;
}
.c9-footer__bottom {
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: 1px solid rgba(251, 250, 247, 0.1);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	justify-content: space-between;
	align-items: center;
}
.c9-footer__bottom p,
.c9-footer__bottom a {
	font-size: 0.8125rem;
	color: rgba(251, 250, 247, 0.55);
	margin: 0;
}
.c9-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

/* -----------------------------------------------------------------------------
   18. Property archive / search
   ----------------------------------------------------------------------------- */

.c9-property-archive {
	padding: clamp(3rem, 6vw, 5rem) 0;
}
.c9-property-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: clamp(1rem, 2vw, 1.75rem);
}
.c9-property-search {
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-md);
	padding: var(--c9-sp-5);
	margin-bottom: var(--c9-sp-7);
}
.c9-property-search form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1rem;
	align-items: end;
}
.c9-property-search label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
	margin-bottom: 0.5rem;
}
.c9-property-search select,
.c9-property-search input {
	width: 100%;
	border: 1px solid var(--c9-border);
	border-radius: var(--c9-r-sm);
	padding: 0.625rem 0.875rem;
	background: var(--c9-surface);
	font-size: 0.9375rem;
	color: var(--c9-ink-2);
	font-family: inherit;
}
.c9-property-search button {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
	border: 0;
	border-radius: 999px;
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 0.875rem;
	cursor: pointer;
	transition: background 0.2s var(--c9-ease);
}
.c9-property-search button:hover { background: var(--c9-accent); }

/* -----------------------------------------------------------------------------
   19. Single property page
   ----------------------------------------------------------------------------- */

.c9-prop {
	padding-top: clamp(1rem, 2vw, 1.5rem);
}

/* Gallery — main image + scrolling thumbnail strip below */
.c9-gallery {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* Main image area
 * IMPORTANT: no overflow:hidden here — nav buttons would get their shadow clipped.
 * Each slide clips its own image instead.
 */
.c9-gallery__main {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--c9-surface-2);
	border-radius: var(--c9-r-lg);
}
.c9-gallery__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.5s var(--c9-ease-out);
	pointer-events: none;
	display: block;
	border-radius: var(--c9-r-lg);
	overflow: hidden;
}
.c9-gallery__slide.is-active {
	opacity: 1;
	pointer-events: auto;
}
.c9-gallery__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Prev / next nav buttons */
.c9-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border-radius: 999px;
	border: 0;
	background: rgba(31, 26, 23, 0.78);
	color: var(--c9-surface);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
	transition: background 0.2s var(--c9-ease-out), transform 0.2s var(--c9-ease-out);
	backdrop-filter: blur(8px);
}
.c9-gallery__nav:hover {
	background: var(--c9-accent);
}
.c9-gallery__nav:active {
	transform: translateY(-50%) scale(0.94);
}
.c9-gallery__nav--prev { left: 1.25rem; }
.c9-gallery__nav--prev svg { transform: scaleX(-1); }
.c9-gallery__nav--next { right: 1.25rem; }

/* Photo count overlay */
.c9-gallery__count {
	position: absolute;
	bottom: 1.25rem;
	right: 1.25rem;
	background: rgba(31, 26, 23, 0.8);
	color: var(--c9-surface);
	padding: 0.5rem 0.875rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	z-index: 3;
	backdrop-filter: blur(8px);
}

/* Thumbnail strip */
.c9-gallery__thumbs {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding: 0.25rem 0;
}
.c9-gallery__thumbs::-webkit-scrollbar { display: none; }
.c9-gallery__thumb {
	flex: 0 0 auto;
	width: 110px;
	height: 80px;
	border: 0;
	padding: 0;
	border-radius: var(--c9-r-sm);
	overflow: hidden;
	background: var(--c9-surface-2);
	cursor: pointer;
	position: relative;
	transition: opacity 0.2s var(--c9-ease-out), outline 0.2s var(--c9-ease-out), transform 0.2s var(--c9-ease-out);
	opacity: 0.55;
	outline: 0 solid transparent;
}
.c9-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.c9-gallery__thumb:hover {
	opacity: 0.85;
}
.c9-gallery__thumb.is-active {
	opacity: 1;
	outline: 2px solid var(--c9-accent);
	outline-offset: 2px;
}

@media (max-width: 700px) {
	.c9-gallery__main { aspect-ratio: 4 / 3; }
	.c9-gallery__nav { width: 42px; height: 42px; }
	.c9-gallery__nav--prev { left: 0.5rem; }
	.c9-gallery__nav--next { right: 0.5rem; }
	.c9-gallery__thumb { width: 80px; height: 60px; }
}

/* Main two-column layout — content + sticky sidebar */
.c9-prop-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}
@media (max-width: 1000px) {
	.c9-prop-layout { grid-template-columns: 1fr; }
}

.c9-prop-main { min-width: 0; }
.c9-prop-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: var(--c9-ink-2);
	margin: 0 0 0.75rem;
}
.c9-prop-address {
	font-size: 1.0625rem;
	color: var(--c9-ink-muted);
	margin: 0 0 2rem;
}
.c9-prop-facts {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 3vw, 2.5rem);
	padding: 1.25rem 0;
	border-top: 1px solid var(--c9-border-soft);
	border-bottom: 1px solid var(--c9-border-soft);
	margin-bottom: 2.5rem;
}
.c9-prop-facts__item {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	color: var(--c9-ink-2);
}
.c9-prop-facts__item svg { color: var(--c9-accent); flex-shrink: 0; }
.c9-prop-facts__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}
.c9-prop-facts__lbl {
	font-size: 0.9375rem;
	color: var(--c9-ink-muted);
}

.c9-prop-section-heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--c9-ink-2);
	margin: 0 0 1.25rem;
}
.c9-prop-description {
	margin-bottom: 3rem;
}
.c9-prop-description__body,
.c9-prop-description__body p {
	font-size: 1rem;
	line-height: 1.75;
	color: var(--c9-ink);
}
.c9-prop-description__body p { margin: 0 0 1rem; }

.c9-prop-details { margin-bottom: 3rem; }
.c9-prop-details__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
	margin: 0;
}
.c9-prop-details__row {
	padding: 0.875rem 1rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-sm);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.c9-prop-details__row dt {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
	margin: 0;
}
.c9-prop-details__row dd {
	font-size: 1rem;
	font-weight: 600;
	color: var(--c9-ink-2);
	margin: 0;
}

/* Features list */
.c9-prop-features { margin-bottom: 3rem; }
.c9-prop-features__list {
	list-style: none !important;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0.75rem 1.5rem;
}
.c9-prop-features__list li::marker { content: ""; display: none; }
.c9-prop-features__list li { list-style: none !important; }
.c9-prop-features__item {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--c9-ink);
}
.c9-prop-features__bullet {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: var(--c9-accent-soft);
	color: var(--c9-accent-deep);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
}

/* Rooms list */
.c9-prop-rooms { margin-bottom: 3rem; }
.c9-prop-rooms__list {
	list-style: none !important;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
}
.c9-prop-rooms__list li::marker { content: ""; display: none; }
.c9-prop-rooms__list li { list-style: none !important; }
.c9-prop-rooms__item {
	display: flex;
	gap: 0.875rem;
	padding: 1rem 1.125rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-sm);
}
.c9-prop-rooms__item > svg {
	color: var(--c9-accent);
	flex-shrink: 0;
	margin-top: 2px;
}
.c9-prop-rooms__name {
	display: block;
	font-weight: 600;
	color: var(--c9-ink-2);
	font-size: 0.9375rem;
}
.c9-prop-rooms__dims {
	display: block;
	font-size: 0.8125rem;
	color: var(--c9-ink-muted);
	margin-top: 2px;
}
.c9-prop-rooms__desc {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	color: var(--c9-ink-muted);
	line-height: 1.5;
}

/* Documents — download links list (EPC, brochure, floorplan) */
.c9-prop-docs { margin-bottom: 3rem; }
.c9-prop-docs__list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.c9-prop-docs__item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-sm);
	text-decoration: none;
	color: var(--c9-ink-2);
	transition: border-color 0.2s var(--c9-ease-out), transform 0.2s var(--c9-ease-out), box-shadow 0.2s var(--c9-ease-out);
}
.c9-prop-docs__item:hover {
	border-color: var(--c9-accent);
	transform: translateX(2px);
	box-shadow: var(--c9-shadow-2);
}
.c9-prop-docs__icon {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: var(--c9-surface-2);
	color: var(--c9-accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.c9-prop-docs__label {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.c9-prop-docs__title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--c9-ink-2);
}
.c9-prop-docs__meta {
	font-size: 0.8125rem;
	color: var(--c9-ink-muted);
}
.c9-prop-docs__arrow {
	color: var(--c9-ink-muted);
	transition: transform 0.2s var(--c9-ease-out), color 0.2s var(--c9-ease-out);
}
.c9-prop-docs__item:hover .c9-prop-docs__arrow {
	color: var(--c9-accent);
	transform: translateX(3px);
}

/* Compliance footnote */
.c9-prop-compliance {
	margin: 2rem 0;
	padding: 1.25rem 1.5rem;
	background: var(--c9-surface-2);
	border-radius: var(--c9-r-sm);
	font-size: 0.8125rem;
	color: var(--c9-ink-muted);
	line-height: 1.55;
}
.c9-prop-compliance p { margin: 0; }

/* Sidebar — available-from highlight */
.c9-prop-sidebar__highlight {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	background: var(--c9-surface-2);
	border-radius: var(--c9-r-sm);
	font-size: 0.875rem;
	color: var(--c9-ink);
	margin-bottom: 2rem;
}
.c9-prop-sidebar__highlight svg {
	color: var(--c9-accent);
	flex-shrink: 0;
}
.c9-prop-sidebar__highlight strong {
	font-weight: 600;
	color: var(--c9-ink-2);
}

.c9-prop-floorplan { margin-bottom: 3rem; }
.c9-prop-floorplan__link {
	display: block;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-md);
	overflow: hidden;
	transition: box-shadow 0.3s var(--c9-ease);
}
.c9-prop-floorplan__link:hover {
	box-shadow: var(--c9-shadow-3);
}
.c9-prop-floorplan__link img {
	width: 100%;
	height: auto;
	display: block;
}

/* Sidebar — sticky enquiry / contact */
.c9-prop-sidebar {
	position: sticky;
	top: calc(var(--c9-header-h) + 1.25rem);
}
.c9-prop-sidebar__inner {
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-lg);
	padding: var(--c9-sp-6);
	box-shadow: var(--c9-shadow-2);
}
.c9-prop-sidebar__status {
	display: inline-block;
	background: var(--c9-accent-soft);
	color: var(--c9-accent-deep);
	padding: 0.375rem 0.875rem;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 1.25rem;
}
.c9-prop-sidebar__price {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.25rem;
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--c9-ink-2);
	margin: 0;
	line-height: 1;
}
.c9-prop-sidebar__freq {
	font-size: 0.875rem;
	color: var(--c9-ink-muted);
	margin: 0.375rem 0 1.75rem;
}
.c9-prop-sidebar__cta {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-bottom: 2rem;
}
.c9-prop-sidebar__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 1.5rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.9375rem;
	text-align: center;
	border: 1.5px solid transparent;
}
.c9-prop-sidebar__btn--primary {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-prop-sidebar__btn--primary:hover {
	background: var(--c9-accent);
	color: var(--c9-surface);
}
.c9-prop-sidebar__btn--outline {
	background: transparent;
	color: var(--c9-ink-2);
	border-color: var(--c9-ink-2);
}
.c9-prop-sidebar__btn--outline:hover {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-prop-sidebar__agent {
	padding-top: 1.5rem;
	border-top: 1px solid var(--c9-border-soft);
	font-size: 0.875rem;
	color: var(--c9-ink-muted);
	line-height: 1.55;
}
.c9-prop-sidebar__agent-name {
	font-weight: 600;
	color: var(--c9-ink-2);
	margin: 0 0 0.5rem;
}
.c9-prop-sidebar__agent-meta {
	margin: 0 0 0.5rem;
}
.c9-prop-sidebar__agent-meta a {
	color: var(--c9-accent);
}

/* -----------------------------------------------------------------------------
   20. Form (Gravity Forms basic restyle)
   ----------------------------------------------------------------------------- */

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
	width: 100%;
	padding: 0.875rem 1rem;
	border: 1px solid var(--c9-border);
	border-radius: var(--c9-r-sm);
	background: var(--c9-surface-3);
	color: var(--c9-ink-2);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color 0.2s var(--c9-ease), box-shadow 0.2s var(--c9-ease);
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	outline: none;
	border-color: var(--c9-accent);
	box-shadow: 0 0 0 3px rgba(130, 23, 75, 0.12);
}
.gform_wrapper label.gfield_label {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
	margin-bottom: 0.5rem;
	display: block;
}
.gform_wrapper .gform_button {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
	border: 0;
	padding: 0.875rem 2.25rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.9375rem;
	cursor: pointer;
	transition: background 0.2s var(--c9-ease), transform 0.2s var(--c9-ease);
}
.gform_wrapper .gform_button:hover {
	background: var(--c9-accent);
	transform: translateY(-1px);
}

/* -----------------------------------------------------------------------------
   21. Utility
   ----------------------------------------------------------------------------- */

.c9-img-fit { object-fit: cover; width: 100%; height: 100%; }
.c9-divider { border: 0; border-top: 1px solid var(--c9-border); margin: var(--c9-sp-7) 0; }
.c9-text-balance { text-wrap: balance; }
.c9-text-pretty { text-wrap: pretty; }

/* -----------------------------------------------------------------------------
   20b. Contact page — form + map two-column layout
   ----------------------------------------------------------------------------- */

.c9-contact-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 900px) {
	.c9-contact-grid { grid-template-columns: 1fr; }
}

.c9-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1rem;
}
.c9-contact-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 540px) {
	.c9-contact-form__row { grid-template-columns: 1fr; }
}
.c9-contact-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.c9-contact-form__field > span {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
}
.c9-contact-form__field input,
.c9-contact-form__field select,
.c9-contact-form__field textarea {
	width: 100%;
	padding: 0.875rem 1rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border);
	border-radius: var(--c9-r-sm);
	font: inherit;
	color: var(--c9-ink-2);
	transition: border-color 0.2s var(--c9-ease-out), box-shadow 0.2s var(--c9-ease-out);
}
.c9-contact-form__field input:focus,
.c9-contact-form__field select:focus,
.c9-contact-form__field textarea:focus {
	outline: none;
	border-color: var(--c9-accent);
	box-shadow: 0 0 0 3px rgba(130, 23, 75, 0.12);
}
.c9-contact-form__field textarea { resize: vertical; min-height: 120px; }
.c9-contact-form__submit {
	margin-top: 0.5rem;
	align-self: flex-start;
}
.c9-contact-form__note {
	font-size: 0.8125rem;
	color: var(--c9-ink-muted);
	margin: 0.25rem 0 0;
	line-height: 1.5;
}
.c9-contact-form__note a {
	color: var(--c9-accent);
	text-decoration: underline;
}

/* Contact Form 7 */
.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.wpcf7 .c9-contact-form__row,
.wpcf7 .c9-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}
.wpcf7 .c9-form-field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
}
.wpcf7 input:not([type="submit"]),
.wpcf7 textarea,
.wpcf7 select {
	box-sizing: border-box;
	width: 100%;
	padding: 0.875rem 1rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border);
	border-radius: var(--c9-r-sm);
	font: inherit;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--c9-ink-2);
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	outline: none;
	border-color: var(--c9-accent);
	box-shadow: 0 0 0 3px rgba(130, 23, 75, 0.12);
}
.wpcf7 textarea { min-height: 9rem; resize: vertical; }
.wpcf7 input[type="submit"] {
	align-self: flex-start;
	appearance: none;
	border: 0;
	border-radius: 999px;
	padding: 0.875rem 2.25rem;
	background: var(--c9-ink-2);
	color: var(--c9-surface);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--c9-accent); }
.wpcf7 .wpcf7-not-valid-tip { color: #a52323; font-size: 0.8125rem; font-weight: 500; letter-spacing: normal; text-transform: none; }
.wpcf7 .wpcf7-response-output { margin: 0; padding: 0.75rem 1rem; border-radius: var(--c9-r-sm); font-size: 0.9rem; }
@media (max-width: 540px) {
	.wpcf7 .c9-contact-form__row,
	.wpcf7 .c9-form-grid { grid-template-columns: 1fr; }
}

/* Map + info aside */
.c9-contact-grid__aside {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.c9-contact-map {
	aspect-ratio: 4 / 3;
	background: var(--c9-surface-2);
	border-radius: var(--c9-r-md);
	overflow: hidden;
	border: 1px solid var(--c9-border-soft);
}

.c9-contact-info {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.c9-contact-info__item {
	display: flex;
	gap: 1rem;
	padding: 1.25rem;
	background: var(--c9-surface-3);
	border: 1px solid var(--c9-border-soft);
	border-radius: var(--c9-r-sm);
}
.c9-contact-info__item > svg {
	color: var(--c9-accent);
	flex-shrink: 0;
	margin-top: 2px;
}
.c9-contact-info__label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c9-ink-muted);
	margin: 0 0 0.25rem;
}
.c9-contact-info__value {
	font-size: 0.9375rem;
	color: var(--c9-ink-2);
	font-weight: 500;
	margin: 0;
	line-height: 1.45;
}

/* -----------------------------------------------------------------------------
   21a. Process steps — four-card horizontal journey
   ----------------------------------------------------------------------------- */

.c9-process {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: clamp(1.5rem, 3vw, 2rem);
	margin-top: clamp(2rem, 4vw, 3rem);
}
.c9-process__step {
	position: relative;
	padding: clamp(1.5rem, 2.5vw, 2rem);
	background: var(--c9-surface-3);
	border-radius: var(--c9-r-md);
	border: 1px solid var(--c9-border-soft);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	transition: transform 0.4s var(--c9-ease-out), box-shadow 0.4s var(--c9-ease-out);
}
.c9-process__step:hover {
	transform: translateY(-3px);
	box-shadow: var(--c9-shadow-3);
}
/* Connector line between steps on wide screens */
@media (min-width: 900px) {
	.c9-process__step:not(:last-child)::after {
		content: "";
		position: absolute;
		top: calc(1.5rem + 24px); /* roughly icon centre */
		left: 100%;
		width: clamp(1.5rem, 3vw, 2rem);
		height: 1.5px;
		background: linear-gradient(90deg, var(--c9-accent-soft), transparent);
	}
}
.c9-process__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--c9-r-sm);
	background: var(--c9-accent-soft);
	color: var(--c9-accent-deep);
	display: flex;
	align-items: center;
	justify-content: center;
}
.c9-process__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--c9-accent);
	margin: 0;
	text-transform: uppercase;
}
.c9-process__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--c9-ink-2);
	margin: 0;
}
.c9-process__body {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--c9-ink-muted);
	margin: 0;
}

/* -----------------------------------------------------------------------------
   21b. Area cards — proper card layout with fallback tint
   ----------------------------------------------------------------------------- */

.c9-area-card {
	background: var(--c9-surface-3);
	border-radius: var(--c9-r-md);
	overflow: hidden;
	border: 1px solid var(--c9-border-soft);
	display: flex;
	flex-direction: column;
	transition: transform 0.4s var(--c9-ease-out), box-shadow 0.4s var(--c9-ease-out);
}
.c9-area-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--c9-shadow-3);
}
.c9-area-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	position: relative;
}
.c9-area-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.8s var(--c9-ease-out);
}
.c9-area-card:hover .c9-area-card__media img {
	transform: scale(1.04);
}
.c9-area-card__body {
	padding: var(--c9-sp-5);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.c9-area-card__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--c9-ink-2);
	margin: 0;
	letter-spacing: -0.015em;
}
.c9-area-card__desc {
	font-size: 0.9375rem;
	color: var(--c9-ink-muted);
	line-height: 1.5;
	margin: 0;
}

/* -----------------------------------------------------------------------------
   21c. Magenta header — dropdown submenu styling
   ----------------------------------------------------------------------------- */

.c9-header .wp-block-navigation__submenu-container {
	background: var(--c9-surface-3) !important;
	border: 1px solid var(--c9-border-soft) !important;
	border-radius: var(--c9-r-sm) !important;
	box-shadow: var(--c9-shadow-3) !important;
	padding: 0.5rem 0 !important;
	color: var(--c9-ink-2) !important;
	min-width: 220px;
}
.c9-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--c9-ink-2) !important;
	padding: 0.625rem 1rem !important;
	font-size: 0.9375rem;
	font-weight: 500;
}
.c9-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
	display: none;
}
.c9-header .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.c9-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--c9-surface-2) !important;
	color: var(--c9-accent) !important;
}
.c9-header .wp-block-navigation__submenu-icon svg {
	fill: var(--c9-surface) !important;
}
.c9-header .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg {
	fill: var(--c9-ink-2) !important;
}

/* -----------------------------------------------------------------------------
   21d. Page-content inline groups — unify width with patterns
   These are the alignwide-with-background groups inside post content
   (Landlords/Tenants intro sections). Make them full-bleed visually and
   constrain inner content to match section patterns.
   ----------------------------------------------------------------------------- */

.wp-block-post-content > .wp-block-group.alignwide.has-background,
.wp-block-post-content > .wp-block-group.alignfull.has-background {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.wp-block-post-content > .wp-block-group.alignwide.has-background > *:not(.wp-block-group):not(.wp-block-buttons),
.wp-block-post-content > .wp-block-group.alignfull.has-background > *:not(.wp-block-group):not(.wp-block-buttons) {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
	box-sizing: border-box;
}
/* Nested groups (CTAs, button rows) inside these wrappers */
.wp-block-post-content > .wp-block-group.alignwide.has-background > .wp-block-group,
.wp-block-post-content > .wp-block-group.alignfull.has-background > .wp-block-group {
	max-width: 1200px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
	box-sizing: border-box;
}
.wp-block-post-content > .wp-block-group.alignfull.has-background > .wp-block-buttons {
	max-width: 1200px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
}

/* -----------------------------------------------------------------------------
   21e. Card link underlines — remove anywhere card itself is an <a>
   ----------------------------------------------------------------------------- */

a.c9-card,
a.c9-property-card,
a.c9-testimonial,
a.c9-prop-sidebar__btn,
a.c9-prop-sidebar__btn *,
a.c9-card *,
a.c9-property-card *,
a.c9-testimonial * {
	text-decoration: none !important;
}
.c9-footer a,
.c9-footer a *,
.c9-prop-sidebar__agent a {
	text-decoration: none !important;
}

/* -----------------------------------------------------------------------------
   22. Page-content constraint (Privacy, Cookie, Contact body etc.)
   For pages with raw post-content (paragraphs, headings, lists) and no patterns,
   constrain to a sensible reading width so they match the rest of the site.
   ----------------------------------------------------------------------------- */

main > .wp-block-post-content,
main > .wp-block-group > .wp-block-post-content {
	display: flex;
	flex-direction: column;
}
main > .wp-block-post-content > h1,
main > .wp-block-post-content > h2,
main > .wp-block-post-content > h3,
main > .wp-block-post-content > h4,
main > .wp-block-post-content > p,
main > .wp-block-post-content > ul,
main > .wp-block-post-content > ol,
main > .wp-block-post-content > blockquote,
main > .wp-block-post-content > .wp-block-image,
main > .wp-block-post-content > .wp-block-buttons,
main > .wp-block-post-content > .wp-block-table {
	width: 100%;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--c9-gutter);
	padding-right: var(--c9-gutter);
	box-sizing: border-box;
}
main > .wp-block-post-content > h1 { padding-top: clamp(4rem, 8vw, 7rem); }
main > .wp-block-post-content > :first-child:not(.wp-block-group):not(.wp-block-cover) {
	padding-top: clamp(4rem, 8vw, 7rem);
}
main > .wp-block-post-content > :last-child {
	padding-bottom: clamp(4rem, 8vw, 7rem);
}
main > .wp-block-post-content > h2 {
	margin-top: 2rem;
}
main > .wp-block-post-content > h3 {
	margin-top: 1.5rem;
}
main > .wp-block-post-content > p {
	margin: 0 auto 1rem;
	line-height: 1.7;
	color: var(--c9-ink);
}
main > .wp-block-post-content > ul,
main > .wp-block-post-content > ol {
	margin: 0 auto 1.25rem;
	padding-left: calc(var(--c9-gutter) + 1.25rem);
	line-height: 1.7;
}

/* -----------------------------------------------------------------------------
   23. Testimonial slider — home page strip
   4 cards visible on desktop, scroll for more, prev/next arrows.
   ----------------------------------------------------------------------------- */

.c9-testimonial-slider {
	position: relative;
	margin: clamp(2rem, 4vw, 3rem) 0;
}
.c9-testimonial-slider__viewport {
	mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}
.c9-testimonial-slider__track {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 0.5rem 0 1.5rem;
	-webkit-overflow-scrolling: touch;
}
.c9-testimonial-slider__track::-webkit-scrollbar { display: none; }

/* Default (mobile): 1 visible */
.c9-testimonial-slider__track > .c9-testimonial {
	scroll-snap-align: start;
	flex: 0 0 calc(100% - 0px);
	min-width: 0;
	min-height: 280px;
}
/* ≥600px: 2 visible */
@media (min-width: 600px) {
	.c9-testimonial-slider__track > .c9-testimonial {
		flex: 0 0 calc((100% - 1.25rem) / 2);
	}
}
/* ≥900px: 3 visible */
@media (min-width: 900px) {
	.c9-testimonial-slider__track > .c9-testimonial {
		flex: 0 0 calc((100% - 2.5rem) / 3);
	}
}
/* ≥1100px: exactly 4 visible */
@media (min-width: 1100px) {
	.c9-testimonial-slider__track > .c9-testimonial {
		flex: 0 0 calc((100% - 3.75rem) / 4);
	}
}
.c9-testimonial-slider__track > .c9-testimonial .c9-testimonial__quote {
	display: -webkit-box;
	-webkit-line-clamp: 7;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Slider nav arrows */
.c9-testimonial-slider__nav {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-bottom: 1rem;
}
.c9-testimonial-slider__btn {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 1.5px solid var(--c9-ink-2);
	background: transparent;
	color: var(--c9-ink-2);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s var(--c9-ease-out), color 0.2s var(--c9-ease-out), transform 0.2s var(--c9-ease-out);
}
.c9-testimonial-slider__btn:hover {
	background: var(--c9-ink-2);
	color: var(--c9-surface);
}
.c9-testimonial-slider__btn:disabled {
	opacity: 0.3;
	cursor: not-allowed;
	transform: none;
}
.c9-testimonial-slider__btn svg {
	width: 18px;
	height: 18px;
}
.c9-testimonial-slider__btn--prev svg {
	transform: scaleX(-1);
}

/* -----------------------------------------------------------------------------
   24. Testimonial masonry — archive page
   CSS columns layout for true masonry without library.
   ----------------------------------------------------------------------------- */

.c9-testimonial-masonry {
	column-count: 1;
	column-gap: clamp(1rem, 2vw, 1.5rem);
}
@media (min-width: 700px) { .c9-testimonial-masonry { column-count: 2; } }
@media (min-width: 1100px) { .c9-testimonial-masonry { column-count: 3; } }

.c9-testimonial-masonry > .c9-testimonial {
	break-inside: avoid;
	page-break-inside: avoid;
	display: inline-block;
	width: 100%;
	margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

/* End */
