/*
 * Pacific Agency — hero-polish-v2.css (v0.5.74 — dark aerial + stacking cards + glass)
 * Loaded after main.css + editorial-polish.css.
 * Append-only polish file. Never edit main.css or editorial-polish.css.
 */

/* ========== HERO: centered logo + copy block ========== */
.pa-source-hero .pa-source-hero-copy {
	max-width: none;
	margin: 0 auto;
	text-align: left;
	align-items: flex-start;
	padding: 96px 0 32px;
	display: flex;
	flex-direction: column;
}

.pa-source-hero .pa-source-hero-sub {
	max-width: 620px;
	margin: 22px 0 28px;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.45;
	font-weight: 500;
	color: rgba(255,255,255,.96);
	text-shadow: 0 2px 22px rgba(0,0,0,.42);
	text-wrap: balance;
}

.pa-source-hero .pa-source-hero-actions {
	justify-content: flex-start;
	gap: 12px;
	margin-top: 4px;
}

/* Hero white logo — all-white via filter (user approved including triangle) */
.pa-hero-center-logo {
	display: block;
	width: 320px;
	max-width: 80vw;
	margin: 0 0 18px 0;
	object-fit: contain;
	filter: brightness(0) invert(1)
	        drop-shadow(0 16px 30px rgba(0,0,0,.45))
	        drop-shadow(0 0 24px rgba(7,18,36,.4));
	opacity: 0;
	transform: translateY(-6px);
	animation: pa-hero-logo-in .7s ease-out .1s forwards;
}
@keyframes pa-hero-logo-in {
	to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 900px) { .pa-hero-center-logo { width: 260px; } }
@media (max-width: 640px) {
	.pa-hero-center-logo { width: 200px; margin-bottom: 14px; }
	.pa-source-hero .pa-source-hero-copy { padding: 72px 16px 24px; }
	.pa-source-hero .pa-source-hero-sub { font-size: 17px; }
}

/* Hero inner container — same rail as search shell */
.pa-source-hero .pa-source-hero-inner {
	max-width: var(--source-max, 1280px);
	margin: 0 auto;
	padding: 0 clamp(20px, 5vw, 60px);
}
.pa-hero-search-shell {
	max-width: 100%;
	margin: 18px 0 0;
}

