/* ==========================================================================
   PlaceFound theme — design system
   Brand: navy #07213e + teal #3e6b6a (from the PlaceFound logo), charcoal text,
   warm off-white. Headings: Newsreader (editorial serif). UI/body: Jost.
   All colours meet WCAG 2.2 AA for their documented uses (see docs/theme.md).
   ========================================================================== */

@font-face {
	font-family: "Jost";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/jost-latin.woff2") format("woff2");
}

@font-face {
	font-family: "Newsreader";
	font-style: normal;
	font-weight: 300 600;
	font-display: swap;
	src: url("../fonts/newsreader-latin.woff2") format("woff2");
}

:root {
	/* Brand */
	--pf-navy: #07213e;
	--pf-navy-800: #0c2c50;
	--pf-navy-700: #15395f;
	--pf-teal: #3e6b6a;
	--pf-teal-700: #2f5352;
	--pf-teal-300: #7db2af; /* teal for text on navy (6.9:1) */
	--pf-teal-50: #ebf3f2;
	--pf-charcoal: #3b3c3d;

	/* Neutrals */
	--pf-ink: #14202f;
	--pf-text: #2c3440;
	--pf-muted: #5a6371;        /* 5.9:1 on white, 5.5:1 on --pf-paper */
	--pf-line: #e2e4e7;
	--pf-line-strong: #c9cdd3;
	--pf-paper: #f7f5f1;        /* warm off-white */
	--pf-white: #ffffff;
	--pf-on-navy: #dfe6ee;      /* body text on navy */

	/* States */
	--pf-success: #1f6b44;
	--pf-success-soft: #e4f2ea;
	--pf-danger: #a3261c;
	--pf-danger-soft: #fbe8e6;
	--pf-warning-soft: #fdf3dc;

	/* Type */
	--pf-font: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--pf-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--pf-step--1: 0.875rem;
	--pf-step-0: 1.0625rem;
	--pf-step-1: 1.25rem;
	--pf-step-2: clamp(1.4rem, 1.2rem + 0.8vw, 1.75rem);
	--pf-step-3: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	--pf-step-4: clamp(2.25rem, 1.6rem + 2.6vw, 3.6rem);
	--pf-step-5: clamp(2.6rem, 1.7rem + 3.8vw, 4.6rem);

	/* Space & shape */
	--pf-container: 1240px;
	--pf-narrow: 760px;
	--pf-gutter: clamp(16px, 4vw, 40px);
	--pf-section: clamp(56px, 8vw, 112px);
	--pf-radius: 10px;
	--pf-radius-sm: 6px;
	--pf-radius-lg: 16px;
	--pf-shadow: 0 1px 2px rgba(7, 33, 62, .06), 0 6px 20px rgba(7, 33, 62, .06);
	--pf-shadow-lg: 0 2px 6px rgba(7, 33, 62, .08), 0 24px 48px rgba(7, 33, 62, .14);
	--pf-ease: cubic-bezier(.2, .7, .2, 1);
	--pf-header-h: 76px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--pf-header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
	margin: 0;
	font-family: var(--pf-font);
	font-size: var(--pf-step-0);
	line-height: 1.65;
	color: var(--pf-text);
	background: var(--pf-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

[hidden] { display: none !important; }
/* Grid and flex children may shrink below their content's intrinsic width (prevents mobile overflow). */
.search-grid > *, .search-more__body > *, .split > *, .grid > *, .listing-layout > *, .gallery > *, .footer-grid > *, .cta-pair > *, .pf-webform__form > * { min-width: 0; }
body { overflow-x: clip; }
h1, h2, h3 { overflow-wrap: break-word; }
img, video, iframe, svg { max-width: 100%; }
img, video { height: auto; display: block; }

a { color: var(--pf-teal-700); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--pf-navy); }

h1, h2, h3, h4 {
	font-family: var(--pf-serif);
	font-weight: 450;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--pf-ink);
	margin: 0 0 .5em;
	text-wrap: balance;
}
h1 { font-size: var(--pf-step-4); }
h2 { font-size: var(--pf-step-3); }
h3 { font-size: var(--pf-step-2); }
h4 { font-size: var(--pf-step-1); }
h5, h6 { font-family: var(--pf-font); font-size: var(--pf-step-0); margin: 0 0 .5em; color: var(--pf-ink); }

p { margin: 0 0 1.2em; }
ul, ol { margin: 0 0 1.2em; padding-left: 1.2em; }
strong { font-weight: 600; color: var(--pf-ink); }
hr { border: 0; border-top: 1px solid var(--pf-line); margin: 2rem 0; }

:focus-visible { outline: 3px solid var(--pf-teal); outline-offset: 2px; border-radius: 2px; }
.on-dark :focus-visible, .site-footer :focus-visible { outline-color: var(--pf-teal-300); }

