/* =========================================================================
   Propeka marketplace presentation

   Shared shell (header, footer), listing cards and the homepage composition.
   Scoped to body.pk-public so the publisher workspace is untouched here.

   Visual reference: Marketplace refinement 2026-09-14 candidate 1 (F01 home,
   copy and claim controls), the owner's 2026-09-14 concept boards (full-width
   property hero, search card with intent tabs, four-up card row, dark listing
   band) and a red wordmark with a restrained red action.
   ========================================================================= */

:root {
	--pk-action: #c50021;
	--pk-action-hover: #a3001b;
	--pk-hero-bg: #f7f3ee;
	--pk-ink-soft: #3b4a59;
	--pk-muted: #5d6b79;
	--pk-line: #e4e9ee;
	--pk-shell: 1200px;
}

.pk-public {
	color: var(--pk-text);
}

.pk-hero__title,
.pk-section__title,
.pk-publish__title,
.pk-empty h2,
.pk-empty h3 {
	text-wrap: balance;
}

/* Typography follows the Houzez typography setting already loaded on this site
   (Plus Jakarta Sans); nothing here forces a second family. */
.pk-home,
.pk-footer {
	background: #fff;
}

.pk-container {
	width: 100%;
	max-width: calc(var(--pk-shell, 1200px) + 2 * var(--pk-gutter));
	margin-inline: auto;
	padding-inline: var(--pk-gutter);
}

.pk-home *,
.pk-footer * {
	box-sizing: border-box;
}

.pk-home :focus-visible,
.pk-footer :focus-visible,
.pk-public #header-section :focus-visible,
.pk-public .pk-auth-notice :focus-visible,
.houzez-dashboard .pk-auth-notice--workspace :focus-visible,
.pk-public .login-register-tabs .nav-link:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

.pk-icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
}

/* ---------------------------------------------------------------------
   Buttons, links, chips
   ------------------------------------------------------------------ */

.pk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 22px;
	border: 1px solid transparent;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--pk-transition), border-color var(--pk-transition), color var(--pk-transition), box-shadow var(--pk-transition);
}

.pk-btn:hover,
.pk-btn:focus {
	text-decoration: none;
}

.pk-btn--primary {
	background: var(--pk-action);
	color: #fff;
}

.pk-btn--primary:hover,
.pk-btn--primary:focus {
	background: var(--pk-action-hover);
	color: #fff;
}

.pk-btn--secondary {
	background: #fff;
	border-color: var(--pk-n200);
	color: var(--pk-ink);
}

.pk-btn--secondary:hover,
.pk-btn--secondary:focus {
	border-color: var(--pk-ink);
	color: var(--pk-ink);
}

.pk-btn--lg {
	min-height: 56px;
	padding: 0 28px;
	font-size: 16px;
}

.pk-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--pk-action);
	font-weight: 700;
	font-size: 15px;
	white-space: nowrap;
	text-decoration: none;
}

.pk-link-arrow:hover {
	color: var(--pk-action-hover);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pk-chip {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--pk-ink);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.pk-chip:hover {
	border-color: var(--pk-ink);
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-eyebrow {
	margin: 0 0 12px;
	color: var(--pk-action);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}

.pk-eyebrow--muted {
	color: var(--pk-muted);
}

.pk-eyebrow--light {
	color: #ff8a9b;
}

.pk-avatar {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--pk-n50);
	border: 1px solid var(--pk-line);
	color: var(--pk-ink);
	font-size: 11px;
	font-weight: 700;
	flex: none;
}

/* ---------------------------------------------------------------------
   Header (Houzez header v1 and mobile header, restyled)
   ------------------------------------------------------------------ */

.pk-public #header-section.header-v1 {
	background: #fff;
	border-bottom: 1px solid var(--pk-line);
	box-shadow: none;
}

.pk-public #header-section.header-v1 > .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public #header-section.header-v1 .header-inner-wrap,
.pk-public #header-section.header-v1 .navbar {
	min-height: 78px;
}

.pk-public #header-section .logo img {
	width: auto;
	height: 30px;
	max-width: none;
}

.pk-public #header-section .main-nav .navbar-nav {
	justify-content: flex-start !important; /* Bootstrap utility on the Houzez menu is !important */
	gap: 2px;
	margin-left: 36px;
}

.pk-public #header-section .main-nav .nav-link {
	padding: 10px 14px !important;
	border-radius: 8px;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.pk-public #header-section .main-nav .nav-link:hover,
.pk-public #header-section .main-nav .current-menu-item > .nav-link {
	background: var(--pk-n50);
	color: var(--pk-action);
}

.pk-public #header-section .login-register-nav {
	gap: 10px;
}

.pk-public #header-section .login-register .login-link a,
.pk-public #header-section .login-register .register-link a {
	padding: 10px 12px;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
}

.pk-public #header-section .login-register .login-link a:hover {
	color: var(--pk-action);
}

.pk-public #header-section .btn-create-listing,
.pk-public .header-mobile .btn-create-listing {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 44px;
	text-transform: none;
}

.pk-public #header-section .btn-create-listing:hover {
	background: var(--pk-action-hover);
	color: #fff;
}

.pk-public .header-mobile {
	min-height: 64px;
	background: #fff;
	border-bottom: 1px solid var(--pk-line);
}

.pk-public .header-mobile .logo img {
	width: auto;
	height: 26px;
}

.pk-public .header-mobile .btn {
	min-width: 44px;
	min-height: 44px;
	color: var(--pk-ink);
	font-size: 20px;
}

/* ---------------------------------------------------------------------
   Hero with search
   ------------------------------------------------------------------ */

.pk-hero {
	position: relative;
	z-index: 2; /* the location listbox may extend below the hero */
	background: var(--pk-hero-bg);
	isolation: isolate;
}

.pk-hero__media {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(54vw, 880px);
	z-index: -1;
	overflow: hidden;
}

.pk-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 58% 55%;
}

.pk-hero__media::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, var(--pk-hero-bg) 0%, rgba(247, 243, 238, 0.9) 14%, rgba(247, 243, 238, 0.35) 40%, rgba(247, 243, 238, 0) 62%);
}

.pk-hero__media::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	z-index: 1;
	height: 90px;
	background: linear-gradient(0deg, rgba(13, 35, 56, 0.28), rgba(13, 35, 56, 0));
}

.pk-hero__media-label {
	position: absolute;
	right: 16px;
	bottom: 14px;
	z-index: 2;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(13, 35, 56, 0.72);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.pk-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 540px;
	padding-block: 64px 56px;
}

.pk-hero__copy {
	max-width: 600px;
}

.pk-hero__title {
	margin: 0 0 18px;
	color: var(--pk-ink);
	font-size: clamp(2.5rem, 1.4rem + 3.2vw, 4.25rem);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.02;
}

.pk-dot {
	margin-left: -0.08em;
	color: var(--pk-red);
}

.pk-hero__lead {
	max-width: 540px;
	margin: 0 0 32px;
	color: var(--pk-ink-soft);
	font-size: 18px;
	line-height: 1.6;
}

.pk-search {
	max-width: 820px;
}

.pk-search__intent {
	display: inline-flex;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.pk-tab {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.pk-tab input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pk-tab span {
	display: block;
	min-width: 112px;
	padding: 13px 26px 12px;
	border-radius: 12px 12px 0 0;
	background: rgba(255, 255, 255, 0.82);
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	transition: background-color var(--pk-transition), color var(--pk-transition);
}

.pk-tab + .pk-tab span {
	margin-left: 4px;
}

.pk-tab input:checked + span {
	background: var(--pk-action);
	color: #fff;
}

.pk-tab input:focus-visible + span {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

.pk-search__bar {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr) auto;
	gap: 10px;
	padding: 12px;
	border-radius: 0 16px 16px 16px;
	background: #fff;
	box-shadow: 0 18px 48px rgba(13, 35, 56, 0.14), 0 2px 6px rgba(13, 35, 56, 0.06);
}

.pk-search__field {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	min-height: 62px;
	padding: 8px 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	transition: border-color var(--pk-transition), box-shadow var(--pk-transition);
}

.pk-search__field:focus-within {
	border-color: var(--pk-ink);
	box-shadow: var(--pk-focus-ring);
}

.pk-search__label {
	margin: 0 0 2px;
	color: var(--pk-muted);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

.pk-select {
	width: 100%;
	height: 28px;
	padding: 0 22px 0 0;
	border: 0;
	background: transparent 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 1.5 5 5 5-5' fill='none' stroke='%230d2338' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right center;
	color: var(--pk-ink);
	font-size: 16px;
	font-weight: 600;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.pk-select:focus {
	outline: none;
}

.pk-search__submit {
	min-height: 62px;
	padding: 0 26px;
	border-radius: 10px;
	font-size: 16px;
}

.pk-search__quick {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
}

.pk-search__quick-label {
	margin-right: 4px;
	color: var(--pk-ink-soft);
	font-size: 13px;
	font-weight: 600;
}

/* ---------------------------------------------------------------------
   Location combobox (shared with results and listing submission)
   ------------------------------------------------------------------ */

.pk-location__control {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	color: var(--pk-ink);
}

.pk-location__control > .pk-icon {
	color: var(--pk-muted);
}

.pk-location__input {
	flex: 1;
	min-width: 0;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--pk-ink);
	font-size: 16px;
	font-weight: 600;
}

.pk-location__input::placeholder {
	color: #8794a1;
	font-weight: 400;
}

.pk-location__input:focus {
	outline: none;
}

.pk-location__clear {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin-right: -6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--pk-muted);
	cursor: pointer;
}

.pk-location__clear:hover {
	background: var(--pk-n50);
	color: var(--pk-ink);
}

.pk-location__clear[hidden] {
	display: none;
}

.pk-location__list {
	position: absolute;
	top: calc(100% + 8px);
	left: -1px;
	z-index: 40;
	width: max(100%, 340px);
	max-height: 340px;
	margin: 0;
	padding: 6px;
	overflow-y: auto;
	border: 1px solid var(--pk-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--pk-shadow-3);
	list-style: none;
}

.pk-location__list[hidden] {
	display: none;
}

.pk-location__option {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	padding: 9px 12px;
	border-radius: 8px;
	cursor: pointer;
}

.pk-location__label {
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
}

.pk-location__detail {
	grid-column: 1;
	color: var(--pk-muted);
	font-size: 12.5px;
	line-height: 1.35;
}

.pk-location__count {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--pk-success-soft);
	color: var(--pk-success);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.pk-location__option--state .pk-location__label::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 8px 2px 0;
	border-radius: 50%;
	background: var(--pk-red);
}

.pk-location__option:hover,
.pk-location__option.is-active {
	background: var(--pk-n50);
	box-shadow: inset 3px 0 0 var(--pk-action);
}

.pk-location__note {
	padding: 10px 12px;
	color: var(--pk-muted);
	font-size: 14px;
}

.pk-location__more-btn {
	width: 100%;
	padding: 10px 12px;
	border: 0;
	border-top: 1px solid var(--pk-line);
	background: transparent;
	color: var(--pk-action);
	font-size: 14px;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.pk-location__message {
	position: absolute;
	top: calc(100% + 8px);
	left: -1px;
	z-index: 39;
	width: max(100%, 320px);
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #f3c1bd;
	border-radius: 10px;
	background: var(--pk-error-soft);
	color: var(--pk-error);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

.pk-location__message[hidden] {
	display: none;
}

.pk-location.has-error {
	border-color: var(--pk-error);
}

.pk-location.is-loading .pk-location__control > .pk-icon {
	animation: pk-pulse 900ms ease-in-out infinite;
}

@keyframes pk-pulse {
	50% { opacity: 0.35; }
}

/* ---------------------------------------------------------------------
   Preview strip and cues
   ------------------------------------------------------------------ */

.pk-preview-strip {
	padding-block: 10px;
	border-bottom: 1px solid #f0e2bb;
	background: var(--pk-warning-soft);
	color: #6a4a00;
	font-size: 13.5px;
	line-height: 1.45;
}

.pk-cues {
	border-bottom: 1px solid var(--pk-line);
	background: #fff;
}

.pk-cues__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pk-cue {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 28px 28px 28px 0;
}

.pk-cue + .pk-cue {
	padding-left: 28px;
	border-left: 1px solid var(--pk-line);
}

.pk-cue__icon {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--pk-n50);
	color: var(--pk-ink);
	flex: none;
}

.pk-cue__title {
	margin: 2px 0 4px;
	color: var(--pk-ink);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

.pk-cue p {
	margin: 0;
	color: var(--pk-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* ---------------------------------------------------------------------
   Sections
   ------------------------------------------------------------------ */

.pk-section {
	padding-block: 72px;
}

.pk-section + .pk-section {
	padding-top: 8px;
}

.pk-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
}

.pk-section__title {
	margin: 0;
	color: var(--pk-ink);
	font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.375rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.12;
}

.pk-section__lead {
	margin: 8px 0 0;
	color: var(--pk-muted);
	font-size: 16px;
	line-height: 1.5;
}

.pk-subhead {
	margin: 40px 0 16px;
	color: var(--pk-ink);
	font-size: 18px;
	font-weight: 700;
}

/* ---------------------------------------------------------------------
   Listing cards
   ------------------------------------------------------------------ */

.pk-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.pk-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--pk-shadow-1);
	transition: box-shadow var(--pk-transition), transform var(--pk-transition), border-color var(--pk-transition);
}

.pk-card:hover {
	border-color: var(--pk-n200);
	box-shadow: var(--pk-shadow-3);
	transform: translateY(-2px);
}

.pk-card:focus-within {
	box-shadow: var(--pk-shadow-3), 0 0 0 3px rgba(83, 102, 201, 0.35);
}

.pk-card__media {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--pk-n50);
}

.pk-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms cubic-bezier(0.2, 0.7, 0.4, 1);
}

.pk-card:hover .pk-card__img {
	transform: scale(1.03);
}

.pk-card__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 100%;
	background: repeating-linear-gradient(135deg, #f4f6f8 0 12px, #eef1f4 12px 24px);
	color: var(--pk-muted);
	font-size: 13px;
	font-weight: 600;
}

.pk-card__placeholder .pk-icon {
	width: 32px;
	height: 32px;
}

.pk-card__badges {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	max-width: calc(100% - 72px);
}

.pk-badge {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0 9px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.pk-badge--status {
	background: #fff;
	color: var(--pk-ink);
	box-shadow: 0 1px 2px rgba(13, 35, 56, 0.16);
}

.pk-badge--test {
	background: var(--pk-warning-soft);
	color: #6a4a00;
	box-shadow: 0 1px 2px rgba(13, 35, 56, 0.16);
}

.pk-card__illustrative {
	position: absolute;
	left: 12px;
	bottom: 10px;
	z-index: 2;
	padding: 3px 8px;
	border-radius: 999px;
	background: rgba(13, 35, 56, 0.66);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
}

.pk-card__save {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: var(--pk-ink);
	box-shadow: 0 2px 8px rgba(13, 35, 56, 0.18);
	cursor: pointer;
}

.pk-card__save:hover {
	color: var(--pk-action);
}

.pk-card__save .houzez-icon {
	font-size: 18px;
}

.pk-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 18px 16px;
}

.pk-card__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}

.pk-price {
	color: var(--pk-ink);
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
	white-space: nowrap;
}

.pk-price .price-postfix,
.pk-price small {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
}

.pk-price--missing {
	color: var(--pk-muted);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
}

.pk-card__type {
	overflow: hidden;
	color: var(--pk-muted);
	font-size: 12.5px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pk-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin: 8px 0 0;
	padding: 0;
	color: var(--pk-ink-soft);
	font-size: 14px;
	list-style: none;
}

.pk-card__facts strong {
	color: var(--pk-ink);
	font-weight: 700;
}