/* ========== BUTTONS / CTAs ========== */
.pa-source-pill, .pa-btn, .pa-source-link-arrow, .pa-source-book, .pa-call-agent-cta a {
	height: 44px;
	min-height: 44px;
	line-height: 1;
	padding-top: 0;
	padding-bottom: 0;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
	will-change: transform;
}
.pa-source-pill:hover, .pa-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(7, 18, 36, .14);
}
.pa-source-pill:active, .pa-btn:active { transform: translateY(0); }
.pa-source-pill:focus-visible, .pa-btn:focus-visible, .pa-source-link-arrow:focus-visible {
	outline: 2px solid var(--cyan, #29abe2);
	outline-offset: 3px;
}
.pa-source-link-arrow span[aria-hidden="true"] {
	display: inline-block;
	transition: transform .2s ease;
}
.pa-source-link-arrow:hover span[aria-hidden="true"] { transform: translateX(3px); }

/* Liquid glass hero pills */
.pa-source-hero .pa-source-pill {
	background: rgba(255,255,255,.18) !important;
	-webkit-backdrop-filter: blur(18px) saturate(180%);
	backdrop-filter: blur(18px) saturate(180%);
	border: 1px solid rgba(255,255,255,.35) !important;
	color: #fff !important;
	box-shadow: 0 6px 20px rgba(7,18,36,.18);
}
.pa-source-hero .pa-source-pill.is-active {
	background: rgba(255,255,255,.92) !important;
	color: #071e33 !important;
	border-color: rgba(255,255,255,.95) !important;
}

/* ========== NAV + HEADER ========== */
.pa-nav {
	background: rgba(255,253,249,.55) !important;
	-webkit-backdrop-filter: blur(22px) saturate(160%);
	backdrop-filter: blur(22px) saturate(160%);
	border-bottom: 1px solid rgba(255,255,255,.4);
}
/* Header logo parity */
.pa-nav .pa-brand img,
.pa-nav .pa-brand .custom-logo {
	height: 44px !important;
	width: auto !important;
	max-width: 200px;
	object-fit: contain;
}
.pa-nav-utils .pa-cabinet-brand img {
	height: 44px !important;
	width: auto !important;
	max-width: 180px;
	object-fit: contain;
}
@media (max-width: 768px) {
	.pa-nav .pa-brand img,
	.pa-nav-utils .pa-cabinet-brand img { height: 34px !important; }
}
.pa-nav-links .pa-menu > li > a {
	position: relative;
	transition: color .18s ease;
}
.pa-nav-links .pa-menu > li > a::after {
	content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px;
	height: 1px; background: currentColor; transform: scaleX(0);
	transform-origin: center; transition: transform .22s ease; opacity: .7;
}
.pa-nav-links .pa-menu > li > a:hover::after,
.pa-nav-links .pa-menu > li > a:focus-visible::after { transform: scaleX(1); }
.pa-mobile-menu-toggle { transition: transform .18s ease; }
.pa-mobile-menu-toggle:hover { transform: scale(1.06); }

/* ========== FIXED AERIAL BACKDROP (v0.5.72: lighter) ==========
   - filter: brightness(1.18) lifts the photo overall.
   - Cream fade gradient softer at top, deeper lower for legibility. */
#pa-bgfixed {
	position: fixed;
	inset: 0;
	z-index: -10;
	background: url('/wp-content/themes/pacific-agency/assets/images/imc-coastline-original.jpg') center / cover no-repeat;
	filter: brightness(1.18) saturate(.92) contrast(.96);
	pointer-events: none;
}
#pa-bgfixed::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg,
		rgba(247,244,239,0) 0,
		rgba(247,244,239,.22) 40vh,
		rgba(247,244,239,.55) 100vh,
		rgba(247,244,239,.85) 160vh);
	pointer-events: none;
}
html { background: #e8edf1; }
body, body.pa-home { background: transparent !important; }
main.pa-main,
main.pa-source-home,
.pa-sales-page, .pa-rentals-page, .pa-properties-page,
.pa-itb-results-page, .pa-itb-selection-page, .pa-team-page,
.pa-itb-property-page, .pa-contact-page { background: transparent !important; }

/* ========== INNER PAGE HEROES (v0.5.70: no inline coastline; use #pa-bgfixed) ========== */
.pa-page-hero,
header.pa-page-header {
	background: transparent !important;
	background-image: none !important;
	color: var(--ink, #071e33) !important;
}
.pa-page-hero .pa-hero-title,
header.pa-page-header h1.pa-h1,
header.pa-page-header h1 {
	color: var(--ink, #071e33) !important;
	text-shadow: none !important;
}
.pa-page-hero .pa-hero-sub,
header.pa-page-header .pa-hero-sub {
	color: rgba(7, 30, 51, .8) !important;
	text-shadow: none !important;
}
/* Constrain inner-page header to content rail */
header.pa-page-header {
	max-width: var(--source-max, 1280px) !important;
	margin: 0 auto !important;
	padding: 80px clamp(20px, 5vw, 60px) 28px !important;
}
header.pa-page-header h1.pa-h1,
header.pa-page-header h1 { margin: 0 !important; max-width: 100% !important; padding: 0 !important; text-align: left; }

/* ========== HERO SEARCH BAR ========== */
.pa-hero-search-shell {
	background: rgba(255,253,249,.55) !important;
	-webkit-backdrop-filter: blur(22px) saturate(160%);
	backdrop-filter: blur(22px) saturate(160%);
	border: 1px solid rgba(255,255,255,.5) !important;
	border-radius: 18px !important;
	box-shadow: 0 18px 50px rgba(7,18,36,.18);
	padding: 18px !important;
}
.pa-hero-search-shell form,
.pa-hero-search-shell form.row {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	gap: 12px !important;
}
.pa-hero-search-shell .form-group {
	flex: 1 1 130px !important;
	min-width: 0;
	margin: 0 !important;
}
.pa-hero-search-shell button[type="submit"],
.pa-hero-search-shell input[type="submit"] {
	height: 42px !important;
	min-height: 42px;
	flex: 0 0 auto !important;
	padding: 0 22px;
	margin: 0 !important;
	align-self: flex-end !important;
}
.pa-hero-search-shell form > br,
.pa-hero-search-shell form > .clearfix { display: none !important; }
.pa-source-hero .pa-hero-search-shell .pa-hero-field-hidden { display: none !important; }
.pa-source-hero .pa-hero-search-shell select.pa-hero-select,
.pa-source-hero .pa-hero-search-shell select {
	height: 42px !important;
	min-height: 42px;
	line-height: 1.2;
	padding: 8px 32px 8px 12px;
	border-radius: 8px;
	border: 1px solid rgba(255,255,255,.18);
	background-color: rgba(255,255,255,.96);
	color: var(--ink, #12233f);
	font-size: 14px;
	-webkit-appearance: menulist;
	appearance: auto;
	overflow: hidden;
}
.pa-source-hero .pa-hero-search-shell select[multiple] {
	height: 42px !important;
	max-height: 42px !important;
}
.pa-source-hero .pa-hero-search-shell label {
	font-family: var(--font-mono, "JetBrains Mono", monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255,255,255,.78);
	margin-bottom: 6px;
	display: block;
}
.pa-source-hero .pa-hero-search-shell input[type="text"],
.pa-source-hero .pa-hero-search-shell input[type="number"] {
	height: 42px;
	border-radius: 8px;
	border: 1px solid rgba(255,255,255,.18);
	background: rgba(255,255,255,.96);
	color: var(--ink, #12233f);
	padding: 8px 12px;
	font-size: 14px;
}
.pa-source-hero .pa-hero-neighborhood-group select {
	border-color: rgba(41, 171, 226, .45);
	box-shadow: 0 0 0 2px rgba(41, 171, 226, .12);
}
@media (max-width: 768px) {
	.pa-source-hero .pa-hero-search-shell form { gap: 6px; }
	.pa-source-hero .pa-hero-search-shell .form-group { width: 100%; flex: 1 1 100% !important; }
}

/* ========== KILL pa-reveal (legacy fade that left mobile washed-out) ========== */
.pa-reveal,
.pa-reveal.is-changing,
.pa-reveal.is-revealing,
.pa-reveal:not(.is-revealed) {
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}

/* ========== pa-fade-up — CSS-FIRST, JS-ENHANCED ==========
   v0.5.69 nuclear safety:
   - Initial opacity 0.999 (effectively visible) so a JS failure never hides content.
   - A 1.2 s CSS-only safety animation forces opacity:1 + transform:none regardless of JS.
   - On mobile/touch the whole thing is short-circuited to fully visible.
*/
.pa-fade-up {
	opacity: 0.999;
	transform: translateY(14px);
	transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
	animation: pa-fade-up-safety 0.001s linear 1.2s forwards;
}
@keyframes pa-fade-up-safety {
	to { opacity: 1; transform: none; }
}
.pa-fade-up.is-visible,
body.pa-loaded .pa-fade-up { opacity: 1; transform: none; }

/* Hero copy entry — softer, never hides content */
.pa-source-hero-copy { animation: pa-hero-entry .9s ease-out both; }
@keyframes pa-hero-entry {
	from { opacity: 0.5; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}

/* ========== NUCLEAR MOBILE/TOUCH SAFETY ==========
   On every mobile or touch device, kill every opacity/filter/transform-based dim.
   This is intentionally aggressive — pa-fade-up + any inherited filter cannot
   leave content washed out under any circumstances. */
@media (max-width: 900px), (hover: none), (pointer: coarse) {
	.pa-fade-up,
	.pa-reveal,
	.pa-source-hero-copy,
	.pa-itb-card,
	.pa-source-feature-property,
	.pa-source-feature-property *,
	.pa-source-new-listings,
	.pa-source-new-listings *,
	.pa-source-agent-card,
	.pa-proof-grid > article,
	.pa-neighborhood-list > a,
	.pa-source-strip,
	.pa-source-strip > *,
	.pa-page-hero,
	.pa-page-hero * {
		opacity: 1 !important;
		filter: none !important;
		-webkit-filter: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		transform: none !important;
		animation: none !important;
		transition: none !important;
		mix-blend-mode: normal !important;
	}
	/* Also kill any inherited dimming on direct children of listing strips */
	.pa-source-feature-property::before,
	.pa-source-feature-property::after,
	.pa-source-new-listings::before,
	.pa-source-new-listings::after,
	.pa-itb-card::before,
	.pa-itb-card::after { display: none !important; content: none !important; opacity: 0 !important; }
}

/* ========== CARDS (hover lifts) ========== */
@media (hover: hover) {
	.pa-proof-grid > article {
		transition: transform .35s ease, box-shadow .35s ease;
	}
	.pa-proof-grid > article:hover {
		transform: translateY(-3px);
		box-shadow: 0 22px 50px rgba(7,30,51,.14);
	}
	.pa-itb-card {
		transition: transform .35s ease, box-shadow .35s ease;
	}
	.pa-itb-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 24px 50px rgba(7,30,51,.16);
	}
	.pa-source-agent-card,
	.pa-neighborhood-list a,
	.pa-source-feature-property .pa-itb-card,
	.pa-source-new-listings .pa-itb-card {
		transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	}
	.pa-source-agent-card:hover,
	.pa-neighborhood-list a:hover,
	.pa-source-feature-property .pa-itb-card:hover,
	.pa-source-new-listings .pa-itb-card:hover {
		transform: translateY(-3px);
		box-shadow: 0 18px 38px rgba(7,30,51,.12);
	}
}

/* ========== FORMS ========== */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: none;
	border-color: var(--cyan, #29abe2);
	box-shadow: 0 0 0 3px rgba(41, 171, 226, .18);
	transition: border-color .15s ease, box-shadow .15s ease;
}

/* ========== HIDE EMPTY tel: LINKS (phones cleared for non-Laurine) ========== */
.pa-source-agent-card p a[href="tel:"],
.pa-source-agent-card p:has(a[href="tel:"]) { display: none !important; }

/* ========== BENTO "Pourquoi Pacific Agency" ========== */
/* Force bento alignment on mobile (was: first card spanned 2 rows) */
@media (max-width: 900px) {
	.pa-proof-grid {
		grid-template-columns: 1fr 1fr !important;
		grid-auto-flow: row !important;
		grid-auto-rows: auto !important;
	}
	.pa-proof-grid > article {
		grid-row: auto !important;
		grid-column: auto !important;
		min-height: 0 !important;
		height: auto !important;
		padding: 22px 18px !important;
		backdrop-filter: none !important;
	}
	.pa-proof-grid > article:first-child {
		background: linear-gradient(145deg, rgba(255, 253, 249, .98), rgba(247, 244, 239, .88)) !important;
	}
	.pa-proof-grid > article strong { font-size: clamp(28px, 7vw, 44px) !important; line-height: 1.05; }
	.pa-proof-grid > article span { font-size: 13px; line-height: 1.35; }
}
@media (max-width: 480px) {
	.pa-proof-grid > article { padding: 18px 14px !important; }
}
/* First card text contrast (was invisible white-on-cream) */
.pa-proof-grid > article:first-child strong,
.pa-proof-grid > article:first-child span {
	color: var(--ink, #071e33) !important;
}
.pa-proof-grid > article:first-child span { opacity: .8; }

/* ========== BUG 14: kill .pa-source-new-listings a::before overlay gradient ========== */
.pa-source-new-listings a::before,
.pa-source-new-listings a::after,
.pa-source-feature-property a::before,
.pa-source-feature-property a::after,
.pa-source-new-listings .pa-itb-card::before,
.pa-source-new-listings .pa-itb-card::after,
.pa-source-feature-property .pa-itb-card::before,
.pa-source-feature-property .pa-itb-card::after,
[class*="pa-itb"] a::before,
[class*="pa-itb"] a::after {
	content: none !important;
	background: transparent !important;
	background-image: none !important;
	display: none !important;
	opacity: 0 !important;
}
.pa-source-new-listings img,
.pa-source-feature-property img,
.pa-source-new-listings a,
.pa-source-feature-property a,
.pa-source-new-listings .pa-itb-card,
.pa-source-feature-property .pa-itb-card,
[class*="pa-itb-card"] img {
	filter: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
}
@media (max-width: 900px) {
	.pa-source-new-listings *,
	.pa-source-feature-property *,
	[class*="pa-itb-card"] * {
		filter: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}
	.pa-source-new-listings img,
	.pa-source-feature-property img,
	[class*="pa-itb-card"] img { opacity: 1 !important; }
}

/* ========== BUG 15 + 16: Alvi/CIM bento logos, Alvi dark card ========== */
.pa-proof-logo,
.pa-proof-card-alvi .pa-proof-logo,
.pa-proof-card-cim .pa-proof-logo {
	display: block !important;
	margin: 0 0 20px !important;
	height: auto !important;
	max-height: none !important;
	min-height: 0 !important;
	line-height: 0;
	overflow: visible !important;
}
.pa-proof-grid > article.pa-proof-card-alvi,
.pa-proof-card-alvi {
	background:
		linear-gradient(145deg, rgba(7, 30, 51, .96), rgba(7, 30, 51, .82)),
		var(--ink, #071e33) !important;
	color: #fff !important;
	border-color: rgba(255, 255, 255, .10) !important;
}
.pa-proof-card-alvi strong,
.pa-proof-card-alvi span { color: #fff !important; }
.pa-proof-card-alvi .pa-proof-logo img,
.pa-proof-card-alvi img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 140px !important;
	min-height: 80px !important;
	object-fit: contain !important;
	filter: brightness(0) invert(1) !important;
}
.pa-proof-card-cim .pa-proof-logo img,
.pa-proof-card-cim img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 160px !important;
	min-height: 90px !important;
	object-fit: contain !important;
	filter: none !important;
}
@media (max-width: 900px) {
	.pa-proof-card-alvi .pa-proof-logo img { max-height: 100px !important; min-height: 60px !important; }
	.pa-proof-card-cim  .pa-proof-logo img { max-height: 110px !important; min-height: 70px !important; }
}

/* ========== BUG 17: Guides page aerial hero ========== */
body[class*="guides"] main,
body[class*="guide"] main,
.pa-guides-page, .pa-page-guides { background: transparent !important; }
body[class*="guides"] header.pa-page-header,
body[class*="guide"] header.pa-page-header,
.pa-guides-page header.pa-page-header,
.pa-page-guides header.pa-page-header {
	background: transparent !important;
	background-image: none !important;
	color: var(--ink, #071e33) !important;
	padding: clamp(80px, 14vw, 160px) clamp(20px, 5vw, 60px) clamp(40px, 8vw, 80px) !important;
	min-height: 0;
}
body[class*="guides"] header.pa-page-header *,
body[class*="guide"] header.pa-page-header * { color: var(--ink, #071e33) !important; }
/* (v0.5.70: removed ::before guide hero strip — #pa-bgfixed already provides the backdrop) */

/* ========== BUG 18: listing detail "Contactez Pacific Agency" contrast ========== */
.pa-detail-contact-panel,
aside.pa-detail-contact-panel,
.pa-itb-property-page .pa-detail-contact-panel,
.pa-itb-property-page aside {
	background:
		linear-gradient(150deg, rgba(7,30,51,.97), rgba(7,30,51,.82)),
		var(--ink, #071e33) !important;
	color: #fff !important;
	padding: 28px clamp(18px, 3vw, 32px) !important;
	border-radius: 14px !important;
	border: 1px solid rgba(255,255,255,.08) !important;
	box-shadow: 0 18px 50px rgba(7,18,36,.18);
}
.pa-detail-contact-panel *,
aside.pa-detail-contact-panel *,
.pa-itb-property-page .pa-detail-contact-panel * { color: #fff !important; }
.pa-detail-contact-panel h2 {
	font-family: var(--font-display);
	font-size: clamp(20px, 2.4vw, 28px) !important;
	margin: 0 0 16px !important;
	color: #fff !important;
	text-transform: uppercase;
	letter-spacing: .02em;
}
.pa-detail-contact-panel a {
	display: block;
	margin: 6px 0;
	color: #fff !important;
	text-decoration: none;
	padding: 10px 14px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 10px;
	background: rgba(255,255,255,.06);
	transition: background .25s ease, border-color .25s ease;
	font-family: var(--font-mono, "JetBrains Mono", monospace);
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.pa-detail-contact-panel a:hover {
	background: rgba(255,255,255,.14) !important;
	border-color: rgba(255,255,255,.36) !important;
}
.pa-detail-brochure-layout {
	gap: clamp(20px, 3vw, 42px) !important;
	padding: clamp(20px, 4vw, 60px) clamp(16px, 5vw, 40px) !important;
}
.pa-page-content { background: #fff; border-radius: 14px; padding: clamp(20px, 3vw, 36px); }
@media (max-width: 900px) {
	.pa-detail-brochure-layout { grid-template-columns: 1fr !important; }
	.pa-detail-contact-panel { margin-top: 16px; }
}

/* ========== FAVORITE ICON (v0.5.71: heart-outline override) ==========
   ITB plugin renders a chunky gold star icon. We hide its inner content
   and replace with a clean white heart-outline drawn via SVG data URI.
   Filled heart when the property is in the user's selection.
*/
.pa-itb-card .selection,
.pa-itb-card .pa-itb-favorite,
.pa-itb-card a[title*="electio"],
.pa-itb-card a[title*="avoris"],
.pa-itb-card a[title*="avorite"],
.pa-itb-card a[class*="selection"],
.pa-itb-card a[class*="favorite"],
.pa-itb-card .itb_btn_addtolist,
.pa-itb-card .itb_btn_removetolist {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	width: 38px !important;
	height: 38px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(7, 18, 36, .35) !important;
	-webkit-backdrop-filter: blur(10px) saturate(150%);
	backdrop-filter: blur(10px) saturate(150%);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
	overflow: visible !important;
	z-index: 5;
	font-size: 0 !important;
	color: transparent !important;
	text-indent: -9999px;
	transition: transform .25s ease, background .25s ease;
}

/* Hide whatever the plugin put inside (img/svg/i/text). */
.pa-itb-card .selection > *,
.pa-itb-card .pa-itb-favorite > *,
.pa-itb-card a[class*="selection"] > *,
.pa-itb-card a[class*="favorite"] > *,
.pa-itb-card .itb_btn_addtolist > *,
.pa-itb-card .itb_btn_removetolist > * {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
}

/* Inject the clean heart-outline. */
.pa-itb-card .selection::before,
.pa-itb-card .pa-itb-favorite::before,
.pa-itb-card a[class*="selection"]::before,
.pa-itb-card a[class*="favorite"]::before,
.pa-itb-card .itb_btn_addtolist::before {
	content: "" !important;
	display: block !important;
	width: 20px !important;
	height: 20px !important;
	background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAuODQgNC42MWE1LjUgNS41IDAgMCAwLTcuNzggMEwxMiA1LjY3bC0xLjA2LTEuMDZhNS41IDUuNSAwIDAgMC03Ljc4IDcuNzhsMS4wNiAxLjA2TDEyIDIxLjIzbDcuNzgtNy43OCAxLjA2LTEuMDZhNS41IDUuNSAwIDAgMCAwLTcuNzh6Ii8+PC9zdmc+") center / contain no-repeat !important;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
	transition: transform .25s ease;
}

/* Filled state — when ITB marks the card as favorited. */
.pa-itb-card .selection.active::before,
.pa-itb-card .selection.is-active::before,
.pa-itb-card .selection.selected::before,
.pa-itb-card [class*="favorite"].active::before,
.pa-itb-card [class*="favorite"].is-active::before,
.pa-itb-card .itb_btn_removetolist::before {
	background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwLjg0IDQuNjFhNS41IDUuNSAwIDAgMC03Ljc4IDBMMTIgNS42N2wtMS4wNi0xLjA2YTUuNSA1LjUgMCAwIDAtNy43OCA3Ljc4bDEuMDYgMS4wNkwxMiAyMS4yM2w3Ljc4LTcuNzggMS4wNi0xLjA2YTUuNSA1LjUgMCAwIDAgMC03Ljc4eiIvPjwvc3ZnPg==") center / contain no-repeat !important;
}

/* Removetolist button needs its own ::before since the selector list above
   doesn't include it (filled is the default state). */
.pa-itb-card .itb_btn_removetolist::before {
	content: "" !important;
	display: block !important;
	width: 20px !important;
	height: 20px !important;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
	transition: transform .25s ease;
}

@media (hover: hover) {
	.pa-itb-card .selection:hover,
	.pa-itb-card [class*="favorite"]:hover,
	.pa-itb-card .itb_btn_addtolist:hover,
	.pa-itb-card .itb_btn_removetolist:hover {
		background: rgba(7, 18, 36, .55) !important;
		transform: scale(1.08);
	}
	.pa-itb-card .selection:hover::before,
	.pa-itb-card [class*="favorite"]:hover::before,
	.pa-itb-card .itb_btn_addtolist:hover::before,
	.pa-itb-card .itb_btn_removetolist:hover::before {
		transform: scale(1.06);
	}
}

/* ========== FOOTER ========== */
.pa-footer { padding: 28px clamp(20px, 5vw, 60px) 22px !important; }
.pa-footer-inner { gap: 18px !important; padding: 14px 0 0 !important; }
.pa-footer-brand h2 { font-size: clamp(18px, 2vw, 24px) !important; line-height: 1.15; margin: 0 0 6px; }
.pa-footer-brand .pa-footer-tagline { font-size: 13px; margin: 0 0 8px; max-width: 520px; line-height: 1.55; }
.pa-footer-h4 { font-size: 12px !important; margin: 0 0 8px; }
.pa-footer-col ul { gap: 4px; }
.pa-footer-col a { font-size: 13px; transition: color .18s ease, opacity .18s ease; }
.pa-footer-col a:hover { opacity: .8; }

/* ========== RESPONSIVE TIGHTENING ========== */
@media (max-width: 1024px) {
	.pa-source-hero { min-height: 520px; }
	.pa-source-section-head { gap: 14px; }
}
@media (max-width: 768px) {
	.pa-source-hero { min-height: 480px; }
	.pa-source-hero .pa-source-hero-title { font-size: clamp(30px, 8vw, 48px); }
	.pa-source-hero .pa-source-hero-sub { font-size: 15px; }
	.pa-source-hero-actions { flex-direction: row; flex-wrap: wrap; }
	.pa-source-section-head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.pa-footer-inner { grid-template-columns: 1fr !important; gap: 28px; }
}
@media (max-width: 480px) {
	.pa-source-hero .pa-source-hero-copy { padding: 60px 14px 18px; }
	.pa-source-hero-actions a { flex: 1 1 140px; text-align: center; justify-content: center; }
	.pa-source-pill, .pa-btn { font-size: 11px; }
}

html, body { overflow-x: hidden; }
:focus-visible { outline-offset: 3px; }

/* ========== REDUCED MOTION ========== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.pa-fade-up { opacity: 1 !important; transform: none !important; transition: none !important; }
	.pa-source-hero-copy { animation: none !important; }
	.pa-hero-center-logo { animation: none; opacity: 1; transform: none; }
	.pa-proof-grid > article:hover,
	.pa-itb-card:hover { transform: none !important; }
}

/* end v0.5.73 */


/* v0.5.73: high-quality rendering for upgraded ITB images */
.pa-itb-card img,
.pa-source-feature-property img,
.pa-source-new-listings img,
.pa-itb-listing-shell img {
	image-rendering: auto;
	-ms-interpolation-mode: bicubic;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
.pa-itb-card img[data-pa-upgraded],
.pa-source-feature-property img[data-pa-upgraded],
.pa-source-new-listings img[data-pa-upgraded] {
	image-rendering: -webkit-optimize-contrast;
}


/* =====================================================================
   v0.5.74 — CONSOLIDATION PASS
   Dark fixed aerial + nav-line grid · content as floating stacking cards
   · readability flips · selective liquid glass · brand palette · responsive
   Brand: ink #071e33 · gold #c2a16a · cream #fbf8f3 · cyan #29abe2
   ===================================================================== */
:root{
	--pa-ink:#071e33; --pa-gold:#c2a16a; --pa-cream:#fbf8f3; --pa-cyan:#29abe2;
	--pa-panel:#fbf8f3; --pa-panel-edge:rgba(7,30,51,.08);
	--pa-rail:1280px;
	--pa-card-radius:22px;
	--pa-card-shadow:0 30px 70px -36px rgba(4,14,30,.65), 0 2px 0 rgba(255,255,255,.5) inset;
}

/* ---------- 1. DARK FIXED AERIAL + NAV-LINE CHART FILTER ---------- */
html{ background:#06142a !important; }
#pa-bgfixed{
	filter:brightness(.86) saturate(1.04) contrast(1.04) !important;
}
/* deep navy overlay (replaces the old cream fade) */
#pa-bgfixed::after{
	background:
		radial-gradient(120% 90% at 50% 0%, rgba(6,20,40,.42) 0%, rgba(6,20,40,.66) 55%, rgba(5,16,34,.82) 100%),
		linear-gradient(180deg, rgba(6,20,40,.6) 0%, rgba(6,18,38,.72) 60%, rgba(5,14,30,.84) 100%) !important;
}
/* navigation-chart line grid sits above the photo, below content */
body::before{
	content:""; position:fixed; inset:0; z-index:-9; pointer-events:none;
	background-image:
		linear-gradient(rgba(150,194,236,.10) 1px, transparent 1px),
		linear-gradient(90deg, rgba(150,194,236,.10) 1px, transparent 1px),
		linear-gradient(45deg, rgba(150,194,236,.06) 1px, transparent 1px);
	background-size:88px 88px, 88px 88px, 240px 240px;
	background-position:center;
	-webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.9), rgba(0,0,0,.35) 70%, rgba(0,0,0,.12));
	mask-image:linear-gradient(180deg, rgba(0,0,0,.9), rgba(0,0,0,.35) 70%, rgba(0,0,0,.12));
}

/* ---------- 2. CONTENT SECTIONS AS FLOATING STACKING CARDS ---------- */
.pa-source-home > section.pa-neighborhood-map-section,
.pa-source-home > section.pa-source-strip,
.pa-source-home > section.pa-home-contact-section,
.pa-sales-page .pa-section.pa-listings,
.pa-rentals-page .pa-section.pa-listings,
.pa-properties-page .pa-section.pa-listings,
.pa-properties-page .pa-itb-search-section,
.pa-itb-results-page .pa-itb-listing-shell,
.pa-itb-selection-page .pa-itb-listing-shell,
.pa-contact-page .pa-contact-grid,
.pa-detail-similar{
	background:var(--pa-panel) !important;
	border:1px solid var(--pa-panel-edge);
	border-radius:var(--pa-card-radius);
	box-shadow:var(--pa-card-shadow);
	max-width:var(--pa-rail);
	margin:clamp(26px,4vw,46px) auto !important;
	padding:clamp(26px,3.4vw,52px) clamp(20px,3vw,48px) !important;
	-webkit-backdrop-filter:none; backdrop-filter:none;
}
/* keep page-hero (over the aerial) transparent, NOT a card */
.pa-page-hero, header.pa-page-header{ background:transparent !important; box-shadow:none !important; border:0 !important; }

/* text inside panels reads dark on cream */
.pa-source-home > section.pa-source-strip h2,
.pa-source-home > section.pa-neighborhood-map-section h2,
.pa-source-home > section.pa-home-contact-section h2,
.pa-section.pa-listings .pa-h2,
.pa-detail-similar h2{
	color:var(--pa-ink) !important;
}
.pa-source-kicker, .pa-source-eyebrow, .pa-source-kicker.mono{ color:var(--pa-gold) !important; }
.pa-source-strip .pa-hero-sub,
.pa-neighborhood-map-section .pa-hero-sub,
.pa-home-contact-section .pa-hero-sub{ color:rgba(7,30,51,.74) !important; text-shadow:none !important; }
.pa-source-link-arrow{ color:var(--pa-ink) !important; }
.pa-source-link-arrow:hover{ color:var(--pa-cyan) !important; }

/* ---------- 3. READABILITY: light text on the dark aerial heroes ---------- */
.pa-page-hero .pa-hero-title,
header.pa-page-header h1.pa-h1,
header.pa-page-header h1,
body[class*="guide"] header.pa-page-header h1{
	color:#fff !important;
	text-shadow:0 2px 26px rgba(0,0,0,.5) !important;
}
.pa-page-hero .pa-hero-sub,
header.pa-page-header .pa-hero-sub,
body[class*="guide"] header.pa-page-header .pa-hero-sub{
	color:rgba(255,255,255,.9) !important;
	text-shadow:0 1px 16px rgba(0,0,0,.4) !important;
}
body[class*="guide"] header.pa-page-header *{ color:#fff !important; }

/* property cards stay opaque white so they pop on cream panels */
.pa-itb-card{
	background:#fff !important;
	border:1px solid rgba(7,30,51,.07) !important;
	border-radius:16px !important;
	overflow:hidden;
}

/* ---------- 4. SELECTIVE LIQUID GLASS (brand-tinted) ---------- */
/* premium CTA fills */
.pa-source-pill.is-active{
	background:linear-gradient(180deg, #0a2746, #071e33) !important;
	color:#fff !important;
	border:1px solid rgba(255,255,255,.14) !important;
	box-shadow:0 10px 26px -10px rgba(7,18,36,.6);
}
.pa-source-pill.is-active:hover{
	box-shadow:0 14px 30px -10px rgba(7,18,36,.7), 0 0 0 2px rgba(194,161,106,.5);
}
/* gold accent on key arrow links + search submit */
.pa-hero-search-shell button[type="submit"],
.pa-hero-search-shell input[type="submit"]{
	background:linear-gradient(180deg,#0a2746,#071e33) !important;
	border:1px solid rgba(255,255,255,.16) !important;
	color:#fff !important;
	border-radius:10px !important;
	letter-spacing:.04em;
}
.pa-hero-search-shell button[type="submit"]:hover{
	box-shadow:0 0 0 2px rgba(194,161,106,.55), 0 10px 24px -10px rgba(7,18,36,.6);
}
/* glassy frosted info chips/badges that ITB renders inside cards */
.pa-itb-card .price, .pa-itb-card [class*="price"],
.pa-itb-card [class*="badge"], .pa-itb-card [class*="label"]{
	-webkit-backdrop-filter:blur(8px) saturate(150%); backdrop-filter:blur(8px) saturate(150%);
}

/* ---------- 5. FOOTER anchor (deep navy, readable) ---------- */
.pa-footer, .pa-source-footer{
	background:linear-gradient(180deg, rgba(6,20,40,.96), rgba(5,14,30,.98)) !important;
	color:#fff !important;
	border-top:1px solid rgba(194,161,106,.28);
}
.pa-footer h2, .pa-footer .pa-footer-h4, .pa-footer a, .pa-footer span, .pa-footer p{ color:#fff !important; }
.pa-footer .pa-footer-tagline{ color:rgba(255,255,255,.74) !important; }
.pa-footer-brand h2{ color:#fff !important; }
.pa-footer-h4{ color:var(--pa-gold) !important; }
.pa-footer-col a{ color:rgba(255,255,255,.86) !important; }
.pa-footer-col a:hover{ color:var(--pa-gold) !important; opacity:1 !important; }
.pa-footer-langs span, .pa-footer-brand .pa-footer-langs span{ color:rgba(255,255,255,.6) !important; }

/* ---------- 6. STACKING-CARD SCROLL ENHANCEMENT (desktop, guarded) ---------- */
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
	@supports (animation-timeline: view()){
		.pa-source-home > section.pa-source-strip,
		.pa-source-home > section.pa-neighborhood-map-section,
		.pa-source-home > section.pa-home-contact-section,
		.pa-section.pa-listings,
		.pa-detail-similar{
			animation:pa-stack-in linear both;
			animation-timeline:view();
			animation-range:entry 0% entry 30%;
		}
		@keyframes pa-stack-in{
			from{ opacity:1; transform:translateY(34px) scale(.99); }
			to{ opacity:1; transform:none; }
		}
	}
}

/* ---------- 7. SPACING + RESPONSIVE RHYTHM ---------- */
.pa-source-home > section{ scroll-margin-top:90px; }
@media (max-width:900px){
	.pa-source-home > section.pa-neighborhood-map-section,
	.pa-source-home > section.pa-source-strip,
	.pa-source-home > section.pa-home-contact-section,
	.pa-sales-page .pa-section.pa-listings,
	.pa-rentals-page .pa-section.pa-listings,
	.pa-properties-page .pa-section.pa-listings,
	.pa-properties-page .pa-itb-search-section,
	.pa-itb-results-page .pa-itb-listing-shell,
	.pa-itb-selection-page .pa-itb-listing-shell,
	.pa-contact-page .pa-contact-grid,
	.pa-detail-similar{
		margin:16px 12px !important;
		padding:20px 16px !important;
		border-radius:18px !important;
	}
	.pa-page-hero, header.pa-page-header{ padding-left:18px !important; padding-right:18px !important; }
}
@media (max-width:600px){
	.pa-source-home > section.pa-source-strip,
	.pa-source-home > section.pa-neighborhood-map-section,
	.pa-source-home > section.pa-home-contact-section{ margin:12px 10px !important; padding:18px 14px !important; }
}
/* end v0.5.74 */


/* =====================================================================
   v0.5.76 — centered hero search · single fixed bg (no hero treatment)
   · clean standard sort controls · polish
   ===================================================================== */

/* 1. CENTER the homepage hero search bar on desktop */
@media (min-width:901px){
	.pa-source-hero .pa-hero-search-shell{
		margin-left:auto !important;
		margin-right:auto !important;
		max-width:1040px !important;
	}
}

/* 2. ONE consistent fixed background everywhere.
   The hero used the SAME image (imc-coastline-original.jpg) but layered its
   own gradient + diagonal lines (::before) + cyan glow (::after) on top.
   Strip all of that so the single #pa-bgfixed shows through the hero too. */
.pa-source-hero{
	background:transparent !important;
	background-image:none !important;
	box-shadow:none !important;
}
.pa-source-hero::before,
.pa-source-hero::after{
	content:none !important;
	background:none !important;
	background-image:none !important;
	display:none !important;
	opacity:0 !important;
}
/* belt-and-braces: kill any decorative line/route layers some builds add */
.pa-source-hero > svg,
.pa-source-hero .pa-hero-bg,
.pa-source-hero .pa-hero-lines,
.pa-source-hero .pa-hero-route{ display:none !important; }
/* keep hero copy legible on the (now darker, un-gradiented) fixed bg */
.pa-source-hero .pa-source-hero-sub{ text-shadow:0 2px 26px rgba(0,0,0,.55) !important; }

/* 3. CLEAN, STANDARD SORT CONTROLS — hide ITB's injected triangle image, build clean pills */
.pa-sort-toolbar.btn-group,
.pa-sort-toolbar{
	display:inline-flex !important; flex-wrap:wrap !important; gap:8px !important;
	background:transparent !important; box-shadow:none !important; border:0 !important; padding:0 !important;
	width:auto !important; vertical-align:middle;
}
.pa-sort-toolbar .btn,
.pa-sort-toolbar a.btn,
.pa-sort-toolbar .btn.btn-default,
.pa-sort-toolbar a.btn-default{
	font:600 11px/1 var(--font-body,"Manrope",sans-serif) !important;
	letter-spacing:.1em !important; text-transform:uppercase !important;
	height:auto !important; min-height:0 !important; width:auto !important; min-width:0 !important; max-width:none !important;
	padding:9px 15px !important; margin:0 !important;
	border-radius:999px !important; border:1px solid rgba(7,30,51,.18) !important;
	background:#fff !important; background-image:none !important; color:var(--pa-ink,#071e33) !important;
	box-shadow:none !important; text-shadow:none !important;
	display:inline-flex !important; align-items:center !important; gap:6px !important;
	float:none !important; line-height:1 !important; white-space:nowrap !important;
	transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.pa-sort-toolbar .btn:hover{ border-color:var(--pa-gold,#c2a16a) !important; color:var(--pa-ink) !important; }
.pa-sort-toolbar .btn.active,
.pa-sort-toolbar a.btn.active,
.pa-sort-toolbar .btn.btn-default.active{
	background:linear-gradient(180deg,#0a2746,#071e33) !important; color:#fff !important; border-color:transparent !important;
}
/* kill the injected triangle image / hidden span inside the sort icon */
.pa-sort-toolbar .btn i img,
.pa-sort-toolbar .btn i span,
.pa-sort-toolbar .btn i .hidden,
.pa-sort-toolbar .btn img,
.pa-sort-toolbar .btn .hidden{ display:none !important; width:0 !important; height:0 !important; }
/* shrink icon wrapper, replace glyph with a clean caret */
.pa-sort-toolbar .btn i.fa,
.pa-sort-toolbar .btn i[class*="fa-sort"]{
	display:inline-block !important; font:inherit !important;
	width:auto !important; height:auto !important; max-width:none !important; min-width:0 !important;
	background:none !important; border:0 !important; color:inherit !important; line-height:1 !important; vertical-align:middle !important; overflow:visible !important;
}
.pa-sort-toolbar .btn i.fa::before,
.pa-sort-toolbar .btn i[class*="fa-sort"]::before{ content:"" !important; display:none !important; }
.pa-sort-toolbar .btn i.fa-sort-desc::after{ content:"\25BE" !important; font:600 10px/1 var(--font-body,sans-serif) !important; opacity:.9; }
.pa-sort-toolbar .btn i.fa-sort-asc::after{ content:"\25B4" !important; font:600 10px/1 var(--font-body,sans-serif) !important; opacity:.9; }
/* end v0.5.76 */

/* =====================================================================
   v0.5.78 — overlay/lines tuning · card text fit · bento · team align
   · neighborhood wrap · modern heart favorite · listing title clamp
   ===================================================================== */

/* ---------- 1. LIGHTER AERIAL OVERLAY + MORE VISIBLE NAV LINES ---------- */
#pa-bgfixed{ filter:brightness(.98) saturate(1.04) contrast(1.03) !important; }
#pa-bgfixed::after{
	background:
		radial-gradient(120% 90% at 50% 0%, rgba(6,20,40,.16) 0%, rgba(6,20,40,.30) 55%, rgba(5,16,34,.46) 100%),
		linear-gradient(180deg, rgba(6,20,40,.28) 0%, rgba(6,18,38,.36) 60%, rgba(5,14,30,.48) 100%) !important;
}
body::before{
	background-image:
		linear-gradient(rgba(168,206,240,.20) 1px, transparent 1px),
		linear-gradient(90deg, rgba(168,206,240,.20) 1px, transparent 1px),
		linear-gradient(45deg, rgba(168,206,240,.12) 1px, transparent 1px) !important;
	-webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,1), rgba(0,0,0,.6) 70%, rgba(0,0,0,.3)) !important;
	mask-image:linear-gradient(180deg, rgba(0,0,0,1), rgba(0,0,0,.6) 70%, rgba(0,0,0,.3)) !important;
}

/* ---------- 2. SÉLECTION VENTES MINI CARDS: vertical, no text clipping ---------- */
.pa-source-new-listings .pa-new-listings-shell .item > a{
	display:flex !important; flex-direction:column !important;
	width:100% !important; min-width:0 !important; align-items:stretch !important;
	overflow:hidden !important;
}
.pa-source-new-listings .pa-new-listings-shell .item > a > img{
	width:100% !important; min-width:0 !important; height:auto !important;
	aspect-ratio:1.4 / 1 !important; object-fit:cover !important; flex:0 0 auto !important;
	border-radius:0 !important;
}
.pa-source-new-listings .pa-new-listings-shell .legend{
	position:static !important; width:100% !important; min-width:0 !important; max-width:none !important;
	display:flex !important; flex-direction:column !important; gap:6px !important;
	min-height:0 !important; padding:16px 18px 18px !important; overflow:hidden !important;
	align-items:flex-start !important; text-align:left !important;
	background:var(--pa-cream,#fbf8f3) !important;
}
.pa-source-new-listings .pa-new-listings-shell .pa-card-title{
	font-size:clamp(17px,1.5vw,21px) !important; line-height:1.18 !important;
	white-space:normal !important; overflow-wrap:normal !important; word-break:normal !important;
	display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
	overflow:hidden !important; max-width:100% !important;
}
.pa-source-new-listings .pa-new-listings-shell .pa-card-specs{ min-height:0 !important; }
.pa-source-new-listings .pa-new-listings-shell .pa-card-district{ overflow-wrap:normal !important; word-break:normal !important; }

/* ---------- 3. BENTO: shrink CIM/Alvi logos, no oversize 1957 ---------- */
.pa-proof-card-alvi .pa-proof-logo img,
.pa-proof-card-alvi img{ max-height:54px !important; min-height:0 !important; margin:0 0 14px !important; }
.pa-proof-card-cim .pa-proof-logo img,
.pa-proof-card-cim img{ max-height:62px !important; min-height:0 !important; margin:0 0 14px !important; }
@media (max-width:900px){
	.pa-proof-card-alvi .pa-proof-logo img{ max-height:44px !important; }
	.pa-proof-card-cim  .pa-proof-logo img{ max-height:50px !important; }
}
.pa-proof-card-since strong{ font-size:clamp(40px,5vw,64px) !important; line-height:1 !important; display:block; margin-bottom:14px; }
.pa-proof-card-since span{ font-size:14px !important; line-height:1.5 !important; opacity:.82; max-width:34ch; }
.pa-proof-card-alvi span, .pa-proof-card-cim span{ font-size:14px !important; line-height:1.45 !important; }

/* ---------- 4. TEAM CARDS: bottom-align the email buttons ---------- */
.pa-source-agent-card{ display:flex !important; flex-direction:column !important; }
.pa-source-agent-card > .pa-source-link-arrow,
.pa-source-agent-card > a.pa-source-link-arrow[href^="mailto:"]{ margin-top:auto !important; }

/* ---------- 5. NEIGHBORHOOD NAMES: no mid-word breaking ---------- */
.pa-neighborhood-list a span,
.pa-neighborhood-list a small,
.pa-map-zone span,
.pa-map-zone{
	overflow-wrap:normal !important; word-break:normal !important; hyphens:none !important;
}
body .pa-neighborhood-list a > span:first-child,
body .pa-neighborhood-list a span{
	font-size:clamp(17px,1.5vw,21px) !important; line-height:1.08 !important; text-wrap:balance;
	white-space:normal !important; word-break:normal !important; overflow-wrap:normal !important; hyphens:none !important;
}

/* ---------- 6. MODERN HEART FAVORITE (all listing pages) ---------- */
a.btn-switchselection{
	position:absolute !important; top:12px !important; right:12px !important;
	width:38px !important; height:38px !important; min-width:0 !important; max-width:none !important;
	padding:0 !important; margin:0 !important; border:0 !important; border-radius:50% !important;
	background:rgba(7,18,36,.42) !important; background-image:none !important;
	-webkit-backdrop-filter:blur(10px) saturate(150%); backdrop-filter:blur(10px) saturate(150%);
	box-shadow:0 4px 14px rgba(0,0,0,.25) !important;
	display:inline-flex !important; align-items:center !important; justify-content:center !important;
	font-size:0 !important; color:transparent !important; line-height:0 !important; text-indent:0 !important;
	float:none !important; overflow:visible !important; z-index:6 !important;
	transition:transform .25s ease, background .25s ease;
}
a.btn-switchselection > *{ display:none !important; }
a.btn-switchselection::before{
	content:"" !important; display:block !important; width:20px !important; height:20px !important;
	background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAuODQgNC42MWE1LjUgNS41IDAgMCAwLTcuNzggMEwxMiA1LjY3bC0xLjA2LTEuMDZhNS41IDUuNSAwIDAgMC03Ljc4IDcuNzhsMS4wNiAxLjA2TDEyIDIxLjIzbDcuNzgtNy43OCAxLjA2LTEuMDZhNS41IDUuNSAwIDAgMCAwLTcuNzh6Ii8+PC9zdmc+") center / contain no-repeat !important;
	filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));
}
a.btn-switchselection.selected::before,
a.btn-switchselection.active::before,
a.btn-switchselection.is-active::before,
a.btn-switchselection[href*="remove_selection"]::before{
	background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2MyYTE2YSIgc3Ryb2tlPSIjYzJhMTZhIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwLjg0IDQuNjFhNS41IDUuNSAwIDAgMC03Ljc4IDBMMTIgNS42N2wtMS4wNi0xLjA2YTUuNSA1LjUgMCAwIDAtNy43OCA3Ljc4bDEuMDYgMS4wNkwxMiAyMS4yM2w3Ljc4LTcuNzggMS4wNi0xLjA2YTUuNSA1LjUgMCAwIDAgMC03Ljc4eiIvPjwvc3ZnPg==") center / contain no-repeat !important;
}
@media (hover:hover){
	a.btn-switchselection:hover{ background:rgba(7,18,36,.6) !important; transform:scale(1.08); }
}

/* ---------- 7. LISTING GRID: clamp titles to 2 lines for alignment ---------- */
.itb_properties_property h3{ position:relative !important; }
body .pa-itb-listing-shell .itb_properties_property h3 a:not(.btn-switchselection),
body .itb_properties_property h3 a:not(.btn-switchselection){
	display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
	overflow:hidden !important; overflow-wrap:break-word !important; word-break:normal !important;
	max-height:2.5em !important; min-height:2.5em; line-height:1.22 !important; padding-right:46px;
}
/* end v0.5.78 */

/* =====================================================================
   v0.5.81 — guide pages unified (transparent hero like other pages) +
   readable TOC nav. (card district/rooms/heart handled in JS + base64)
   ===================================================================== */
/* Individual guide pages (rental-guide, buying-guide, etc.) use body
   class page-template-page-guide-* and main.pa-guide-page — the old BUG 17
   rule only matched "guides" (index). Make their hero transparent too. */
.pa-guide-page header.pa-page-hero,
body[class*="guide"] header.pa-page-hero,
body[class*="guide"] .pa-page-hero{
	background:transparent !important;
	background-image:none !important;
	box-shadow:none !important;
	border:0 !important;
}
.pa-guide-page .pa-page-hero{ border-bottom:0 !important; }
.pa-guide-page .pa-page-hero .pa-hero-title,
body[class*="guide"] .pa-page-hero h1,
body[class*="guide"] .pa-page-hero .pa-hero-title{
	color:#fff !important; text-shadow:0 2px 28px rgba(0,0,0,.55) !important;
}
.pa-guide-page .pa-page-hero .pa-hero-sub,
.pa-guide-page .pa-page-hero p,
body[class*="guide"] .pa-page-hero .pa-hero-sub,
body[class*="guide"] .pa-page-hero p{
	color:rgba(255,255,255,.94) !important; text-shadow:0 1px 18px rgba(0,0,0,.5) !important;
}
.pa-guide-page .pa-page-hero .pa-source-kicker,
.pa-guide-page .pa-page-hero .mono,
body[class*="guide"] .pa-page-hero .pa-source-kicker{
	color:var(--pa-gold,#c2a16a) !important; text-shadow:0 1px 12px rgba(0,0,0,.45) !important;
}
.pa-guide-page .pa-page-hero hr,
.pa-guide-page .pa-page-hero .pa-hero-divider{ border-color:rgba(255,255,255,.4) !important; background:rgba(255,255,255,.4) !important; }

/* Guide table-of-contents nav: was translucent tan with dark text (low
   contrast). Make it a solid readable navy glass card. */
.pa-guide-nav{
	background:linear-gradient(180deg,#0a2746,#071e33) !important;
	border:1px solid rgba(255,255,255,.12) !important;
	border-radius:16px !important;
	box-shadow:0 18px 50px -20px rgba(4,14,30,.6) !important;
	-webkit-backdrop-filter:none !important; backdrop-filter:none !important;
	color:#fff !important;
}
.pa-guide-nav *{ text-shadow:none !important; }
.pa-guide-nav a,
.pa-guide-nav li > a{ color:rgba(255,255,255,.82) !important; }
.pa-guide-nav a:hover,
.pa-guide-nav a:focus-visible,
.pa-guide-nav a.is-active,
.pa-guide-nav .is-active > a{ color:#fff !important; border-color:var(--pa-gold,#c2a16a) !important; }
.pa-guide-nav .pa-guide-nav-title,
.pa-guide-nav strong,
.pa-guide-nav h2,
.pa-guide-nav h3{ color:#fff !important; }
/* end v0.5.81 */

/* v0.5.82 — the BUG-14 rule [class*="pa-itb"] a::before{opacity:0!important}
   was hiding the favorite heart pseudo-element. Force it visible. */
a.btn-switchselection::before,
a.btn-switchselection.selected::before,
a.btn-switchselection.active::before,
a.btn-switchselection.is-active::before,
a.btn-switchselection[href*="remove_selection"]::before{
	opacity:1 !important; display:block !important; content:"" !important;
	width:20px !important; height:20px !important;
}
/* end v0.5.82 */

/* =====================================================================
   v0.5.83 — editorial property-detail gallery (mosaic, not a carousel)
   + tighter text hierarchy. Scoped to .pa-itb-property-page.
   ===================================================================== */
/* Turn the owl property carousel into a static editorial mosaic that
   shows every photo at once, with a large lead image. */
.pa-itb-property-page .owl-carousel-property .owl-nav,
.pa-itb-property-page .owl-carousel-property .owl-dots{ display:none !important; }
.pa-itb-property-page .owl-carousel-property .owl-stage-outer{ overflow:visible !important; }
.pa-itb-property-page .owl-carousel-property .owl-stage{
	display:grid !important;
	grid-template-columns:repeat(3, 1fr) !important;
	grid-auto-rows:200px !important;
	gap:12px !important;
	width:100% !important;
	transform:none !important;
	transition:none !important;
}
.pa-itb-property-page .owl-carousel-property .owl-item{
	width:auto !important; height:auto !important; margin:0 !important; opacity:1 !important;
}
.pa-itb-property-page .owl-carousel-property .owl-item.cloned{ display:none !important; }
/* big lead image: first two real slides span larger cells */
.pa-itb-property-page .owl-carousel-property .owl-item > a,
.pa-itb-property-page .owl-carousel-property .owl-item img{
	display:block !important; width:100% !important; height:100% !important;
	min-height:200px !important; object-fit:cover !important; border-radius:10px !important;
}
.pa-itb-property-page .panel.panel-default,
.pa-itb-property-page .panel-body{ background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }

/* ---- text hierarchy ---- */
.pa-itb-property-page .pa-page-content > h3{
	font-family:var(--font-body,"Manrope",sans-serif) !important;
	font-size:13px !important; letter-spacing:.16em !important; text-transform:uppercase !important;
	color:var(--pa-gold,#c2a16a) !important; margin:0 0 6px !important; font-weight:600 !important;
}
.pa-itb-property-page .pa-page-content > blockquote{
	border:0 !important; padding:0 !important; margin:14px 0 26px !important;
	font-size:clamp(16px,1.4vw,19px) !important; line-height:1.6 !important; color:rgba(7,30,51,.82) !important;
	font-style:normal !important;
}
.pa-itb-property-page .pa-page-content h4{
	font-family:var(--font-display,"Cormorant Garamond",serif) !important;
	font-size:clamp(22px,2vw,28px) !important; margin:30px 0 12px !important; color:var(--pa-ink,#071e33) !important;
	border-bottom:1px solid rgba(7,30,51,.12) !important; padding-bottom:8px !important;
}
.pa-itb-property-page .pa-page-content h4 + p{
	line-height:2 !important; font-size:15px !important; color:rgba(7,30,51,.86) !important;
}
@media (max-width:760px){
	.pa-itb-property-page .owl-carousel-property .owl-stage{ grid-template-columns:repeat(2,1fr) !important; }
}
/* end v0.5.83 */

/* =====================================================================
   v0.5.87 — team page (/equipe/) profile-head alignment
   The 2-line uppercase name (ROSSI / ALEXANDRE) is taller than the 76px
   avatar; align-items:center floated the first name line above the avatar.
   Top-align the header, size the name down, keep the column left-aligned.
   ===================================================================== */
.pa-team-page .pa-source-profile-head{
	align-items:flex-start !important;
	gap:18px !important;
}
.pa-team-page .pa-source-profile-head > div{
	min-width:0 !important; flex:1 1 auto !important; text-align:left !important; padding-top:2px;
}
.pa-team-page .pa-source-profile-head h2{
	font-size:clamp(20px,1.7vw,25px) !important;
	line-height:1.08 !important; margin:0 0 6px !important;
}
.pa-team-page .pa-source-profile-head h2 span{ display:block !important; }
.pa-team-page .pa-source-profile-head p{ margin:0 !important; }
.pa-team-page .pa-source-lang-row{ justify-content:flex-start !important; margin-top:8px !important; }
.pa-team-page .pa-source-profile-bio,
.pa-team-page .pa-agent-contact-list,
.pa-team-page .pa-source-team-profile{ text-align:left !important; }
.pa-team-page .pa-agent-photo{ margin-top:2px; }
/* end v0.5.87 */

/* v0.5.88 — team page: align "Envoyer un e-mail" buttons across cards.
   Push the contact list (email = last row) to the card bottom; phone (only
   Laurine) sits above the email. Equal-height cards via grid stretch. */
.pa-team-page .pa-source-team-list{ align-items:stretch !important; }
.pa-team-page .pa-source-team-profile{ display:flex !important; flex-direction:column !important; height:100% !important; }
.pa-team-page .pa-agent-contact-list{ margin-top:auto !important; }
.pa-team-page .pa-book-cta{ margin-top:14px !important; }
/* end v0.5.88 */

/* v0.5.89 — team: phone shown by the name (only Laurine); bottom block is
   email-only on every card so all "Envoyer un e-mail" buttons align. */
.pa-team-page .pa-agent-phone-inline{ margin:8px 0 0 !important; font-size:14px !important; }
.pa-team-page .pa-agent-phone-inline a{ color:var(--pa-ink,#071e33) !important; }
/* end v0.5.89 */