::selection { background: var(--pf-teal-50); color: var(--pf-ink); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	top: 12px; left: 12px; z-index: 1000; padding: 12px 18px;
	background: var(--pf-white); color: var(--pf-navy); border-radius: var(--pf-radius-sm);
	box-shadow: var(--pf-shadow-lg); font-weight: 600;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.container { width: 100%; max-width: var(--pf-container); margin-inline: auto; padding-inline: var(--pf-gutter); }
.container--narrow { max-width: calc(var(--pf-narrow) + 2 * var(--pf-gutter)); }

.section { padding-block: var(--pf-section); }
.section--tight { padding-block: calc(var(--pf-section) * .6); }
.section--paper { background: var(--pf-paper); }
.section--navy { background: var(--pf-navy); color: var(--pf-on-navy); }
.section--navy h1, .section--navy h2, .section--navy h3, .section--navy strong { color: var(--pf-white); }
.section--navy a:not(.button) { color: var(--pf-teal-300); }
.section--flush-top { padding-top: 0; }

.section-head { max-width: 720px; margin-bottom: clamp(28px, 4vw, 48px); }
.section-head--split { max-width: none; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 32px; }
.section-head--split > div { max-width: 680px; }
.section-head p { color: var(--pf-muted); font-size: var(--pf-step-1); margin: 0; }
.section--navy .section-head p { color: var(--pf-on-navy); }

.eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--pf-font); font-size: var(--pf-step--1); font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase; color: var(--pf-teal);
	margin: 0 0 14px;
}
.eyebrow::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.section--navy .eyebrow, .on-dark .eyebrow { color: var(--pf-teal-300); }

.lead { font-size: var(--pf-step-1); color: var(--pf-muted); }

.grid { display: grid; gap: clamp(20px, 2.5vw, 32px); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }

.split { display: grid; gap: clamp(32px, 6vw, 88px); align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
	.split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.split--wide-left { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
}

.prose { max-width: 70ch; }
.prose > *:last-child { margin-bottom: 0; }
.prose h2 { margin-top: 1.6em; font-size: var(--pf-step-2); }
.prose h3 { margin-top: 1.4em; font-size: var(--pf-step-1); font-family: var(--pf-font); font-weight: 600; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.button, .wp-block-button__link, .pf-webform__submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 12px 24px;
	font-family: var(--pf-font); font-size: 1rem; font-weight: 500; line-height: 1.2; letter-spacing: .01em;
	color: var(--pf-white); background: var(--pf-navy);
	border: 1px solid var(--pf-navy); border-radius: var(--pf-radius-sm);
	text-decoration: none; cursor: pointer;
	transition: background-color .2s var(--pf-ease), border-color .2s var(--pf-ease), color .2s var(--pf-ease), transform .2s var(--pf-ease);
}
.button:hover, .wp-block-button__link:hover, .pf-webform__submit:hover { background: var(--pf-navy-700); border-color: var(--pf-navy-700); color: var(--pf-white); }
.button:active { transform: translateY(1px); }
.button svg { flex: none; }

.button--accent { background: var(--pf-teal); border-color: var(--pf-teal); }
.button--accent:hover { background: var(--pf-teal-700); border-color: var(--pf-teal-700); }
.button--ghost { background: transparent; color: var(--pf-navy); border-color: var(--pf-line-strong); }
.button--ghost:hover { background: var(--pf-paper); color: var(--pf-navy); border-color: var(--pf-navy); }
.button--light { background: var(--pf-white); color: var(--pf-navy); border-color: var(--pf-white); }
.button--light:hover { background: var(--pf-teal-50); color: var(--pf-navy); border-color: var(--pf-teal-50); }
.button--outline-light { background: transparent; color: var(--pf-white); border-color: rgba(255, 255, 255, .45); }
.button--outline-light:hover { background: rgba(255, 255, 255, .08); color: var(--pf-white); border-color: var(--pf-white); }
.button--lg { min-height: 56px; padding: 16px 30px; font-size: 1.0625rem; }
.button--sm { min-height: 40px; padding: 8px 16px; font-size: .9375rem; }
.button--block { width: 100%; }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--pf-navy); text-decoration: none; }
.link-arrow svg { transition: transform .2s var(--pf-ease); }
.link-arrow:hover { color: var(--pf-teal-700); }
.link-arrow:hover svg { transform: translateX(3px); }
.section--navy .link-arrow { color: var(--pf-white); }
.section--navy .link-arrow:hover { color: var(--pf-teal-300); }

.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.actions--spaced { margin-top: 32px; }
.actions--center { justify-content: center; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(255, 255, 255, .96);
	border-bottom: 1px solid var(--pf-line);
	backdrop-filter: saturate(150%) blur(8px);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--pf-header-h); }
.site-logo { display: inline-flex; align-items: center; flex: none; }
.site-logo img { height: 34px; width: auto; }
.site-footer .site-logo img { height: 38px; }

.main-navigation { margin-left: auto; }
.main-navigation .menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.main-navigation .menu a {
	display: block; padding: 10px 12px; border-radius: var(--pf-radius-sm);
	color: var(--pf-ink); font-weight: 500; font-size: .98rem; text-decoration: none;
}
.main-navigation .menu a:hover { background: var(--pf-paper); color: var(--pf-navy); }
.main-navigation .menu [aria-current="page"], .main-navigation .current-menu-item > a { color: var(--pf-teal-700); }
.main-navigation .menu [aria-current="page"]::after, .main-navigation .current-menu-item > a::after {
	content: ""; display: block; height: 2px; margin-top: 4px; background: var(--pf-teal); border-radius: 2px;
}
.main-navigation .menu-cta-mobile { display: none; }
.menu-toggle { display: none; }
.header-cta { flex: none; }