.pk-card__title {
	margin: 12px 0 2px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

.pk-card__link {
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pk-card__link:hover,
.pk-card__link:focus {
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-card__link:focus-visible {
	outline: none;
}

.pk-card__locality {
	margin: 0;
	color: var(--pk-muted);
	font-size: 14px;
	line-height: 1.45;
}

.pk-card__contact {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--pk-line);
	color: var(--pk-muted);
	font-size: 13px;
	transform: translateY(0);
}

.pk-card__locality + .pk-card__contact {
	margin-top: 14px;
}

.pk-card__contact strong {
	color: var(--pk-ink);
	font-weight: 600;
}

.pk-card__contact-text {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pk-card__go {
	color: var(--pk-ink);
	transition: transform var(--pk-transition);
}

.pk-card:hover .pk-card__go {
	transform: translateX(3px);
}

.pk-card--invite {
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
	padding: 28px;
	border-style: dashed;
	border-color: var(--pk-n300);
	background: var(--pk-n25);
	box-shadow: none;
}

.pk-card--invite:hover {
	transform: none;
	box-shadow: none;
}

.pk-card--invite .pk-card__title {
	margin: 6px 0 0;
	color: var(--pk-ink);
	font-size: 20px;
}

.pk-card--invite p {
	margin: 0 0 8px;
	color: var(--pk-muted);
}

.pk-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 56px 24px;
	border: 1px dashed var(--pk-n300);
	border-radius: 16px;
	background: var(--pk-n25);
	text-align: center;
}

.pk-empty h3 {
	margin: 8px 0 0;
	color: var(--pk-ink);
	font-size: 22px;
	font-weight: 700;
}

.pk-empty p {
	max-width: 520px;
	margin: 0;
	color: var(--pk-muted);
}

.pk-empty__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 12px;
}

/* ---------------------------------------------------------------------
   Browse by type and place
   ------------------------------------------------------------------ */

.pk-types,
.pk-places {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-types {
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}

.pk-type {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	padding: 16px;
	border: 1px solid var(--pk-line);
	border-radius: 12px;
	background: #fff;
	color: var(--pk-ink);
	text-decoration: none;
	transition: border-color var(--pk-transition), box-shadow var(--pk-transition);
}

.pk-type:hover,
.pk-type:focus {
	border-color: var(--pk-ink);
	box-shadow: var(--pk-shadow-2);
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-type__icon {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 10px;
	background: var(--pk-n50);
	flex: none;
}

.pk-type__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.pk-type__label {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.pk-type__hint {
	color: var(--pk-muted);
	font-size: 13px;
}

.pk-type__go {
	color: var(--pk-muted);
}

.pk-places {
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
}

.pk-place {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 16px;
	border-radius: 10px;
	border: 1px solid var(--pk-line);
	background: #fff;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.pk-place:hover,
.pk-place:focus {
	border-color: var(--pk-ink);
	background: #fff;
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-place .pk-icon {
	color: var(--pk-action);
}

.pk-place__label {
	flex: 1;
	min-width: 0;
}

.pk-place__count {
	color: var(--pk-muted);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

/* ---------------------------------------------------------------------
   Listing band
   ------------------------------------------------------------------ */

.pk-publish {
	position: relative;
	margin-top: 40px;
	padding-block: 80px;
	overflow: hidden;
	background: radial-gradient(900px 420px at 85% 0%, rgba(237, 0, 40, 0.22), rgba(237, 0, 40, 0) 70%), var(--pk-ink);
	color: #fff;
}

.pk-publish__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: 64px;
}

.pk-publish__title {
	margin: 0 0 16px;
	color: #fff;
	font-size: clamp(2rem, 1.3rem + 1.9vw, 2.875rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.08;
}

.pk-publish__lead {
	max-width: 520px;
	margin: 0 0 28px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 17px;
	line-height: 1.6;
}

.pk-publish__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
}

.pk-link-light {
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pk-link-light:hover,
.pk-link-light:focus {
	color: #fff;
	text-decoration-thickness: 2px;
}

.pk-steps {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-step {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 22px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.05);
}

.pk-step__num {
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 2px solid var(--pk-red);
	border-radius: 50%;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	flex: none;
}

.pk-step h3 {
	margin: 4px 0 4px;
	color: #fff;
	font-size: 17px;
	font-weight: 700;
}

.pk-step p {
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 14.5px;
	line-height: 1.5;
}

/* ---------------------------------------------------------------------
   Footer (columns above the native Houzez footer bar)
   ------------------------------------------------------------------ */

.pk-footer {
	padding-block: 56px 36px;
	border-top: 1px solid var(--pk-line);
	background: var(--pk-n50) !important;
}

.pk-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.2fr);
	gap: 40px;
}

.pk-footer__logo img {
	display: block;
	width: auto;
	height: 30px;
}

.pk-footer__lead {
	max-width: 360px;
	margin: 16px 0 10px;
	color: var(--pk-ink-soft);
	font-size: 14.5px;
	line-height: 1.6;
}

.pk-footer__scope {
	margin: 0;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 600;
}

.pk-footer__heading {
	margin: 4px 0 14px;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.pk-footer__col ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-footer__col li + li {
	margin-top: 10px;
}

.pk-footer__col a {
	color: var(--pk-ink-soft);
	font-size: 14.5px;
	text-decoration: none;
}

.pk-footer__col a:hover,
.pk-footer__col a:focus {
	color: var(--pk-action);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pk-footer__note p {
	margin: 0;
	color: var(--pk-muted);
	font-size: 13.5px;
	line-height: 1.55;
}

.pk-public .footer-wrap .footer-bottom-wrap {
	border-top: 1px solid var(--pk-line);
	background: var(--pk-n50) !important; /* Houzez prints the option colour inline */
	color: var(--pk-muted);
	font-size: 13px;
}

.pk-public .footer-wrap .footer-bottom-wrap .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public .footer-wrap .footer-copyright,
.pk-public .footer-wrap .footer-nav .nav-link {
	color: var(--pk-muted) !important;
	font-size: 13px;
}

.pk-public .footer-wrap .footer-nav .nav-link:hover {
	color: var(--pk-action) !important;
}

/* ---------------------------------------------------------------------
   Search results (native Houzez results page)
   ------------------------------------------------------------------ */

.pk-public .listing-wrap {
	padding-bottom: 72px;
	background: #fff;
}

.pk-public .listing-wrap > .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public .listing-wrap .page-title-wrap {
	padding-top: 28px;
	padding-bottom: 8px;
}

.pk-public .listing-wrap .page-title h1 {
	margin: 6px 0 0;
	color: var(--pk-ink);
	font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.375rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.12;
	text-wrap: balance;
}

.pk-results-bar {
	position: relative;
	z-index: 5;
	margin: 12px 0 16px;
	padding: 10px;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--pk-shadow-2);
}

.pk-results-bar__row {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 10px;
}

.pk-results-bar__more {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--pk-line);
}

.pk-results-bar__toggle {
	display: none;
	align-items: center;
	gap: 8px;
	min-height: 58px;
	padding: 0 16px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.pk-results-bar__toggle[aria-expanded="true"] {
	border-color: var(--pk-ink);
}

.pk-results-bar__count {
	display: inline-grid;
	place-items: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--pk-action);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.pk-money {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--pk-ink);
	font-size: 16px;
	font-weight: 600;
}

.pk-input {
	width: 100%;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--pk-ink);
	font-size: 16px;
	font-weight: 600;
}

.pk-input::placeholder {
	color: #8794a1;
	font-weight: 400;
}

.pk-input:focus {
	outline: none;
}

.pk-results-bar__field.has-error {
	border-color: var(--pk-error);
}

.pk-results-bar__field.is-disabled {
	opacity: 0.55;
}

.pk-results-bar__note,
.pk-results-bar__error {
	grid-column: 1 / -1;
	margin: 0;
	font-size: 13.5px;
	line-height: 1.45;
}

.pk-results-bar__note {
	color: var(--pk-muted);
}

.pk-results-bar__error {
	color: var(--pk-error);
	font-weight: 600;
}

.pk-results-bar__note[hidden],
.pk-results-bar__error[hidden] {
	display: none;
}

.pk-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 20px;
}

.pk-chip--remove {
	gap: 6px;
	background: var(--pk-n50);
}

.pk-chip--remove span {
	color: var(--pk-muted);
	font-size: 15px;
	line-height: 1;
}

.pk-chip--remove:hover span {
	color: var(--pk-action);
}

.pk-chips__clear {
	margin-left: 4px;
	color: var(--pk-action);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Visible labels for the native inquiry form (added by propeka-forms.js). */
.pk-field-label {
	display: block;
	margin: 0 0 6px;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.pk-required {
	color: var(--pk-action);
}

.pk-optional {
	color: var(--pk-muted);
	font-weight: 400;
}

.pk-badge--inline {
	position: relative;
	top: -0.35em;
	margin-left: 4px;
	vertical-align: middle;
	background: var(--pk-warning-soft);
	color: #6a4a00;
	font-size: 13px;
	letter-spacing: 0;
}

.pk-results-bar__field {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	min-height: 58px;
	padding: 7px 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
}

.pk-results-bar__field:focus-within {
	border-color: var(--pk-ink);
	box-shadow: var(--pk-focus-ring);
}

.pk-results-bar__submit {
	min-height: 58px;
}

.pk-results-bar__clear {
	padding: 0 8px;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

.pk-public .listing-tools-wrap {
	margin-bottom: 8px;
	color: var(--pk-ink);
	font-size: 15px;
}

.pk-public .listing-tools-wrap strong {
	font-weight: 600;
}

.pk-public .search-no-results-found-wrap {
	display: none;
}

.pk-empty--results {
	margin: 8px 0 32px;
}

.pk-empty--results h2 {
	margin: 8px 0 0;
	color: var(--pk-ink);
	font-size: 22px;
	font-weight: 700;
}

/* Grid and list arrangements of the same card inside native containers. */
.pk-public .listing-view.grid-view,
.pk-public .listing-view.grid-view.card-deck {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
}

.pk-public .listing-view.list-view {
	display: grid;
	gap: 18px;
	margin: 0;
}

.pk-public .listing-view > .pk-card {
	margin: 0;
}

.pk-public .listing-view.list-view .pk-card {
	flex-direction: row;
}

.pk-public .listing-view.list-view .pk-card__media {
	flex: 0 0 38%;
	aspect-ratio: auto;
	min-height: 220px;
}

.pk-public .listing-view.list-view .pk-card__body {
	padding: 20px 24px;
}

/* ---------------------------------------------------------------------
   Property detail (native Houzez top area v6)
   ------------------------------------------------------------------ */

.pk-detail-notice {
	margin: 0 0 18px;
	padding: 12px 14px;
	border: 1px solid #f0e2bb;
	border-radius: 10px;
	background: var(--pk-warning-soft);
	color: #6a4a00;
	font-size: 14px;
	line-height: 1.5;
}

.pk-back-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 20px 0 0;
	padding: 8px 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.pk-back-link::before {
	content: "\2190";
}

.pk-back-link:hover {
	border-color: var(--pk-ink);
	color: var(--pk-ink);
	text-decoration: none;
}

/* ---------------------------------------------------------------------
   Listing submission: location selection
   ------------------------------------------------------------------ */

.pk-native-location-hidden {
	display: none !important;
}

.pk-submit-location {
	position: relative;
}

.pk-submit-location .pk-location__control.form-control {
	display: flex;
	align-items: center;
	gap: 8px;
	height: auto;
	min-height: 48px;
}

.pk-submit-location .pk-location__clear {
	font-size: 22px;
	line-height: 1;
}

.pk-submit-location__state {
	margin: 8px 0 0;
	color: #6a4a00;
	font-size: 13px;
	font-weight: 600;
}

.pk-submit-location__state:empty {
	display: none;
}

.pk-submit-location__state.is-verified {
	color: var(--pk-success);
}

.pk-submit-location__hint {
	margin: 6px 0 0;
	color: var(--pk-muted);
	font-size: 13px;
	line-height: 1.5;
}

/* ---------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */

@media (max-width: 1199.98px) {
	.pk-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.pk-hero__media {
		width: 50vw;
	}
}

@media (max-width: 1023.98px) {
	.pk-hero__media {
		display: none;
	}

	.pk-hero {
		background: linear-gradient(180deg, var(--pk-hero-bg) 0%, #fbf9f6 100%);
	}

	.pk-hero__inner {
		min-height: 0;
		padding-block: 48px 40px;
	}

	.pk-search {
		max-width: none;
	}

	.pk-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-cue,
	.pk-cue + .pk-cue {
		flex-direction: column;
		gap: 10px;
		padding: 22px 16px 22px 0;
	}

	.pk-cue + .pk-cue {
		padding-left: 16px;
	}

	.pk-publish__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.pk-results-bar__row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
	}

	.pk-results-bar__field--location {
		grid-column: 1 / -1;
	}

	.pk-results-bar__submit {
		grid-column: 1 / -1;
	}

	.pk-results-bar__toggle {
		display: inline-flex;
	}

	.pk-results-bar__more {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-results-bar__more:not(.is-open) {
		display: none;
	}

	.pk-public .listing-view.grid-view,
	.pk-public .listing-view.grid-view.card-deck {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	/* On a phone the first listings matter more than the capability cues. */
	.pk-home {
		display: flex;
		flex-direction: column;
	}

	.pk-cues {
		order: 3;
		border-top: 1px solid var(--pk-line);
	}

	.pk-newest {
		order: 2;
	}

	.pk-browse {
		order: 4;
	}

	.pk-publish {
		order: 5;
	}

	.pk-cues__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pk-cue,
	.pk-cue + .pk-cue {
		flex-direction: row;
		gap: 16px;
		padding: 18px 0;
		border-left: 0;
	}

	.pk-cue + .pk-cue {
		border-top: 1px solid var(--pk-line);
	}

	.pk-hero__inner {
		padding-block: 32px 28px;
	}

	.pk-hero__title {
		font-size: clamp(2.25rem, 1.6rem + 3vw, 2.75rem);
	}

	.pk-hero__lead {
		margin-bottom: 24px;
		font-size: 16px;
	}

	.pk-search__intent {
		display: flex;
	}

	.pk-tab {
		flex: 1;
	}

	.pk-tab span {
		min-width: 0;
	}

	.pk-search__bar {
		grid-template-columns: minmax(0, 1fr);
		border-radius: 0 0 16px 16px;
	}

	.pk-search__submit {
		width: 100%;
		min-height: 54px;
	}

	.pk-location__list,
	.pk-location__message {
		width: calc(100% + 2px);
	}

	.pk-section {
		padding-block: 48px;
	}

	.pk-section__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		margin-bottom: 20px;
	}

	.pk-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.pk-card__media {
		aspect-ratio: 16 / 10;
	}

	.pk-publish {
		padding-block: 56px;
	}

	.pk-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.pk-browse {
		padding-top: 40px !important;
	}

	.pk-types {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.pk-type {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.pk-type__go {
		display: none;
	}

	/* W11: three rows instead of five on phones — place; sale/rent beside type;
	   More filters beside Update results — so the first results reach the fold. */
	.pk-results-bar__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.pk-results-bar__row > .pk-results-bar__field--location {
		grid-column: 1 / -1;
	}

	.pk-results-bar__row > .pk-results-bar__field,
	.pk-results-bar__toggle,
	.pk-results-bar__submit {
		min-height: 54px;
	}

	.pk-results-bar__submit {
		grid-column: auto;
		width: 100%;
		padding-inline: 12px;
	}

	.pk-results-bar__toggle {
		justify-content: center;
		padding-inline: 10px;
	}

	.pk-results-bar__more {
		grid-template-columns: minmax(0, 1fr);
	}

	.pk-public .listing-view.grid-view,
	.pk-public .listing-view.grid-view.card-deck,
	.pk-public .listing-view.list-view {
		grid-template-columns: minmax(0, 1fr);
	}

	.pk-public .listing-view.list-view .pk-card {
		flex-direction: column;
	}

	.pk-public .listing-view.list-view .pk-card__media {
		flex: none;
		aspect-ratio: 16 / 10;
		min-height: 0;
	}
}

@media (max-width: 359.98px) {
	.pk-tab span {
		padding-inline: 10px;
	}

	.pk-price {
		font-size: 21px;
	}

	.pk-step {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pk-card,
	.pk-card__img,
	.pk-card__go,
	.pk-btn {
		transition: none;
	}

	.pk-card:hover,
	.pk-card:hover .pk-card__img {
		transform: none;
	}

	.pk-location.is-loading .pk-location__control > .pk-icon {
		animation: none;
	}
}

/* Native results containers are Bootstrap rows; the grid above replaces the
   row-column widths and gutters for Propeka cards. */
.pk-public .listing-view.row {
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
	margin: 0;
}

.pk-public .listing-view.row > .pk-card {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
}

/* ---------------------------------------------------------------------
   Property detail layout (native top area v6, restyled)
   ------------------------------------------------------------------ */

.pk-public .property-wrap {
	padding-bottom: 72px;
	background: #fff;
}

.pk-public .property-wrap .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public .property-wrap .page-title-wrap {
	padding-top: 20px;
	padding-bottom: 24px;
	background: #fff;
}

.pk-public .property-wrap .breadcrumb-wrap,
.pk-public .property-wrap .breadcrumb-wrap a {
	font-size: 13px;
}

.pk-public .property-header-wrap {
	align-items: flex-end !important;
	gap: 24px;
}

.pk-public .property-title-wrap .page-title h1 {
	margin: 0;
	color: var(--pk-ink);
	font-size: clamp(1.625rem, 1.2rem + 1.1vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
	text-wrap: balance;
}

/* PKUSW-37: under the entity heading, its intent line and the publisher's headline. */
.pk-public .property-title-wrap .pk-entity-intent,
.pk-public .mobile-property-title .pk-entity-intent {
	margin: 6px 0 0;
	color: var(--pk-ink);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.35;
}

.pk-public .property-title-wrap .pk-entity-tagline,
.pk-public .mobile-property-title .pk-entity-tagline {
	margin: 4px 0 0;
	color: var(--pk-text-secondary);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.pk-public .property-title-wrap .label,
.pk-public .property-labels-wrap .label,
.pk-public .property-title-wrap .hz-label {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0 9px;
	border-radius: 6px;
	background: var(--pk-success-soft) !important;
	color: var(--pk-success) !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.pk-public .property-price-wrap .item-price .price,
.pk-public .property-price-wrap .price {
	color: var(--pk-ink);
	font-size: clamp(1.625rem, 1.2rem + 1.1vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pk-public .property-item-tools .item-tool > span,
.pk-public .property-item-tools .item-tool > a,
.pk-public .property-item-tools .item-tool .dropdown-toggle {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--pk-n200);
	border-radius: 50%;
	background: #fff;
	color: var(--pk-ink);
}

.pk-public .property-banner {
	background: #fff;
}

.pk-public .hs-gallery-v4-grid {
	gap: 10px;
	padding-bottom: 20px !important;
}

.pk-public .hs-gallery-v4-grid-item {
	overflow: hidden;
	border-radius: 14px;
}

.pk-public .hs-gallery-v4-grid-item img {
	transition: transform 400ms cubic-bezier(0.2, 0.7, 0.4, 1);
}

.pk-public .hs-gallery-v4-grid-item:hover img {
	transform: scale(1.02);
}

.pk-public .property-overview-data {
	padding: 6px 0;
	border-top: 1px solid var(--pk-line);
	border-bottom: 1px solid var(--pk-line);
	color: var(--pk-ink);
}

.pk-public .property-overview-data strong,
.pk-public .property-overview-data .hz-meta-label {
	color: var(--pk-ink);
	font-weight: 700;
}

.pk-public .property-view .property-section-wrap {
	margin-bottom: 16px;
}

.pk-public .property-view .block-wrap {
	padding: 24px 28px;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: none;
}

.pk-public .property-view .block-title-wrap {
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--pk-line);
}

.pk-public .property-view .block-title-wrap h2 {
	margin: 0;
	color: var(--pk-ink);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.pk-public .property-view .block-content-wrap {
	color: var(--pk-ink-soft);
	font-size: 15.5px;
	line-height: 1.65;
}

.pk-public .property-view .detail-wrap {
	padding: 18px 20px;
	border: 1px solid var(--pk-line);
	border-radius: 12px;
	background: var(--pk-n25) !important;
}

.pk-public .property-view .detail-wrap li,
.pk-public .property-view .address-wrap li {
	border-color: var(--pk-line) !important;
	color: var(--pk-ink-soft);
}

.pk-public .property-view .detail-wrap strong,
.pk-public .property-view .address-wrap strong {
	color: var(--pk-ink);
}

/* No confirmed coordinates and no released map provider: no empty map box. */
.pk-no-map #property-address-wrap .block-map-wrap {
	display: none;
}

/* Approximate-area map (no pin of its own): no marker, so no address is implied. */
.pk-map-approx .leaflet-marker-pane,
.pk-map-approx .leaflet-shadow-pane {
	display: none;
}

/* Contact rail */
.pk-public .property-wrap .bt-sidebar-wrap .widget-wrap {
	padding: 24px !important;
	border: 1px solid var(--pk-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--pk-shadow-3);
}

.pk-contact-title {
	margin: 0 0 16px;
	color: var(--pk-ink);
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.pk-public .property-wrap .bt-sidebar-wrap .form-control,
.pk-public .property-wrap .bt-sidebar-wrap .bootstrap-select > .dropdown-toggle {
	min-height: 48px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	color: var(--pk-ink);
	font-size: 15px;
}

.pk-public .property-wrap .bt-sidebar-wrap textarea.form-control {
	min-height: 110px;
}

.pk-public .property-wrap .bt-sidebar-wrap .form-control:focus {
	border-color: var(--pk-ink);
	box-shadow: var(--pk-focus-ring);
}

.pk-public .property-wrap .bt-sidebar-wrap .btn-secondary,
.pk-public .property-wrap .bt-sidebar-wrap .houzez_agent_property_form,
.pk-public .property-wrap .bt-sidebar-wrap button[type="submit"],
.pk-public .property-wrap .bt-sidebar-wrap .btn-full-width {
	min-height: 50px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action) !important;
	color: #fff !important;
	font-size: 16px;
	font-weight: 700;
}

.pk-public .property-wrap .bt-sidebar-wrap .btn-secondary:hover,
.pk-public .property-wrap .bt-sidebar-wrap button[type="submit"]:hover {
	background: var(--pk-action-hover) !important;
}

.pk-public .property-wrap .bt-sidebar-wrap .agent-details,
.pk-public .property-wrap .bt-sidebar-wrap .agent-information {
	color: var(--pk-ink);
}

.pk-public .property-wrap .bt-sidebar-wrap .form-group {
	margin-bottom: 12px;
}

@media (max-width: 767.98px) {
	.pk-public .property-view .block-wrap {
		padding: 18px;
	}

	.pk-public .hs-gallery-v4-grid-item {
		border-radius: 0;
	}
}

/* A shorter photo mosaic keeps price, facts and contact near the fold. */
@media (min-width: 992px) {
	.pk-public .hs-gallery-v4-grid-item {
		height: 460px;
	}

	.pk-public .hs-gallery-v4-grid-item > .img-wrap-1,
	.pk-public .hs-gallery-v4-grid-item > .img-wrap {
		overflow: hidden;
	}

	.pk-public .hs-gallery-v4-grid-item > .img-wrap-1 {
		height: 100%;
	}

	.pk-public .hs-gallery-v4-grid-item > .img-wrap {
		height: calc(50% - 5px);
	}

	.pk-public .hs-gallery-v4-grid-item img.img-fluid {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

.pk-inquiry-note {
	margin: 12px 0 14px;
	color: var(--pk-muted);
	font-size: 13px;
	line-height: 1.5;
}

/* Submission picker: open the list directly under the input, above the hint. */
.pk-submit-location > label {
	display: block;
}

.pk-submit-location .pk-location__list,
.pk-submit-location .pk-location__message {
	top: calc(1.5em + 58px);
	left: 0;
	width: 100%;
}

.pk-submit-location__hint {
	margin-bottom: 18px;
}

.pk-submit-state__select {
	padding-right: 36px;
	background: #fff 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 1.5 5 5 5-5' fill='none' stroke='%230d2338' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

/* Native results tools: one primary action per screen, so save search is secondary. */
.pk-public .save-search-form-wrap .btn,
.pk-public .listing-tools-wrap .save-search-btn {
	min-height: 44px;
	border: 1px solid var(--pk-n200) !important;
	border-radius: 10px;
	background: #fff !important;
	color: var(--pk-ink) !important;
	font-weight: 600;
}

.pk-public .save-search-form-wrap .btn:hover {
	border-color: var(--pk-ink) !important;
}

.pk-public .listing-tools-wrap .sort-by {
	margin-right: 12px;
	color: var(--pk-muted);
	font-size: 14px;
}

/* Zero results: the panel above explains the state; the native count line would read "0 listing". */
.pk-public article:has(.pk-empty--results) ~ .listing-tools-wrap strong {
	visibility: hidden;
}

/* Nothing to sort on an empty result; Save Search stays (it alerts on the first listing). */
.pk-public article:has(.pk-empty--results) ~ .listing-tools-wrap .sort-by {
	display: none;
}

/* Phones hide Save Search (Houzez, below 768 px), so the empty bar goes too. */
@media (max-width: 767.98px) {
	.pk-public article:has(.pk-empty--results) ~ .listing-tools-wrap {
		display: none;
	}
}

/* Mobile detail: the footer is outside .main-wrap, so reserve bar space there. */
@media (max-width: 991.98px) {
	.pk-public.single-property .footer-wrap {
		padding-bottom: calc(var(--pk-contact-bar-height, 85px) + 16px);
	}

	.pk-public .mobile-property-title .item-price,
	.pk-public .property-title-price-wrap-mobile .item-price,
	.pk-public .property-price-wrap-mobile .price {
		color: var(--pk-ink);
		font-size: 24px;
		font-weight: 800;
	}

	.pk-public .mobile-property-contact {
		border-top: 1px solid var(--pk-line);
		box-shadow: 0 -6px 18px rgba(13, 35, 56, 0.08);
	}

	/* W11: the message button is the page's primary action, as on desktop. */
	.pk-public .mobile-property-contact .btn:not(.btn-secondary-outlined) {
		border-color: var(--pk-red) !important;
		background: var(--pk-red) !important;
		color: #fff !important;
	}

	/* W11: favorite and share sit in the title card's corner instead of a card of
	   their own above it. */
	.pk-public .mobile-top-wrap {
		position: relative;
	}

	.pk-public .mobile-top-wrap .mobile-property-tools.block-wrap {
		position: absolute;
		top: 14px;
		right: 14px;
		z-index: 2;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: none !important;
		box-shadow: none !important;
	}

	/* Only the badge row shares its line with the two tools. */
	.pk-public .mobile-top-wrap .mobile-property-title > .d-flex:first-child {
		min-height: 40px;
		padding-right: 96px;
	}

	/* Key facts under the price (filled by propeka_detail_refinements). */
	.pk-mobile-facts {
		display: flex;
		flex-wrap: wrap;
		gap: 6px 16px;
		margin: 10px 0 0;
		padding: 12px 0 0;
		border-top: 1px solid var(--pk-n100);
		list-style: none;
		color: var(--pk-text-secondary);
		font-size: 0.9375rem;
	}

	.pk-mobile-facts li {
		display: inline-flex;
		gap: 6px;
		align-items: center;
	}

	.pk-mobile-facts strong {
		color: var(--pk-ink);
		font-weight: 700;
	}

	.pk-mobile-facts .pk-icon {
		width: 18px;
		height: 18px;
		color: var(--pk-n500);
	}
}

/* ---- Detail (W11): market status is availability, not success. The green
   status chip read as "approved"; it now matches the cards' neutral badge. ---- */
.pk-public .property-labels-wrap .label-status {
	border: 1px solid var(--pk-n200) !important;
	background: #fff !important;
	color: var(--pk-ink) !important;
	font-weight: 600;
}

/* Desktop gallery: how many photos there are, and a way in without guessing. */
.pk-public .hs-gallery-v4-grid-item-01 {
	position: relative;
}

.pk-gallery-count {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	display: inline-flex;
	gap: 8px;
	align-items: center;
	min-height: 40px;
	padding: 8px 14px;
	border: 1px solid rgba(13, 35, 56, 0.08);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	color: var(--pk-ink);
	font-size: 0.875rem;
	font-weight: 700;
	box-shadow: var(--pk-shadow-2);
	cursor: pointer;
}

.pk-gallery-count:hover,
.pk-gallery-count:focus-visible {
	background: #fff;
	box-shadow: var(--pk-shadow-3);
}

.pk-gallery-count:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

.pk-gallery-count .pk-icon {
	width: 18px;
	height: 18px;
}

/* ---------------------------------------------------------------------
   Find a professional: native agents directory and profile, restyled
   Public fields only: name, company, position and listings. Direct phone,
   fax and email are not shown (which contact fields are public is an owner
   decision); contact goes through the recorded message form.
   ------------------------------------------------------------------ */

.pk-public .agents-template-wrap {
	padding-bottom: 72px;
	background: #fff;
}

.pk-public .agents-template-wrap > .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public .agents-template-wrap .page-title-wrap {
	padding-top: 28px;
	padding-bottom: 12px;
}

.pk-public .agents-template-wrap .page-title h1 {
	margin: 6px 0 0;
	color: var(--pk-ink);
	font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.375rem);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.pk-public .agent-list-wrap {
	padding: 20px 22px !important;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--pk-shadow-1);
	transition: box-shadow var(--pk-transition), border-color var(--pk-transition);
}

.pk-public .agent-list-wrap:hover {
	border-color: var(--pk-n200);
	box-shadow: var(--pk-shadow-3);
}

.pk-public .agent-list-image img {
	width: 100%;
	max-width: 180px;
	aspect-ratio: 1;
	border-radius: 12px;
	object-fit: cover;
}

.pk-public .agent-list-content h2 {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.pk-public .agent-list-content h2 a {
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-public .agent-list-content h2 a:hover {
	color: var(--pk-action);
}

.pk-public .agent-list-content .agent-position,
.pk-public .agent-list-content .agent-company {
	color: var(--pk-muted);
	font-size: 14px;
}

.pk-public .agent-list-contact,
.pk-public .agent-social-media,
.pk-public .agent-profile-content .agent-phone,
.pk-public .agent-profile-content .agent-mobile,
.pk-public .agent-profile-content .agent-fax,
.pk-public .agent-profile-content .agent-email,
.pk-public .agent-profile-buttons .btn-call,
.pk-public .agent-detail-page-v1 .hz-review-tab,
.pk-public .agent-detail-page-v1 #tab-reviews,
.pk-public .agent-list-wrap .rating-wrap,
.pk-public .agent-profile-header .rating-score-wrap,
.pk-public .agent-detail-page-v1 .bt-sidebar-wrap {
	display: none !important;
}

/* The profile sidebar held only the direct contact rows; with those hidden the
   main column takes the full width instead of leaving an empty third. */
.pk-public .agent-detail-page-v1 > .container > .row > .col-lg-8 {
	width: 100%;
	flex: 0 0 100%;
	max-width: 100%;
}

.pk-public .agent-list-content footer {
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--pk-line);
}

.pk-public .agent-list-link {
	color: var(--pk-action);
	font-size: 15px;
}

.pk-public .agent-list-link:hover {
	color: var(--pk-action-hover);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Directory sidebar: the native name search, styled to the shell. */
.pk-public .agents-template-wrap .bt-sidebar-wrap .widget-wrap {
	padding: 22px !important;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: var(--pk-n25);
	box-shadow: none;
}

.pk-public .agents-template-wrap .bt-sidebar-wrap .form-control,
.pk-public .agents-template-wrap .bt-sidebar-wrap .bootstrap-select > .dropdown-toggle {
	min-height: 46px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
}

.pk-public .agents-template-wrap .bt-sidebar-wrap .btn-primary,
.pk-public .agents-template-wrap .bt-sidebar-wrap .btn-secondary {
	min-height: 46px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action) !important;
	color: #fff !important;
	font-weight: 700;
}

/* Profile */
.pk-public .agent-detail-page-v1 {
	padding-top: 28px;
	padding-bottom: 72px;
	background: #fff;
}

.pk-public .agent-detail-page-v1 > .container {
	max-width: calc(var(--pk-shell) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

.pk-public .agent-profile-wrap {
	padding: 26px 28px;
	border: 1px solid var(--pk-line);
	border-radius: 16px;
	background: #fff;
}

.pk-public .agent-image img {
	border-radius: 14px;
	aspect-ratio: 1;
	object-fit: cover;
}

.pk-public .agent-profile-header h1 {
	margin: 0;
	color: var(--pk-ink);
	font-size: clamp(1.625rem, 1.2rem + 1.1vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.pk-public .agent-profile-top-wrap {
	border-bottom: 1px solid var(--pk-line);
}

.pk-public .agent-profile-content li {
	color: var(--pk-ink-soft);
	font-size: 15px;
}

.pk-public .agent-profile-buttons .btn-secondary {
	min-height: 48px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action) !important;
	color: #fff !important;
	font-weight: 700;
}

.pk-public .agent-profile-buttons .btn-secondary:hover {
	background: var(--pk-action-hover) !important;
}

.pk-public .agent-stats-wrap {
	margin-top: 20px;
}

.pk-public .agent-profile-chart-wrap {
	height: 100%;
	padding: 20px 22px;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
}

.pk-public .agent-profile-chart-wrap h2 {
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.pk-public .agent-bio-wrap h2,
.pk-public .agent-detail-page-v1 .listing-tools-wrap strong {
	color: var(--pk-ink);
	font-weight: 700;
}

.pk-public .agent-nav-wrap .nav-link {
	border: 1px solid var(--pk-line);
	border-radius: 10px;
	color: var(--pk-ink);
	font-weight: 600;
}

.pk-public .agent-nav-wrap .nav-link.active {
	border-color: var(--pk-ink);
	background: var(--pk-ink);
	color: #fff;
}

.pk-public .agent-detail-page-v1 .listing-view.grid-view,
.pk-public .agent-detail-page-v1 .listing-view.list-view {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

/* W11: About aligned with the profile card's inner edge (it sat 11 px further in),
   less dead space above the listings, and the single remaining tab ("Listings")
   shown as the section heading it is rather than a lone navy pill. */
.pk-public .agent-detail-page-v1 .agent-bio-wrap {
	margin-top: 32px;
	padding-inline: 0;
}

.pk-public .agent-detail-page-v1 .agent-nav-wrap {
	margin-top: 32px;
	margin-bottom: 4px;
	padding-inline: 0;
}

.pk-public .agent-detail-page-v1 .agent-nav-wrap .nav-link,
.pk-public .agent-detail-page-v1 .agent-nav-wrap .nav-link.active {
	padding: 0;
	border: 0;
	/* The parent paints the active pill white with !important (main.css), which
	   left this heading invisible on the white page (W11-F-044). */
	background: none !important;
	color: var(--pk-ink) !important;
	font-size: clamp(1.375rem, 1.15rem + 0.6vw, 1.75rem);
	font-weight: 700;
	letter-spacing: -0.015em;
	cursor: default;
}

/* W11-F-044, a professional without published listings: Houzez then omits the
   Listings tab and makes the Reviews pane active (single-agent-v1.php), which
   Propeka hides, so the profile ended blank. Propeka shows no reviews, so the
   listings pane is always the one shown (it holds "No listing found."), and an
   empty tab bar is dropped. */
.pk-public .agent-detail-page-v1 #tab-properties {
	display: block;
	opacity: 1;
}

.pk-public .agent-detail-page-v1 .agent-nav-wrap:not(:has(.nav-link:not(.hz-review-tab))) {
	display: none;
}

.pk-public .agent-detail-page-v1 #tab-properties:not(:has(.pk-card)) .listing-tools-wrap {
	display: none;
}

.pk-public .agent-detail-page-v1 .listing-view > :not(.pk-card) {
	grid-column: 1 / -1;
}

/* The agent post-type archive (/agent/) listed cards in two thirds of the width
   beside an empty sidebar. */
.pk-public.post-type-archive-houzez_agent .listing-wrap .bt-content-wrap {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
}

.pk-public.post-type-archive-houzez_agent .listing-wrap .bt-sidebar-wrap {
	display: none;
}

.pk-public.post-type-archive-houzez_agent .agents-list-view {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 1023.98px) {
	.pk-public .agent-detail-page-v1 .listing-view.grid-view,
	.pk-public .agent-detail-page-v1 .listing-view.list-view,
	.pk-public.post-type-archive-houzez_agent .agents-list-view {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.pk-public .agent-detail-page-v1 .agent-bio-wrap {
		padding-inline: 4px;
	}

	.pk-public.post-type-archive-houzez_agent .agents-list-view {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Profile contact modal: same field labels as the listing inquiry form. */
.pk-public #realtor-form .modal-content {
	border: 0;
	border-radius: 16px;
}

.pk-public #realtor-form .form-control {
	min-height: 48px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
}

.pk-public #realtor-form .btn-secondary {
	min-height: 50px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action) !important;
	color: #fff !important;
	font-weight: 700;
}

@media (max-width: 767.98px) {
	.pk-public .agent-list-image img {
		max-width: 120px;
	}

	.pk-public .agent-profile-wrap {
		padding: 18px;
	}

	.pk-public .agent-detail-page-v1 .listing-view.grid-view,
	.pk-public .agent-detail-page-v1 .listing-view.list-view {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* =========================================================================
   Home v6 (owner direction 2026-09-14): full-bleed photo hero with the
   search card, feature strip, featured properties, city tiles, publisher
   band with benefits, agent cards. Later in the sheet on purpose: these
   rules win over the earlier hero rules at equal specificity.
   ========================================================================= */

.pk-home .pk-eyebrow {
	color: var(--pk-red-dark);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pk-home .pk-eyebrow--light {
	color: #ffd0d8;
}

/* Section titles (W11): one step below the hero, plain nouns, no eyebrow above.
   Plus Jakarta Sans at 800 with heavy negative tracking read cramped on phones. */
.pk-home .pk-section__title {
	margin: 0;
	color: var(--pk-ink);
	font-size: clamp(1.625rem, 1.25rem + 1.1vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.018em;
	line-height: 1.18;
}

.pk-home .pk-section__lead {
	margin: 8px 0 0;
	color: var(--pk-text-secondary);
	font-size: 1rem;
	line-height: 1.5;
}

.pk-home .pk-section {
	padding: 56px 0;
}

.pk-home .pk-section + .pk-section {
	padding-top: 0;
}

/* Hero */
.pk-hero--photo {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 660px;
	overflow: hidden;
	background: var(--pk-ink);
	color: #fff;
}

.pk-hero--photo .pk-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	transform: none;
	border-radius: 0;
}

.pk-hero--photo .pk-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 72% 55%;
	border-radius: 0;
}

.pk-hero--photo .pk-hero__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(13, 35, 56, 0.9) 0%, rgba(13, 35, 56, 0.66) 36%, rgba(13, 35, 56, 0.18) 66%, rgba(13, 35, 56, 0) 100%);
}

.pk-hero--photo .pk-hero__media::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 45%;
	background: linear-gradient(180deg, rgba(13, 35, 56, 0) 0%, rgba(13, 35, 56, 0.5) 100%);
}

.pk-hero--photo .pk-hero__inner {
	position: relative;
	display: block;
	width: 100%;
	padding-top: 72px;
	padding-bottom: 72px;
}

.pk-hero--photo .pk-hero__copy {
	max-width: 660px;
}

.pk-hero--photo .pk-hero__title {
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(2.25rem, 1.4rem + 2.8vw, 3.75rem);
	font-weight: 800;
	letter-spacing: -0.022em;
	line-height: 1.06;
}

.pk-hero--photo .pk-hero__title .pk-dot {
	color: var(--pk-red);
}

.pk-hero--photo .pk-hero__lead {
	max-width: 600px;
	margin: 0;
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.125rem;
	line-height: 1.55;
}

.pk-hero--photo .pk-search {
	max-width: 1000px;
	margin-top: 30px;
}

/* Intent (W11): Buy and Rent are the only search modes, as a joined segmented
   control. Selling and finding an agent are destinations, so they are plain
   links beside it, not look-alike tabs. */
.pk-search__intent-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	align-items: center;
	margin-bottom: 12px;
}

.pk-segmented {
	display: inline-flex;
	margin: 0;
	padding: 4px;
	border: 0;
	border-radius: 12px;
	background: rgba(13, 35, 56, 0.55);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	min-width: 0;
}

.pk-segmented__option {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.pk-segmented__option input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pk-segmented__option span {
	display: block;
	min-width: 96px;
	padding: 10px 22px;
	border-radius: 9px;
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	transition: background-color var(--pk-transition), color var(--pk-transition);
}

.pk-segmented__option:hover span {
	background: rgba(255, 255, 255, 0.14);
}

.pk-segmented__option input:checked + span {
	background: #fff;
	color: var(--pk-ink);
	box-shadow: 0 1px 3px rgba(13, 35, 56, 0.25);
}

.pk-segmented__option input:focus-visible + span {
	outline: 3px solid #fff;
	outline-offset: 2px;
}

.pk-search__alt {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	align-items: center;
	margin: 0;
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.9375rem;
}

.pk-search__alt a {
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.45);
	text-underline-offset: 4px;
}

.pk-search__alt a:hover,
.pk-search__alt a:focus-visible {
	color: #fff;
	text-decoration-color: #fff;
}

.pk-hero--photo .pk-search__bar {
	display: grid;
	grid-template-columns: 1.7fr 1fr 1fr 0.7fr auto;
	gap: 10px;
	padding: 12px;
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--pk-shadow-3);
	color: var(--pk-text);
}

.pk-hero--photo .pk-search__field {
	position: relative;
	display: block;
	min-height: 62px;
	padding: 9px 14px 8px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-text);
}

.pk-hero--photo .pk-search__field:focus-within {
	border-color: var(--pk-ink);
	box-shadow: 0 0 0 3px rgba(13, 35, 56, 0.12);
}

.pk-hero--photo .pk-search__label {
	display: block;
	margin-bottom: 2px;
	color: var(--pk-text-secondary);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.pk-hero--photo .pk-search__field .pk-select,
.pk-hero--photo .pk-search__field .pk-location__input {
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--pk-ink);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
}

.pk-hero--photo .pk-search__submit {
	min-height: 62px;
	padding: 0 30px;
	border-radius: 10px;
	font-size: 1.0625rem;
	font-weight: 700;
}

.pk-hero--photo .pk-search__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 16px;
}

.pk-hero--photo .pk-search__quick-label {
	margin-right: 4px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.875rem;
}

.pk-chip--glass {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--pk-radius-pill);
	background: rgba(13, 35, 56, 0.7);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background var(--pk-transition), color var(--pk-transition);
}

.pk-chip--glass:hover,
.pk-chip--glass:focus {
	background: #fff;
	color: var(--pk-ink);
	text-decoration: none;
}

.pk-hero__tagline {
	position: absolute;
	right: var(--pk-gutter);
	bottom: 44px;
	margin: 0;
	color: #fff;
	font-size: 1.3125rem;
	font-weight: 700;
	line-height: 1.3;
	text-shadow: 0 2px 12px rgba(13, 35, 56, 0.5);
}

.pk-hero__tagline::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin-top: 10px;
	background: var(--pk-red);
}

/* Feature strip */
.pk-strip {
	background: #fff;
	border-bottom: 1px solid var(--pk-n100);
}

.pk-strip__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	padding-top: 30px;
	padding-bottom: 30px;
}

.pk-strip__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding-right: 20px;
	border-right: 1px solid var(--pk-n100);
}

.pk-strip__item:last-child {
	padding-right: 0;
	border-right: 0;
}

.pk-strip__icon {
	display: grid;
	flex: none;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--pk-n50);
	color: var(--pk-ink);
	place-items: center;
}

.pk-strip__icon .pk-icon {
	width: 26px;
	height: 26px;
}

.pk-strip__item .pk-strip__title {
	margin: 4px 0 4px;
	color: var(--pk-ink);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.pk-strip__item p {
	margin: 0;
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
	line-height: 1.45;
}

/* Cards */
.pk-badge--featured {
	background: var(--pk-red);
	color: #fff;
	font-size: 0.75rem; /* 12 px floor for card text (PKUSW-75) */
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pk-card__facts li {
	display: inline-flex;
	gap: 6px;
	align-items: center;
}

.pk-card__facts .pk-icon {
	width: 18px;
	height: 18px;
	color: var(--pk-n500);
}

.pk-avatar--photo {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}

/* City tiles */
.pk-city-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-city {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 14px;
	background: var(--pk-ink);
	color: #fff;
	text-decoration: none;
	box-shadow: var(--pk-shadow-1);
}

.pk-city__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.pk-city:hover .pk-city__img,
.pk-city:focus .pk-city__img {
	transform: scale(1.06);
}

/* W11: a deeper, earlier scrim so the state and count stay legible over bright
   skies and beaches (Miami, Nashville and Seattle failed before). */
.pk-city::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 35, 56, 0) 28%, rgba(13, 35, 56, 0.55) 58%, rgba(13, 35, 56, 0.92) 100%);
}

.pk-city__text {
	position: absolute;
	right: 18px;
	bottom: 16px;
	left: 18px;
	z-index: 1;
	display: grid;
	gap: 1px;
	color: #fff;
	text-shadow: 0 1px 8px rgba(13, 35, 56, 0.45);
}

.pk-city__name {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.pk-city__state {
	font-size: 0.875rem;
	opacity: 0.95;
}

.pk-city__count {
	margin-top: 6px;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
}

.pk-city__count::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 7px;
	border-radius: 50%;
	background: var(--pk-red);
	vertical-align: 2px;
}

/* Publisher band */
.pk-benefits {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-benefit {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.pk-benefit__icon {
	display: grid;
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	place-items: center;
}

.pk-benefit h3 {
	margin: 2px 0 4px;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
}

.pk-benefit p {
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.875rem;
	line-height: 1.45;
}

/* Agents */
.pk-agent-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-agent {
	display: grid;
	gap: 4px;
	justify-items: center;
	padding: 28px 20px 24px;
	border: 1px solid var(--pk-n100);
	border-radius: 14px;
	background: #fff;
	color: var(--pk-text);
	text-align: center;
	text-decoration: none;
	box-shadow: var(--pk-shadow-1);
	transition: box-shadow var(--pk-transition), transform var(--pk-transition);
}

.pk-agent:hover,
.pk-agent:focus {
	transform: translateY(-2px);
	box-shadow: var(--pk-shadow-3);
	text-decoration: none;
}

.pk-agent__photo {
	width: 116px;
	height: 116px;
	margin-bottom: 10px;
	border: 4px solid var(--pk-n50);
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
}

.pk-agent__photo--initials {
	display: grid;
	background: var(--pk-n100);
	color: var(--pk-ink);
	font-size: 1.5rem;
	font-weight: 800;
	place-items: center;
}

.pk-agent__name {
	color: var(--pk-ink);
	font-size: 1.0625rem;
	font-weight: 800;
}

.pk-agent__company {
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
}

.pk-agent__place {
	display: inline-flex;
	gap: 4px;
	align-items: center;
	color: var(--pk-text-tertiary);
	font-size: 0.8125rem;
}

.pk-agent__place .pk-icon {
	width: 14px;
	height: 14px;
}

.pk-agent__cta {
	margin-top: 12px;
	padding: 8px 18px;
	border: 1px solid var(--pk-n200);
	border-radius: 8px;
	color: var(--pk-red-dark);
	font-size: 0.875rem;
	font-weight: 700;
}

.pk-agent:hover .pk-agent__cta {
	border-color: var(--pk-red);
	background: var(--pk-red);
	color: #fff;
}

@media (max-width: 1199.98px) {
	.pk-hero--photo .pk-search__bar {
		grid-template-columns: 1.4fr 1fr 1fr 0.8fr;
	}

	.pk-hero--photo .pk-search__submit {
		grid-column: 1 / -1;
	}

	.pk-hero__tagline {
		display: none;
	}
}

@media (max-width: 991.98px) {
	.pk-strip__grid,
	.pk-agent-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-strip__item {
		padding-right: 0;
		border-right: 0;
	}

	.pk-city-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-hero--photo .pk-search__bar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-hero--photo .pk-search__field--location {
		grid-column: 1 / -1;
	}
}

@media (max-width: 639.98px) {
	.pk-hero--photo {
		min-height: 0;
	}

	.pk-hero--photo .pk-hero__inner {
		padding-top: 44px;
		padding-bottom: 44px;
	}

	.pk-hero--photo .pk-hero__media img {
		object-position: 60% 50%;
	}

	.pk-hero--photo .pk-search__bar {
		grid-template-columns: minmax(0, 1fr);
		border-radius: 12px;
	}

	.pk-strip__grid,
	.pk-agent-grid,
	.pk-benefits {
		grid-template-columns: minmax(0, 1fr);
	}

	.pk-city-grid {
		gap: 12px;
	}

	.pk-city__name {
		font-size: 1.0625rem;
	}
}

/* ---- Find an Agent: full-width three-column directory of profile cards ---- */
.pk-public .agents-template-wrap .bt-content-wrap {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
}

.pk-public .agents-template-wrap .bt-sidebar-wrap {
	display: none;
}

.pk-public .agents-list-view {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.pk-public .agent-list-wrap {
	margin: 0 !important;
	padding: 26px 22px 22px !important;
}

.pk-public .agent-list-wrap .row {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.pk-public .agent-list-wrap .row > [class*="col-"] {
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
}

.pk-public .agent-list-image img {
	display: block;
	width: 132px !important;
	max-width: 132px;
	height: 132px;
	margin: 0 auto 6px;
	border: 4px solid var(--pk-n50);
	border-radius: 50% !important;
	object-fit: cover;
	object-position: center top;
}

.pk-public .agent-list-content header {
	justify-content: center !important;
}

.pk-public .agent-list-content h2 {
	font-size: 1.125rem;
}

.pk-public .agent-list-content .rating-score-wrap {
	display: none !important;
}

.pk-public .agent-list-content .agent-list-position {
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
}

.pk-public .agent-list-content footer {
	margin-top: 6px;
	padding-top: 10px;
	border-top: 0;
}

.pk-public .agent-list-link {
	display: inline-block;
	padding: 8px 18px;
	border: 1px solid var(--pk-n200);
	border-radius: 8px;
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
}

.pk-public .agent-list-link:hover {
	border-color: var(--pk-red);
	background: var(--pk-red);
	color: #fff;
	text-decoration: none;
}

@media (max-width: 991.98px) {
	.pk-public .agents-list-view {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	.pk-public .agents-list-view {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Six property types fit one row on wide screens. */
@media (min-width: 1200px) {
	.pk-home .pk-types {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

/* W11: no orphans between tablet and laptop widths. At 1024 the four featured
   cards fell 3 + 1 and the six types 4 + 2; they now sit 2 × 2 and 3 × 2. */
@media (min-width: 768px) and (max-width: 1199.98px) {
	.pk-home .pk-cards--count-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pk-home .pk-types {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* =========================================================================
   Polish pass v7 (2026-09-14, second senior UX/UI pass on the approved
   baseline). Refinements only: affordances, rhythm, hover/focus, mobile.
   ========================================================================= */

/* Every custom select gets a real chevron; the native one was removed. */
.pk-select {
	padding-right: 30px !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230d2338' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 10px center !important;
	background-size: 16px 16px !important;
	cursor: pointer;
}

.pk-hero--photo .pk-search__field .pk-select {
	background-position: right 0 center !important;
}

/* Hero: let more of the house breathe on the right, keep the copy legible. */
.pk-hero--photo .pk-hero__media img {
	object-position: 76% 58%;
}

.pk-hero--photo .pk-hero__media::before {
	background: linear-gradient(90deg, rgba(13, 35, 56, 0.9) 0%, rgba(13, 35, 56, 0.7) 32%, rgba(13, 35, 56, 0.28) 60%, rgba(13, 35, 56, 0.06) 100%);
}

.pk-hero--photo .pk-hero__title {
	text-wrap: balance;
}

.pk-hero--photo .pk-hero__lead {
	text-wrap: pretty;
}

.pk-hero--photo .pk-search__submit:hover,
.pk-hero--photo .pk-search__submit:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(237, 0, 40, 0.28);
}

.pk-hero--photo .pk-search__field .pk-location__input::placeholder {
	color: var(--pk-n400);
	font-weight: 500;
}

/* Feature strip: brand-tinted icons instead of grey. */
.pk-strip__icon {
	background: var(--pk-red-soft);
	color: var(--pk-red-dark);
}

/* Section rhythm */
.pk-home .pk-section__head {
	align-items: flex-end;
	margin-bottom: 26px;
}

.pk-home .pk-section__lead {
	max-width: 620px;
}

.pk-home .pk-link-arrow {
	font-weight: 700;
}

/* Cards: equal heights, agent row pinned, image zoom, tidy price row. */
.pk-card {
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--pk-transition), transform var(--pk-transition), border-color var(--pk-transition);
}

.pk-card:hover {
	transform: translateY(-2px);
	border-color: var(--pk-n200);
	box-shadow: var(--pk-shadow-3);
}

.pk-card__media {
	aspect-ratio: 4 / 3;
	height: auto;
}

.pk-card__img {
	transition: transform 0.6s ease;
}

.pk-card:hover .pk-card__img {
	transform: scale(1.04);
}

.pk-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	padding: 18px 20px 18px;
}

.pk-card__price-row {
	display: flex;
	gap: 10px;
	align-items: baseline;
	justify-content: space-between;
	margin: 0;
}

.pk-card .pk-price {
	font-size: 1.375rem;
	letter-spacing: -0.02em;
}

.pk-card__type {
	flex: none;
	max-width: 46%;
	padding: 4px 10px;
	border-radius: var(--pk-radius-pill);
	background: var(--pk-n50);
	color: var(--pk-text-secondary);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.pk-card__facts {
	gap: 14px;
	margin: 0;
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
}

.pk-card__facts strong {
	color: var(--pk-ink);
}

.pk-card__title {
	display: -webkit-box;
	margin: 2px 0 0;
	overflow: hidden;
	font-size: 1.0625rem;
	line-height: 1.35;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.pk-card__locality {
	margin: 0;
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
}

.pk-card__contact {
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--pk-n100);
}

.pk-card__locality + .pk-card__contact {
	margin-top: auto;
}

.pk-badge--status {
	background: rgba(255, 255, 255, 0.94);
	color: var(--pk-ink);
	font-weight: 700;
	backdrop-filter: blur(4px);
}

/* City tiles and type tiles: tactile hover */
.pk-city:hover,
.pk-city:focus {
	box-shadow: var(--pk-shadow-3);
}

.pk-type {
	transition: box-shadow var(--pk-transition), transform var(--pk-transition), border-color var(--pk-transition);
}

.pk-type:hover,
.pk-type:focus {
	transform: translateY(-2px);
	border-color: var(--pk-n200);
	box-shadow: var(--pk-shadow-2);
}

.pk-type__icon {
	background: var(--pk-red-soft);
	color: var(--pk-red-dark);
}

/* Detail page: round agent avatar, quieter map button, Featured in brand red. */
.pk-public .agent-details .agent-image img,
.pk-public .agent-details .agent-image img.rounded {
	width: 64px !important;
	height: 64px !important;
	border-radius: 50% !important;
	object-fit: cover;
	object-position: center top;
}

.pk-public .hz-btn-map,
.pk-public .hz-btn-map.btn-primary {
	border: 1px solid var(--pk-n200) !important;
	border-radius: 8px;
	background: #fff !important;
	color: var(--pk-ink) !important;
	font-weight: 600;
	box-shadow: none;
}

.pk-public .hz-btn-map:hover {
	border-color: var(--pk-ink) !important;
	background: var(--pk-n50) !important;
}

.pk-public .label-featured,
.pk-public .label-wrap .label-featured {
	background: var(--pk-red) !important;
	color: #fff !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Find an Agent: the top search bar in brand colours. */
.pk-public .advanced-search-v1 .btn-search,
.pk-public .advanced-search-v1 .btn-search.btn-secondary,
.pk-public .overlay-agent-search-module .btn-search,
.pk-public .overlay-agent-search-module .btn-search.btn-secondary {
	min-height: 46px;
	border: 0 !important;
	border-radius: 10px;
	background: var(--pk-red) !important;
	color: #fff !important;
	font-weight: 700;
}

.pk-public .advanced-search-v1 .btn-search:hover,
.pk-public .overlay-agent-search-module .btn-search:hover {
	background: var(--pk-red-dark) !important;
}

.pk-public .advanced-search-v1 .form-control,
.pk-public .advanced-search-v1 .bootstrap-select > .dropdown-toggle {
	min-height: 46px;
	border: 1px solid var(--pk-n200) !important;
	border-radius: 10px !important;
}

/* 404 */
.pk-public .error-404-page {
	padding: 72px 0 96px;
}

.pk-public .error-404-page h1 {
	margin-bottom: 12px;
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.pk-public .error-404-page p {
	max-width: 560px;
	margin: 0 auto 22px;
	color: var(--pk-text-secondary);
}

.pk-public .error-404-page a {
	display: inline-block;
	padding: 12px 22px;
	border-radius: 10px;
	background: var(--pk-red);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
}

.pk-public .error-404-page a:hover {
	background: var(--pk-red-dark);
}

/* Header: the account button as a round, quiet control. */
.pk-public #header-section .logged-in-nav-wrap .btn,
.pk-public #header-section .login-register-nav .btn {
	border-radius: 50%;
}

/* Footer bottom bar breathing room */
.pk-footer__bottom {
	padding-top: 18px;
	padding-bottom: 18px;
}

/* Mobile: a compact hero. Price and beds live on the results page. */
@media (max-width: 639.98px) {
	.pk-hero--photo .pk-hero__inner {
		padding-top: 36px;
		padding-bottom: 36px;
	}

	.pk-hero--photo .pk-hero__title {
		font-size: 2.125rem;
	}

	.pk-hero--photo .pk-hero__lead {
		font-size: 1rem;
	}

	.pk-hero--photo .pk-search__field--price,
	.pk-hero--photo .pk-search__field--beds {
		display: none;
	}

	.pk-hero--photo .pk-search__bar {
		gap: 8px;
		padding: 10px;
	}

	.pk-hero--photo .pk-search__field {
		min-height: 56px;
	}

	.pk-hero--photo .pk-search__submit {
		min-height: 54px;
	}

	/* Popular searches: one swipeable row instead of four rows of glass chips. */
	.pk-hero--photo .pk-search__quick {
		flex-wrap: nowrap;
		margin: 12px calc(-1 * var(--pk-gutter)) 0;
		padding: 2px var(--pk-gutter) 6px;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.pk-hero--photo .pk-search__quick::-webkit-scrollbar {
		display: none;
	}

	.pk-hero--photo .pk-search__quick > * {
		flex: none;
		scroll-snap-align: start;
	}

	.pk-hero--photo .pk-search__quick {
		scroll-padding-inline: var(--pk-gutter);
	}

	/* Section heads stack on phones: title and link start at the left edge. */
	.pk-home .pk-section__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.pk-search__intent-row {
		gap: 8px 14px;
	}

	.pk-segmented__option span {
		min-width: 84px;
		padding: 9px 18px;
	}

	.pk-search__alt {
		font-size: 0.875rem;
	}

	/* Strip: a compact two-by-two of short facts. */
	.pk-strip__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 16px;
		padding-top: 22px;
		padding-bottom: 22px;
	}

	.pk-strip__item {
		flex-direction: column;
		gap: 8px;
	}

	.pk-strip__icon {
		width: 40px;
		height: 40px;
	}

	.pk-strip__icon .pk-icon {
		width: 20px;
		height: 20px;
	}

	.pk-strip__item .pk-strip__title {
		margin: 0 0 2px;
		font-size: 0.9375rem;
		line-height: 1.3;
	}

	.pk-strip__item p {
		font-size: 0.8125rem;
	}

	/* Professionals: two compact cards per row instead of one tall card per screen. */
	.pk-home .pk-agent-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.pk-home .pk-agent {
		padding: 18px 10px 16px;
	}

	.pk-home .pk-agent__photo {
		width: 76px;
		height: 76px;
		margin-bottom: 6px;
		border-width: 3px;
	}

	.pk-home .pk-agent__name {
		font-size: 0.9375rem;
		line-height: 1.3;
	}

	.pk-home .pk-agent__company,
	.pk-home .pk-agent__place {
		font-size: 0.75rem;
		line-height: 1.35;
	}

	.pk-home .pk-agent__cta {
		margin-top: 8px;
		padding: 6px 12px;
		font-size: 0.8125rem;
	}

	.pk-home .pk-section {
		padding: 40px 0;
	}
}

/* ---- Results: count line, sort control, view switch and pagination ---- */
.pk-public .listing-tools-wrap strong {
	color: var(--pk-ink);
	font-size: 1rem;
	font-weight: 700;
}

.pk-public .listing-tools-wrap .sort-by-title {
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
}

.pk-public .listing-tools-wrap .bootstrap-select > .dropdown-toggle {
	min-height: 40px;
	border: 1px solid var(--pk-n200);
	border-radius: 8px;
	background: #fff;
	font-weight: 600;
}

.pk-public .listing-switch-view a {
	display: inline-grid;
	width: 36px;
	height: 36px;
	border: 1px solid var(--pk-n200);
	border-radius: 8px;
	color: var(--pk-text-secondary);
	place-items: center;
	transition: border-color var(--pk-transition), color var(--pk-transition), background var(--pk-transition);
}

.pk-public .listing-switch-view a.active,
.pk-public .listing-switch-view a:hover {
	border-color: var(--pk-ink);
	background: var(--pk-ink);
	color: #fff;
}

.pk-public .pagination-wrap {
	margin-top: 36px;
}

.pk-public .pagination .page-link {
	min-width: 42px;
	height: 42px;
	margin: 0 3px;
	padding: 0 12px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	color: var(--pk-ink);
	font-weight: 600;
	line-height: 40px;
	text-align: center;
}

.pk-public .pagination .page-item.active .page-link {
	border-color: var(--pk-ink);
	background: var(--pk-ink);
	color: #fff;
}

.pk-public .pagination .page-link:hover {
	border-color: var(--pk-ink);
	background: var(--pk-n50);
}

.pk-public .pagination .page-item.disabled .page-link {
	color: var(--pk-n300);
}

/* ---- Detail: facts strip under the mosaic as clean cells ---- */
.pk-public .property-overview-data {
	gap: 0;
	padding: 6px 0;
	border: 1px solid var(--pk-n100);
	border-radius: 14px;
	background: #fff;
}

.pk-public .property-overview-data > ul {
	padding: 14px 12px;
	border-right: 1px solid var(--pk-n100);
}

.pk-public .property-overview-data > ul:last-child {
	border-right: 0;
}

.pk-public .property-overview-data .property-overview-item {
	color: var(--pk-ink);
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

/* W11: icons in the cards' neutral grey (red icons read as five alerts), and the
   Type cell in the same value-over-label order as the other cells. */
.pk-public .property-overview-data .property-overview-item .houzez-icon {
	color: var(--pk-n500);
	font-size: 1.125rem;
}

.pk-public .property-overview-data > ul:has(.property-overview-type) {
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
}

.pk-public .property-overview-data > ul:has(.property-overview-type) strong {
	color: var(--pk-ink);
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.pk-public .property-overview-data .hz-meta-label {
	margin-top: 2px;
	color: var(--pk-text-secondary);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.02em;
}

@media (max-width: 639.98px) {
	.pk-public .listing-tools-wrap .d-flex {
		flex-wrap: wrap;
		gap: 10px;
	}

	.pk-public .listing-tools-wrap .sort-by {
		width: 100%;
	}
}

/* ---- Micro-interactions and typography rhythm (polish v7, part 2) ---- */
.pk-public #header-section .main-nav .nav-link {
	position: relative;
}

.pk-public #header-section .main-nav .nav-link::after {
	content: "";
	position: absolute;
	right: 14px;
	bottom: 4px;
	left: 14px;
	height: 2px;
	border-radius: 2px;
	background: var(--pk-red);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.22s ease;
}

.pk-public #header-section .main-nav .nav-link:hover::after,
.pk-public #header-section .main-nav .current-menu-item > .nav-link::after {
	transform: scaleX(1);
}

.pk-public #header-section .btn-create-listing:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(237, 0, 40, 0.25);
}

.pk-btn--primary:hover,
.pk-btn--primary:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(237, 0, 40, 0.25);
}

.pk-btn:active {
	transform: translateY(0);
	box-shadow: none;
}

.pk-chip:focus-visible,
.pk-tab input:focus-visible + span,
.pk-city:focus-visible,
.pk-type:focus-visible,
.pk-agent:focus-visible,
.pk-card__link:focus-visible {
	outline: 3px solid rgba(237, 0, 40, 0.35);
	outline-offset: 2px;
}

.pk-footer__heading {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.pk-footer__col a {
	transition: color var(--pk-transition);
}

.pk-footer__col a:hover {
	color: var(--pk-red-dark);
}

/* Detail: readable description, quieter section chrome */
.pk-public .property-description-wrap .block-content-wrap,
.pk-public .property-description-wrap p {
	max-width: 68ch;
	color: var(--pk-text);
	font-size: 1rem;
	line-height: 1.7;
}

.pk-public .property-wrap .block-title-wrap h2 {
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

/* Agent profile: bio and listings carry the page; the donut charts do not. */
.pk-public .agent-detail-page-v1 .agent-stats-wrap {
	display: none;
}

.pk-public .agent-bio-wrap {
	max-width: 72ch;
	font-size: 1rem;
	line-height: 1.7;
}

.pk-agent-meta {
	margin: 6px 0 0;
	color: var(--pk-text-secondary);
	font-size: 0.9375rem;
}

/* Corrections after the first visual check of v7 */
.pk-public #header-section .logged-in-nav-wrap .btn-create-listing,
.pk-public #header-section .login-register-nav .btn-create-listing {
	border-radius: 10px;
}

.pk-strip__item {
	align-items: flex-start;
}

.pk-card__facts {
	flex-wrap: nowrap;
	gap: 12px;
	width: 100%;
	align-self: stretch;
	font-size: 0.8125rem;
}

.pk-card__facts li {
	white-space: nowrap;
}

/* Corrections after the second visual check of v7 */
.pk-hero--photo .pk-hero__media {
	display: block !important;
}

.pk-public .property-labels-wrap span.label.label-featured,
.pk-public span.label.label-featured {
	background: var(--pk-red) !important;
	color: #fff !important;
	border-color: var(--pk-red) !important;
}

.pk-public #header-section .main-nav .current-menu-item > .nav-link,
.pk-public #header-section .main-nav .nav-link:hover {
	background: transparent;
}

@media (max-width: 639.98px) {
	.pk-hero--photo .pk-hero__media img {
		object-position: 62% 50%;
	}

	.pk-hero--photo .pk-hero__media::before {
		background: linear-gradient(180deg, rgba(13, 35, 56, 0.86) 0%, rgba(13, 35, 56, 0.72) 55%, rgba(13, 35, 56, 0.55) 100%);
	}
}

/* Profile header: one line of position, company and place (pk-agent-meta); the
   native list repeated the position and company below it. */
.pk-public .agent-detail-page-v1 .agent-profile-content {
	display: none;
}

@media (max-width: 639.98px) {
	/* Let the house show through on phones; the copy still sits on the dark top. */
	.pk-hero--photo .pk-hero__media::before {
		background: linear-gradient(180deg, rgba(13, 35, 56, 0.86) 0%, rgba(13, 35, 56, 0.62) 45%, rgba(13, 35, 56, 0.38) 100%);
	}
}

/* Tablet search card: location on top, then type / price / beds in one row. */
@media (min-width: 640px) and (max-width: 991.98px) {
	.pk-hero--photo .pk-search__bar {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.pk-hero--photo .pk-search__field--location,
	.pk-hero--photo .pk-search__submit {
		grid-column: 1 / -1;
	}
}

/* Results toolbar on phones: left-aligned count, full-width sort. */
@media (max-width: 639.98px) {
	.pk-public .listing-tools-wrap .flex-grow-1 {
		width: 100%;
		text-align: left;
	}
}

/* Profile: the Listings / Reviews tabs are compact pills, not a full-width bar. */
.pk-public .agent-nav-wrap .nav {
	gap: 8px;
}

.pk-public .agent-nav-wrap .nav-item {
	flex: 0 0 auto;
}

.pk-public .agent-nav-wrap .nav-link {
	padding: 10px 20px;
}

.pk-public .agent-profile-top-wrap .agent-list-position {
	display: none;
}

/* Sort control: label and select on one line, at every width. */
.pk-public .listing-tools-wrap .sort-by .d-flex {
	gap: 8px;
	align-items: center;
}

.pk-public .listing-tools-wrap .sort-by-title {
	white-space: nowrap;
}

.pk-public .listing-tools-wrap .sort-by .bootstrap-select {
	flex: 1 1 auto;
	min-width: 180px;
}

.pk-public .listing-tools-wrap .sort-by .bootstrap-select > .dropdown-toggle.bs-placeholder {
	color: var(--pk-text-tertiary);
}

/* Back-to-top (W11): a quiet white control. As a red disc it competed with every
   primary action and sat on top of card text; on phones and tablets it covered
   content at every scroll position, and native scrolling already does the job. */
.pk-public #scroll-top.btn-back-to-top {
	display: grid;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--pk-n200) !important;
	border-radius: 50%;
	background: #fff !important;
	color: var(--pk-ink) !important;
	box-shadow: var(--pk-shadow-2);
	place-items: center;
	transition: transform var(--pk-transition), box-shadow var(--pk-transition), border-color var(--pk-transition);
}

.pk-public #scroll-top.btn-back-to-top.houzez-hidden {
	display: none !important;
}

.pk-public #scroll-top.btn-back-to-top .houzez-icon {
	color: var(--pk-ink);
	font-size: 16px;
}

.pk-public #scroll-top.btn-back-to-top:hover,
.pk-public #scroll-top.btn-back-to-top:focus-visible {
	border-color: var(--pk-ink) !important;
	transform: translateY(-2px);
	box-shadow: var(--pk-shadow-3);
}

@media (max-width: 991.98px) {
	.pk-public #scroll-top.btn-back-to-top {
		display: none !important;
	}
}

/* Facts row: never clip; wrap the last fact on narrow cards instead. */
.pk-card__facts {
	flex-wrap: wrap;
	gap: 4px 10px;
	overflow: visible;
}

.pk-card__body {
	padding-right: 18px;
	padding-left: 18px;
}

/* Four-column home grid: the three facts fit one line without their icons. */
@media (min-width: 1200px) {
	.pk-cards--count-4 .pk-card__facts .pk-icon {
		display: none;
	}

	.pk-cards--count-4 .pk-card__facts {
		gap: 4px 12px;
	}
}

/* ---- Sign in: one centred card, brand controls ---- */
.pk-public .login-form-page-wrap {
	padding: 48px 0 88px;
	background: var(--pk-n25);
}

.pk-public .login-page-title h1 {
	margin: 0 0 20px;
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	text-align: center;
}

.pk-public .login-form-wrap {
	max-width: 460px;
	margin: 0 auto;
	padding: 32px;
	border: 1px solid var(--pk-n100);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--pk-shadow-2);
}

.pk-public .login-register-tabs .nav-link {
	border-radius: 8px;
	color: var(--pk-text-secondary);
	font-weight: 700;
}

.pk-public .login-register-tabs .nav-link.active {
	background: var(--pk-ink);
	color: #fff;
}

.pk-public .login-form-wrap .form-control {
	min-height: 48px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
}

.pk-public .login-form-wrap .form-control:focus {
	border-color: var(--pk-ink);
	box-shadow: 0 0 0 3px rgba(13, 35, 56, 0.12);
}

.pk-public .login-form-wrap .btn-login,
.pk-public .login-form-wrap .btn-primary {
	min-height: 50px;
	border: 0 !important;
	border-radius: 10px;
	background: var(--pk-red) !important;
	color: #fff !important;
	font-weight: 700;
}

.pk-public .login-form-wrap .btn-login:hover {
	background: var(--pk-red-dark) !important;
}

.pk-public .login-form-wrap a {
	color: var(--pk-red-dark);
	font-weight: 600;
}

/* Sign in, corrected to the real structure: the page wrap IS the card. */
.pk-public .page-template-template-login .blog-wrap,
.pk-public .login-page-title + .blog-wrap {
	padding-bottom: 88px;
	background: var(--pk-n25);
}

.pk-public .login-form-page-wrap {
	max-width: 460px;
	margin: 0 auto;
	padding: 28px 32px 32px;
	border: 1px solid var(--pk-n100);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--pk-shadow-2);
}

.pk-public .login-form-wrap,
.pk-public .register-form-wrap {
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.pk-public .login-register-tabs:has(li:only-child) {
	display: none;
}

.pk-public .login-register-tabs .nav-tabs {
	margin-bottom: 18px;
	border-bottom: 0;
}

.pk-public .login-form-page-wrap .form-group,
.pk-public .login-form-page-wrap .mb-3 {
	margin-bottom: 14px;
}

.pk-public .login-form-page-wrap .form-check-label {
	color: var(--pk-text-secondary);
}

/*
 * PKUSW-80: an address ending in "#register-form-tab" paints the Register
 * panel from the first frame (propeka_signin_register_first_paint); the tab
 * script removes the class once Bootstrap holds that state.
 */
html.pk-open-register .login-form-page-wrap > .tab-content > #login-form-tab {
	display: none;
}

html.pk-open-register .login-form-page-wrap > .tab-content > #register-form-tab {
	display: block;
	opacity: 1;
}

html.pk-open-register .pk-public .login-register-tabs .nav-link[href="#login-form-tab"] {
	background: transparent;
	color: var(--pk-text-secondary);
}

html.pk-open-register .pk-public .login-register-tabs .nav-link[href="#register-form-tab"] {
	background: var(--pk-ink);
	color: #fff;
}

html.pk-open-register .login-page-title h1 {
	visibility: hidden;
}

/* Links inside a notice (Change plan, the way back): red as text, underlined, as in the cards. */
.pk-public .pk-auth-notice a,
.houzez-dashboard .pk-auth-notice--workspace a {
	color: var(--pk-red-dark);
	text-decoration: underline;
}

/* The jump to "#register-form-tab" scrolled the tabs and heading off screen: the card stays where it starts. */
.login-form-page-wrap > .tab-content > .tab-pane {
	scroll-margin-top: 100vh;
}

/* PKUSW-80: the closed phone account panel's links were reachable by Tab while off screen. */
.offcanvas:not(.show):not(.showing):not(.hiding) .logged-in-nav {
	visibility: hidden;
}

/* Header "Sign in" for visitors (propeka_header_sign_in_link) */
.pk-public #header-section .pk-signin-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-right: 14px;
	padding: 0 4px;
	color: var(--pk-ink);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

.pk-public #header-section .pk-signin-link:hover {
	color: var(--pk-red-dark);
}

/* ---- Listing page: features by group (polish v9) ---- */
.pk-public .property-features-wrap .features.group_name {
	margin: 18px 0 6px !important;
	color: var(--pk-text-secondary);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pk-public .property-features-wrap .block-title-wrap + .block-content-wrap .features.group_name:first-child {
	margin-top: 0 !important;
}

.pk-public .property-features-wrap ul.row {
	padding-left: 0 !important;
	--bs-gutter-y: 10px;
}

.pk-public .property-features-wrap li {
	color: var(--pk-ink);
	font-size: 0.9375rem;
}

.pk-public .property-features-wrap li i {
	color: var(--pk-red);
}

.pk-public .property-features-wrap li a {
	color: inherit;
	text-decoration: none;
}

.pk-public .property-features-wrap li a:hover {
	color: var(--pk-red-dark);
}

/* ---- Gallery lightbox: edge to edge, brand action (polish v9) ---- */
.pk-public #property-lightbox .modal-dialog {
	margin-top: 0;
	margin-bottom: 0;
}

.pk-public #property-lightbox .modal-content {
	min-height: 100vh;
	min-height: 100dvh;
	border: 0;
	border-radius: 0;
}

.pk-public #property-lightbox .btn-primary,
.pk-public #property-lightbox .btn-secondary {
	border-color: var(--pk-red) !important;
	background: var(--pk-red) !important;
	color: #fff !important;
}

.pk-public #property-lightbox .btn-primary:hover,
.pk-public #property-lightbox .btn-secondary:hover {
	border-color: var(--pk-red-dark) !important;
	background: var(--pk-red-dark) !important;
}

/* ---- Phone menu (native offcanvas): ink links, tap-sized rows, actions ---- */
.pk-public .offcanvas-mobile-menu {
	width: min(340px, 88vw);
}

.pk-public .offcanvas-mobile-menu .offcanvas-header {
	min-height: 64px;
	padding: 12px 20px;
	border-bottom: 1px solid var(--pk-n100);
}

.pk-public .offcanvas-mobile-menu .offcanvas-title {
	color: var(--pk-ink);
	font-size: 0.75rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pk-public .offcanvas-mobile-menu .offcanvas-title img {
	display: block;
	width: auto;
	height: 26px;
}

.pk-public .offcanvas-mobile-menu .btn-close {
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--pk-n50);
	color: var(--pk-ink);
	opacity: 1;
}

.pk-public .mobile-navbar-nav .nav-item {
	border-color: var(--pk-n100) !important;
}

.pk-public .mobile-navbar-nav .nav-link {
	min-height: 54px;
	padding: 14px 20px !important;
	color: var(--pk-ink) !important;
	font-size: 1rem;
	font-weight: 600;
}

.pk-public .mobile-navbar-nav .nav-link:hover,
.pk-public .mobile-navbar-nav .current-menu-item > .nav-link {
	color: var(--pk-red-dark) !important;
}

.pk-mobile-actions {
	display: grid;
	gap: 10px;
	padding: 20px;
}

.pk-mobile-actions__primary {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-radius: 10px;
	background: var(--pk-red);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
}

.pk-mobile-actions__primary:hover {
	background: var(--pk-red-dark);
}

.pk-mobile-actions__secondary {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	color: var(--pk-ink) !important;
	font-weight: 700;
	text-decoration: none;
}

.pk-mobile-actions__secondary:hover {
	border-color: var(--pk-ink);
}

.pk-public .offcanvas-mobile-menu .offcanvas-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.pk-public .offcanvas-mobile-menu .offcanvas-header .btn-close {
	position: static;
	margin-left: auto;
}

/* ---- Header (polish v9b): one baseline for wordmark, menu and actions ---- */
.pk-public #header-section.header-v1 .header-inner-wrap .navbar {
	align-items: center;
}

.pk-public #header-section .main-nav,
.pk-public #header-section .main-nav .navbar-nav {
	height: auto !important;
	align-items: center;
}

.pk-public #header-section .main-nav .navbar-nav > li {
	display: flex;
	align-items: center;
	height: auto;
}

.pk-public #header-section .main-nav .nav-link {
	display: inline-flex;
	align-items: center;
	height: auto !important;
	min-height: 44px;
	line-height: 1.2;
}

.pk-public #header-section .main-nav .nav-link::after {
	bottom: 6px;
}

.pk-public #header-section .main-nav .navbar-nav {
	gap: 4px;
}

/* Visitor actions: Sign in, Favorites with a count pill, then the button. */
.pk-public #header-section .login-register-nav {
	gap: 4px;
}

.pk-public #header-section .login-register-nav .favorite-btn {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	padding: 10px 12px;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.pk-public #header-section .login-register-nav .favorite-btn:hover {
	color: var(--pk-red-dark);
}

.pk-public #header-section .login-register-nav .btn-bubble {
	position: static;
	display: inline-grid;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border: 0;
	border-radius: 999px;
	background: var(--pk-n100);
	color: var(--pk-ink);
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	place-items: center;
}

.pk-public #header-section .login-register-nav .login-link a,
.pk-public #header-section .login-register-nav .pk-signin-link {
	padding: 10px 12px;
}

.pk-public #header-section .login-register-nav > li:last-child {
	margin-left: 8px;
}