@media (max-width: 1080px) {
	.header-cta { display: none; }
	.menu-toggle {
		display: inline-flex; align-items: center; gap: 8px; margin-left: auto;
		min-height: 44px; padding: 8px 14px;
		background: transparent; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius-sm);
		color: var(--pf-navy); font: 500 1rem var(--pf-font); cursor: pointer;
	}
	.main-navigation { margin-left: 0; }
	.main-navigation .menu {
		display: none; position: absolute; inset: var(--pf-header-h) 0 auto 0;
		flex-direction: column; align-items: stretch; gap: 0;
		max-height: calc(100vh - var(--pf-header-h)); overflow-y: auto;
		padding: 12px var(--pf-gutter) 24px; background: var(--pf-white);
		border-bottom: 1px solid var(--pf-line); box-shadow: var(--pf-shadow-lg);
	}
	.main-navigation.is-open .menu { display: flex; }
	.main-navigation .menu a { padding: 14px 4px; border-bottom: 1px solid var(--pf-line); border-radius: 0; font-size: 1.0625rem; }
	.main-navigation .menu [aria-current="page"]::after { display: none; }
	.main-navigation .menu-cta-mobile { display: block; margin-top: 16px; }
	.main-navigation .menu-cta-mobile a { border: 0; text-align: center; padding: 14px; border-radius: var(--pf-radius-sm); }
	.main-navigation .menu .menu-cta-mobile a { background: var(--pf-navy); color: var(--pf-white); }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
	position: relative; overflow: hidden;
	background: var(--pf-navy); color: var(--pf-on-navy);
	padding-block: clamp(64px, 10vw, 136px) clamp(140px, 16vw, 200px);
}
.hero__pattern { position: absolute; inset: 0; pointer-events: none; opacity: .5; }
.hero__pattern svg { width: 100%; height: 100%; }
.hero .container { position: relative; }
.hero__content { max-width: 820px; }
.hero__title { font-size: var(--pf-step-5); color: var(--pf-white); font-weight: 400; margin-bottom: 24px; }
.hero__title em { font-style: normal; color: var(--pf-teal-300); }
.hero__text { font-size: var(--pf-step-1); max-width: 620px; color: var(--pf-on-navy); margin-bottom: 32px; }

.search-dock { position: relative; z-index: 2; margin-top: clamp(-160px, -12vw, -110px); }

/* Inner page hero */
.page-hero { background: var(--pf-paper); padding-block: clamp(40px, 6vw, 80px) clamp(36px, 5vw, 64px); border-bottom: 1px solid var(--pf-line); }
.page-hero__title { font-size: var(--pf-step-4); margin-bottom: 16px; }
.page-hero__subtitle { font-size: var(--pf-step-1); color: var(--pf-muted); max-width: 680px; margin: 0; }
.page-hero__actions { margin-top: 28px; }
.page-hero--navy { background: var(--pf-navy); border-bottom: 0; color: var(--pf-on-navy); }
.page-hero--navy .page-hero__title { color: var(--pf-white); }
.page-hero--navy .page-hero__subtitle { color: var(--pf-on-navy); }
.page-hero--navy .breadcrumbs, .page-hero--navy .breadcrumbs a { color: var(--pf-on-navy); }

.breadcrumbs { font-size: var(--pf-step--1); color: var(--pf-muted); margin-bottom: 20px; }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; opacity: .6; }
.breadcrumbs a { color: var(--pf-muted); }
.breadcrumbs [aria-current="page"] { color: var(--pf-ink); }

/* ==========================================================================
   Property search panel
   ========================================================================== */
.search-panel {
	background: var(--pf-white); color: var(--pf-text);
	border-radius: var(--pf-radius-lg); box-shadow: var(--pf-shadow-lg);
	border: 1px solid var(--pf-line);
	padding: clamp(18px, 2.5vw, 28px);
}
.search-panel__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 18px; }
.search-panel__title { font-family: var(--pf-serif); font-size: var(--pf-step-2); color: var(--pf-ink); margin: 0; }