/* Signed-in account control: a round avatar, or initials when there is no photo. */
.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin-left: 4px;
	border-radius: 50%;
}

.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle::after {
	display: none; /* Bootstrap caret */
}

.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle img {
	width: 40px;
	height: 40px;
	border-radius: 50% !important;
	object-fit: cover;
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--pk-n200);
}

.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle.pk-avatar--initials img {
	display: none;
}

.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle.pk-avatar--initials::before {
	content: attr(data-pk-initials);
	display: grid;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--pk-ink);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	place-items: center;
	transition: background var(--pk-transition);
}

.pk-public #header-section .navbar-logged-in-wrap .dropdown-toggle.pk-avatar--initials:hover::before {
	background: var(--pk-red-dark);
}

.pk-public #header-section .logged-in-nav.dropdown-menu {
	min-width: 224px;
	margin-top: 10px;
	padding: 8px;
	border: 1px solid var(--pk-n100);
	border-radius: 12px;
	box-shadow: var(--pk-shadow-3);
}

.pk-public #header-section .logged-in-nav .side-menu-item a {
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
}

.pk-public #header-section .logged-in-nav .side-menu-item a:hover {
	background: var(--pk-n50);
	color: var(--pk-red-dark);
}

.pk-public #header-section .logged-in-nav .side-menu-item a .houzez-icon {
	font-size: 16px;
	color: var(--pk-text-secondary);
}

.pk-public #header-section.header-v1 {
	position: relative;
	z-index: 1020; /* the account menu opens above the results filter card */
}

.pk-public #header-section .logged-in-nav .side-menu-item {
	border: 0;
}

/* ---- Results: Features inside "More filters" (W10) ---- */
.pk-features {
	grid-column: 1 / -1;
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.pk-features__toggle {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	align-items: center;
	width: 100%;
	min-height: 48px;
	padding: 8px 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
}

.pk-features__toggle::before {
	content: "";
	width: 8px;
	height: 8px;
	margin-right: 2px;
	border-right: 2px solid var(--pk-ink);
	border-bottom: 2px solid var(--pk-ink);
	transform: rotate(-45deg);
	transition: transform var(--pk-transition);
}

.pk-features.is-open .pk-features__toggle::before {
	transform: rotate(45deg);
}

.pk-features.is-open .pk-features__toggle {
	border-color: var(--pk-ink);
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.pk-features__hint {
	margin-left: auto;
	color: var(--pk-text-secondary);
	font-size: 0.8125rem;
	font-weight: 500;
}

.pk-features__panel {
	display: none;
	padding: 16px 16px 12px;
	border: 1px solid var(--pk-ink);
	border-top: 0;
	border-radius: 0 0 10px 10px;
	background: #fff;
}

.pk-features.is-open .pk-features__panel {
	display: block;
}

.pk-features__group + .pk-features__group {
	margin-top: 14px;
}

.pk-features__group-name {
	margin: 0 0 8px;
	color: var(--pk-text-secondary);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pk-features__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 6px;
}

.pk-feature {
	position: relative;
	display: flex;
	gap: 9px;
	align-items: center;
	min-height: 38px;
	margin: 0;
	padding: 5px 10px;
	border: 1px solid var(--pk-n100);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.3;
	cursor: pointer;
	transition: border-color var(--pk-transition), background var(--pk-transition);
}

.pk-feature:hover {
	border-color: var(--pk-n300);
}

.pk-feature input {
	width: 18px;
	height: 18px;
	margin: 0;
	flex: none;
	accent-color: var(--pk-red);
}

.pk-feature.is-checked {
	border-color: var(--pk-ink);
	background: var(--pk-red-soft);
}

.pk-feature:focus-within {
	outline: 2px solid var(--pk-ink);
	outline-offset: 2px;
}

.pk-features__actions {
	margin-top: 12px;
}

.pk-features__clear {
	padding: 8px 0;
	border: 0;
	background: none;
	color: var(--pk-red-dark);
	font-size: 0.9375rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}

.pk-features__clear[hidden] {
	display: none;
}

@media (max-width: 575.98px) {
	.pk-features__hint {
		flex-basis: 100%;
		margin-left: 0;
	}

	.pk-features__grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Register tab: same controls as Sign in (W10) ---- */
.pk-public .register-form-tab .form-group,
.pk-public .login-form-tab .form-group {
	margin-bottom: 0;
}

.pk-public .login-form-wrap .form-group-field,
.pk-public .register-form-wrap .form-group-field {
	position: relative;
	margin-bottom: 10px;
	border: 0 !important;
}

.pk-public .login-form-wrap .form-group-field .form-control,
.pk-public .register-form-wrap .form-group-field .form-control {
	min-height: 48px;
	padding-left: 42px;
	border: 1px solid var(--pk-n200) !important;
	border-radius: 10px !important;
	background: #fff;
}

.pk-public .login-form-wrap .form-group-field .form-control:focus,
.pk-public .register-form-wrap .form-group-field .form-control:focus {
	border-color: var(--pk-ink) !important;
	box-shadow: 0 0 0 3px rgba(13, 35, 56, 0.12);
}

.pk-public .login-form-wrap .form-group-field .houzez-icon,
.pk-public .login-form-wrap .form-group-field > i,
.pk-public .register-form-wrap .form-group-field .houzez-icon,
.pk-public .register-form-wrap .form-group-field > i {
	position: absolute;
	top: 50%;
	left: 15px;
	z-index: 2;
	color: var(--pk-text-tertiary);
	transform: translateY(-50%);
}

.pk-public .login-form-wrap .bootstrap-select > .dropdown-toggle,
.pk-public .register-form-tab .bootstrap-select > .dropdown-toggle {
	min-height: 48px;
	border: 1px solid var(--pk-n200) !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: var(--pk-ink);
}

.pk-public .login-form-wrap .bootstrap-select > .dropdown-toggle.bs-placeholder,
.pk-public .register-form-tab .bootstrap-select > .dropdown-toggle.bs-placeholder {
	color: var(--pk-text-tertiary);
}

.pk-public .login-form-wrap .control--checkbox {
	margin: 14px 0 16px;
	font-size: 0.9375rem;
}

.pk-public .login-form-wrap .control--checkbox a {
	color: var(--pk-red-dark);
	font-weight: 600;
}

.pk-public .login-form-wrap .btn-primary {
	min-height: 50px;
	border: 0 !important;
	border-radius: 10px;
	background: var(--pk-red) !important;
	color: #fff !important;
	font-weight: 700;
}

.pk-public .login-form-wrap .btn-primary:hover {
	background: var(--pk-red-dark) !important;
}

.pk-public .login-form-wrap .alert {
	margin: 0 0 14px;
	border-radius: 10px;
	font-size: 0.9375rem;
}

.pk-public .login-form-wrap .form-group-field.is-invalid .form-control,
.pk-public .login-form-wrap .form-control.is-invalid,
.pk-public .login-form-wrap .form-control.error {
	border-color: var(--pk-red) !important;
}

/* The WordPress toolbar rules live in propeka-toolbar.css, loaded wherever the
   toolbar shows (front end and wp-admin), W11-F-013/017/034. */

/* ---- Results on phones (W11, after the first recheck) ----
   "Update results" wrapped to two lines beside More filters, and the sort label
   dropped above its select because the phone rule wraps every .d-flex in the
   tools row. */
@media (max-width: 767.98px) {
	.pk-results-bar__submit span {
		white-space: nowrap;
	}

	.pk-results-bar__submit .pk-icon {
		display: none;
	}

	.pk-public .listing-tools-wrap .sort-by .d-flex {
		flex-wrap: nowrap !important;
	}

	.pk-public .listing-tools-wrap .sort-by .bootstrap-select {
		min-width: 0;
	}
}

/* Contact rail supporting line (W11 copy). */
.pk-contact-support {
	margin: -8px 0 16px;
	color: var(--pk-text-secondary);
	font-size: 0.9375rem;
	line-height: 1.5;
}

/* ---- 404 (W11): a search and a quiet homepage link ---- */
.pk-404-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 8px;
}

.pk-public .error-404-page .pk-404-actions .pk-btn,
.pk-public .error-404-page .pk-404-actions .pk-404-home {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 0;
	padding: 0 22px;
	border-radius: 10px;
	font-size: 1rem;
	font-weight: 700;
}

.pk-public .error-404-page .pk-404-actions .pk-404-home {
	border: 1px solid var(--pk-n200) !important;
	background: #fff !important;
	color: var(--pk-ink) !important;
	text-decoration: none;
}

.pk-public .error-404-page .pk-404-actions .pk-404-home:hover {
	border-color: var(--pk-ink) !important;
}

.pk-public .error-404-page h1 {
	text-wrap: balance;
}

/* ---- Home composition, W11 increment 10 ----
   Phones: the four featured homes become one swipe row with the next card
   peeking, instead of four full-height cards (about 3,000 px of scrolling).
   Tablets: city tiles sit four across in portrait tiles, so all eight places
   fit in two rows rather than four. */
@media (max-width: 639.98px) {
	.pk-home .pk-featured .pk-cards {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 84%;
		grid-template-columns: none;
		gap: 14px;
		margin-inline: calc(-1 * var(--pk-gutter));
		padding: 4px var(--pk-gutter) 12px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--pk-gutter);
		scrollbar-width: none;
	}

	.pk-home .pk-featured .pk-cards::-webkit-scrollbar {
		display: none;
	}

	.pk-home .pk-featured .pk-card {
		scroll-snap-align: start;
		box-shadow: none;
	}

	.pk-home .pk-featured .pk-card__media {
		aspect-ratio: 4 / 3;
	}
}

@media (min-width: 640px) and (max-width: 991.98px) {
	.pk-home .pk-city-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 14px;
	}

	.pk-home .pk-city {
		aspect-ratio: 4 / 5;
	}

	.pk-home .pk-city__text {
		right: 12px;
		bottom: 12px;
		left: 12px;
	}

	.pk-home .pk-city__name {
		font-size: 1.0625rem;
	}
}