.segmented { display: inline-flex; padding: 4px; gap: 4px; background: var(--pf-paper); border-radius: 999px; border: 1px solid var(--pf-line); margin: 0; }
.segmented legend { position: absolute; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; overflow: hidden; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented label {
	display: inline-flex; align-items: center; min-height: 40px; padding: 8px 20px;
	border-radius: 999px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .875rem;
	color: var(--pf-muted); cursor: pointer; transition: background-color .2s, color .2s;
}
.segmented input:checked + label { background: var(--pf-navy); color: var(--pf-white); }
.segmented input:focus-visible + label { outline: 3px solid var(--pf-teal); outline-offset: 2px; }
.segmented--light label { text-transform: none; letter-spacing: 0; font-weight: 500; }
.segmented--light input:checked + label { background: var(--pf-white); color: var(--pf-navy); box-shadow: var(--pf-shadow); }

.search-grid { display: grid; gap: 14px; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; }
.search-grid > * { grid-column: span 12; }
@media (min-width: 640px) {
	.search-grid .col-6, .search-grid .col-4, .search-grid .col-3, .search-grid .col-2 { grid-column: span 6; }
}
@media (min-width: 1000px) {
	.search-grid .col-4 { grid-column: span 4; }
	.search-grid .col-3 { grid-column: span 3; }
	.search-grid .col-2 { grid-column: span 2; }
}
.search-more { grid-column: span 12; }
.search-more > summary {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none;
	font-weight: 500; color: var(--pf-teal-700); padding: 6px 0;
}
.search-more > summary::-webkit-details-marker { display: none; }
.search-more > summary::after { content: "+"; font-size: 1.2em; line-height: 1; }
.search-more[open] > summary::after { content: "–"; }
.search-more__body { display: grid; gap: 14px; grid-template-columns: repeat(12, minmax(0, 1fr)); margin-top: 14px; }
.search-more__body > * { grid-column: span 12; }
@media (min-width: 640px) { .search-more__body > * { grid-column: span 6; } }
@media (min-width: 1000px) { .search-more__body > .col-3 { grid-column: span 3; } }
@media (min-width: 1000px) {
	.search-panel--home .search-more { grid-column: span 6; }
	.search-panel--home .search-more__body { grid-template-columns: repeat(3, 1fr); margin-top: 0; }
	.search-panel--home .search-more__body > * { grid-column: auto; }
	.search-panel--home .search-more__body > [hidden] { display: none; }
	.js .search-panel--home .search-more > summary { display: none; }
}

.search-features { border: 0; margin: 0; padding: 0; grid-column: 1 / -1 !important; }
.search-sector { align-self: end; display: flex; width: 100%; min-height: 48px; border-radius: var(--pf-radius-sm); }
.search-sector label { flex: 1; justify-content: center; border-radius: 4px; }
.search-submit { grid-column-end: -1 !important; }
.search-panel--archive .search-submit { order: 1; }
.search-panel--archive .search-more { order: 2; }
@media (min-width: 1000px) {
	.search-panel--home .search-grid > .col-3 { grid-column: span 2; }
}
.search-features legend { font-weight: 500; color: var(--pf-ink); margin-bottom: 8px; font-size: .95rem; }
.search-features__list { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-check { position: relative; }
.chip-check input { position: absolute; opacity: 0; }
.chip-check span {
	display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px;
	border: 1px solid var(--pf-line-strong); border-radius: 999px; font-size: .9375rem; cursor: pointer; background: var(--pf-white);
}
.chip-check input:checked + span { background: var(--pf-teal-50); border-color: var(--pf-teal); color: var(--pf-teal-700); }
.chip-check input:focus-visible + span { outline: 3px solid var(--pf-teal); outline-offset: 2px; }

/* ==========================================================================
   Form fields (theme + plugin forms)
   ========================================================================== */
.field { display: flex; flex-direction: column; gap: 6px; }
.field label, .field .field__label, .pf-webform__field > label, .pf-webform legend {
	font-size: .9375rem; font-weight: 500; color: var(--pf-ink);
}
.field input, .field select,
.pf-webform input[type="text"], .pf-webform input[type="email"], .pf-webform input[type="tel"], .pf-webform select, .pf-webform textarea,
.search-form input[type="search"] {
	width: 100%; min-height: 48px; padding: 11px 14px;
	font: 400 1rem/1.4 var(--pf-font); color: var(--pf-ink);
	background: var(--pf-white); border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius-sm);
	transition: border-color .15s, box-shadow .15s;
}
.field select, .pf-webform select {
	appearance: none; padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2307213e' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center;
}
.pf-webform textarea { min-height: 132px; resize: vertical; }
.field input:hover, .field select:hover, .pf-webform input:hover, .pf-webform select:hover, .pf-webform textarea:hover { border-color: var(--pf-muted); }
.field input:focus, .field select:focus, .pf-webform input:focus, .pf-webform select:focus, .pf-webform textarea:focus, .search-form input:focus {
	outline: none; border-color: var(--pf-teal); box-shadow: 0 0 0 3px rgba(62, 107, 106, .25);
}
.field__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.field__hint { font-size: var(--pf-step--1); color: var(--pf-muted); }

/* Plugin website forms (.pf-webform) */
.pf-webform__title { font-size: var(--pf-step-2); margin-bottom: 8px; }
.pf-webform__intro { color: var(--pf-muted); }
.pf-webform__required-note { font-size: var(--pf-step--1); color: var(--pf-muted); margin-bottom: 18px; }
.pf-webform__form { display: grid; gap: 18px; }
.pf-webform__field { display: flex; flex-direction: column; gap: 6px; }
.pf-webform__field[hidden] { display: none; }
.pf-webform fieldset { border: 0; padding: 0; margin: 0; }
.pf-webform legend { margin-bottom: 8px; padding: 0; }
.pf-webform__choices { display: flex; flex-wrap: wrap; gap: 8px; }
.pf-webform__choices label {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px;
	border: 1px solid var(--pf-line-strong); border-radius: 999px; cursor: pointer; font-size: .9375rem;
}
.pf-webform__choices label:has(input:checked) { border-color: var(--pf-teal); background: var(--pf-teal-50); color: var(--pf-teal-700); }
.pf-webform__choices input, .pf-webform__check input { accent-color: var(--pf-teal); width: 18px; height: 18px; }
.pf-webform__check { display: flex; gap: 10px; align-items: flex-start; font-size: .9375rem; cursor: pointer; }
.pf-webform__check input { margin-top: 3px; flex: none; }
.pf-webform__help { font-size: var(--pf-step--1); color: var(--pf-muted); margin: 0; }
.pf-webform__error { font-size: var(--pf-step--1); color: var(--pf-danger); font-weight: 500; margin: 0; }
.pf-webform__field.has-error input, .pf-webform__field.has-error select, .pf-webform__field.has-error textarea { border-color: var(--pf-danger); }
.pf-webform__status { padding: 16px 18px; border-radius: var(--pf-radius-sm); margin-bottom: 18px; }
.pf-webform__status p { margin: 0; }
.pf-webform__status ul { margin: 8px 0 0; }
.pf-webform__status.is-success { background: var(--pf-success-soft); color: var(--pf-success); font-weight: 500; }
.pf-webform__status.is-error { background: var(--pf-danger-soft); color: var(--pf-danger); }
.pf-webform__status.is-error a { color: inherit; }
.pf-webform__privacy { font-size: var(--pf-step--1); color: var(--pf-muted); margin: 0; }
.pf-webform__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pf-webform__submit { justify-self: start; min-width: 200px; }
.pf-webform__submit[disabled] { opacity: .7; cursor: progress; }
@media (min-width: 700px) {
	.pf-webform__form { grid-template-columns: 1fr 1fr; column-gap: 18px; }
	.pf-webform__form > * { grid-column: 1 / -1; }
	.pf-webform__field--text, .pf-webform__field--int, .pf-webform__field--decimal { grid-column: auto; }
	.pf-webform__field[data-pf-field="locations"], .pf-webform__field[data-pf-field="address"] { grid-column: 1 / -1; }
}

/* Form card */
.form-card { background: var(--pf-white); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-lg); padding: clamp(22px, 3.5vw, 44px); box-shadow: var(--pf-shadow); }