/* ---- W11 increment 11 ----
   Detail features: the parent colours each feature's check in the brand red,
   which reads as a warning next to red actions; ticks sit in quiet ink.
   Phone featured row: beds, baths and area stay on one line in the narrower card. */
.pk-public .property-features-wrap .houzez-icon {
	color: var(--pk-n500);
}

@media (max-width: 639.98px) {
	.pk-home .pk-featured .pk-card__facts {
		flex-wrap: nowrap;
		gap: 4px 10px;
		font-size: 13px;
		white-space: nowrap;
	}
}

/* ---- Professional directory (W11 increment 18) ----
   Where the person works, and the name search below the page title. */
.pk-public .agent-list-content .pk-agent-where {
	margin: 0 0 12px;
	color: var(--pk-text-secondary);
	font-size: 0.9375rem;
}

.pk-public .advanced-search-nav.pk-directory-search {
	margin-top: 4px;
	margin-bottom: 28px;
	border-bottom: 0;
}

/* Archive refine row (W11 increment 20): the same query model as search. */
.pk-public .pk-archive-refine {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 20px;
}

.pk-public .pk-archive-refine__label {
	color: var(--pk-text-secondary);
	font-size: 0.875rem;
	font-weight: 600;
}

.pk-public .pk-archive-refine .pk-chip {
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid var(--pk-n200);
	border-radius: 999px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
}

.pk-public .pk-archive-refine .pk-chip:hover {
	border-color: var(--pk-ink);
}

/* Sign-in page, already-signed-in state (W11). */
.pk-public .pk-signed-in {
	max-width: 560px;
	margin: 0 auto 48px;
	padding: 28px;
	border: 1px solid var(--pk-line);
	border-radius: 14px;
	background: #fff;
	text-align: center;
}

.pk-public .pk-signed-in__text {
	margin: 0 0 16px;
	color: var(--pk-ink);
	font-size: 1.0625rem;
	font-weight: 600;
}

.pk-public .pk-signed-in__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

/* ---- Photo lightbox (W11 increment 25) ----
   Houzez opens the gallery in a dialog whose header is dark (its close button
   is the white one) and whose body is white, so photographs sat on white with
   the inquiry form beside them. The viewer is dark and the photo is contained,
   never cropped; the form panel stays white and readable. */
.pk-public .property-lightbox .modal-content {
	border: 0;
	border-radius: 0;
	background: #10161d;
}

.pk-public .property-lightbox .modal-header {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	background: #10161d;
}

.pk-public .property-lightbox .modal-body,
.pk-public .property-lightbox .lightbox-gallery-wrap,
.pk-public .property-lightbox .lightbox-gallery {
	background: #10161d;
}

.pk-public .property-lightbox .lightbox-gallery img {
	object-fit: contain;
	background: #10161d;
}

/* PKUSW-49: the native desktop panel has zero left padding. Keep the
   existing gallery proportions, with the same inset on every panel edge. */
.pk-public .property-lightbox .lightbox-form-wrap {
	background: #fff;
	padding: 15px;
}

/* The native phone overlay adds 45px beyond the gallery body. Confine it to
   that body and scroll its contents so the inquiry action stays reachable. */
.pk-public .property-lightbox .lightbox-form-wrap.lightbox-form-wrap-show {
	height: 100%;
	overflow-y: auto;
}

/* Houzez leaves the phone panel's open class set when the viewport widens.
   Restore the native desktop column instead of a full-width panel below it. */
@media (min-width: 992px) {
	.pk-public .property-lightbox .lightbox-form-wrap.lightbox-form-wrap-show {
		width: 25%;
		height: auto;
		overflow-y: visible;
	}
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	.pk-public .property-lightbox .lightbox-form-wrap.lightbox-form-wrap-show {
		width: 30%;
	}
}

.pk-public .property-lightbox .pk-inquiry-note a {
	margin-inline-start: 0.2em;
}

/* A modal must cover the fixed WordPress toolbar as well as the page. This
   avoids changing the accepted slider's viewport and height calculations. */
.pk-public.admin-bar #property-lightbox {
	z-index: 100000;
}

.pk-public .pk-lightbox-count {
	margin-right: 14px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

/* The count and the phone-only envelope share one line inside the header. */
.pk-public .property-lightbox .lightbox-tools {
	display: flex;
	align-items: center;
}

/* Keyboard focus on the dialog's icon controls: the site's focus ring. */
.pk-public .property-lightbox a.btn-expand:focus-visible,
.pk-public .property-lightbox .lightbox-tools .btn-email a:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

/* Features panel on phones: two compact columns in a scrollable panel instead
   of seventy full-width rows (about 3,000 px of page). */
@media (max-width: 639.98px) {
	.pk-public .pk-features__panel {
		max-height: 62vh;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.pk-public .pk-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.pk-public .pk-feature {
		min-height: 36px;
		padding: 6px 8px;
		font-size: 0.8125rem;
		line-height: 1.25;
	}
}

/* Listing contact rail: Houzez truncates the contact's phone to "(51…" until
   the line is clicked, with nothing to say it can be clicked. The number is the
   same one the Call button dials, so it is shown in full (W11). */
.pk-public .property-form-wrap .agent-information .agent-phone,
.pk-public .property-form-wrap .agent-information .agent-phone.agent-phone-hidden {
	max-width: none !important;
	width: auto !important;
	overflow: visible !important;
	text-overflow: clip !important;
	white-space: nowrap !important;
	cursor: default;
}

/* The listing's contact column is sticky; stretched to the row height it left a
   tall empty band under the main column (and above the footer on phones). */
.pk-public .bt-sidebar-wrap.houzez_sticky {
	align-self: flex-start;
}

@media (max-width: 991.98px) {
	.pk-public .bt-sidebar-wrap.houzez_sticky {
		min-height: 0 !important;
		height: auto !important;
	}
}

/* ---- Account access for visitors (W11 closure: F-049, F-054, F-056) ---- */

/* Sign in to continue: said once, above the card, in ink rather than an alert. */
.pk-public .pk-auth-notice {
	max-width: 460px;
	margin: 0 auto 16px;
	padding: 12px 16px;
	border: 1px solid var(--pk-n100);
	border-left: 3px solid var(--pk-ink);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.45;
}

/* Favorites for a visitor: a public page, not the workspace shell. */
.pk-public .pk-saved {
	padding: 40px 0 88px;
	background: var(--pk-n25);
}

.pk-public .pk-saved__title {
	margin: 0 0 8px;
	color: var(--pk-ink);
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.018em;
}

.pk-public .pk-saved__note {
	max-width: 62ch;
	margin: 0 0 24px;
	color: var(--pk-text-secondary);
}

.pk-public .pk-saved__note a {
	color: var(--pk-red-dark);
	font-weight: 600;
}

.pk-public .pk-saved__empty {
	margin-top: 16px;
	background: #fff;
}

.pk-public .pk-saved__empty h2 {
	margin: 4px 0 0;
	color: var(--pk-ink);
	font-size: 1.375rem;
	font-weight: 700;
}

.pk-public .pk-saved__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--pk-red-soft);
	color: var(--pk-red-dark);
}

/* Reset password opened without a link: a card that says what it is for, inside
   the native box exactly as it looks at 0.9.28 (the page itself is not restyled). */
.pk-public .pk-reset__title {
	margin: 0 0 10px;
	color: var(--pk-ink);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.015em;
}

.pk-public .pk-reset__text {
	margin: 0 0 20px;
	color: var(--pk-text-secondary);
}

.pk-public .pk-reset__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.pk-public .hz-password-reset-page .alert + .pk-reset {
	margin-top: 16px;
}

/* ---- Home: the approved design (theme 0.9.28) is frozen; only the hidden
   heading support below was kept from the W11 closure. ---- */

/* The visually hidden legend and strip heading must not depend on the block
   library stylesheet that happens to define .screen-reader-text. */
.pk-home .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