/* ==========================================================================
   Cards
   ========================================================================== */
.card {
	position: relative; display: flex; flex-direction: column; gap: 12px;
	background: var(--pf-white); border: 1px solid var(--pf-line); border-radius: var(--pf-radius);
	padding: clamp(22px, 2.5vw, 32px);
	transition: border-color .2s var(--pf-ease), box-shadow .2s var(--pf-ease), transform .2s var(--pf-ease);
}
.card h3 { font-size: var(--pf-step-2); margin: 0; }
.card p { color: var(--pf-muted); margin: 0; }
.card__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; background: var(--pf-teal-50); color: var(--pf-teal-700); }
.card__link { margin-top: auto; padding-top: 8px; }
.card--link:hover { border-color: var(--pf-teal); box-shadow: var(--pf-shadow); transform: translateY(-2px); }
.card--link .card__stretch::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card--navy { background: var(--pf-navy-800); border-color: rgba(255, 255, 255, .1); }
.card--navy p { color: var(--pf-on-navy); }
.card--navy h3 { color: var(--pf-white); }
.card--navy .card__icon { background: rgba(125, 178, 175, .15); color: var(--pf-teal-300); }

.service-cards { display: grid; gap: 1px; background: var(--pf-line); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-lg); overflow: hidden; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.service-cards .card { border: 0; border-radius: 0; }
.service-card__label { font-family: var(--pf-font); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: var(--pf-step--1); color: var(--pf-teal); }

.type-links { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.type-links a {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px;
	border: 1px solid var(--pf-line-strong); border-radius: 999px; text-decoration: none; color: var(--pf-ink); background: var(--pf-white);
}
.type-links a:hover, .type-links a[aria-current="page"] { border-color: var(--pf-teal); color: var(--pf-teal-700); background: var(--pf-teal-50); }
.section--navy .type-links a { background: transparent; border-color: rgba(255, 255, 255, .25); color: var(--pf-white); }
.section--navy .type-links a:hover { border-color: var(--pf-teal-300); color: var(--pf-teal-300); background: transparent; }

.feature-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
.feature-list li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; align-items: start; }
.feature-list svg { color: var(--pf-teal); margin-top: 3px; }
.section--navy .feature-list svg { color: var(--pf-teal-300); }
.feature-list strong { display: block; margin-bottom: 2px; }
.feature-list p { margin: 0; color: var(--pf-muted); }
.section--navy .feature-list p { color: var(--pf-on-navy); }

.steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.steps li { counter-increment: step; padding-top: 20px; border-top: 2px solid var(--pf-line); }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--pf-serif); font-size: var(--pf-step-2); color: var(--pf-teal); margin-bottom: 8px; }
.steps h3 { font-family: var(--pf-font); font-weight: 600; font-size: var(--pf-step-1); margin-bottom: 6px; }
.steps p { color: var(--pf-muted); margin: 0; }

.area-list { display: flex; flex-wrap: wrap; gap: 10px 12px; list-style: none; padding: 0; margin: 0; }
.area-list a, .area-list span {
	display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px;
	background: var(--pf-white); border: 1px solid var(--pf-line); color: var(--pf-ink); text-decoration: none; font-weight: 500;
}
.area-list a:hover { border-color: var(--pf-teal); color: var(--pf-teal-700); }
.area-list svg { color: var(--pf-teal); }

/* CTA panels */
.cta-pair { display: grid; gap: clamp(16px, 2vw, 24px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.cta-panel {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; align-items: flex-start;
	padding: clamp(28px, 4vw, 52px); border-radius: var(--pf-radius-lg);
	background: var(--pf-navy); color: var(--pf-on-navy);
}
.cta-panel h2, .cta-panel h3 { color: var(--pf-white); margin: 0; font-size: var(--pf-step-3); }
.cta-panel p { margin: 0; max-width: 52ch; }
.cta-panel .actions { margin-top: 8px; }
.cta-panel--teal { background: var(--pf-teal-700); color: #e9f1f0; }
.cta-panel--paper { background: var(--pf-paper); color: var(--pf-text); border: 1px solid var(--pf-line); }
.cta-panel--paper h2, .cta-panel--paper h3 { color: var(--pf-ink); }

.cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
.cta-band h2 { margin: 0 0 8px; }
.cta-band p { margin: 0; }

/* Notices / placeholders */
.notice-box { padding: 18px 20px; border-radius: var(--pf-radius); background: var(--pf-paper); border: 1px solid var(--pf-line); }
.dev-placeholder {
	display: inline-block; padding: 4px 10px; border: 1px dashed #b7791f; border-radius: 4px;
	background: var(--pf-warning-soft); color: #6b4a0b; font: 500 .8125rem/1.4 var(--pf-font);
}

/* ==========================================================================
   Property cards
   ========================================================================== */
.listing-grid { display: grid; gap: clamp(20px, 2.5vw, 28px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); list-style: none; padding: 0; margin: 0; }

.property-card {
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: var(--pf-white); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden;
	transition: box-shadow .25s var(--pf-ease), transform .25s var(--pf-ease), border-color .25s;
}
.property-card:hover { box-shadow: var(--pf-shadow-lg); transform: translateY(-3px); border-color: transparent; }
.property-card__media { position: relative; aspect-ratio: 3 / 2; background: var(--pf-paper); overflow: hidden; }
.property-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--pf-ease); }
.property-card:hover .property-card__media img { transform: scale(1.03); }
.property-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: var(--pf-line-strong); background: linear-gradient(135deg, var(--pf-paper), #eceae4); }
.property-card__badges { position: absolute; top: 14px; left: 14px; display: flex; gap: 6px; flex-wrap: wrap; }
.property-card__body { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px 22px; flex: 1; }
.property-card__type { font-size: var(--pf-step--1); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--pf-teal); margin: 0; }
.property-card__title { font-size: var(--pf-step-1); font-family: var(--pf-serif); font-weight: 500; margin: 0; line-height: 1.25; }
.property-card__title a { color: var(--pf-ink); text-decoration: none; }
.property-card__title a::after { content: ""; position: absolute; inset: 0; }
.property-card__title a:focus-visible { outline: none; }
.property-card:has(.property-card__title a:focus-visible) { outline: 3px solid var(--pf-teal); outline-offset: 2px; }
.property-card__location { color: var(--pf-muted); margin: 0; font-size: .9375rem; display: flex; gap: 6px; align-items: center; }
.property-card__location svg { flex: none; color: var(--pf-teal); }
.property-card__price { margin: auto 0 0; padding-top: 14px; font-size: var(--pf-step-1); font-weight: 600; color: var(--pf-navy); }
.property-card__facts { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; padding: 12px 0 0; margin: 12px 0 0; border-top: 1px solid var(--pf-line); font-size: .9375rem; color: var(--pf-muted); }
.property-card__facts li { display: inline-flex; align-items: center; gap: 6px; }

.badge {
	display: inline-flex; align-items: center; min-height: 26px; padding: 3px 10px; border-radius: 999px;
	font-size: .8125rem; font-weight: 600; letter-spacing: .02em; line-height: 1.3;
	background: var(--pf-white); color: var(--pf-navy);
}
.badge--navy { background: var(--pf-navy); color: var(--pf-white); }
.badge--teal { background: var(--pf-teal); color: var(--pf-white); }
.badge--soft { background: var(--pf-teal-50); color: var(--pf-teal-700); }
.badge--muted { background: var(--pf-paper); color: var(--pf-charcoal); border: 1px solid var(--pf-line); }

/* ==========================================================================
   Listings archive
   ========================================================================== */
.results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.results-bar__count { margin: 0; color: var(--pf-muted); }
.results-bar__count strong { color: var(--pf-ink); }
.results-bar .field { flex-direction: row; align-items: center; gap: 10px; }
.results-bar .field select { min-height: 42px; width: auto; }

.active-filters { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; }
.active-filters a {
	display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px;
	background: var(--pf-teal-50); color: var(--pf-teal-700); font-size: .9375rem; text-decoration: none;
}
.active-filters a:hover { background: #dcebe9; }

.empty-state { text-align: center; padding: clamp(40px, 6vw, 72px) var(--pf-gutter); border: 1px dashed var(--pf-line-strong); border-radius: var(--pf-radius-lg); background: var(--pf-paper); }
.empty-state h2 { font-size: var(--pf-step-3); }
.empty-state p { color: var(--pf-muted); max-width: 56ch; margin-inline: auto; }
.empty-state .actions { justify-content: center; }

.pagination, .navigation.pagination { margin-top: 40px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.nav-links .page-numbers {
	display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 12px;
	border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); text-decoration: none; color: var(--pf-ink); background: var(--pf-white);
}
.nav-links .page-numbers:hover { border-color: var(--pf-navy); }
.nav-links .page-numbers.current { background: var(--pf-navy); border-color: var(--pf-navy); color: var(--pf-white); }
.nav-links .dots { border: 0; background: none; }

/* ==========================================================================
   Property detail
   ========================================================================== */
.listing-head { padding-block: clamp(24px, 4vw, 40px) 24px; }
.listing-head__top { display: grid; grid-template-columns: 1fr; align-items: end; gap: 16px 40px; }
@media (min-width: 900px) { .listing-head__top { grid-template-columns: minmax(0, 1fr) auto; } }
.listing-head__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.listing-head__title { font-size: var(--pf-step-4); margin-bottom: 8px; }
.listing-head__location { display: flex; align-items: center; gap: 8px; color: var(--pf-muted); margin: 0; font-size: var(--pf-step-1); }
.listing-head__location svg { color: var(--pf-teal); }
.listing-head__price { text-align: right; white-space: nowrap; }
.listing-head__price p { margin: 0; }
.listing-head__amount { font-family: var(--pf-serif); font-size: var(--pf-step-3); color: var(--pf-navy); line-height: 1.1; }
.listing-head__ref { color: var(--pf-muted); font-size: var(--pf-step--1); }
@media (max-width: 700px) { .listing-head__price { text-align: left; } }

.gallery { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr); border-radius: var(--pf-radius-lg); overflow: hidden; }
.gallery__main { position: relative; aspect-ratio: 16 / 10; background: var(--pf-paper); margin: 0; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.gallery__main figcaption { position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 4px; background: rgba(7, 33, 62, .75); color: var(--pf-white); font-size: var(--pf-step--1); }
.gallery__side { display: none; }
@media (min-width: 900px) {
	.gallery--multi { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
	.gallery--multi .gallery__main { aspect-ratio: auto; min-height: 460px; }
	.gallery__side { display: grid; gap: 8px; grid-template-rows: 1fr 1fr; }
	.gallery__side img { width: 100%; height: 100%; object-fit: cover; }
}
.gallery__all { position: absolute; right: 14px; bottom: 14px; }
.gallery__empty { aspect-ratio: 21 / 9; display: grid; place-items: center; color: var(--pf-muted); background: var(--pf-paper); border-radius: var(--pf-radius-lg); }

.lightbox { width: min(1100px, 96vw); max-height: 92vh; padding: 0; border: 0; border-radius: var(--pf-radius-lg); background: var(--pf-white); }
.lightbox::backdrop { background: rgba(7, 33, 62, .85); }
.lightbox__head { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 18px; background: var(--pf-white); border-bottom: 1px solid var(--pf-line); z-index: 1; }
.lightbox__head h2 { font-size: var(--pf-step-1); margin: 0; }
.lightbox__grid { display: grid; gap: 12px; padding: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.lightbox__grid figure { margin: 0; }
.lightbox__grid figcaption { font-size: var(--pf-step--1); color: var(--pf-muted); padding-top: 6px; }

.key-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 0; background: var(--pf-white); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden; margin: 28px 0 0; }
.key-facts div { background: var(--pf-white); padding: 16px 18px; box-shadow: inset -1px -1px 0 var(--pf-line); }
.key-facts dt { font-size: var(--pf-step--1); color: var(--pf-muted); margin-bottom: 2px; }
.key-facts dd { margin: 0; font-weight: 600; color: var(--pf-ink); }

.listing-layout { display: grid; gap: clamp(32px, 5vw, 64px); grid-template-columns: minmax(0, 1fr); padding-block: clamp(32px, 5vw, 56px) var(--pf-section); }
@media (min-width: 1000px) { .listing-layout { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; } .listing-aside { position: sticky; top: calc(var(--pf-header-h) + 24px); } }
.listing-section { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--pf-line); }
.listing-section:last-child { border-bottom: 0; margin-bottom: 0; }
.listing-section h2 { font-size: var(--pf-step-2); }
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.check-list li { display: flex; gap: 10px; align-items: flex-start; }
.check-list svg { color: var(--pf-teal); flex: none; margin-top: 4px; }
.spec-table { width: 100%; border-collapse: collapse; }
.spec-table th, .spec-table td { text-align: left; padding: 12px 0; border-bottom: 1px solid var(--pf-line); vertical-align: top; }
.spec-table th { font-weight: 500; color: var(--pf-muted); width: 45%; padding-right: 16px; }
.spec-table td { color: var(--pf-ink); }
.tag-list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.tag-list li { padding: 6px 12px; border-radius: 999px; background: var(--pf-paper); border: 1px solid var(--pf-line); font-size: .9375rem; }
.download-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.download-list a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); color: var(--pf-ink); text-decoration: none; }
.download-list a:hover { border-color: var(--pf-teal); }
.download-list svg { color: var(--pf-teal); flex: none; }
.map-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--pf-radius); overflow: hidden; border: 1px solid var(--pf-line); background: var(--pf-paper); }
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-note { font-size: var(--pf-step--1); color: var(--pf-muted); margin-top: 8px; }