/* Features panel: bounded from 640 px up as well (the approved phone rule above
   keeps its own 62vh bound and stays in charge below 640 px), so seventy
   feature tiles never fill several screens when the panel opens with features
   applied (W11-F-011, functional; the panel's grid, actions and the sort
   control keep the approved 0.9.28 styling). */
@media (min-width: 640px) {
	.pk-public .pk-features__panel {
		max-height: min(440px, 60vh);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
}

/* Listing contact rail: a full phone number may wrap under its icon rather than
   push the column wider (W11-F-050). */
.pk-public .property-form-wrap .agent-information .agent-phone-wrap {
	flex-wrap: wrap;
	row-gap: 2px;
}

.pk-publish__note {
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.9375rem;
}

/* =========================================================================
   W12 — full-viewport visual QA and responsive polish (2026-09-17).
   Responsive/presentation corrections only. Every rule here removes something
   that is measurably broken at a specific viewport; none of them changes the
   approved Propeka design at any width where that design currently renders
   correctly. Each carries its W12 finding id.
   ========================================================================= */

/* W12-V-003: the hero clipped the home location suggestions in half. The list
   is anchored below a field that sits near the bottom of the 660 px hero, so
   overflow:hidden cut 166 px off a 340 px panel at 1440 (109 px at 320 and
   390) - about half the suggestions. Measured on the live page: the hero's
   background media does not overflow the hero on any edge, the hero has no
   radius and no transform, and releasing the clip adds no horizontal scroll,
   so the clip was containing nothing but the dropdown. The media keeps its own
   clip so a future transformed image still cannot spill. */
.pk-hero--photo {
	overflow: visible;
}

.pk-hero--photo .pk-hero__media {
	overflow: hidden;
}

/* W12-V-001: below about 400 px the featured card cannot fit beds/baths/area on
   one line, and the nowrap rule meant the area fact was laid out past the card
   and cut away by the card's overflow:hidden - it could not be seen at all
   (41-58 px lost per card at 320, 5 px at 390). The row now wraps only when it
   must; each fact stays unbroken, so at 430 and above the approved single line
   is unchanged. */
@media (max-width: 639.98px) {
	.pk-home .pk-featured .pk-card__facts {
		flex-wrap: wrap;
	}

	.pk-home .pk-featured .pk-card__facts > li {
		white-space: nowrap;
	}
}

/* W12-V-002: Houzez prints a nested Bootstrap .container inside the relocated
   professionals name-search. It is already the shell width but still applies
   its own 12 px inline padding, so the control sat at 125..1301 while the page
   title, the agent cards, the header and the footer all sit at 113..1313.
   Zeroing that padding puts the control back on the Propeka shell. Scoped to
   >=992 because below that Houzez hides this element entirely and shows the
   phone search trigger that W11 deliberately preserved. */
@media (min-width: 992px) {
	.pk-public .advanced-search-nav.pk-directory-search > .container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* W12-V-011: in the Location card the heading and the "Open on Google Maps"
   button share one non-wrapping row. At 320 the card's inner width cannot hold
   both: the button's right edge measured x 317 against a card ending at x 293
   and a content width of 305, so it ran 24 px past the card, 12 px past the
   viewport, and the page could be panned sideways. Letting that one title row
   wrap drops the button onto its own line at 320 (right edge 232, i.e. 61 px
   inside the card, horizontal scroll 0). At 390 and above the pair already fits
   and the rule is inert, so the approved single-row heading is unchanged. */
.pk-public .property-view .block-title-wrap {
	flex-wrap: wrap;
	gap: 8px;
}

/* W12-V-012: the Address / City / State rows are space-between flex rows with
   no column gap. When the value is long enough to fill the remaining track its
   first character butts straight against the label's colon - measured gap 0 px
   at both 320 and 390, reading "Address:Kendall County, Boerne, TX 78006".
   A column gap restores the separation without moving the value to its own
   line: 14 px at 320 and 390, both still on one line, and at 1440 the rows
   already have 59 px of space so nothing changes there. */
.pk-public .property-view .list-lined-item {
	column-gap: 14px;
}

/* W12-V-014: below 768 the listing-detail rail stacks under the main column,
   and the contact card kept both its 24 px padding (every other card drops to
   18 px) and the stacked column's Bootstrap gutter. Measured at 430: every
   content card spans x16..399 with its heading at x35, while the page's primary
   conversion card spanned x28..387 with its heading at x53 - 12 px narrower per
   side and 18 px further in than everything above it. Matching the padding and
   zeroing the stacked column's gutter puts it on the same edges: x16..399,
   heading x35, horizontal scroll 0. */
@media (max-width: 767.98px) {
	.pk-public .property-wrap .bt-sidebar-wrap {
		padding-left: 0;
		padding-right: 0;
	}

	.pk-public .property-wrap .bt-sidebar-wrap .widget-wrap {
		padding: 18px !important;
	}
}

/* Sample listing label in the detail header (0.9.52): the card's sample badge
   colours, beating the generic green label rule above. */
.pk-public .property-labels-wrap .label.pk-label-sample {
	background: var(--pk-warning-soft) !important;
	color: #6a4a00 !important;
	border: 0 !important;
}

/* Sample listings and sample professionals (0.9.53): their numbers are
   fictional, so no call link is offered; the message form stays. */
.pk-sample-listing a[href^="tel:"] {
	display: none !important;
}

/* Footer "Start listing" link (0.9.53): same weight and colour as the footer
   menu links, placed under the note text. */
.pk-footer__note .pk-footer__note-link {
	margin-top: 10px;
}

.pk-footer__note .pk-footer__note-link a {
	color: var(--pk-ink);
	font-weight: 600;
	text-decoration: none;
}

.pk-footer__note .pk-footer__note-link a:hover,
.pk-footer__note .pk-footer__note-link a:focus {
	color: var(--pk-action);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Listing header chips on narrow phones (0.9.55): at 360-375 px the chip row
   is ~200 px beside the save and share buttons, and "For sale" broke over two
   lines inside its chip. A chip now moves to the next line as a whole. */
.pk-public .mobile-property-title .property-labels-wrap {
	flex-wrap: wrap;
	row-gap: 4px;
}

.pk-public .property-labels-wrap .label {
	white-space: nowrap;
}

/* Text pages on phones (0.9.55): the parent's 40 px panel padding left a
   271 px column for About, Terms of Use and Privacy Policy at 375 px. */
@media (max-width: 575.98px) {
	.pk-public .page-content-wrap {
		padding: 24px 20px;
	}
}

/* Support form (0.9.60), printed by the Propeka Support mu-plugin's
   [propeka_support_form] on /support/. New component, no redesign: fields,
   labels, focus and the red action repeat the listing inquiry form above. */
.pk-support-form {
	max-width: 640px;
	margin: 8px 0 0;
	color: var(--pk-ink);
	font-family: var(--pk-font);
}

.pk-support-form__intro,
.pk-support-form__help {
	margin: 0 0 6px;
	color: var(--pk-muted);
	font-size: 13px;
	line-height: 1.5;
}

.pk-support-form__intro {
	margin-bottom: 16px;
}

.pk-support-form__field {
	margin: 0 0 18px;
}

.pk-support-form__label {
	display: block;
	margin: 0 0 6px;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.pk-support-form .form-control {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--pk-n200);
	border-radius: 10px;
	background: #fff;
	color: var(--pk-ink);
	font-family: inherit;
	font-size: 15px;
}

.pk-support-form textarea.form-control {
	min-height: 160px;
	resize: vertical;
}

.pk-support-form .form-control:focus {
	border-color: var(--pk-ink);
	outline: 2px solid transparent;
	box-shadow: var(--pk-focus-ring);
}

.pk-support-form__field.is-invalid .form-control {
	border-color: var(--pk-error);
}

.pk-support-form__error {
	margin: 6px 0 0;
	color: var(--pk-error);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.pk-support-form__field--check {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 10px;
	align-items: start;
}

.pk-support-form__field--check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--pk-action);
}

.pk-support-form__field--check label {
	margin: 0;
	color: var(--pk-ink);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
}

.pk-support-form__field--check .pk-support-form__error {
	grid-column: 2;
}

.pk-support-form a {
	color: var(--pk-action);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pk-support-form input[type="checkbox"]:focus-visible,
.pk-support-form a:focus-visible,
.pk-support-form__notice:focus-visible {
	outline: 2px solid var(--pk-link);
	outline-offset: 2px;
}

.pk-support-form__submit {
	min-height: 50px;
	padding: 0 28px;
	border: 0;
	border-radius: 10px;
	background: var(--pk-action);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color var(--pk-transition);
}

.pk-support-form__submit:hover {
	background: var(--pk-action-hover);
}

.pk-support-form__submit:focus-visible {
	outline: 2px solid var(--pk-ink);
	outline-offset: 2px;
	box-shadow: var(--pk-focus-ring);
}

.pk-support-form__notice {
	margin: 0 0 20px;
	padding: 14px 16px;
	border: 1px solid;
	border-radius: 10px;
	font-size: 15px;
	line-height: 1.5;
}

.pk-support-form__notice p {
	margin: 0;
}

.pk-support-form__notice ul {
	margin: 8px 0 0;
	padding-left: 20px;
}

.pk-support-form__notice--success {
	border-color: var(--pk-success);
	background: var(--pk-success-soft);
	color: var(--pk-ink);
}

.pk-support-form__notice--error {
	border-color: var(--pk-error);
	background: var(--pk-error-soft);
	color: var(--pk-ink);
}

@media (max-width: 575.98px) {
	.pk-support-form__submit {
		width: 100%;
	}
}

/* The selected Sign in / Register tab stays readable inside the Houzez dialog,
 * whose own rule is more specific than the one above. */
.pk-public .login-register-form .modal-header .login-register-tabs .nav-link.active {
	background: var(--pk-ink);
	color: #fff;
}

/* Plain pages (Support, Terms, Privacy, About) line up with the header and
 * footer instead of Bootstrap's narrower container. */
.pk-public.page-template-default .page-wrap > .container {
	width: 100%;
	max-width: calc(var(--pk-shell, 1200px) + 2 * var(--pk-gutter));
	padding-inline: var(--pk-gutter);
}

/* =========================================================================
   R2 live polish (2026-10-01)
   ========================================================================= */

/* Support: the Topic select had appearance:none and no arrow, so it read as a
   text field. Same chevron as every .pk-select, inside the field's own padding. */
.pk-support-form select.form-control {
	padding-right: 44px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230d2338' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px 16px;
	cursor: pointer;
}

/* Home feature strip: three of the four titles broke with a one-word last line
   ("…at a / glance"); balanced wrapping keeps the same size and weight. */
.pk-strip__item .pk-strip__title {
	text-wrap: balance;
}

/* ---- R2 batch 2 (2026-10-01): room for the price labels, keyboard focus,
   contrast, tap targets, pressed states, reduced motion ---- */

/* Hero price select: the chosen range was cut mid-string ("$750,000 – $") in a
   135 px track at >= 1200. The type and beds columns give up the slack; the
   labels are also the compact U.S. form ($750K – $1M). */
@media (min-width: 1200px) {
	.pk-hero--photo .pk-search__bar {
		grid-template-columns: 1.7fr 0.85fr 1.3fr 0.55fr auto;
	}
}

/* 640-767.98: the stacked section head kept align-items: flex-end from the
   wide-screen rule, pushing the title and "View all" to the right edge. */
@media (max-width: 767.98px) {
	.pk-home .pk-section__head {
		align-items: flex-start;
	}
}

/* Keyboard focus: the 35 %-alpha rings composited to 1.6-1.9:1; the ring is
   now the established opaque link blue. Houzez resets button outlines with
   !important, so buttons carry the ring as a box-shadow. */
.pk-chip:focus-visible,
.pk-tab input:focus-visible + span,
.pk-city:focus-visible,
.pk-type:focus-visible,
.pk-agent:focus-visible,
.pk-card__link:focus-visible {
	outline-color: var(--pk-link);
}

.pk-public .agent-list-wrap a:focus-visible,
.pk-public .breadcrumb a:focus-visible,
.pk-public .property-wrap .label-status:focus-visible,
.pk-public .property-features-wrap a:focus-visible,
.pk-chips__clear:focus-visible,
.pk-chip--remove:focus-visible,
.pk-public .pagination .page-link:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

/* Gallery tiles clip their overflow, so the ring sits inside the photo. */
.pk-public .hs-gallery-v4-grid a:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: -3px;
}

.pk-results-bar__toggle:focus-visible,
.pk-features__toggle:focus-visible,
.pk-features__clear:focus-visible,
.pk-card__save:focus-visible,
.pk-public .save-search-form-wrap .btn:focus-visible,
.pk-public .agent-list-link:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px var(--pk-link);
}

@media (max-width: 639.98px) {
	.pk-home .pk-featured .pk-card:focus-within {
		box-shadow: 0 0 0 3px var(--pk-link);
	}
}

/* Text contrast to AA: the suggestion count pill (3.99:1) and placeholders
   (2.6-3.1:1). Size and weight unchanged. */
.pk-location__count {
	color: #177238;
}

.pk-location__input::placeholder,
.pk-input::placeholder,
.pk-hero--photo .pk-search__field .pk-location__input::placeholder {
	color: var(--pk-text-tertiary);
}

/* Touch targets: hit areas grow to 44 px without changing the drawn size. */
.pk-location__clear,
.pk-chip--remove {
	position: relative;
}

.pk-location__clear::before,
.pk-card__save::before {
	content: "";
	position: absolute;
	inset: -6px;
}

.pk-segmented__option::before {
	content: "";
	position: absolute;
	inset: -4px 0;
}

.pk-chip--remove::before {
	content: "";
	position: absolute;
	inset: -5px 0;
}

.pk-chips__clear {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
}

@media (pointer: coarse) {
	.pk-public .agent-list-link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* The two most prominent buttons kept their hover lift while pressed. */
.pk-hero--photo .pk-search__submit:active,
.pk-public #header-section .btn-create-listing:active {
	transform: translateY(0);
	box-shadow: none;
}

/* Reduced motion, last in the cascade so the later hover rules cannot undo it,
   and covering the city, type and professional tiles too. */
@media (prefers-reduced-motion: reduce) {
	.pk-card,
	.pk-card__img,
	.pk-card__go,
	.pk-btn,
	.pk-city,
	.pk-city__img,
	.pk-agent,
	.pk-type,
	.pk-hero--photo .pk-search__submit,
	.pk-public #header-section .btn-create-listing {
		transition: none;
	}

	.pk-card:hover,
	.pk-card:hover .pk-card__img,
	.pk-city:hover .pk-city__img,
	.pk-city:focus .pk-city__img,
	.pk-agent:hover,
	.pk-type:hover,
	.pk-hero--photo .pk-search__submit:hover,
	.pk-public #header-section .btn-create-listing:hover {
		transform: none;
	}
}

/* ---- R2 batch 3 (2026-10-01): button focus rings that survive the parent's
   resets, view toggles, the saved heart ---- */

/* Houzez resets button focus with !important, so the ring is forced too. */
.pk-results-bar__toggle:focus-visible,
.pk-features__toggle:focus-visible,
.pk-features__clear:focus-visible,
.pk-card__save:focus-visible,
.pk-public .save-search-form-wrap .btn:focus-visible,
.pk-public .agent-list-link:focus-visible,
.pk-public .switch-btn:focus-visible,
.pk-public #header-section .btn-create-listing:focus-visible,
.pk-public .listing-tools-wrap .sort-by .dropdown-toggle:focus-visible,
.pk-public .hz-btn-map:focus-visible {
	outline: 0 !important;
	box-shadow: 0 0 0 3px var(--pk-link) !important;
}

/* A saved listing's heart is filled in the brand red; the parent's icon-font
   fallback (if the script has not run yet) takes the same red and size. */
.pk-card__save.is-saved {
	color: var(--pk-red);
}

.pk-card__save.is-saved .pk-icon--heart {
	fill: currentColor;
}

.pk-card__save .houzez-icon.icon-love-it {
	font-size: 22px;
	line-height: 1;
	color: var(--pk-red);
}

/* ---- R2 batch 4 (2026-10-01): phone section rhythm, saved heart colour ---- */

/* Phones re-order the home sections with flex order, so the "next section
   drops its top padding" rule (DOM order) left 40 px before the city tiles
   but 80 px before the professionals and the type tiles. Measured at 390:
   40 / 80 / 80. Every section now opens 40 px after the previous one. */
@media (max-width: 767.98px) {
	.pk-home .pk-agents,
	.pk-home .pk-browse {
		padding-top: 0 !important;
	}
}

/* The saved heart stays brand red under the card's hover colour too. */
.pk-card .pk-card__save.is-saved,
.pk-card .pk-card__save.is-saved:hover {
	color: var(--pk-red);
}

/* ---- PKUSW-75 (2026-10-17): phone home, listings in the first screen ----
   Measured at 390: the first listing started at 1201 px (the hero was 628 px,
   then the four-cue strip). The hero keeps its photo, copy and search; it is
   tighter, type and Search share a row, and the cues follow the listings. */
@media (max-width: 767.98px) {
	/* .pk-home is a flex column on phones (the older order rules above name
	   sections the template no longer prints). */
	.pk-home .pk-strip,
	.pk-home .pk-cities,
	.pk-home .pk-agents {
		order: 1;
	}
}