.enquiry-box { background: var(--pf-white); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-lg); box-shadow: var(--pf-shadow); overflow: hidden; }
.enquiry-box__head { padding: 22px 24px; background: var(--pf-navy); color: var(--pf-on-navy); }
.enquiry-box__head h2 { color: var(--pf-white); font-size: var(--pf-step-2); margin: 0 0 4px; }
.enquiry-box__head p { margin: 0; }
.enquiry-box__actions { display: grid; gap: 8px; padding: 20px 24px; border-bottom: 1px solid var(--pf-line); }
.enquiry-box__body { padding: 24px; }
.enquiry-box .pf-webform__form { grid-template-columns: 1fr; }
.enquiry-box .pf-webform__form > * { grid-column: 1; }
.enquiry-box .pf-webform__title { display: none; }
.agent-card { display: flex; gap: 14px; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--pf-line); }
.agent-card__avatar { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--pf-teal-50); color: var(--pf-teal-700); font-weight: 600; flex: none; }
.agent-card p { margin: 0; }
.agent-card a { font-size: .9375rem; }

.share-links { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.share-links a, .share-links button {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px;
	border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius-sm); background: var(--pf-white);
	color: var(--pf-ink); font: 500 .9375rem var(--pf-font); text-decoration: none; cursor: pointer;
}
.share-links a:hover, .share-links button:hover { border-color: var(--pf-navy); }

/* ==========================================================================
   Posts (Insights)
   ========================================================================== */