@media (max-width: 639.98px) {
	.pk-hero--photo .pk-hero__inner {
		padding-top: 20px;
		padding-bottom: 20px;
	}

	.pk-hero--photo .pk-hero__title {
		margin-bottom: 8px;
		font-size: 1.875rem;
	}

	.pk-hero--photo .pk-hero__lead {
		font-size: 0.9375rem;
		line-height: 1.45;
	}

	.pk-hero--photo .pk-search {
		margin-top: 16px;
	}

	.pk-hero--photo .pk-search__bar {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.pk-hero--photo .pk-search__field--location {
		grid-column: 1 / -1;
	}

	.pk-hero--photo .pk-search__submit {
		grid-column: auto;
		width: auto;
		gap: 8px;
		padding-inline: 14px;
		font-size: 1rem;
	}

	.pk-home .pk-featured {
		padding-top: 24px;
	}

	.pk-home .pk-featured .pk-section__head {
		margin-bottom: 16px;
	}

	/* The sort control's desktop gap before Save Search (hidden here) pushed the
	   count line 6 px right of the cards. */
	.pk-public .listing-tools-wrap .sort-by {
		margin-right: 0;
	}
}

/* Under 380 px the longest property type ("Commercial") needs the room the
   search icon takes; the button keeps its label. */
@media (max-width: 379.98px) {
	.pk-hero--photo .pk-search__submit .pk-icon--search {
		display: none;
	}
}

/* ---- PKUSW-75: phone results, the listings before the refine form ----
   With filters applied the form folds behind the chips; "Edit filters" opens
   it (:target without the script, .is-editing with it). Wider screens keep the
   open form and never show the link. */
.pk-chips__edit {
	display: none;
}

@media (max-width: 767.98px) {
	.pk-results-bar.is-collapsible:not(:target):not(.is-editing) {
		display: none;
	}

	.pk-results-bar.is-collapsible:not(:target):not(.is-editing) ~ .pk-chips .pk-chips__edit {
		display: inline-flex;
		border-color: var(--pk-ink);
		background: #fff;
		color: var(--pk-ink);
		font-weight: 700;
	}
}

/* ---- PKUSW-75: brand red as text ----
   Houzez prints breadcrumb and agent links in the fill red #ed0028, 4.27:1 on
   the grey page band. Text takes the brand text shade (tokens: 5.82:1 there,
   6.18:1 on white). */
.pk-public .breadcrumb a,
.pk-public .agent-name a {
	color: var(--pk-red-dark);
}

/* ---- PKUSW-75: text on listing photos ----
   The gallery "+N More" pill (white on 18 % white, blurred) measured about
   2:1 on light photos, and the phone photo count (white on 50 % black) 4.0:1
   on a white photo. Ink at 72 % keeps white text at 6.4:1 or more on any photo. */
.pk-public .img-wrap-3-text,
.pk-public .property-image-count {
	background-color: rgba(13, 35, 56, 0.72);
}

/* =========================================================================
   PKUSW-80 follow-up (owner, 2026-10-29): the sign-in / register dialog is
   the sign-in page card - white, with the same segmented Sign in / Register
   switch and a quiet close button - instead of Houzez's red header bar.
   ========================================================================= */
.pk-public .login-register-form .modal-content {
	overflow: hidden;
	border: 0;
	border-radius: 16px;
	box-shadow: 0 24px 64px rgba(13, 35, 56, 0.28);
}

.pk-public .login-register-form .modal-header {
	align-items: center;
	padding: 20px 16px 0 28px;
	border: 0;
	border-radius: 0;
	background: #fff;
}

.pk-public .login-register-tabs .nav-tabs,
.pk-public .login-register-form .modal-header .login-register-tabs .nav-tabs {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	border: 0;
	border-radius: 12px;
	background: var(--pk-n50);
}

.pk-public .login-register-tabs .nav-tabs .nav-link,
.pk-public .login-register-form .modal-header .login-register-tabs .nav-link {
	min-height: 40px;
	margin: 0;
	padding: 8px 20px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: var(--pk-text-secondary);
	font-size: 15px;
	font-weight: 700;
	line-height: 24px;
}

.pk-public .login-register-tabs .nav-tabs .nav-link:hover,
.pk-public .login-register-form .modal-header .login-register-tabs .nav-link:hover {
	color: var(--pk-ink);
}

.pk-public .login-register-tabs .nav-tabs .nav-link.active,
.pk-public .login-register-form .modal-header .login-register-tabs .nav-link.active {
	background: var(--pk-ink);
	color: #fff;
	box-shadow: var(--pk-shadow-2);
}

.pk-public .login-register-form .modal-header .close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--pk-ink);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	opacity: 1;
}

.pk-public .login-register-form .modal-header .close:hover {
	background: var(--pk-n50);
}

.pk-public .login-register-form .modal-body {
	padding: 20px 28px 28px;
}

.pk-public .login-register-form .pk-auth-notice {
	max-width: none;
}

/* Keyboard focus stays visible on the switch and the close button (review, 2026-10-29). */
.pk-public .login-register-tabs .nav-tabs .nav-link:focus-visible,
.pk-public .login-register-form .modal-header .login-register-tabs .nav-link:focus-visible,
.pk-public .login-register-form .modal-header .close:focus-visible {
	outline: 3px solid var(--pk-red);
	outline-offset: 2px;
	box-shadow: none;
}

/* The account type line under "I'm a" (only the chosen one shows). */
.pk-public .pk-account-types > [hidden] {
	display: none;
}

/* The plan-first welcome on Plans & Prices: one line above the plans. */
.pk-public .pk-pricing__hero .pk-auth-notice--plans {
	max-width: 640px;
	margin: 0 auto 20px;
	text-align: left;
}

/* =========================================================================
   Design pass (owner, 2026-10-29): "world class and professional, like US
   buyers expect". Each rule answers a finding of the four-lens design review
   of the live site (screenshots and selectors in Jira PKUSW-80).
   ========================================================================= */

/* 1. iPhone Safari zooms into any field under 16 px and stays zoomed. */
@media (max-width: 767.98px) {
	.pk-public .form-control,
	.pk-public .property-wrap .bt-sidebar-wrap .form-control,
	.pk-public .login-form-wrap .form-group-field .form-control,
	.pk-public .register-form-wrap .form-group-field .form-control,
	.pk-public #realtor-form .form-control,
	.pk-public .agents-template-wrap .bt-sidebar-wrap .form-control,
	.pk-public .advanced-search-v1 .form-control,
	.pk-public .bootstrap-select .bs-searchbox .form-control,
	.pk-support-form .form-control {
		font-size: 16px;
	}
}

/* 2. Beds, baths and size beside the listing title (the cards' own facts). */
.pk-public .pk-entity-facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
	color: var(--pk-ink-soft);
	font-size: 1rem;
	line-height: 1.4;
}

.pk-public .pk-entity-facts li + li::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 16px;
	margin: 0 12px;
	background: var(--pk-n300);
	vertical-align: -3px;
}

.pk-public .pk-entity-facts strong {
	color: var(--pk-ink);
	font-weight: 800;
}

/* 4. One red for every button (6.2:1 contrast), quiet round photo arrows. */
.pk-public .btn-primary:not(.btn-secondary-outlined),
.pk-public .btn-primary:not(.btn-secondary-outlined):focus {
	border-color: var(--pk-action);
	background-color: var(--pk-action);
}

.pk-public .btn-primary:not(.btn-secondary-outlined):hover,
.pk-public .btn-primary:not(.btn-secondary-outlined):active {
	border-color: var(--pk-action-hover);
	background-color: var(--pk-action-hover);
}

.pk-public .login-form-wrap .btn-login,
.pk-public .login-form-wrap .btn-primary,
.pk-public #houzez-login-btn,
.pk-public #houzez-register-btn,
.pk-public .advanced-search-v1 .btn-search,
.pk-public .advanced-search-v1 .btn-search.btn-secondary,
.pk-public .overlay-agent-search-module .btn-search,
.pk-public .overlay-agent-search-module .btn-search.btn-secondary,
.pk-public #property-lightbox .btn-primary,
.pk-public #property-lightbox .btn-secondary {
	border-color: var(--pk-action) !important;
	background: var(--pk-action) !important;
	color: #fff !important;
}

.pk-public .login-form-wrap .btn-login:hover,
.pk-public .login-form-wrap .btn-primary:hover,
.pk-public #houzez-login-btn:hover,
.pk-public #houzez-register-btn:hover,
.pk-public .advanced-search-v1 .btn-search:hover,
.pk-public .overlay-agent-search-module .btn-search:hover,
.pk-public #property-lightbox .btn-primary:hover,
.pk-public #property-lightbox .btn-secondary:hover {
	border-color: var(--pk-action-hover) !important;
	background: var(--pk-action-hover) !important;
}

.pk-mobile-actions__primary {
	background: var(--pk-action);
}

.pk-mobile-actions__primary:hover {
	background: var(--pk-action-hover);
}

@media (max-width: 991.98px) {
	.pk-public .mobile-property-contact .btn:not(.btn-secondary-outlined) {
		border-color: var(--pk-action) !important;
		background: var(--pk-action) !important;
	}
}

.pk-public #property-lightbox .slick-arrow {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92) !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.pk-public #property-lightbox .slick-arrow:hover,
.pk-public #property-lightbox .slick-arrow:focus {
	background: #fff !important;
}

.pk-public #property-lightbox .slick-arrow::before {
	color: var(--pk-ink);
	opacity: 1;
}

/* 5. Sign-up form: no second underline under each field, even rhythm. */
.pk-public .register-form-wrap .form-group,
.pk-public .login-form-wrap .form-group {
	border: 0 !important;
	box-shadow: none;
}

.pk-public .login-form-wrap .form-group-field,
.pk-public .register-form-wrap .form-group-field {
	margin-bottom: 16px;
}

.pk-public .register-form-wrap p.small {
	margin-top: -8px;
	font-size: 0.8125rem;
	line-height: 1.45;
}

/* 6. Show / Hide on the password fields (the recovery page's own control). */
.pk-public .password-field .form-control {
	padding-right: 76px;
}

.pk-public .password-field .pk-recovery-toggle {
	top: 50%;
	bottom: auto;
	z-index: 3;
	min-height: 36px;
	transform: translateY(-50%);
}

/* 7. Home property types at 1200 px+: label and count no longer hit the arrow. */
@media (min-width: 1200px) {
	.pk-home .pk-type {
		position: relative;
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 18px 18px 16px;
	}

	.pk-home .pk-type__icon {
		width: 44px;
		height: 44px;
	}

	.pk-home .pk-type__go {
		position: absolute;
		top: 30px;
		right: 18px;
	}

	.pk-home .pk-type__label,
	.pk-home .pk-type__hint {
		white-space: nowrap;
	}

	.pk-home .pk-type__hint {
		line-height: 1.35;
	}
}

/* 8. Notices as flat information panels, lighter than the form they introduce. */
.pk-public .pk-auth-notice {
	border: 1px solid var(--pk-n100);
	background: var(--pk-n50);
	font-weight: 500;
}

/* 9. Sample listings without a phone contact bar: no empty band above the footer. */
@media (max-width: 991.98px) {
	.pk-public.single-property:not(:has(.mobile-property-contact)) .footer-wrap {
		padding-bottom: 0;
	}
}

/* 10. Rent cards: the dollar figure leads, "/month" follows quietly. */
.pk-price .price-postfix,
.pk-price small {
	margin-left: 1px;
	color: var(--pk-text-secondary);
}

/* 11. One label style: Featured, status and type in sentence case, 6 px corners. */
.pk-badge--featured,
.pk-public .label-featured,
.pk-public .label-wrap .label-featured {
	letter-spacing: 0.01em;
	text-transform: none;
}

.pk-card__type {
	padding: 4px 8px;
	border-radius: var(--pk-radius-sm);
	letter-spacing: 0;
}

/* 12. Phone menu: a centred 44 px close, Log in and Sign up side by side. */
.pk-public .offcanvas-mobile-menu .offcanvas-header .btn-close {
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 -6px 0 auto;
}

.pk-public .offcanvas-mobile-menu .offcanvas-header .btn-close .houzez-icon {
	font-size: 14px;
	line-height: 1;
}

.pk-public .offcanvas-mobile-menu .offcanvas-header .btn-close:focus-visible {
	outline: 3px solid var(--pk-ink);
	outline-offset: 2px;
	box-shadow: none;
}

.pk-mobile-actions {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pk-mobile-actions__primary,
.pk-mobile-actions__primary + .pk-mobile-actions__secondary:last-child {
	grid-column: 1 / -1;
}

/* 13. Agent profile on phones: a round portrait, name and role on the first screen. */
@media (max-width: 767.98px) {
	.pk-public .agent-detail-page-v1 .agent-profile-wrap .agent-image {
		margin-bottom: 14px;
	}

	.pk-public .agent-detail-page-v1 .agent-profile-wrap .agent-image img {
		width: 112px;
		height: 112px;
		border-radius: 50%;
		box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--pk-n200);
	}
}

/* Design pass 2 (owner, 2026-10-29): search filters in one row at 1200 px and
   wider, so listings start above the fold; one price cell with min and max
   side by side; "Beds" and "Baths" as US sites say. */
.pk-price-range {
	display: flex;
	align-items: center;
	gap: 6px;
}

.pk-price-range .pk-money {
	flex: 1;
	min-width: 0;
}

.pk-price-range__dash {
	color: var(--pk-text-secondary);
}

.pk-results-bar__field--price-range {
	grid-column: span 2;
}

@media (max-width: 767.98px) {
	.pk-results-bar__field--price-range {
		grid-column: auto;
	}
}

@media (min-width: 1200px) {
	.pk-results-bar {
		display: grid;
		grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.7fr) minmax(0, 0.75fr) minmax(0, 0.75fr) auto;
		gap: 8px;
		padding: 8px;
	}

	.pk-results-bar__row,
	.pk-results-bar__more {
		display: contents;
	}

	.pk-results-bar__field,
	.pk-results-bar__submit {
		min-height: 52px;
	}

	.pk-results-bar__field--price-range {
		grid-column: auto;
	}

	.pk-results-bar__submit {
		order: 1;
	}

	.pk-results-bar__note,
	.pk-results-bar__error,
	.pk-features {
		order: 2;
		grid-column: 1 / -1;
		margin: 0;
	}

	.pk-features__toggle {
		min-height: 44px;
	}
}

/* Cycle 2 (owner, 2026-10-29): listing pages show "/month" in the same quiet
   style as the cards (desktop header and the phone title block). */
.pk-public .item-price .price-postfix {
	margin-left: 2px;
	color: var(--pk-text-secondary);
	font-size: 0.6em;
	font-weight: 600;
	letter-spacing: 0;
}

/* =========================================================================
   Cycle 2 (owner, 2026-10-29): what the first pass missed.
   ========================================================================= */

/* The sample-profile "contact" fragment also prints a copy straight into
   <body>, below the footer; only that stray copy is hidden. */
body > .pk-sample-contact-note {
	display: none;
}

/* Keyboard focus on every link and button (WCAG 2.4.7). The parent theme sets
   a:focus { outline: 0 } and button:focus / .btn:focus { outline: none !important },
   so links get an outline and buttons a box-shadow ring. */
.pk-public a:focus-visible {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

.pk-public .mobile-navbar-nav .nav-link:focus-visible,
.pk-public .dropdown-item:focus-visible {
	outline-offset: -3px;
}

.pk-public button:focus-visible,
.pk-public .btn:focus-visible {
	box-shadow: 0 0 0 3px var(--pk-link) !important;
}

.pk-public #property-lightbox .btn-close:focus-visible,
.pk-public #property-lightbox .slick-arrow:focus-visible {
	box-shadow: 0 0 0 2px #fff, 0 0 0 5px var(--pk-link) !important;
}

/* Placeholders at 4.96:1 instead of 2.44:1 (two rules: a list with the
   -webkit- form would be dropped by Firefox). */
.pk-public .form-control::placeholder {
	color: var(--pk-text-tertiary);
	opacity: 1;
}

.pk-public .form-control::-webkit-input-placeholder {
	color: var(--pk-text-tertiary);
}

/* Error notices keep an error look after the flat-notice restyle. */
.pk-public .pk-auth-notice[role="alert"] {
	border-color: #f2c4c0;
	border-left: 3px solid var(--pk-error);
	background: var(--pk-error-soft);
	color: var(--pk-text);
	font-weight: 600;
}

/* One Show control: hide Edge's own password eye beside it. */
.pk-public .password-field input::-ms-reveal,
.pk-public .password-field input::-ms-clear {
	display: none;
}

/* Leftovers (owner, 2026-10-29): on 360 and 375 px phones "Remember me" and
   "Forgot your password?" broke mid-phrase. The pair shares one size, phones
   get a 20px card gutter, and anything narrower wraps whole phrases. */
.pk-public #houzez_login_form .form-tools .d-flex {
	flex-wrap: wrap;
	align-items: center;
	column-gap: 8px;
}

.pk-public #houzez_login_form .form-tools .control--checkbox,
.pk-public #houzez_login_form .form-tools .d-flex > a {
	font-size: 0.875rem;
	white-space: nowrap;
}

.pk-public #houzez_login_form .form-tools .d-flex > a {
	margin-left: auto;
}

/* The same 20px on the Log in dialog that phones open from the account panel. */
@media (max-width: 575.98px) {
	.pk-public .login-form-page-wrap {
		padding-right: 20px;
		padding-left: 20px;
	}

	.pk-public .login-register-form .modal-header {
		padding-left: 20px;
	}

	.pk-public .login-register-form .modal-body {
		padding-right: 20px;
		padding-left: 20px;
	}
}

/* =========================================================================
   Speed and accessibility round (owner, 2026-10-29)
   ========================================================================= */

/* Houzez prints its typography with no fallback ("font-family: Plus Jakarta
   Sans"), so a first visit painted in the browser's serif until the web font
   arrived. Same selectors, printed later: the same font, plus the size-matched
   fallback from propeka-tokens.css. */
body, .main-nav, .dropdown-menu, .login-register, .btn.btn-create-listing, .logged-in-nav,
.btn-phone-number, .btn, .ele-btn, .houzez-search-button, .houzez-submit-button, .form-control,
.bootstrap-select .text, .sort-by-title, h1, h2, h3, h4, h5, h6, .item-title, .page-title-mobile,
.top-bar-wrap, .footer-wrap {
	font-family: var(--pk-font);
}

/* AVIF/WebP copies of the hero and city photos come through <picture>; the
   wrapper adds no box, so the photo keeps its exact layout. */
.pk-hero__media picture,
.pk-city picture {
	display: contents;
}

/* "Skip to main content": off screen until a keyboard focuses it (WCAG 2.4.1). */
.pk-skip-link {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	min-height: 44px;
	padding: 10px 16px;
	border-radius: var(--pk-radius-sm);
	background: var(--pk-n0);
	box-shadow: var(--pk-shadow-3);
	color: var(--pk-ink);
	font-family: var(--pk-font);
	font-size: var(--pk-fs-base);
	font-weight: var(--pk-fw-semi);
	line-height: var(--pk-lh-base);
	text-decoration: none;
}

.pk-skip-link:not(:focus) {
	width: 1px;
	height: 1px;
	min-height: 0;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	box-shadow: none;
}

.pk-skip-link:focus {
	outline: 3px solid var(--pk-link);
	outline-offset: 2px;
}

body.admin-bar .pk-skip-link {
	top: 40px;
}

@media (max-width: 782px) {
	body.admin-bar .pk-skip-link {
		top: 54px;
	}
}

.pk-skip-target:focus {
	outline: 0;
}

/* =========================================================================
   Render-blocking round (owner, 2026-10-29)
   ========================================================================= */

/* Visually hidden text (labels, legends, headings for screen readers). These
   rules came from the block library and Elementor's front-end CSS, which no
   longer load on public pages; same declarations, so nothing moves. */
.screen-reader-text {
	clip-path: inset(50%);
	word-wrap: normal !important;
	word-break: normal !important;
}

.screen-reader-text,
.screen-reader-text span,
.ui-helper-hidden-accessible {
	position: absolute;
	top: -10000em;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.screen-reader-text:focus {
	top: 5px;
	left: 5px;
	z-index: 100000;
	display: block;
	width: auto;
	height: auto;
	padding: 15px 23px 14px;
	clip-path: none;
	background-color: #ddd;
	color: #444;
	font-size: 1em;
	line-height: normal;
	text-decoration: none;
}

/* Elementor's front-end CSS also stopped transitions for visitors who ask
   for reduced motion; kept. */
@media (prefers-reduced-motion: reduce) {
	.animated {
		animation: none !important;
	}

	html * {
		transition-delay: 0s !important;
		transition-duration: 0s !important;
	}
}