.post-card { display: flex; flex-direction: column; gap: 10px; }
.post-card__media { aspect-ratio: 16 / 10; border-radius: var(--pf-radius); overflow: hidden; background: var(--pf-paper); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card h3 { font-size: var(--pf-step-1); margin: 0; }
.post-card h3 a { color: var(--pf-ink); text-decoration: none; }
.post-card h3 a:hover { color: var(--pf-teal-700); }
.post-card p { color: var(--pf-muted); margin: 0; }
.entry-meta { font-size: var(--pf-step--1); color: var(--pf-muted); }
.entry-content { font-size: 1.0625rem; }
.entry-content > * { max-width: 70ch; }
.entry-content > .alignwide { max-width: 1100px; }
.entry-content > .alignfull { max-width: none; }
.entry-content img { border-radius: var(--pf-radius); }
.entry-content blockquote { margin: 1.5em 0; padding-left: 20px; border-left: 3px solid var(--pf-teal); font-family: var(--pf-serif); font-size: var(--pf-step-1); color: var(--pf-ink); }
.search-form { display: flex; gap: 8px; max-width: 520px; }
.search-form label { flex: 1; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--pf-navy); color: var(--pf-on-navy); padding-top: clamp(56px, 7vw, 88px); }
.site-footer a { color: var(--pf-on-navy); text-decoration: none; }
.site-footer a:hover { color: var(--pf-white); text-decoration: underline; }
.footer-grid { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); padding-bottom: 48px; }
@media (min-width: 760px) { .footer-grid { grid-template-columns: 1.4fr repeat(3, 1fr); } }
.footer-brand p { margin: 20px 0 0; max-width: 38ch; }
.footer-heading { font-family: var(--pf-font); font-size: var(--pf-step--1); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--pf-teal-300); margin-bottom: 16px; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-contact { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 10px; }
.footer-contact li { display: flex; gap: 10px; align-items: center; }
.footer-contact svg { color: var(--pf-teal-300); flex: none; }
.site-info { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-block: 24px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--pf-step--1); }
.site-info ul { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; margin: 0; padding: 0; }

/* ==========================================================================
   Utilities & WordPress
   ========================================================================== */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.muted { color: var(--pf-muted); }
.stack > * + * { margin-top: 16px; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-inline: auto; }
.wp-caption-text, figcaption { font-size: var(--pf-step--1); color: var(--pf-muted); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
	.site-header, .site-footer, .enquiry-box, .share-links, .search-panel { display: none !important; }
	body { color: #000; }
}
.entry-thumb { margin: 0 0 32px; }
.h3 { font-size: var(--pf-step-2); }
.split--top { align-items: start; }
.steps--stacked { grid-template-columns: 1fr; }
.section--flush-bottom { padding-bottom: 0; }
a.card { color: inherit; text-decoration: none; }
a.card h3 { color: var(--pf-ink); }
a.card:hover h3 { color: var(--pf-teal-700); }
.section-head .eyebrow { color: var(--pf-teal); font-size: var(--pf-step--1); margin-bottom: 14px; }
.section--navy .section-head .eyebrow { color: var(--pf-teal-300); }

.listing-head__cta { margin-top: 14px; }
@media (min-width: 1000px) { .listing-head__cta { display: none; } }
.site-info__legal { display: grid; gap: 4px; }

/* Sell/let form: optional photo and document upload. */
.pf-webform__field--file { grid-column: 1 / -1; }
.pf-webform input[type="file"] {
	width: 100%; padding: 14px; font: 400 .9375rem/1.4 var(--pf-font); color: var(--pf-ink);
	background: var(--pf-white); border: 1px dashed var(--pf-line-strong); border-radius: var(--pf-radius-sm);
}
.pf-webform input[type="file"]:focus-visible { outline: 2px solid var(--pf-accent, #3e6b6a); outline-offset: 2px; }

/* Customer / client portal (rendered by the PlaceFound CRM plugin at /portal/). */
.pf-portal-nav { margin: 24px 0 32px; border-bottom: 1px solid var(--pf-line); }
.pf-portal-nav ul { display: flex; flex-wrap: wrap; gap: 4px 20px; list-style: none; margin: 0; padding: 0; }
.pf-portal-nav a { display: inline-block; padding: 10px 0; color: var(--pf-ink); text-decoration: none; border-bottom: 2px solid transparent; font-weight: 500; }
.pf-portal-nav a[aria-current="page"], .pf-portal-nav a:hover { border-bottom-color: var(--pf-accent, #3e6b6a); }
.pf-portal-body > * + * { margin-top: 24px; }
.pf-portal-body .card + .card { margin-top: 16px; }
.pf-portal-list { list-style: none; margin: 0; padding: 0; }
.pf-portal-list li { padding: 10px 0; border-bottom: 1px solid var(--pf-line); }
.pf-portal-list li:last-child { border-bottom: 0; }
.pf-portal-bar { height: 8px; border-radius: 4px; background: var(--pf-line); overflow: hidden; max-width: 480px; margin: 12px 0 6px; }
.pf-portal-bar span { display: block; height: 100%; background: var(--pf-accent, #3e6b6a); }
.pf-portal-steps { list-style: none; margin: 12px 0 0; padding: 0; }
.pf-portal-steps li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0 8px 22px; border-bottom: 1px solid var(--pf-line); position: relative; }
.pf-portal-steps li::before { content: ""; position: absolute; left: 0; top: 14px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--pf-line-strong); }
.pf-portal-steps li.is-done::before { background: var(--pf-accent, #3e6b6a); border-color: var(--pf-accent, #3e6b6a); }
.pf-portal-steps li.is-in_progress::before { border-color: var(--pf-accent, #3e6b6a); }
.pf-portal-property details { margin-top: 10px; }
.pf-portal-property summary { cursor: pointer; font-weight: 500; }

/* Portal messages and saved properties. */
.pf-portal-thread { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 12px; }
.pf-portal-thread li { max-width: 80%; padding: 12px 16px; border-radius: var(--pf-radius-sm, 6px); background: var(--pf-paper, #f6f4ef); }
.pf-portal-thread li.is-mine { justify-self: end; background: var(--pf-white, #fff); border: 1px solid var(--pf-line); }
.pf-portal-thread p { margin: 0; }
.pf-portal-thread p + p { margin-top: 6px; }
.pf-save-form { margin: 0 0 16px; }
.pf-inline { display: inline; margin-left: 8px; }
