/* ============================================================
 PROPERTY-PAGE.CSS - 8936 Charrington Drive
 Layered on top of base/layout/components/pages from main site.
 Uses brand tokens: --color-navy, --color-accent (gold), --color-cream.
 ============================================================ */

/* Property page uses native browser scrolling for predictable long-form listing UX. */
.property-page {
 padding-top: 0;
 background: var(--color-cream);
 --prop-font-serif: var(--font-head, "Archivo", system-ui, sans-serif);
 --prop-font-sans: var(--font-body, "Manrope", system-ui, sans-serif);
 font-family: var(--prop-font-sans);
}

/* Kill any stray bottom whitespace */
.property-page main { overflow: visible; }
footer.footer { margin-bottom: 0 !important; padding-bottom: 32px !important; }
#smooth-content { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/* Tighten last section before footer */
.prop-social { padding-bottom: 80px; }

/* Section padding cleanup - tighter on smaller screens */
@media (max-width: 768px) {
 .prop-story, .prop-comp, .prop-paths, .prop-personas, .prop-protections,
 .prop-gallery, .prop-submit, .prop-schedule, .prop-broker, .prop-social {
 padding: 72px 0 !important;
 }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: 0.001ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.001ms !important;
 }
 .prop-ticker__track,
 .pulse-cta { animation: none !important; }
 #smooth-wrapper { position: static !important; overflow: visible !important; height: auto !important; }
}

/* Scroll wrapper retained in markup for compatibility, but it stays native. */
#smooth-wrapper {
 position: static;
 overflow: visible;
 height: auto;
 width: 100%;
}
#smooth-content {
 overflow: visible;
 width: 100%;
 transform: none !important;
}

/* ============================================================
 MLS LIVE STATUS BAR
 ============================================================ */
.mls-bar {
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 z-index: 100;
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 10px 16px;
 font-size: 13px;
 font-weight: 500;
 letter-spacing: 0.01em;
 border-bottom: 1px solid rgba(212, 168, 67, 0.2);
 backdrop-filter: blur(8px);
}
.mls-bar__inner {
 display: flex;
 align-items: center;
 justify-content: space-between;
 max-width: 1400px;
 margin: 0 auto;
 gap: 12px;
}
.mls-bar__live {
 display: flex;
 align-items: center;
 gap: 8px;
}
.mls-bar__dot {
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: #ef4444;
 animation: mls-pulse 2s ease infinite;
}
.mls-bar__label {
 text-transform: uppercase;
 font-size: 11px;
 letter-spacing: 0.15em;
 font-weight: 700;
}
.mls-bar__deadline { color: rgba(248, 245, 238, 0.85); }
.mls-bar__deadline strong { color: var(--color-accent); }
.mls-bar__countdown {
 font-family: 'Courier New', monospace;
 color: var(--color-accent);
 font-variant-numeric: tabular-nums;
 letter-spacing: 0.05em;
}
@keyframes mls-pulse {
 0%, 100% { opacity: 1; transform: scale(1); }
 50% { opacity: 0.4; transform: scale(1.4); }
}
@media (max-width: 640px) {
 .mls-bar { font-size: 11px; padding: 8px 12px; }
 .mls-bar__deadline { display: none; }
}

/* Move nav down to clear the MLS bar */
.nav { margin-top: 40px; }
@media (max-width: 640px) { .nav { margin-top: 36px; } }

/* ============================================================
 HERO
 ============================================================ */
.prop-hero {
 position: relative;
 min-height: max(720px, 100vh);
 height: auto;
 overflow: hidden;
 background: var(--color-navy-dark);
 color: var(--color-cream);
 margin-top: 0;
 padding-top: 0;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
}
.prop-hero__bg {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 110%;
 will-change: transform;
}
.prop-hero__bg picture,
.prop-hero__bg img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
}
.prop-hero__overlay {
 position: absolute;
 inset: 0;
 background:
 radial-gradient(ellipse at top right, rgba(17, 29, 51, 0.1) 0%, rgba(17, 29, 51, 0.6) 60%),
 linear-gradient(180deg,
 rgba(17, 29, 51, 0.15) 0%,
 rgba(17, 29, 51, 0.05) 30%,
 rgba(17, 29, 51, 0.55) 70%,
 rgba(17, 29, 51, 0.92) 100%);
}
.prop-hero__content {
 position: relative;
 z-index: 2;
 padding: clamp(140px, 17vh, 220px) var(--space-4) 72px var(--space-4);
 max-width: 1400px;
 margin: 0 auto;
 width: 100%;
 box-sizing: border-box;
}
.prop-hero__eyebrow {
 text-transform: uppercase;
 letter-spacing: 0.3em;
 font-size: 11px;
 color: rgba(248, 245, 238, 0.7);
 margin-bottom: 16px;
 font-weight: 600;
}
.prop-hero__title {
 font-family: var(--font-display, "Archivo Expanded", "Archivo", sans-serif);
 font-size: clamp(38px, 5.4vw, 74px);
 line-height: 1.0;
 font-weight: 800;
 color: #fff;
 margin: 0 0 24px 0;
 letter-spacing: -0.02em;
 text-wrap: balance;
}
.prop-hero__title span,
.prop-hero__title em {
 display: block;
 font-style: normal;
}
.prop-hero__title em {
 font-style: normal;
 font-weight: 800;
 color: var(--amber, #EC9A29);
}
.prop-hero__specs {
 display: flex;
 flex-wrap: wrap;
 gap: 16px;
 align-items: center;
 color: rgba(248, 245, 238, 0.9);
 font-size: 15px;
 margin-bottom: 36px;
 font-weight: 400;
}
.prop-hero__specs .dot { color: var(--color-accent); }
.prop-hero__prices {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 16px;
 max-width: 720px;
 margin-bottom: 32px;
}
@media (max-width: 640px) {
 .prop-hero__prices { grid-template-columns: 1fr; gap: 12px; }
 .prop-hero__content { bottom: 32px; }
}
.price-card {
 background: rgba(250, 248, 245, 0.97);
 color: var(--color-text);
 padding: 20px 24px;
 border-radius: 2px;
 backdrop-filter: blur(10px);
 border-left: 4px solid var(--color-accent);
 transform-style: preserve-3d;
 will-change: transform;
}
.price-card--assignment { border-left-color: #6B8E7B; }
.price-card__label {
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-size: 10px;
 font-weight: 700;
 color: var(--color-text-muted);
 margin: 0 0 6px 0;
}
.price-card__amount {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(28px, 5vw, 40px);
 font-weight: 700;
 color: var(--color-navy);
 margin: 0 0 6px 0;
 letter-spacing: -0.01em;
}
.price-card__sub {
 font-size: 12px;
 color: var(--color-text-light);
 margin: 0;
}
.prop-hero__cta {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
}
.pulse-cta {
 animation: cta-pulse 3.6s ease-in-out infinite;
}
@keyframes cta-pulse {
 0%, 100% { box-shadow: 0 0 0 0 rgba(212, 168, 67, 0.34); }
 50% { box-shadow: 0 0 0 12px rgba(212, 168, 67, 0); }
}
.prop-hero__scroll {
 position: absolute;
 bottom: 24px;
 left: 50%;
 transform: translateX(-50%);
 color: rgba(248, 245, 238, 0.5);
 text-transform: uppercase;
 font-size: 10px;
 letter-spacing: 0.3em;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 8px;
 z-index: 3;
}
.prop-hero__scroll-line {
 width: 1px;
 height: 36px;
 background: rgba(248, 245, 238, 0.4);
 animation: scroll-pulse 2.5s ease infinite;
}
@keyframes scroll-pulse {
 0% { transform: scaleY(0); transform-origin: top; }
 50% { transform: scaleY(1); transform-origin: top; }
 51% { transform: scaleY(1); transform-origin: bottom; }
 100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ============================================================
 TICKER
 ============================================================ */
.prop-ticker {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 20px 0;
 overflow: hidden;
 border-top: 1px solid rgba(212, 168, 67, 0.15);
 border-bottom: 1px solid rgba(212, 168, 67, 0.15);
}
.prop-ticker__track {
 display: flex;
 gap: 48px;
 align-items: center;
 white-space: nowrap;
 animation: ticker-scroll 70s linear infinite;
 width: max-content;
}
.ticker-item {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 22px;
 font-style: italic;
 color: var(--color-accent);
}
.ticker-item em {
 font-style: normal;
 color: rgba(248, 245, 238, 0.65);
 font-size: 14px;
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-family: var(--font-body, "Manrope", system-ui, sans-serif);
 margin: 0 4px;
}
.ticker-sep { color: rgba(248, 245, 238, 0.3); font-size: 12px; }
@keyframes ticker-scroll {
 0% { transform: translateX(0); }
 100% { transform: translateX(-50%); }
}

/* ============================================================
 REVEAL ANIMATION
 Elements are visible by default. JS adds .js-active to <html>
 when GSAP is ready, then hides them until they scroll into view.
 This way: no-JS users + screenshots still see the page; with JS
 we get the cinematic fade-up.
 ============================================================ */
.reveal {
 opacity: 1;
 transform: translateY(0);
 transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
html.js-active .reveal:not(.is-visible) {
 opacity: 0;
 transform: translateY(30px);
}
html.js-active .reveal.is-visible {
 opacity: 1;
 transform: translateY(0);
}

/* ============================================================
 COUNTDOWN + REMINDER SIGNUP
 ============================================================ */
.prop-countdown {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 80px 0;
 position: relative;
 overflow: hidden;
}
.prop-countdown::before {
 content: '';
 position: absolute;
 inset: 0;
 background:
 radial-gradient(ellipse at top left, rgba(212, 168, 67, 0.12), transparent 50%),
 radial-gradient(ellipse at bottom right, rgba(212, 168, 67, 0.08), transparent 50%);
 pointer-events: none;
}
.countdown-wrap {
 display: grid;
 grid-template-columns: 1.2fr 1fr;
 gap: 48px;
 align-items: center;
 position: relative;
}
@media (max-width: 900px) {
 .countdown-wrap { grid-template-columns: 1fr; gap: 32px; }
}
.countdown-heading {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(28px, 4vw, 40px);
 font-weight: 500;
 color: #fff;
 margin: 12px 0 24px 0;
 letter-spacing: -0.01em;
}
.countdown-display {
 display: flex;
 align-items: stretch;
 gap: 12px;
 margin-bottom: 24px;
}
.countdown-unit {
 background: rgba(248, 245, 238, 0.04);
 border: 1px solid rgba(212, 168, 67, 0.25);
 border-radius: 4px;
 padding: 18px 20px;
 text-align: center;
 flex: 1;
 min-width: 64px;
}
.countdown-num {
 display: block;
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(40px, 6vw, 64px);
 font-weight: 600;
 color: var(--color-accent);
 line-height: 1;
 font-variant-numeric: tabular-nums;
}
.countdown-lbl {
 display: block;
 font-size: 10px;
 text-transform: uppercase;
 letter-spacing: 0.2em;
 color: rgba(248, 245, 238, 0.55);
 margin-top: 6px;
 font-weight: 600;
}
.countdown-sep {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(40px, 6vw, 64px);
 color: rgba(212, 168, 67, 0.4);
 display: flex;
 align-items: center;
 padding-bottom: 24px;
}
@media (max-width: 600px) {
 .countdown-sep { display: none; }
 .countdown-display { gap: 6px; }
 .countdown-unit { padding: 12px 8px; }
}
.countdown-tag {
 font-size: 13px;
 color: rgba(248, 245, 238, 0.65);
 line-height: 1.6;
 margin: 0;
}
.reminder-form {
 background: rgba(248, 245, 238, 0.05);
 border: 1px solid rgba(212, 168, 67, 0.2);
 border-radius: 4px;
 padding: 28px;
 display: grid;
 gap: 14px;
}
.reminder-form__label {
 text-transform: uppercase;
 letter-spacing: 0.25em;
 font-size: 10px;
 color: var(--color-accent);
 font-weight: 700;
 margin: 0 0 4px 0;
}
.reminder-form__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 28px;
 color: #fff;
 font-weight: 600;
 margin: 0 0 6px 0;
 line-height: 1.15;
 letter-spacing: -0.01em;
}
.reminder-form__sub {
 font-size: 14px;
 color: rgba(255, 255, 255, 0.92);
 margin: 0 0 12px 0;
 line-height: 1.6;
 font-weight: 400;
}
.reminder-form label {
 display: block;
 font-size: 11px;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 color: #EC9A29;
 font-weight: 700;
}
.reminder-form input {
 display: block;
 width: 100%;
 margin-top: 6px;
 padding: 11px 13px;
 background: rgba(248, 245, 238, 0.08);
 border: 1px solid rgba(248, 245, 238, 0.15);
 border-radius: 2px;
 color: #fff;
 font-family: inherit;
 font-size: 14px;
 font-weight: 400;
 text-transform: none;
 letter-spacing: normal;
}
.reminder-form input::placeholder { color: rgba(248, 245, 238, 0.35); }
.reminder-form input:focus {
 outline: none;
 border-color: var(--color-accent);
 background: rgba(248, 245, 238, 0.12);
}
.reminder-form__row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 10px;
}
@media (max-width: 480px) {
 .reminder-form__row { grid-template-columns: 1fr; }
}
.reminder-form__channels {
 border: 1px solid rgba(248, 245, 238, 0.18);
 border-radius: 4px;
 padding: 10px 12px;
 margin: 0;
 display: flex;
 gap: 14px;
 flex-wrap: wrap;
 align-items: center;
 color: rgba(255, 255, 255, 0.9);
}
.reminder-form__channels legend {
 padding: 0 5px;
 color: #EC9A29;
 font-size: 10px;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 font-weight: 700;
}
.reminder-form__channels label {
 display: inline-flex;
 align-items: center;
 gap: 7px;
 color: rgba(255, 255, 255, 0.92);
 font-size: 13px;
 text-transform: none;
 letter-spacing: normal;
}
.reminder-form__channels input {
 width: auto;
 margin: 0;
}
.reminder-form__consent {
 display: flex;
 align-items: flex-start;
 gap: 10px;
 font-size: 13px;
 text-transform: none;
 letter-spacing: normal;
 color: rgba(255, 255, 255, 0.9);
 line-height: 1.55;
 font-weight: 400;
}
.reminder-form__consent input { width: auto; margin-top: 3px; flex: 0 0 auto; }
.reminder-form__note {
 font-size: 12px;
 color: rgba(255, 255, 255, 0.8);
 text-align: center;
 margin: 6px 0 0 0;
 font-style: italic;
}

/* ============================================================
 STORY SECTION
 ============================================================ */
.prop-story {
 background: var(--color-cream);
 padding: 72px 0;
 position: relative;
}
.prop-story__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 60px);
 font-weight: 500;
 color: var(--color-navy);
 line-height: 1.05;
 letter-spacing: -0.015em;
 margin: 16px 0 40px 0;
}
.prop-story__body {
 max-width: 640px;
}
.prop-story__body p {
 font-size: 17px;
 line-height: 1.75;
 color: var(--color-text);
 margin-bottom: 24px;
}
.prop-story__body a {
 color: var(--color-accent-dark);
 text-decoration-color: rgba(212, 168, 67, 0.4);
 text-underline-offset: 3px;
}
.prop-story__body a:hover { color: var(--color-navy); text-decoration-color: currentColor; }

/* Section label utility */
.section__label {
 text-transform: uppercase;
 letter-spacing: 0.3em;
 font-size: 11px;
 color: var(--color-accent-dark);
 font-weight: 700;
 margin-bottom: 16px;
}
.section__label--gold { color: var(--color-accent); }

/* ============================================================
 COMP ANCHOR
 ============================================================ */
.prop-comp {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 80px 0;
 position: relative;
 overflow: hidden;
 text-align: center;
}
.prop-comp__canvas {
 position: absolute;
 inset: 0;
 pointer-events: none;
 opacity: 0.85;
}
.prop-comp .container { position: relative; z-index: 2; }
.prop-comp__address {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(20px, 3vw, 32px);
 color: rgba(248, 245, 238, 0.85);
 margin: 12px 0 20px 0;
}
.prop-comp__price {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(64px, 11vw, 144px);
 font-weight: 600;
 color: var(--color-accent);
 line-height: 0.95;
 margin: 0 0 24px 0;
 letter-spacing: -0.02em;
 text-shadow: 0 0 60px rgba(212, 168, 67, 0.25);
}
.prop-comp__caption {
 font-size: 15px;
 color: rgba(248, 245, 238, 0.7);
 max-width: 580px;
 margin: 0 auto 64px auto;
 line-height: 1.65;
}
.prop-comp__grid {
 display: grid;
 grid-template-columns: repeat(6, 1fr);
 gap: 1px;
 background: rgba(248, 245, 238, 0.1);
 max-width: 900px;
 margin: 0 auto;
}
@media (max-width: 768px) {
 .prop-comp__grid { grid-template-columns: repeat(2, 1fr); }
}
.comp-cell {
 background: var(--color-navy-dark);
 padding: 24px 16px;
 text-align: center;
}
.comp-cell--featured { background: rgba(212, 168, 67, 0.12); }
.comp-cell__price {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 26px;
 font-weight: 600;
 color: var(--color-cream);
 margin: 0;
}
.comp-cell--featured .comp-cell__price { color: var(--color-accent); }
.comp-cell__addr {
 font-size: 11px;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 color: rgba(248, 245, 238, 0.6);
 margin: 4px 0;
}
.comp-cell__date {
 font-size: 11px;
 color: rgba(248, 245, 238, 0.4);
 margin: 0;
}

/* ============================================================
 TWO PATHS
 ============================================================ */
.prop-paths {
 background: var(--color-cream);
 padding: 72px 0;
}
.prop-paths__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 margin: 16px 0 64px 0;
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
}
.prop-paths__grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 24px;
 margin-bottom: 64px;
}
@media (max-width: 900px) {
 .prop-paths__grid { grid-template-columns: 1fr; }
}
.path-card {
 background: #fff;
 border-radius: 4px;
 padding: 36px;
 box-shadow: 0 4px 30px rgba(27, 42, 74, 0.06);
 border-top: 4px solid var(--color-accent);
 transform-style: preserve-3d;
 will-change: transform;
 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.path-card--assignment { border-top-color: #6B8E7B; }
.path-card__head {
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
 margin-bottom: 24px;
}
.path-card__label {
 text-transform: uppercase;
 letter-spacing: 0.25em;
 font-size: 10px;
 font-weight: 700;
 color: var(--color-accent-dark);
 margin: 0;
}
.path-card--assignment .path-card__label { color: #3d5d4a; }
.path-card__num {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 28px;
 color: rgba(212, 168, 67, 0.3);
}
.path-card__price {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 56px;
 color: var(--color-navy);
 font-weight: 600;
 margin: 0 0 4px 0;
 line-height: 1;
 letter-spacing: -0.02em;
}
.path-card__sub {
 font-size: 13px;
 color: var(--color-text-muted);
 margin: 0 0 28px 0;
}
.path-card__details {
 border-top: 1px solid var(--color-border);
 padding-top: 20px;
 margin-bottom: 28px;
}
.path-card__details summary {
 cursor: pointer;
 font-weight: 600;
 font-size: 14px;
 color: var(--color-text);
 list-style: none;
 display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 4px 0;
}
.path-card__details summary::-webkit-details-marker { display: none; }
.path-card__details summary::after {
 content: '+';
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 20px;
 color: var(--color-accent-dark);
 transition: transform 0.3s;
}
.path-card__details[open] summary::after {
 transform: rotate(45deg);
}
.disbursement {
 width: 100%;
 margin-top: 16px;
 font-size: 13px;
 border-collapse: collapse;
}
.disbursement td {
 padding: 8px 0;
 color: var(--color-text-light);
}
.disbursement td:last-child {
 text-align: right;
 font-variant-numeric: tabular-nums;
 font-weight: 500;
 color: var(--color-text);
}
.disbursement__highlight {
 background: linear-gradient(90deg, rgba(212, 168, 67, 0.12), transparent);
}
.disbursement__highlight td {
 padding: 10px 8px;
 color: #6B8E7B;
}
.substructures { margin-top: 16px; }
.substruct {
 border-left: 2px solid #6B8E7B;
 padding: 8px 16px;
 margin-bottom: 16px;
}
.substruct__name {
 font-weight: 700;
 color: var(--color-navy);
 margin: 0 0 4px 0;
 font-size: 14px;
}
.substruct__desc {
 font-size: 13px;
 color: var(--color-text-light);
 margin: 0;
 line-height: 1.55;
}
.substruct__note {
 font-size: 12px;
 font-style: italic;
 color: var(--color-text-muted);
 margin-top: 12px;
}
.path-card__benefits {
 margin: 0;
 padding: 0;
 list-style: none;
}
.path-card__benefits li {
 position: relative;
 padding-left: 22px;
 margin-bottom: 10px;
 font-size: 14px;
 color: var(--color-text);
}
.path-card__benefits li::before {
 content: '◆';
 position: absolute;
 left: 0;
 top: 0;
 color: var(--color-accent);
 font-size: 10px;
 line-height: 22px;
}
.path-card--assignment .path-card__benefits li::before { color: #6B8E7B; }

/* Taxes-only callout */
.taxes-callout {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 border-radius: 4px;
 padding: 48px;
 display: grid;
 grid-template-columns: 2fr 1fr;
 gap: 32px;
 align-items: center;
 overflow: hidden;
 position: relative;
}
@media (max-width: 768px) {
 .taxes-callout { grid-template-columns: 1fr; padding: 32px; text-align: center; }
}
.taxes-callout__label {
 text-transform: uppercase;
 letter-spacing: 0.25em;
 font-size: 10px;
 font-weight: 700;
 color: var(--color-accent);
 margin: 0 0 12px 0;
}
.taxes-callout__heading {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(28px, 4vw, 42px);
 font-weight: 500;
 color: #fff;
 margin: 0 0 16px 0;
 line-height: 1.15;
 letter-spacing: -0.01em;
}
.taxes-callout__body {
 font-size: 15px;
 color: rgba(248, 245, 238, 0.85);
 line-height: 1.7;
 margin: 0;
}
.taxes-callout__amount {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(72px, 10vw, 120px);
 color: var(--color-accent);
 margin: 0;
 line-height: 1;
 font-weight: 600;
 letter-spacing: -0.02em;
}
.taxes-callout__caption {
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-size: 11px;
 color: rgba(248, 245, 238, 0.6);
 margin: 8px 0 0 0;
}

/* ============================================================
 PROTECTIONS / AFTER CLOSING
 ============================================================ */
.prop-protections {
 background: linear-gradient(180deg, var(--color-cream) 0%, var(--color-sand-light) 100%);
 padding: 72px 0;
}
.prop-protections__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 margin: 16px 0 16px 0;
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
}
.prop-protections__sub {
 font-size: 16px;
 color: var(--color-text-light);
 max-width: 680px;
 line-height: 1.7;
 margin-bottom: 56px;
}
.protections-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 24px;
 margin-bottom: 56px;
}
@media (max-width: 900px) {
 .protections-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
 .protections-grid { grid-template-columns: 1fr; }
}
.protection-card {
 background: #fff;
 border-radius: 4px;
 padding: 32px 28px;
 border-top: 3px solid var(--color-navy);
 box-shadow: 0 4px 30px rgba(27, 42, 74, 0.05);
 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
.protection-card:hover {
 transform: translateY(-6px);
 box-shadow: 0 20px 50px rgba(27, 42, 74, 0.12);
}
.protection-card--accent {
 border-top-color: var(--color-accent);
 background: linear-gradient(180deg, #fff 0%, var(--color-accent-light) 100%);
}
.protection-card--burgundy {
 border-top-color: #7a2532;
 background: linear-gradient(180deg, #fff 0%, #fef2f3 100%);
}
.protection-card__icon {
 width: 44px;
 height: 44px;
 border-radius: 50%;
 background: var(--color-navy-dark);
 color: var(--color-accent);
 display: flex;
 align-items: center;
 justify-content: center;
 margin-bottom: 20px;
}
.protection-card__icon svg {
 width: 22px;
 height: 22px;
}
.protection-card--accent .protection-card__icon { background: var(--color-accent); color: var(--color-navy-dark); }
.protection-card--burgundy .protection-card__icon { background: #7a2532; color: #fff; }
.protection-card__label {
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-size: 10px;
 color: var(--color-accent-dark);
 font-weight: 700;
 margin: 0 0 8px 0;
}
.protection-card--accent .protection-card__label { color: #7c5a09; }
.protection-card--burgundy .protection-card__label { color: #7a2532; }
.protection-card__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 26px;
 color: var(--color-navy);
 font-weight: 600;
 line-height: 1.15;
 margin: 0 0 12px 0;
 letter-spacing: -0.01em;
}
.protection-card__body {
 font-size: 14px;
 line-height: 1.65;
 color: var(--color-text);
 margin: 0;
}
.protection-card__body strong {
 color: var(--color-navy);
 font-weight: 700;
}

.protections-timeline {
 background: var(--color-navy);
 color: var(--color-cream);
 border-radius: 4px;
 padding: 28px 24px;
 display: grid;
 grid-template-columns: repeat(7, 1fr);
 gap: 0;
 position: relative;
}
@media (max-width: 1100px) {
 .protections-timeline { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 24px; }
}
.timeline-step {
 padding: 12px 14px;
 border-right: 1px solid rgba(248, 245, 238, 0.1);
 display: flex;
 flex-direction: column;
 gap: 6px;
}
.timeline-step:last-child { border-right: none; }
@media (max-width: 1100px) { .timeline-step { border-right: none; border-bottom: 1px solid rgba(248, 245, 238, 0.1); padding-bottom: 16px; } }
.timeline-step__date {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 22px;
 color: var(--color-accent);
 font-weight: 600;
 line-height: 1;
}
.timeline-step__label {
 font-size: 12px;
 color: rgba(248, 245, 238, 0.75);
 line-height: 1.5;
}
.timeline-step--featured {
 background: rgba(212, 168, 67, 0.15);
 border-radius: 4px;
 padding: 12px 14px;
 margin: -4px 0;
}
.timeline-step--featured .timeline-step__date { color: var(--color-accent); }
.timeline-step--featured .timeline-step__label { color: #fff; font-weight: 600; }

/* Path card benefits heading */
.path-card__benefits-heading {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 22px;
 color: var(--color-navy);
 font-weight: 600;
 margin: 0 0 16px 0;
 padding-top: 24px;
 border-top: 1px solid var(--color-border);
 letter-spacing: -0.01em;
}

/* ============================================================
 BEFORE/AFTER GALLERY
 ============================================================ */
.prop-value-stack {
 background:
 linear-gradient(135deg, rgba(248, 245, 238, 0.98), rgba(240, 235, 225, 0.96)),
 radial-gradient(circle at 86% 12%, rgba(212, 168, 67, 0.14), transparent 34%);
 padding: 78px 0;
 color: var(--color-navy);
}
.value-stack__intro {
 max-width: 860px;
 margin-bottom: 34px;
}
.value-stack__intro h2 {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(34px, 4.8vw, 58px);
 line-height: 1.04;
 font-weight: 500;
 color: var(--color-navy);
 margin: 14px 0 14px;
}
.value-stack__intro p {
 font-size: 16px;
 line-height: 1.7;
 color: var(--color-text);
 max-width: 760px;
 margin: 0;
}
.value-stack__grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 16px;
}
.value-card {
 min-height: 230px;
 padding: 24px;
 background: rgba(255, 255, 255, 0.78);
 border: 1px solid rgba(27, 42, 74, 0.1);
 border-top: 3px solid var(--color-accent);
 border-radius: 6px;
 box-shadow: 0 18px 48px rgba(27, 42, 74, 0.07);
}
.value-card__kicker {
 display: inline-block;
 margin-bottom: 14px;
 font-size: 10px;
 font-weight: 800;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--color-accent-dark);
}
.value-card h3 {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 25px;
 line-height: 1.12;
 color: var(--color-navy);
 margin: 0 0 10px;
}
.value-card p {
 font-size: 14px;
 line-height: 1.62;
 color: var(--color-text);
 margin: 0;
}
@media (max-width: 980px) {
 .value-stack__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
 .prop-value-stack { padding: 56px 0; }
 .value-stack__grid { grid-template-columns: 1fr; }
 .value-card { min-height: auto; }
}

.prop-gallery {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 72px 0;
}
.prop-gallery__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: #fff;
 margin: 16px 0 16px 0;
 line-height: 1.05;
 font-weight: 500;
 letter-spacing: -0.015em;
}
.prop-gallery__sub {
 font-size: 14px;
 color: rgba(248, 245, 238, 0.6);
 max-width: 580px;
 line-height: 1.65;
 margin-bottom: 56px;
}
.prop-gallery__grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 32px;
}
@media (max-width: 768px) {
 .prop-gallery__grid { grid-template-columns: 1fr; }
}
.ba-card {
 background: rgba(248, 245, 238, 0.04);
 border-radius: 4px;
 overflow: hidden;
 border: 1px solid rgba(212, 168, 67, 0.15);
}
.ba-pair {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 1px;
 background: rgba(212, 168, 67, 0.2);
 border-radius: 4px 4px 0 0;
 overflow: hidden;
}
.ba-pair__panel {
 position: relative;
 margin: 0;
 background: rgba(8, 14, 26, 0.72);
 overflow: hidden;
 aspect-ratio: 4 / 3;
}
.ba-pair--portrait-set .ba-pair__panel {
 aspect-ratio: 3 / 4;
}
.ba-pair__panel picture,
.ba-pair__panel img {
 display: block;
 width: 100%;
 height: 100%;
}
.ba-pair__panel img {
 object-fit: cover;
 object-position: center center;
 transform: none;
 transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), filter 0.7s ease;
}
.ba-card:hover .ba-pair__panel img {
 transform: none;
 filter: saturate(1.08) contrast(1.03);
}
.ba-pair__panel--portrait img {
 object-fit: cover;
 object-position: center center;
}
.ba-pair__panel figcaption {
 position: absolute;
 top: 12px;
 left: 12px;
 background: rgba(17, 29, 51, 0.92);
 color: #fff;
 letter-spacing: 0.15em;
 font-size: 10px;
 padding: 4px 10px;
 text-transform: uppercase;
 font-weight: 700;
 border-left: 2px solid var(--color-accent);
}
@media (max-width: 520px) {
 .ba-pair { grid-template-columns: 1fr; }
}
.ba-card__meta { padding: 20px 24px; }
.ba-card__name {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 24px;
 color: #fff;
 margin: 0 0 6px 0;
 font-weight: 500;
}
.ba-card__budget {
 font-size: 12px;
 color: var(--color-accent);
 margin: 0;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 font-weight: 600;
}

.kitchen-vision {
 margin-top: 42px;
 padding: 34px;
 display: grid;
 grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.25fr);
 gap: 28px;
 align-items: start;
 background:
 linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025)),
 radial-gradient(circle at 100% 0%, rgba(212, 168, 67, 0.16), transparent 34%);
 border: 1px solid rgba(212, 168, 67, 0.22);
 border-radius: 6px;
}
.kitchen-vision__copy h3 {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(28px, 3.4vw, 42px);
 line-height: 1.08;
 font-weight: 500;
 color: #fff;
 margin: 10px 0 12px;
}
.kitchen-vision__copy p,
.kitchen-vision__note {
 font-size: 14px;
 line-height: 1.7;
 color: rgba(248, 245, 238, 0.72);
 margin: 0;
}
.kitchen-vision__cards {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 16px;
}
.kitchen-style-card {
 min-height: 255px;
 background: rgba(248, 245, 238, 0.94);
 color: var(--color-navy);
 border-radius: 5px;
 padding: 20px;
 border: 1px solid rgba(212, 168, 67, 0.18);
}
.kitchen-style-card__swatches {
 display: flex;
 gap: 8px;
 margin-bottom: 18px;
}
.kitchen-style-card__swatches span {
 width: 34px;
 height: 34px;
 border-radius: 50%;
 border: 1px solid rgba(27, 42, 74, 0.14);
 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}
.kitchen-style-card h4 {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 24px;
 line-height: 1.14;
 margin: 0 0 10px;
 color: var(--color-navy);
}
.kitchen-style-card p {
 font-size: 13.5px;
 line-height: 1.62;
 color: var(--color-text);
 margin: 0;
}
.kitchen-vision__note {
 grid-column: 1 / -1;
 padding-top: 18px;
 border-top: 1px solid rgba(212, 168, 67, 0.2);
 font-size: 12.5px;
}
@media (max-width: 900px) {
 .kitchen-vision { grid-template-columns: 1fr; padding: 24px; }
}
@media (max-width: 620px) {
 .kitchen-vision__cards { grid-template-columns: 1fr; }
}

/* ============================================================
 BUYER PERSONAS
 ============================================================ */
.prop-personas {
 background: var(--color-cream);
 padding: 72px 0;
}
.prop-personas__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
 margin: 16px 0 16px 0;
}
.prop-personas__sub {
 font-size: 16px;
 color: var(--color-text-light);
 max-width: 700px;
 line-height: 1.7;
 margin-bottom: 56px;
}
.personas-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 24px;
 margin-bottom: 40px;
}
@media (max-width: 900px) {
 .personas-grid { grid-template-columns: 1fr; }
}
.persona-card {
 background: #fff;
 border-radius: 4px;
 padding: 36px 32px;
 box-shadow: 0 4px 30px rgba(27, 42, 74, 0.06);
 position: relative;
 border-top: 4px solid var(--color-accent);
 transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
 transform-style: preserve-3d;
 will-change: transform;
}
.persona-card:hover {
 transform: translateY(-8px);
 box-shadow: 0 30px 70px -10px rgba(27, 42, 74, 0.15);
}
.persona-card--investor { border-top-color: #6B8E7B; }
.persona-card--endbuyer { border-top-color: #7a2532; }
.persona-card__num {
 position: absolute;
 top: 24px;
 right: 28px;
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 56px;
 color: rgba(212, 168, 67, 0.18);
 font-weight: 600;
 line-height: 1;
}
.persona-card--investor .persona-card__num { color: rgba(107, 142, 123, 0.2); }
.persona-card--endbuyer .persona-card__num { color: rgba(122, 37, 50, 0.2); }
.persona-card__icon {
 width: 56px;
 height: 56px;
 border-radius: 50%;
 background: var(--color-navy-dark);
 color: var(--color-accent);
 display: flex;
 align-items: center;
 justify-content: center;
 margin-bottom: 24px;
}
.persona-card__icon svg { width: 26px; height: 26px; }
.persona-card--investor .persona-card__icon { background: #6B8E7B; color: #fff; }
.persona-card--endbuyer .persona-card__icon { background: #7a2532; color: #fff; }
.persona-card__label {
 text-transform: uppercase;
 letter-spacing: 0.25em;
 font-size: 10px;
 color: var(--color-accent-dark);
 font-weight: 700;
 margin: 0 0 12px 0;
}
.persona-card--investor .persona-card__label { color: #3d5d4a; }
.persona-card--endbuyer .persona-card__label { color: #7a2532; }
.persona-card__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 28px;
 color: var(--color-navy);
 font-weight: 600;
 line-height: 1.15;
 letter-spacing: -0.015em;
 margin: 0 0 18px 0;
}
.persona-card__body {
 font-size: 14px;
 color: var(--color-text);
 line-height: 1.7;
 margin-bottom: 18px;
}
.persona-card__shameless {
 background: linear-gradient(90deg, rgba(212, 168, 67, 0.15), rgba(212, 168, 67, 0.04));
 border-left: 3px solid var(--color-accent);
 padding: 12px 14px;
 font-size: 13px;
 line-height: 1.6;
 color: var(--color-text);
 margin: 0 0 18px 0;
 border-radius: 0 4px 4px 0;
}
.persona-card__shameless strong { color: var(--color-accent-dark); }
.persona-card__points {
 margin: 0;
 padding: 0;
 list-style: none;
}
.persona-card__points li {
 font-size: 13px;
 color: var(--color-text-light);
 line-height: 1.65;
 padding-left: 18px;
 position: relative;
 margin-bottom: 6px;
}
.persona-card__points li::before {
 content: '◆';
 position: absolute;
 left: 0;
 top: 0;
 font-size: 9px;
 line-height: 22px;
 color: var(--color-accent);
}
.persona-card--investor .persona-card__points li::before { color: #6B8E7B; }
.persona-card--endbuyer .persona-card__points li::before { color: #7a2532; }
.personas-cta {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 border-radius: 4px;
 padding: 28px 32px;
 text-align: center;
}
.personas-cta__lead {
 font-size: 16px;
 line-height: 1.6;
 margin: 0;
 color: rgba(248, 245, 238, 0.9);
}
.personas-cta__lead strong { color: var(--color-accent); }
.personas-cta__lead a { color: var(--color-cream); text-decoration: underline; text-decoration-color: rgba(212, 168, 67, 0.5); }

/* ============================================================
 SUBMIT OFFER FORM
 ============================================================ */
.prop-submit {
 background: linear-gradient(180deg, var(--color-sand-light) 0%, var(--color-cream) 100%);
 padding: 72px 0;
}
.prop-submit__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
 margin: 16px 0 16px 0;
}
.prop-submit__sub {
 font-size: 16px;
 color: var(--color-text-light);
 max-width: 720px;
 line-height: 1.7;
 margin-bottom: 48px;
}
.submit-grid {
 display: grid;
 grid-template-columns: 2fr 1fr;
 gap: 40px;
}
@media (max-width: 900px) {
 .submit-grid { grid-template-columns: 1fr; }
}
.submit-form-wrap {
 background: #fff;
 border-radius: 4px;
 padding: 40px;
 box-shadow: 0 12px 50px rgba(27, 42, 74, 0.08);
 border-top: 4px solid var(--color-accent);
}
.submit-form { display: grid; gap: 20px; }
.submit-form__row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 16px;
}
@media (max-width: 600px) {
 .submit-form__row { grid-template-columns: 1fr; }
}
.submit-form label {
 display: block;
 font-size: 11px;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 color: var(--color-text-muted);
 font-weight: 600;
}
.submit-form input,
.submit-form select,
.submit-form textarea {
 display: block;
 width: 100%;
 margin-top: 6px;
 padding: 12px 14px;
 border: 1px solid var(--color-border);
 background: #fff;
 font-size: 14px;
 border-radius: 2px;
 font-family: inherit;
 text-transform: none;
 letter-spacing: normal;
 color: var(--color-text);
 font-weight: 400;
}
.submit-form input[type="file"] { padding: 8px; }
.submit-form textarea { resize: vertical; min-height: 80px; }
.submit-form input:focus,
.submit-form select:focus,
.submit-form textarea:focus {
 outline: none;
 border-color: var(--color-accent);
 box-shadow: 0 0 0 3px rgba(212, 168, 67, 0.15);
}
.prop-required-msg {
 display: block;
 margin: 0 0 5px;
 color: #B43222;
 font-size: 11px;
 font-weight: 800;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}
.btn[disabled],
button[disabled] {
 cursor: not-allowed;
 opacity: 0.48;
 filter: grayscale(0.15);
}
.submit-form__filehint {
 display: block;
 font-size: 11px;
 color: var(--color-text-muted);
 margin-top: 4px;
 text-transform: none;
 letter-spacing: normal;
 font-weight: 400;
 font-style: italic;
}
.submit-form__consent {
 display: flex;
 align-items: flex-start;
 gap: 10px;
 font-size: 12px;
 text-transform: none;
 letter-spacing: normal;
 color: var(--color-text-light);
 line-height: 1.55;
 font-weight: 400;
}
.submit-form__consent input { width: auto; margin-top: 2px; }
.submit-form__note {
 font-size: 12px;
 color: var(--color-text-muted);
 text-align: center;
 margin: 4px 0 0 0;
 font-style: italic;
}
.submit-side {
 background: var(--color-navy);
 color: var(--color-cream);
 border-radius: 4px;
 padding: 36px 28px;
 align-self: start;
 position: sticky;
 top: 80px;
}
.submit-side__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 26px;
 color: #fff;
 font-weight: 600;
 margin: 0 0 24px 0;
 letter-spacing: -0.01em;
}
.submit-side__item {
 display: flex;
 gap: 14px;
 align-items: flex-start;
 padding: 16px 0;
 border-bottom: 1px solid rgba(248, 245, 238, 0.12);
}
.submit-side__item:last-child { border-bottom: none; }
.submit-side__item svg {
 width: 22px;
 height: 22px;
 flex-shrink: 0;
 color: var(--color-accent);
 margin-top: 2px;
}
.submit-side__item-title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 18px;
 color: #fff;
 font-weight: 600;
 margin: 0 0 4px 0;
}
.submit-side__item-body {
 font-size: 13px;
 color: rgba(248, 245, 238, 0.7);
 line-height: 1.55;
 margin: 0;
}

/* ============================================================
 SCHEDULER
 ============================================================ */
.prop-schedule {
 background: var(--color-cream);
 padding: 72px 0;
}
.prop-schedule__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 margin: 16px 0 16px 0;
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
}
.prop-schedule__sub {
 font-size: 15px;
 color: var(--color-text-light);
 max-width: 600px;
 margin-bottom: 56px;
 line-height: 1.65;
}
.schedule-grid {
 background: #fff;
 border-radius: 4px;
 overflow: hidden;
 box-shadow: 0 8px 40px rgba(27, 42, 74, 0.08);
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 1px;
 background: var(--color-border);
}
@media (max-width: 768px) {
 .schedule-grid { grid-template-columns: repeat(2, 1fr); }
}
.schedule-day {
 background: #fff;
 padding: 28px 24px;
}
.schedule-day__name {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 26px;
 color: var(--color-navy);
 font-weight: 500;
 margin: 0 0 2px 0;
}
.schedule-day__date {
 font-size: 13px;
 color: var(--color-text-muted);
 margin: 0 0 20px 0;
 text-transform: uppercase;
 letter-spacing: 0.1em;
}
.slot-btn {
 display: block;
 width: 100%;
 text-align: left;
 background: #fff;
 border: 1px solid var(--color-border);
 padding: 12px 16px;
 margin-bottom: 8px;
 border-radius: 2px;
 font-size: 14px;
 font-weight: 500;
 color: var(--color-text);
 cursor: pointer;
 transition: all 0.25s ease;
 font-family: inherit;
}
.slot-btn:hover {
 background: var(--color-accent);
 color: #fff;
 border-color: var(--color-accent);
 transform: translateX(4px);
}
.slot-btn.taken {
 background: #f3f4f6;
 color: #9ca3af;
 text-decoration: line-through;
 cursor: not-allowed;
}
.schedule-embed {
 background: #fff;
 border: 1px solid rgba(27, 42, 74, 0.12);
 border-radius: 8px;
 box-shadow: 0 10px 36px rgba(27, 42, 74, 0.08);
 margin: 0 0 32px;
 overflow: hidden;
}
.schedule-embed iframe {
 display: block;
 width: 100%;
 min-height: 680px;
 border: 0;
 background: #fff;
}
@media (max-width: 768px) {
 .schedule-embed iframe { min-height: 760px; }
}
.schedule-openhouse {
 background: rgba(212, 168, 67, 0.1);
 border-top: 1px solid rgba(212, 168, 67, 0.3);
 padding: 18px 24px;
 text-align: center;
 margin-top: -1px;
 border-radius: 0 0 4px 4px;
}
.schedule-openhouse p {
 margin: 0;
 color: var(--color-navy);
 font-size: 15px;
}
.schedule-openhouse strong {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 20px;
 font-weight: 600;
 margin-right: 8px;
}
.schedule-note {
 text-align: center;
 font-size: 13px;
 color: var(--color-text-muted);
 margin-top: 24px;
 font-style: italic;
}

/* ============================================================
 BROKER (Montserrat)
 ============================================================ */
.prop-broker {
 background: var(--color-navy);
 color: var(--color-cream);
 padding: 72px 0;
}
.broker-grid {
 display: grid;
 grid-template-columns: 1fr 1.6fr;
 gap: 64px;
 align-items: center;
}
@media (max-width: 768px) {
 .broker-grid { grid-template-columns: 1fr; gap: 32px; }
}
.broker-photo {
 aspect-ratio: 3 / 4;
 background:
 radial-gradient(circle at 50% 18%, rgba(212, 168, 67, 0.23), transparent 32%),
 linear-gradient(160deg, #0f1d34, #050812 78%);
 border: 1px solid rgba(212, 168, 67, 0.28);
 border-radius: 6px;
 overflow: hidden;
 box-shadow: 0 34px 90px rgba(0, 0, 0, 0.28);
}
.broker-photo picture {
 display: block;
 width: 100%;
 height: 100%;
}
.broker-photo img {
 width: 100%;
 height: 100%;
 object-fit: contain;
 object-position: center bottom;
 display: block;
 padding: 18px 12px 0;
 box-sizing: border-box;
}
.broker-photo--placeholder {
 display: flex;
 align-items: center;
 justify-content: center;
 background: linear-gradient(135deg, var(--color-navy), var(--color-navy-dark));
}
.broker-photo__placeholder {
 text-align: center;
 color: rgba(248, 245, 238, 0.5);
}
.broker-photo__placeholder span {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 80px;
 font-weight: 600;
 color: var(--color-accent);
 display: block;
}
.broker-photo__placeholder p {
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-size: 10px;
 margin-top: 8px;
}
.broker-info__name {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: #fff;
 margin: 16px 0 8px 0;
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
}
.broker-info__title {
 font-size: 13px;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 color: rgba(248, 245, 238, 0.6);
 margin: 0 0 4px 0;
}
.broker-info__brokerage {
 font-size: 13px;
 color: rgba(248, 245, 238, 0.55);
 margin: 0 0 28px 0;
 font-weight: 400;
 font-style: italic;
}
.broker-info__brokerage strong {
 color: var(--color-accent);
 font-style: normal;
 font-weight: 600;
}

/* Footer EHO badge */
.footer__eho {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 margin-top: 14px;
 padding: 6px 12px;
 background: rgba(212, 168, 67, 0.1);
 border-radius: 2px;
 color: var(--color-accent);
 font-size: 11px;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 font-weight: 600;
}
.license-placeholder {
 background: rgba(212, 168, 67, 0.1);
 padding: 2px 8px;
 border-radius: 2px;
 font-family: 'Courier New', monospace;
 font-size: 11px;
 color: var(--color-accent);
}
.broker-info__bio p {
 font-size: 15px;
 line-height: 1.75;
 color: rgba(248, 245, 238, 0.85);
 margin-bottom: 16px;
}
.broker-info__contact {
 border-top: 1px solid rgba(248, 245, 238, 0.15);
 padding-top: 24px;
 margin: 32px 0;
 display: grid;
 gap: 12px;
}
.contact-row {
 display: grid;
 grid-template-columns: 100px 1fr;
 gap: 16px;
 align-items: baseline;
}
.contact-row__label {
 text-transform: uppercase;
 letter-spacing: 0.15em;
 font-size: 10px;
 color: var(--color-accent);
 font-weight: 700;
}
.contact-row__value {
 font-size: 15px;
 color: var(--color-cream);
 text-decoration: none;
 font-weight: 500;
}
a.contact-row__value:hover { color: var(--color-accent); }
.broker-info__actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
}

/* ============================================================
 SOCIAL ROW (broker section)
 ============================================================ */
.broker-info__social {
 margin-top: 32px;
 padding-top: 24px;
 border-top: 1px solid rgba(248, 245, 238, 0.15);
}
.broker-info__social-label {
 text-transform: uppercase;
 letter-spacing: 0.2em;
 font-size: 10px;
 color: var(--color-accent);
 font-weight: 700;
 margin: 0 0 14px 0;
}
.social-row {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
}
.social-icon {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 padding: 8px 14px;
 border: 1px solid rgba(248, 245, 238, 0.2);
 border-radius: 999px;
 color: var(--color-cream);
 text-decoration: none;
 font-size: 12px;
 font-weight: 500;
 transition: all 0.25s ease;
}
.social-icon svg {
 width: 16px;
 height: 16px;
 stroke: var(--color-accent);
}
.social-icon:hover {
 background: var(--color-accent);
 color: var(--color-navy-dark);
 border-color: var(--color-accent);
 transform: translateY(-2px);
}
.social-icon:hover svg { stroke: var(--color-navy-dark); }

/* ============================================================
 INSTAGRAM SECTION
 ============================================================ */
.prop-social {
 background: linear-gradient(180deg, var(--color-cream) 0%, var(--color-sand) 100%);
 padding: 72px 0;
}
.prop-social__head { max-width: 720px; margin-bottom: 56px; }
.prop-social__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5vw, 56px);
 color: var(--color-navy);
 font-weight: 500;
 line-height: 1.05;
 letter-spacing: -0.015em;
 margin: 16px 0 16px 0;
}
.prop-social__sub {
 font-size: 16px;
 color: var(--color-text-light);
 line-height: 1.7;
 margin: 0;
}
.prop-social__sub a {
 color: var(--color-accent-dark);
 font-weight: 600;
 text-decoration: none;
 border-bottom: 1px solid rgba(212, 168, 67, 0.4);
 padding-bottom: 1px;
}
.prop-social__sub a:hover {
 color: var(--color-navy);
 border-bottom-color: var(--color-navy);
}
.prop-social__grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 48px;
 align-items: center;
}
@media (max-width: 900px) {
 .prop-social__grid { grid-template-columns: 1fr; gap: 32px; }
}
.ig-embed {
 display: flex;
 justify-content: center;
 background: #fff;
 border-radius: 8px;
 padding: 16px;
 box-shadow: 0 12px 40px rgba(27, 42, 74, 0.1);
}
.ig-embed .instagram-media {
 margin: 0 !important;
 max-width: 100% !important;
 width: 100% !important;
}
.prop-social__cta {
 background: var(--color-navy);
 color: var(--color-cream);
 padding: 40px;
 border-radius: 8px;
 border-left: 4px solid var(--color-accent);
}
.prop-social__cta-title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(24px, 3vw, 32px);
 color: #fff;
 font-weight: 600;
 line-height: 1.15;
 margin: 0 0 16px 0;
 letter-spacing: -0.01em;
}
.prop-social__cta p {
 font-size: 15px;
 line-height: 1.7;
 color: rgba(248, 245, 238, 0.85);
 margin-bottom: 24px;
}
.prop-social__cta-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-bottom: 16px;
}
.prop-social__cta-foot {
 font-size: 12px;
 color: var(--color-accent);
 font-style: italic;
 margin: 0 !important;
}

/* ============================================================
 FLOATING CHAT TRIGGER (property-specific, doesn't conflict with site chatbot)
 ============================================================ */
/* Chat bubble lives in the LEFT corner so it never overlaps the
 Book a Showing funnel CTA (which is anchored bottom-right). */
.prop-chat-trigger {
 position: fixed;
 bottom: 24px;
 left: 24px;
 right: auto;
 z-index: 9001; /* same tier as funnel CTA so both stay above modals */
 background: var(--color-navy, #1B2A4A);
 color: var(--color-accent, #D4A843);
 border: 1.5px solid var(--color-accent, #D4A843);
 border-radius: 999px;
 padding: 14px 22px;
 display: flex;
 align-items: center;
 gap: 10px;
 font-weight: 600;
 font-size: 14px;
 cursor: pointer;
 box-shadow: 0 14px 36px -10px rgba(0, 0, 0, 0.45),
 0 6px 14px -6px rgba(0, 0, 0, 0.25);
 transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.prop-chat-trigger:hover {
 transform: translateY(-2px) scale(1.03);
 box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.55);
}
@media (max-width: 640px) {
 .prop-chat-trigger span { display: none; }
 .prop-chat-trigger { padding: 14px; bottom: 16px; left: 16px; }
}

/* ============================================================
 MODALS
 ============================================================ */
.prop-modal {
 position: fixed;
 inset: 0;
 z-index: 9600;
 background: rgba(17, 29, 51, 0.8);
 backdrop-filter: blur(8px);
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 16px;
}
.prop-modal[hidden] { display: none; }
.prop-modal__panel {
 background: var(--color-cream);
 border-radius: 4px;
 width: 100%;
 max-width: 440px;
 overflow: hidden;
 box-shadow: 0 20px 80px rgba(0, 0, 0, 0.4);
 animation: modal-in 0.3s ease;
}
@keyframes modal-in {
 from { opacity: 0; transform: translateY(20px) scale(0.96); }
 to { opacity: 1; transform: translateY(0) scale(1); }
}
.prop-modal__head {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 padding: 20px 24px;
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
}
.prop-modal__head--gold {
 background: var(--color-accent);
 color: var(--color-navy);
}
.prop-modal__head--gold .prop-modal__sub { color: rgba(17, 29, 51, 0.7); }
.prop-modal__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 22px;
 margin: 0;
 font-weight: 600;
}
.prop-modal__sub {
 font-size: 12px;
 color: rgba(248, 245, 238, 0.65);
 margin: 4px 0 0 0;
}
.prop-modal__close {
 background: transparent;
 border: none;
 color: inherit;
 font-size: 28px;
 line-height: 1;
 cursor: pointer;
 padding: 0;
 opacity: 0.6;
}
.prop-modal__close:hover { opacity: 1; }
.prop-modal__gate, .prop-modal__thread { padding: 24px; }
.prop-modal__intro {
 font-size: 13px;
 color: var(--color-text-light);
 margin-bottom: 16px;
 line-height: 1.6;
}
.prop-form { display: grid; gap: 14px; }
.prop-form label {
 display: block;
 font-size: 11px;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 color: var(--color-text-muted);
 font-weight: 600;
}
.prop-form input,
.prop-form select {
 display: block;
 width: 100%;
 margin-top: 6px;
 padding: 12px 14px;
 border: 1px solid var(--color-border);
 background: #fff;
 font-size: 14px;
 border-radius: 2px;
 font-family: inherit;
 text-transform: none;
 letter-spacing: normal;
 color: var(--color-text);
}
.prop-form input:focus,
.prop-form select:focus {
 outline: none;
 border-color: var(--color-accent);
 box-shadow: 0 0 0 3px rgba(212, 168, 67, 0.15);
}
.prop-form__consent {
 display: flex;
 align-items: flex-start;
 gap: 8px;
 font-size: 12px;
 text-transform: none;
 letter-spacing: normal;
 color: var(--color-text-light);
 line-height: 1.5;
 font-weight: 400;
}
.prop-form__consent input { width: auto; margin-top: 2px; }
.prop-form__note {
 font-size: 11px;
 color: var(--color-text-muted);
 text-align: center;
 margin: 4px 0 0 0;
 font-style: italic;
}

/* Chat thread */
.prop-modal__thread {
 display: flex;
 flex-direction: column;
 height: 480px;
 max-height: 70vh;
 padding: 0;
}
.prop-modal__thread[hidden] { display: none; }
.prop-chat__messages {
 flex: 1;
 overflow-y: auto;
 padding: 16px;
 display: flex;
 flex-direction: column;
 gap: 10px;
}
.chat-msg {
 max-width: 85%;
 padding: 10px 14px;
 border-radius: 14px;
 font-size: 13px;
 line-height: 1.5;
 animation: chat-pop 0.25s ease;
}
@keyframes chat-pop {
 from { opacity: 0; transform: translateY(8px); }
 to { opacity: 1; transform: translateY(0); }
}
.chat-msg--bot {
 background: rgba(212, 168, 67, 0.12);
 color: var(--color-text);
 border-bottom-left-radius: 4px;
 align-self: flex-start;
}
.chat-msg--user {
 background: var(--color-navy-dark);
 color: var(--color-cream);
 border-bottom-right-radius: 4px;
 align-self: flex-end;
}
.prop-chat__suggestions {
 display: flex;
 flex-wrap: wrap;
 gap: 6px;
 padding: 12px 16px;
 border-top: 1px solid var(--color-border);
 background: #fff;
}
.chat-suggest {
 font-size: 11px;
 padding: 6px 12px;
 border: 1px solid var(--color-border);
 border-radius: 999px;
 color: var(--color-navy);
 background: #fff;
 cursor: pointer;
 font-family: inherit;
 transition: all 0.2s ease;
}
.chat-suggest:hover {
 background: var(--color-accent);
 color: #fff;
 border-color: var(--color-accent);
}
.prop-chat__input {
 display: flex;
 gap: 8px;
 padding: 12px 16px;
 border-top: 1px solid var(--color-border);
 background: #fff;
}
.prop-chat__input input {
 flex: 1;
 padding: 10px 14px;
 border: 1px solid var(--color-border);
 border-radius: 2px;
 font-size: 13px;
 font-family: inherit;
}
.prop-chat__input input:focus {
 outline: none;
 border-color: var(--color-accent);
}

/* ============================================================
 Selection
 ============================================================ */
::selection { background: var(--color-accent); color: var(--color-navy); }

/* ============================================================
 3D tilt card baseline
 ============================================================ */
.tilt-card {
 transform-style: preserve-3d;
}
@media (hover: hover) {
 .tilt-card:hover {
 box-shadow: 0 30px 70px -15px rgba(27, 42, 74, 0.2);
 }
}

/* ============================================================
 Location / Drive Times / Schools
 ============================================================ */
.prop-location {
 padding: 64px 0 56px;
 background: var(--color-cream, #FAF8F5);
}
.prop-location__title {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: clamp(32px, 4vw, 48px);
 font-weight: 500;
 line-height: 1.15;
 letter-spacing: -0.01em;
 color: var(--color-navy, #1B2A4A);
 margin: 12px 0 16px;
 max-width: 880px;
}
.prop-location__sub {
 font-size: 17px;
 line-height: 1.7;
 color: var(--color-text, #2A2A2A);
 max-width: 760px;
 margin: 0 0 48px;
}
.location-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 24px;
}
@media (max-width: 980px) {
 .location-grid { grid-template-columns: 1fr; }
}
.location-card {
 background: #ffffff;
 border: 1px solid var(--color-border, #E5E1D8);
 border-radius: 4px;
 padding: 32px 28px;
 transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.location-card:hover {
 box-shadow: 0 24px 50px -20px rgba(27, 42, 74, 0.18);
 transform: translateY(-2px);
}
.location-card__label {
 font-family: var(--font-sans, var(--font-body, "Manrope", system-ui, sans-serif);
 font-size: 11px;
 font-weight: 600;
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: var(--color-accent, #D4A843);
 margin: 0 0 12px;
}
.location-card__title {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: 26px;
 font-weight: 500;
 line-height: 1.2;
 color: var(--color-navy, #1B2A4A);
 margin: 0 0 20px;
}
.location-card__list {
 list-style: none;
 padding: 0;
 margin: 0;
 font-size: 14.5px;
 line-height: 1.7;
 color: var(--color-text, #2A2A2A);
}
.location-card__list li {
 padding: 6px 0;
 border-bottom: 1px solid rgba(0,0,0,0.05);
}
.location-card__list li:last-child { border-bottom: 0; }
.location-card__list .rating {
 display: inline-block;
 background: var(--color-accent, #D4A843);
 color: #ffffff;
 font-size: 11px;
 font-weight: 700;
 padding: 2px 8px;
 border-radius: 999px;
 margin-left: 4px;
 letter-spacing: 0.03em;
}
.location-card__list--two-col {
 display: grid;
 grid-template-columns: auto 1fr;
 gap: 6px 14px;
}
.location-card__list--two-col li {
 display: contents;
}
.location-card__list--two-col .drive-time {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: 18px;
 font-weight: 600;
 color: var(--color-navy, #1B2A4A);
 padding: 6px 0;
 border-bottom: 1px solid rgba(0,0,0,0.05);
}
.location-card__list--two-col span:nth-child(2n) {
 padding: 6px 0;
 border-bottom: 1px solid rgba(0,0,0,0.05);
 color: var(--color-text, #2A2A2A);
}
.location-card--schools { border-top: 3px solid var(--color-accent, #D4A843); }
.location-card--drive { border-top: 3px solid var(--color-navy, #1B2A4A); }
.location-card--lifestyle{ border-top: 3px solid #8a6a3a; }

/* ============================================================
 FAQ - collapsible
 ============================================================ */
.prop-faq {
 padding: 64px 0 72px;
 background: #ffffff;
}
.prop-faq__title {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: clamp(32px, 4vw, 48px);
 font-weight: 500;
 line-height: 1.15;
 letter-spacing: -0.01em;
 color: var(--color-navy, #1B2A4A);
 margin: 12px 0 16px;
}
.prop-faq__sub {
 font-size: 17px;
 line-height: 1.7;
 color: var(--color-text, #2A2A2A);
 margin: 0 0 36px;
}
.faq-list {
 display: flex;
 flex-direction: column;
 gap: 12px;
}
.faq-item {
 border: 1px solid var(--color-border, #E5E1D8);
 border-radius: 4px;
 background: #ffffff;
 transition: border-color 0.2s ease, box-shadow 0.2s ease;
 overflow: hidden;
}
.faq-item[open] {
 border-color: var(--color-accent, #D4A843);
 box-shadow: 0 16px 36px -20px rgba(27, 42, 74, 0.18);
}
.faq-item > summary {
 list-style: none;
 cursor: pointer;
 padding: 20px 56px 20px 24px;
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: 21px;
 font-weight: 500;
 line-height: 1.3;
 color: var(--color-navy, #1B2A4A);
 position: relative;
 transition: background 0.18s ease;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary:hover { background: rgba(212, 168, 67, 0.05); }
.faq-item > summary::after {
 content: '+';
 position: absolute;
 right: 22px;
 top: 50%;
 transform: translateY(-50%);
 font-family: var(--font-sans, var(--font-body, "Manrope", system-ui, sans-serif);
 font-size: 26px;
 font-weight: 300;
 color: var(--color-accent, #D4A843);
 transition: transform 0.25s ease;
 line-height: 1;
}
.faq-item[open] > summary::after {
 content: '−';
 transform: translateY(-50%) rotate(180deg);
}
.faq-item__body {
 padding: 0 24px 22px;
 font-size: 15.5px;
 line-height: 1.75;
 color: var(--color-text, #2A2A2A);
 animation: faqSlide 0.28s ease;
}
.faq-item__body p { margin: 0 0 12px; }
.faq-item__body p:last-child { margin-bottom: 0; }
.faq-item__body ul, .faq-item__body ol { margin: 8px 0 12px 22px; padding: 0; }
.faq-item__body li { margin: 4px 0; }
@keyframes faqSlide {
 from { opacity: 0; transform: translateY(-4px); }
 to { opacity: 1; transform: translateY(0); }
}

/* Featured Saturday schedule day */
.schedule-day--featured {
 border: 2px solid var(--color-accent, #D4A843);
 background: linear-gradient(180deg, rgba(212,168,67,0.06) 0%, rgba(212,168,67,0) 100%);
}
.schedule-day--featured .schedule-day__date { color: var(--color-accent, #D4A843); font-weight: 600; }

/* ============================================================
 Itemized rehab costs under each before/after card
 ============================================================ */
.ba-card__items {
 list-style: none;
 padding: 12px 0 0;
 margin: 12px 0 0;
 border-top: 1px solid rgba(248, 245, 238, 0.32);
 font-size: 13px;
 line-height: 1.55;
 color: rgba(248, 245, 238, 0.82);
}
.ba-card__items li {
 display: flex;
 justify-content: space-between;
 gap: 14px;
 padding: 4px 0;
}
.ba-card__items li span:first-child {
 color: rgba(248, 245, 238, 0.78);
}
.ba-card__items li span:last-child {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-weight: 600;
 color: var(--color-accent, #D4A843);
 font-size: 14px;
 white-space: nowrap;
}

/* ============================================================
 Rehab grand total
 ============================================================ */
.rehab-total {
 margin-top: 48px;
 background: var(--color-navy, #1B2A4A);
 color: #FAF8F5;
 padding: 36px 36px;
 border-radius: 4px;
 display: grid;
 grid-template-columns: 1.4fr 1fr;
 gap: 36px;
}
@media (max-width: 880px) {
 .rehab-total { grid-template-columns: 1fr; }
}
.rehab-total__left .section__label { color: var(--color-accent, #D4A843); margin-bottom: 10px; }
.rehab-total__heading {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: 36px;
 line-height: 1.15;
 font-weight: 500;
 color: #FAF8F5;
 margin: 0 0 12px;
}
.rehab-total__num { color: var(--color-accent, #D4A843); font-weight: 600; }
.rehab-total__sub {
 font-size: 14.5px;
 line-height: 1.6;
 color: #CFC9BD;
 margin: 0;
}
.rehab-total__math {
 background: rgba(255,255,255,0.04);
 border: 1px solid rgba(212,168,67,0.25);
 border-radius: 3px;
 padding: 18px 22px;
 align-self: start;
}
.rehab-math-row {
 display: flex;
 justify-content: space-between;
 gap: 12px;
 padding: 6px 0;
 font-size: 14.5px;
 color: #CFC9BD;
 border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rehab-math-row:last-child { border-bottom: 0; }
.rehab-math-row span:last-child {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-weight: 600;
 color: #FAF8F5;
}
.rehab-math-row--total {
 border-top: 2px solid var(--color-accent, #D4A843);
 margin-top: 6px;
 padding-top: 12px;
 font-size: 16px;
 color: #FAF8F5;
 font-weight: 600;
}
.rehab-math-row--total span:last-child {
 color: var(--color-accent, #D4A843);
 font-size: 22px;
}

/* ============================================================
 ARV / deal math grid
 ============================================================ */
.arv-math {
 margin-top: 40px;
 background: #ffffff;
 border: 1px solid var(--color-border, #E5E1D8);
 border-radius: 4px;
 padding: 38px 36px;
}
.arv-math__heading {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-size: 32px;
 line-height: 1.15;
 font-weight: 500;
 color: var(--color-navy, #1B2A4A);
 margin: 8px 0 10px;
}
.arv-math__sub {
 font-size: 15px;
 line-height: 1.65;
 color: var(--color-text, #2A2A2A);
 max-width: 760px;
 margin: 0 0 28px;
}
.arv-math__grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 24px;
}
@media (max-width: 880px) {
 .arv-math__grid { grid-template-columns: 1fr; }
}
.arv-math__card {
 border: 1px solid var(--color-border, #E5E1D8);
 border-radius: 3px;
 padding: 22px 22px;
 background: #FAF8F5;
}
.arv-math__card--assign {
 background: var(--color-navy, #1B2A4A);
 color: #FAF8F5;
 border-color: var(--color-navy, #1B2A4A);
}
.arv-math__label {
 font-family: var(--font-sans, var(--font-body, "Manrope", system-ui, sans-serif);
 font-size: 11px;
 letter-spacing: 0.18em;
 font-weight: 600;
 text-transform: uppercase;
 color: var(--color-accent, #D4A843);
 margin: 0 0 14px;
}
.arv-math__card--assign .arv-math__label { color: var(--color-accent, #D4A843); }
.arv-math__line {
 display: flex;
 justify-content: space-between;
 gap: 14px;
 padding: 5px 0;
 font-size: 14.5px;
 color: var(--color-text, #2A2A2A);
}
.arv-math__card--assign .arv-math__line { color: #CFC9BD; }
.arv-math__line span:last-child {
 font-family: var(--font-serif, var(--font-head, "Archivo", system-ui, sans-serif));
 font-weight: 600;
 color: var(--color-navy, #1B2A4A);
 font-size: 16px;
}
.arv-math__card--assign .arv-math__line span:last-child { color: #FAF8F5; }
.arv-math__line--sum {
 border-top: 1px solid rgba(0,0,0,0.1);
 margin-top: 6px;
 padding-top: 9px;
 font-weight: 600;
}
.arv-math__card--assign .arv-math__line--sum {
 border-top-color: rgba(255,255,255,0.18);
}
.arv-math__line--arv {
 border-top: 2px solid var(--color-accent, #D4A843);
 margin-top: 8px;
 padding-top: 12px;
 font-size: 17px;
 font-weight: 700;
 color: var(--color-navy, #1B2A4A);
}
.arv-math__card--assign .arv-math__line--arv { color: #FAF8F5; }
.arv-math__line--arv span:last-child {
 color: var(--color-accent, #D4A843);
 font-size: 22px;
}
.arv-math__line--equity {
 padding-top: 8px;
 font-weight: 600;
 font-size: 14px;
 color: #2A2A2A;
}
.arv-math__card--assign .arv-math__line--equity { color: #FAF8F5; }
.arv-math__line--equity span:last-child {
 color: #1B2A4A;
}
.arv-math__card--assign .arv-math__line--equity span:last-child {
 color: var(--color-accent, #D4A843);
}
.arv-math__note {
 margin: 16px 0 0;
 padding-top: 14px;
 border-top: 1px solid rgba(255,255,255,0.15);
 font-size: 13px;
 line-height: 1.6;
 color: #CFC9BD;
}
.arv-math__disclaimer {
 margin: 24px 0 0;
 font-size: 11.5px;
 line-height: 1.6;
 color: #6B6B6B;
}

/* ============================================================
 HONEST IMAGE REEL - auto-scrolling current-condition photos
 ============================================================ */
.prop-reel {
 background: var(--color-navy-dark, #111d33);
 padding: 0 0 18px;
 position: relative;
 overflow: hidden;
}
.prop-reel__viewport {
 width: 100%;
 height: 480px;
 overflow: hidden;
 position: relative;
 background: #0c1626;
 /* fade edges */
 -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
 mask-image: linear-gradient(90deg, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
}
.prop-reel__track {
 display: flex;
 gap: 18px;
 height: 100%;
 width: max-content;
 padding: 18px;
 animation: reel-scroll 50s linear infinite;
 will-change: transform;
}
.prop-reel__viewport:hover .prop-reel__track,
.prop-reel__viewport:focus-within .prop-reel__track,
.prop-reel.is-paused .prop-reel__track {
 animation-play-state: paused;
}
@keyframes reel-scroll {
 from { transform: translate3d(0, 0, 0); }
 to { transform: translate3d(-50%, 0, 0); }
}
.reel-item {
 position: relative;
 flex: 0 0 auto;
 width: clamp(260px, 38vw, 640px);
 height: 100%;
 border: 0;
 padding: 0;
 margin: 0;
 background: #0c1626;
 border-radius: 4px;
 overflow: hidden;
 cursor: pointer;
 outline: none;
 transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.reel-item:focus-visible {
 box-shadow: 0 0 0 3px var(--color-accent, #D4A843);
}
.reel-item:hover {
 transform: translateY(-3px);
 box-shadow: 0 18px 40px -12px rgba(0,0,0,0.5);
}
.reel-item img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
 pointer-events: none;
}
.reel-item__cap {
 position: absolute;
 left: 12px;
 right: 12px;
 bottom: 12px;
 background: rgba(17, 29, 51, 0.82);
 color: #FAF8F5;
 padding: 8px 12px;
 border-left: 3px solid var(--color-accent, #D4A843);
 font-size: 12.5px;
 font-weight: 500;
 line-height: 1.45;
 letter-spacing: 0.01em;
 text-align: left;
 backdrop-filter: blur(4px);
 border-radius: 2px;
}
.prop-reel__honesty {
 text-align: center;
 margin: 18px auto 0;
 padding: 0 20px;
 max-width: 760px;
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(15px, 1.6vw, 19px);
 font-style: italic;
 color: rgba(248, 245, 238, 0.82);
 line-height: 1.5;
}

@media (max-width: 768px) {
 .prop-reel__viewport { height: 320px; }
 .reel-item { width: 78vw; }
 .reel-item__cap { font-size: 11.5px; padding: 7px 10px; }
 .prop-reel__honesty { font-size: 14px; padding: 0 16px; }
}
@media (max-width: 480px) {
 .prop-reel__viewport { height: 280px; }
 .reel-item { width: 86vw; }
}

@media (prefers-reduced-motion: reduce) {
 .prop-reel__viewport {
 overflow-x: auto;
 -webkit-overflow-scrolling: touch;
 scroll-snap-type: x mandatory;
 }
 .prop-reel__track {
 animation: none !important;
 transform: none !important;
 }
 .reel-item { scroll-snap-align: start; }
}

/* ============================================================
 LIGHTBOX
 ============================================================ */
.prop-lightbox {
 position: fixed;
 inset: 0;
 z-index: 9700;
 background: rgba(8, 14, 26, 0.94);
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 24px;
 animation: lb-fade 0.22s ease;
}
.prop-lightbox[hidden] { display: none; }
@keyframes lb-fade {
 from { opacity: 0; }
 to { opacity: 1; }
}
.prop-lightbox__figure {
 position: relative;
 max-width: min(1200px, 96vw);
 max-height: 90vh;
 margin: 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 14px;
}
.prop-lightbox__figure img {
 display: block;
 max-width: 100%;
 max-height: 78vh;
 object-fit: contain;
 border-radius: 4px;
 box-shadow: 0 40px 90px rgba(0,0,0,0.6);
}
.prop-lightbox__cap {
 color: #FAF8F5;
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(15px, 2vw, 20px);
 text-align: center;
 max-width: 720px;
 line-height: 1.5;
 border-left: 3px solid var(--color-accent, #D4A843);
 padding-left: 14px;
}
.prop-lightbox__close {
 position: absolute;
 top: 16px;
 right: 18px;
 width: 44px;
 height: 44px;
 border-radius: 50%;
 border: 1px solid rgba(250, 248, 245, 0.3);
 background: rgba(8, 14, 26, 0.6);
 color: #FAF8F5;
 font-size: 28px;
 line-height: 1;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: center;
 transition: background 0.2s ease, transform 0.2s ease;
 z-index: 1;
}
.prop-lightbox__close:hover {
 background: var(--color-accent, #D4A843);
 color: var(--color-navy, #1B2A4A);
 transform: scale(1.05);
}

/* ============================================================
 VIEW TRANSITIONS API (progressive enhancement)
 ============================================================ */
@media (prefers-reduced-motion: no-preference) {
 ::view-transition-old(root),
 ::view-transition-new(root) {
 animation-duration: 280ms;
 animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
 }
 ::view-transition-old(root) { animation-name: vt-fade-out; }
 ::view-transition-new(root) { animation-name: vt-fade-in; }
}
@keyframes vt-fade-out {
 to { opacity: 0; transform: translateY(-6px); }
}
@keyframes vt-fade-in {
 from { opacity: 0; transform: translateY(6px); }
}

/* ============================================================
 MOBILE RESPONSIVE AUDIT FIXES
 ============================================================ */

/* 44x44 tap targets across all buttons/links in nav and CTAs */
@media (max-width: 768px) {
 .btn, .nav__cta-link, .slot-btn, .social-icon, .chat-suggest {
 min-height: 44px;
 }
 .slot-btn { padding: 14px 16px; }
}

/* Hero - keep text in-bounds; clamp specs row; price cards full width */
@media (max-width: 768px) {
 .prop-hero { min-height: 88vh; height: auto; padding-bottom: 32px; }
 .prop-hero__content {
 position: relative;
 bottom: auto;
 padding-top: clamp(150px, 22vh, 190px);
 padding-bottom: 24px;
 }
 .prop-hero__title { font-size: clamp(44px, 12vw, 72px); word-break: break-word; }
 .prop-hero__specs {
 font-size: 13px;
 gap: 8px 10px;
 row-gap: 6px;
 margin-bottom: 24px;
 }
 .prop-hero__specs .dot { display: none; } /* dots clutter the wrap */
 .prop-hero__specs span {
 background: rgba(248, 245, 238, 0.08);
 border: 1px solid rgba(248, 245, 238, 0.12);
 border-radius: 999px;
 padding: 4px 10px;
 font-size: 12px;
 }
 .prop-hero__cta { flex-direction: column; align-items: stretch; }
 .prop-hero__cta .btn { width: 100%; text-align: center; }
 .prop-hero__scroll { display: none; }
}

/* 5-cell key-stats row (comp grid) - 2-column on mobile (already in src; reinforce) */
@media (max-width: 540px) {
 .prop-comp__grid { grid-template-columns: repeat(2, 1fr); }
 .comp-cell--featured { grid-column: span 2; }
}

/* Personas - already 1-column ≤900; ensure padding sane */
@media (max-width: 600px) {
 .persona-card { padding: 28px 22px; }
 .persona-card__num { font-size: 42px; top: 18px; right: 20px; }
 .persona-card__title { font-size: 24px; }
}

/* Protections - already 1-column ≤600; tighten padding */
@media (max-width: 600px) {
 .protection-card { padding: 24px 20px; }
 .protection-card__title { font-size: 22px; }
}

/* Before/after gallery - already 1-column ≤768; tighten card meta */
@media (max-width: 600px) {
 .ba-card__meta { padding: 18px 18px; }
 .ba-card__name { font-size: 22px; }
}

/* Schedule grid - keep 2-col @ ≤768; allow horizontal scroll at very small */
@media (max-width: 480px) {
 .schedule-grid {
 grid-template-columns: repeat(5, 78vw);
 overflow-x: auto;
 -webkit-overflow-scrolling: touch;
 scroll-snap-type: x mandatory;
 }
 .schedule-day { scroll-snap-align: start; }
}

/* Submit-offer form - inputs cannot overflow; sticky sidebar dropped */
@media (max-width: 900px) {
 .submit-side { position: static; top: auto; }
}
@media (max-width: 600px) {
 .submit-form-wrap { padding: 28px 20px; }
 .submit-form input, .submit-form select, .submit-form textarea {
 max-width: 100%;
 box-sizing: border-box;
 font-size: 16px; /* prevents iOS zoom on focus */
 }
 .submit-form input[type="file"] { font-size: 13px; }
 /* Add bottom padding so floating chat doesn't cover Submit button */
 .prop-submit { padding-bottom: 140px; }
}

/* Chat bubble button - shrink + reposition on mobile so it doesn't cover Send */
@media (max-width: 640px) {
 .prop-chat-trigger {
 bottom: 16px;
 left: 16px;
 right: auto;
 padding: 12px;
 width: 52px;
 height: 52px;
 justify-content: center;
 }
}
/* When the offer form is in viewport, hide the chat trigger (handled by JS adds .is-hidden) */
.prop-chat-trigger.is-hidden {
 opacity: 0;
 pointer-events: none;
 transform: translateY(20px) scale(0.85);
 transition: opacity 0.3s ease, transform 0.3s ease;
}

/* MLS bar - hide deadline at narrow widths to prevent overflow */
@media (max-width: 480px) {
 .mls-bar__inner { gap: 8px; }
 .mls-bar__label { font-size: 10px; }
}

/* Reminder form on mobile - stack row */
@media (max-width: 600px) {
 .reminder-form { padding: 22px 18px; }
 .reminder-form input { font-size: 16px; } /* iOS no-zoom */
}

/* Container/padding sanity */
@media (max-width: 540px) {
 .container { padding-left: 18px; padding-right: 18px; }
}

/* iOS Safari ScrollSmoother fallback - if SS fails, body must still scroll */
@supports (-webkit-touch-callout: none) {
 /* On iOS, if ScrollSmoother doesn't initialize, this allows native scrolling */
 html.no-smoother #smooth-wrapper {
 position: static !important;
 overflow: visible !important;
 height: auto !important;
 }
 html.no-smoother #smooth-content {
 transform: none !important;
 height: auto !important;
 }
}

/* =====================================================================
 Legacy gated deal-package styles retained only so old cached markup does
 not render unstyled. The public property page no longer shows this block.
 ===================================================================== */
.prop-waterfall {
 position: relative;
 background: linear-gradient(180deg, #0E1626 0%, #1B2A4A 60%, #0E1626 100%);
 color: #F3EEE2;
 padding: clamp(64px, 8vw, 120px) 0;
 overflow: hidden;
}
.prop-waterfall::before {
 content: '';
 position: absolute;
 inset: 0;
 background:
 radial-gradient(ellipse 800px 400px at 80% 10%, rgba(212, 168, 67, 0.16) 0%, transparent 60%),
 radial-gradient(ellipse 600px 300px at 10% 90%, rgba(212, 168, 67, 0.10) 0%, transparent 70%);
 pointer-events: none;
}
.prop-waterfall .container { position: relative; z-index: 2; }
.prop-waterfall__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(36px, 5.2vw, 64px);
 line-height: 1.04;
 font-weight: 500;
 letter-spacing: -0.02em;
 margin: 0 0 18px 0;
 max-width: 940px;
}
.prop-waterfall__sub {
 font-size: 16px;
 line-height: 1.6;
 color: rgba(243, 238, 226, 0.82);
 max-width: 760px;
 margin: 0 0 40px 0;
}

/* Headline price cards (always visible above the gate) */
.wf-headline {
 display: grid;
 grid-template-columns: 1fr auto 1fr;
 gap: 24px;
 align-items: center;
 max-width: 880px;
 margin: 0 auto 56px;
}
.wf-headline__card {
 background: rgba(243, 238, 226, 0.05);
 border: 1px solid rgba(212, 168, 67, 0.32);
 border-radius: 16px;
 padding: 28px 32px;
 text-align: center;
 backdrop-filter: blur(8px);
 -webkit-backdrop-filter: blur(8px);
 transition: transform 0.35s ease, border-color 0.35s ease;
}
.wf-headline__card:hover {
 transform: translateY(-3px);
 border-color: rgba(212, 168, 67, 0.7);
}
.wf-headline__card--alt {
 background: rgba(212, 168, 67, 0.10);
 border-color: rgba(212, 168, 67, 0.55);
}
.wf-headline__label {
 text-transform: uppercase;
 letter-spacing: 0.22em;
 font-size: 11px;
 font-weight: 600;
 color: #D4A843;
 margin: 0 0 12px 0;
}
.wf-headline__price {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(40px, 5vw, 60px);
 font-weight: 500;
 letter-spacing: -0.02em;
 margin: 0 0 6px 0;
 color: #fff;
}
.wf-headline__sub {
 font-size: 13px;
 color: rgba(243, 238, 226, 0.7);
 margin: 0;
}
.wf-headline__divider {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-style: italic;
 font-size: 28px;
 color: rgba(212, 168, 67, 0.6);
 padding: 0 8px;
}
@media (max-width: 720px) {
 .wf-headline { grid-template-columns: 1fr; gap: 14px; }
 .wf-headline__divider { padding: 6px 0; }
}

/* The gated vault - content blurred behind glass overlay */
.wf-vault {
 position: relative;
 min-height: 720px;
 border-radius: 20px;
 overflow: hidden;
 background: rgba(11, 19, 34, 0.6);
 border: 1px solid rgba(212, 168, 67, 0.16);
}
.wf-content {
 padding: 56px clamp(20px, 4vw, 56px);
 transition: filter 0.5s ease, opacity 0.5s ease;
}
.wf-vault[data-locked="true"] .wf-content {
 filter: blur(14px) saturate(0.7);
 opacity: 0.55;
 pointer-events: none;
 user-select: none;
}
.wf-vault[data-locked="false"] .wf-content {
 filter: none;
 opacity: 1;
 pointer-events: auto;
}

/* Tables */
.wf-table {
 margin-bottom: 48px;
 background: rgba(243, 238, 226, 0.04);
 border: 1px solid rgba(243, 238, 226, 0.08);
 border-radius: 14px;
 overflow: hidden;
}
.wf-table:last-child { margin-bottom: 0; }
.wf-table__head {
 padding: 24px 28px 18px;
 background: rgba(212, 168, 67, 0.06);
 border-bottom: 1px solid rgba(212, 168, 67, 0.18);
}
.wf-table__head h3 {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 24px;
 font-weight: 500;
 margin: 0 0 6px 0;
 color: #fff;
}
.wf-table__head p {
 margin: 0;
 font-size: 13px;
 line-height: 1.5;
 color: rgba(243, 238, 226, 0.72);
}
.wf-row {
 display: grid;
 grid-template-columns: 32px 1fr 200px 130px;
 gap: 16px;
 padding: 14px 28px;
 border-bottom: 1px solid rgba(243, 238, 226, 0.05);
 align-items: center;
 font-size: 14px;
}
.wf-row:last-child { border-bottom: none; }
.wf-row--header {
 background: rgba(243, 238, 226, 0.03);
 text-transform: uppercase;
 letter-spacing: 0.14em;
 font-size: 10.5px;
 font-weight: 700;
 color: rgba(212, 168, 67, 0.85);
}
.wf-row__num {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 16px;
 color: rgba(212, 168, 67, 0.7);
 text-align: right;
}
.wf-row__item {
 font-weight: 500;
 color: rgba(243, 238, 226, 0.95);
 line-height: 1.4;
}
.wf-row__who {
 color: rgba(243, 238, 226, 0.62);
 font-size: 13px;
}
.wf-row__amt {
 text-align: right;
 font-variant-numeric: tabular-nums;
 font-weight: 600;
 color: rgba(243, 238, 226, 0.95);
}
.wf-row__amt--gross {
 color: #D4A843;
 font-size: 16px;
}
.wf-row--sub {
 background: rgba(255, 255, 255, 0.02);
 padding-left: 56px;
}
.wf-row--sub .wf-row__item { color: rgba(243, 238, 226, 0.7); font-size: 13px; }
.wf-row--total {
 background: rgba(212, 168, 67, 0.08);
 border-top: 1px solid rgba(212, 168, 67, 0.32);
 border-bottom: 1px solid rgba(212, 168, 67, 0.32);
}
.wf-row--total .wf-row__item { color: #D4A843; }
.wf-row--total .wf-row__amt { color: #D4A843; font-size: 16px; }
.wf-row--reconcile {
 background: rgba(56, 142, 60, 0.08);
 font-style: italic;
}
.wf-row--reconcile .wf-row__amt { color: #6FCF97; }

@media (max-width: 720px) {
 .wf-row {
 grid-template-columns: 28px 1fr 110px;
 grid-template-rows: auto auto;
 }
 .wf-row__who {
 grid-column: 2 / 4;
 grid-row: 2;
 font-size: 12px;
 margin-top: -4px;
 }
 .wf-row__amt { grid-column: 3; grid-row: 1; }
 .wf-row__item { grid-column: 2; grid-row: 1; }
}

.wf-fineprint {
 margin: 32px 28px 0;
 padding: 18px 22px;
 background: rgba(243, 238, 226, 0.04);
 border-left: 3px solid rgba(212, 168, 67, 0.5);
 border-radius: 6px;
 font-size: 12px;
 line-height: 1.6;
 color: rgba(243, 238, 226, 0.7);
}

/* THE GATE - sits ON TOP of the blurred content */
.wf-gate {
 position: absolute;
 inset: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: clamp(20px, 4vw, 56px);
 z-index: 5;
 pointer-events: auto;
 transition: opacity 0.5s ease, transform 0.5s ease;
}
.wf-vault[data-locked="false"] .wf-gate {
 opacity: 0;
 pointer-events: none;
 transform: scale(0.96);
}
.wf-gate__card {
 background: linear-gradient(180deg, rgba(27, 42, 74, 0.92) 0%, rgba(14, 22, 38, 0.96) 100%);
 border: 1px solid rgba(212, 168, 67, 0.42);
 border-radius: 18px;
 padding: clamp(28px, 4vw, 48px) clamp(24px, 4vw, 56px);
 max-width: 560px;
 width: 100%;
 box-shadow:
 0 24px 56px -16px rgba(0, 0, 0, 0.6),
 0 0 0 1px rgba(212, 168, 67, 0.15) inset;
 backdrop-filter: blur(20px);
 -webkit-backdrop-filter: blur(20px);
 position: relative;
}
.wf-gate__card::after {
 content: '';
 position: absolute;
 inset: -1px;
 border-radius: 18px;
 background: linear-gradient(135deg, rgba(212, 168, 67, 0.3) 0%, transparent 40%, transparent 60%, rgba(212, 168, 67, 0.2) 100%);
 -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
 -webkit-mask-composite: xor;
 mask-composite: exclude;
 padding: 1px;
 pointer-events: none;
}
.wf-gate__icon {
 font-size: 36px;
 margin-bottom: 14px;
 display: inline-block;
 filter: drop-shadow(0 0 12px rgba(212, 168, 67, 0.5));
}
.wf-gate__eyebrow {
 text-transform: uppercase;
 letter-spacing: 0.22em;
 font-size: 11px;
 font-weight: 600;
 color: #D4A843;
 margin: 0 0 12px 0;
}
.wf-gate__title {
 font-family: var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: clamp(26px, 3.4vw, 36px);
 line-height: 1.1;
 font-weight: 500;
 margin: 0 0 14px 0;
 color: #fff;
 letter-spacing: -0.015em;
}
.wf-gate__body {
 font-size: 14.5px;
 line-height: 1.55;
 color: rgba(243, 238, 226, 0.82);
 margin: 0 0 24px 0;
}
.wf-gate__body strong { color: #D4A843; font-weight: 600; }
.wf-gate__form {
 display: grid;
 gap: 14px;
}
.wf-gate__field {
 display: block;
}
.wf-gate__field > span {
 display: block;
 font-size: 11px;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 font-weight: 600;
 color: rgba(212, 168, 67, 0.85);
 margin-bottom: 6px;
}
.wf-gate__field > span em {
 text-transform: none;
 letter-spacing: 0;
 font-style: italic;
 font-weight: 400;
 color: rgba(243, 238, 226, 0.5);
}
.wf-gate__field input {
 width: 100%;
 background: rgba(243, 238, 226, 0.06);
 border: 1px solid rgba(243, 238, 226, 0.18);
 border-radius: 10px;
 padding: 12px 14px;
 color: #F3EEE2;
 font-size: 15px;
 font-family: inherit;
 transition: border-color 0.25s ease, background 0.25s ease;
}
.wf-gate__field input:focus {
 outline: none;
 border-color: #D4A843;
 background: rgba(243, 238, 226, 0.1);
}
.wf-gate__field input::placeholder { color: rgba(243, 238, 226, 0.35); }
.wf-gate__field--brokerage { margin-bottom: 4px; }
.wf-gate__consent {
 display: grid;
 grid-template-columns: 18px 1fr;
 gap: 10px;
 align-items: start;
 margin: 8px 0 6px;
 font-size: 11.5px;
 line-height: 1.5;
 color: rgba(243, 238, 226, 0.62);
}
.wf-gate__consent input[type="checkbox"] {
 width: 18px;
 height: 18px;
 margin: 2px 0 0;
 accent-color: #D4A843;
 cursor: pointer;
}
.wf-gate__consent strong { color: rgba(243, 238, 226, 0.85); font-weight: 600; }
.wf-gate__submit {
 margin-top: 6px;
 width: 100%;
 background: linear-gradient(135deg, #D4A843 0%, #B98F32 100%);
 color: #0E1626;
 border: none;
 border-radius: 10px;
 padding: 16px 24px;
 font-size: 15px;
 font-weight: 700;
 letter-spacing: 0.02em;
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 10px;
 transition: transform 0.22s ease, box-shadow 0.22s ease;
 box-shadow: 0 12px 28px -8px rgba(212, 168, 67, 0.4);
}
.wf-gate__submit:hover {
 transform: translateY(-2px);
 box-shadow: 0 18px 36px -8px rgba(212, 168, 67, 0.55);
}
.wf-gate__submit:disabled { opacity: 0.55; cursor: wait; transform: none; }
.wf-gate__assure {
 margin: 12px 0 0;
 font-size: 12px;
 text-align: center;
 color: rgba(243, 238, 226, 0.55);
}
.wf-gate__status {
 margin: 10px 0 0;
 padding: 10px 14px;
 border-radius: 8px;
 font-size: 13px;
 text-align: center;
}
.wf-gate__status--success {
 background: rgba(56, 142, 60, 0.15);
 border: 1px solid rgba(111, 207, 151, 0.4);
 color: #6FCF97;
}
.wf-gate__status--error {
 background: rgba(199, 56, 56, 0.15);
 border: 1px solid rgba(255, 122, 122, 0.4);
 color: #FF9F9F;
}

/* Reveal animation when unlocked */
.wf-vault[data-locked="false"] .wf-content { animation: wfReveal 0.9s ease forwards; }
@keyframes wfReveal {
 0% { filter: blur(14px); opacity: 0.55; transform: scale(0.99); }
 100% { filter: blur(0); opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
 .wf-vault[data-locked="false"] .wf-content { animation: none; }
 .wf-vault[data-locked="true"] .wf-content { filter: none; opacity: 0.4; }
}

/* ============================================================
 P1 - IntersectionObserver reveals (native scroll only)
 Replaces the old GSAP/ScrollSmoother-driven reveals.
 ============================================================ */
.reveal, .fade-up {
 opacity: 0;
 transform: translateY(24px);
 transition: opacity 1s ease, transform 1s ease;
 will-change: transform, opacity;
}
.reveal.is-visible, .fade-up.is-visible {
 opacity: 1;
 transform: translateY(0);
}
.fade-in {
 opacity: 0;
 transition: opacity 1.2s ease;
 will-change: opacity;
}
.fade-in.is-visible { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
 .reveal, .fade-up, .fade-in {
 opacity: 1 !important;
 transform: none !important;
 transition: none !important;
 }
}

/* Sticky in-page nav (Photos · Details · Renovation · CMA · Views · Schedule) */
.prop-sticky-nav {
 position: sticky;
 top: 80px;
 z-index: 50;
 background: rgba(27, 42, 74, 0.96);
 backdrop-filter: blur(10px);
 border-bottom: 1px solid rgba(212, 168, 67, 0.2);
 padding: 12px 16px;
 margin: 0;
}
.prop-sticky-nav__inner {
 display: flex;
 gap: 24px;
 max-width: 1400px;
 margin: 0 auto;
 overflow-x: auto;
 -webkit-overflow-scrolling: touch;
 scrollbar-width: none;
}
.prop-sticky-nav__inner::-webkit-scrollbar { display: none; }
.prop-sticky-nav__link {
 color: rgba(243, 238, 226, 0.72);
 font-size: 13px;
 font-weight: 600;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 text-decoration: none;
 padding: 6px 4px;
 border-bottom: 2px solid transparent;
 transition: color 0.2s ease, border-color 0.2s ease;
 white-space: nowrap;
}
.prop-sticky-nav__link:hover,
.prop-sticky-nav__link.is-active {
 color: #d4a843;
 border-bottom-color: #d4a843;
}
@media (max-width: 768px) {
 .prop-sticky-nav { top: 64px; padding: 8px 12px; }
 .prop-sticky-nav__inner { gap: 16px; }
 .prop-sticky-nav__link { font-size: 12px; }
}

/* CMA viewer */
.prop-cma {
 padding: 96px 0;
 background: var(--color-cream);
}
.prop-cma .container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.cma-intro {
 font-size: 18px;
 line-height: 1.6;
 color: var(--color-navy);
 max-width: 780px;
 margin: 24px 0 40px;
}
.cma-viewer {
 background: #1B2A4A;
 border-radius: 12px;
 padding: 12px;
 box-shadow: 0 14px 40px rgba(15, 25, 50, 0.18);
 margin-bottom: 32px;
}
/* Native browser PDF viewer — no whitespace, renders source pixel-perfect */
.cma-viewer--native {
 padding: 0;
 overflow: hidden;
}
.cma-viewer--native object {
 height: 80vh;
 min-height: 720px;
 max-height: 1100px;
 border-radius: 8px;
}
@media (max-width: 720px) {
 .cma-viewer--native object {
   height: 78vh;
   min-height: 540px;
 }
}
/* Legacy canvas viewer (kept for non-native fallback if ever re-enabled) */
#cma-pdf-canvas {
 display: block;
 width: 100%;
 max-width: 900px;
 height: auto;
 margin: 0 auto;
 background: white;
 border-radius: 6px;
 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
.cma-controls {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 24px;
 margin-top: 20px;
 color: var(--color-cream);
 font-size: 14px;
}
.cma-controls button {
 background: rgba(212, 168, 67, 0.12);
 border: 1px solid rgba(212, 168, 67, 0.4);
 color: #d4a843;
 padding: 8px 16px;
 border-radius: 6px;
 cursor: pointer;
 font-size: 14px;
 font-weight: 600;
 transition: background 0.2s ease;
}
.cma-controls button:hover { background: rgba(212, 168, 67, 0.22); }
.cma-controls button:disabled { opacity: 0.4; cursor: not-allowed; }
.cma-download { display: flex; gap: 16px; flex-wrap: wrap; }
.cma-text-transcript {
 margin-top: 40px;
 border-top: 1px solid rgba(27, 42, 74, 0.12);
 padding-top: 24px;
}
.cma-text-transcript summary {
 cursor: pointer;
 font-weight: 600;
 font-size: 14px;
 color: var(--color-navy);
 padding: 12px 0;
}
.cma-text-transcript table {
 width: 100%;
 border-collapse: collapse;
 margin-top: 16px;
 font-size: 14px;
}
.cma-text-transcript th,
.cma-text-transcript td {
 text-align: left;
 padding: 10px 12px;
 border-bottom: 1px solid rgba(27, 42, 74, 0.1);
}
.cma-text-transcript th {
 background: rgba(27, 42, 74, 0.04);
 font-weight: 700;
 color: var(--color-navy);
}

.path-card__note {
 color: rgba(243, 238, 226, 0.78);
 line-height: 1.6;
 margin: 18px 0 26px;
 padding: 14px 16px;
 border-left: 3px solid rgba(212, 168, 67, 0.65);
 background: rgba(255, 255, 255, 0.04);
}

/* View tracker section */
.prop-views {
 padding: 64px 0;
 background: var(--color-navy);
 color: var(--color-cream);
}
.prop-views .container { max-width: 900px; margin: 0 auto; padding: 0 24px; text-align: center; }
.prop-views h3 {
 font-family: var(--prop-font-serif);
 font-size: 32px;
 margin: 0 0 24px;
 color: var(--color-cream);
}
.views-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 20px;
 margin: 0 0 32px;
}
@media (max-width: 600px) { .views-grid { grid-template-columns: 1fr; gap: 16px; } }
.views-stat {
 background: rgba(212, 168, 67, 0.08);
 border: 1px solid rgba(212, 168, 67, 0.18);
 border-radius: 12px;
 padding: 24px 16px;
}
.views-stat strong {
 display: block;
 font-family: var(--prop-font-serif);
 font-size: 44px;
 font-weight: 600;
 color: #d4a843;
 margin: 0 0 4px;
 line-height: 1;
}
.views-stat span {
 font-size: 13px;
 color: rgba(243, 238, 226, 0.78);
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
#views-trend-chart {
 display: block;
 width: 100% !important;
 max-width: 720px;
 height: 220px !important;
 max-height: 220px;
 margin: 0 auto;
}
@media (max-width: 600px) {
 #views-trend-chart {
 height: 180px !important;
 max-height: 180px;
 }
}
.views-caption {
 margin-top: 16px;
 font-size: 12px;
 color: rgba(243, 238, 226, 0.55);
 text-transform: uppercase;
 letter-spacing: 0.1em;
}

/* Hero video background */
.prop-hero-video-wrap {
 position: absolute;
 inset: 0;
 overflow: hidden;
 z-index: 0;
}
.prop-hero-video {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
}
.prop-hero-video-overlay {
 position: absolute;
 inset: 0;
 background: rgba(0, 0, 20, 0.55);
 z-index: 1;
}
.prop-hero > .container,
.prop-hero__content,
.prop-hero__inner { position: relative; z-index: 2; }
@media (prefers-reduced-motion: reduce) {
 .prop-hero-video { display: none; }
 .prop-hero-video-wrap {
 background-image: var(--hero-poster, url('/properties/assets/8936-charrington/hero-video-poster.jpg'));
 background-size: cover;
 background-position: center;
 }
}

/* Hero Ken Burns fallback if no video */
.prop-hero-kenburns {
 position: absolute;
 inset: 0;
 background-size: cover;
 background-position: center;
 z-index: 0;
 animation: kenBurns 24s ease-in-out infinite alternate;
 will-change: transform;
}
@keyframes kenBurns {
 0% { transform: scale(1.0) translate(0, 0); }
 100% { transform: scale(1.08) translate(-2%, -1%); }
}
@media (prefers-reduced-motion: reduce) {
 .prop-hero-kenburns { animation: none; transform: none; }
}

/* Listing-aggregators block */
.prop-aggregators {
 padding: 48px 0;
 background: var(--color-cream);
 border-top: 1px solid rgba(27, 42, 74, 0.08);
}
.prop-aggregators .container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.prop-aggregators h3 {
 font-family: var(--prop-font-serif);
 font-size: 26px;
 color: var(--color-navy);
 margin: 0 0 24px;
}
.aggregator-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
 gap: 16px;
}
.aggregator-card {
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 padding: 24px 16px;
 background: white;
 border: 1px solid rgba(27, 42, 74, 0.1);
 border-radius: 10px;
 text-decoration: none;
 color: var(--color-navy);
 font-weight: 600;
 font-size: 14px;
 letter-spacing: 0.04em;
 transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.aggregator-card:hover {
 transform: translateY(-3px);
 box-shadow: 0 10px 24px rgba(15, 25, 50, 0.1);
 border-color: rgba(212, 168, 67, 0.4);
}
.aggregator-card__platform {
 font-family: var(--prop-font-serif);
 font-size: 22px;
 margin: 8px 0 4px;
 color: var(--color-navy);
}
.aggregator-card__cta {
 font-size: 12px;
 color: #d4a843;
 text-transform: uppercase;
 letter-spacing: 0.1em;
}

/* Calendly iframe wrap */
.prop-calendly {
 padding: 64px 0;
 background: white;
}
.prop-calendly .container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.prop-calendly iframe {
 width: 100%;
 min-height: 700px;
 border: 0;
 border-radius: 12px;
 box-shadow: 0 14px 40px rgba(15, 25, 50, 0.12);
 background: white;
}
@media (max-width: 768px) {
 .prop-calendly iframe { min-height: 900px; }
}

/* Listing Broker's Perspective */
.prop-broker-perspective {
 padding: 96px 0;
 background: var(--color-cream);
}
.prop-broker-perspective .container { max-width: 900px; margin: 0 auto; padding: 0 24px; }
.broker-perspective__body h3 {
 font-family: var(--prop-font-serif);
 font-size: 26px;
 color: var(--color-navy);
 margin: 32px 0 12px;
}
.broker-perspective__attribution {
 margin-top: 32px;
 font-style: italic;
 color: rgba(27, 42, 74, 0.7);
 font-size: 14px;
}
.broker-perspective__attribution img,
.broker-perspective__attribution picture img {
 width: 64px;
 height: 64px;
 border-radius: 50%;
 vertical-align: middle;
 margin-right: 12px;
}

/* ============================================================
 EDITORIAL LUXURY PALETTE - property page (carriemccormickre.com style)
 Crisp white surfaces · deep editorial navy · soft sky-blue accents ·
 warm copper for CTAs/secondary accent. HIGH-CONTRAST readability.
 ============================================================ */
.property-page {
 /* Editorial palette - Rich Black · Oxford Blue · Silver Lake · Platinum · Hunyadi Yellow */
 --prop-bg: #E0E1DD; /* Platinum - warm off-white canvas */
 --prop-bg-alt: #F4F4F1; /* lighter platinum tint */
 --prop-bg-sky: #D6DDE5; /* silver-lake whisper */
 --prop-surface: #FFFFFF; /* cards stay crisp white */
 --prop-ink: #0D1B2A; /* Rich Black - body text */
 --prop-ink-soft: #1B263B; /* Oxford Blue - secondary text */
 --prop-ink-mute: #778DA9; /* Silver Lake - tertiary */
 --prop-navy: #1B263B; /* Oxford Blue - section navy */
 --prop-navy-deep: #0D1B2A; /* Rich Black - darkest sections */
 --prop-blue: #778DA9; /* Silver Lake - highlight blue */
 --prop-blue-bright: #A4B5CC; /* lighter silver-lake */
 --prop-amber: #EC9A29; /* Hunyadi Yellow - primary accent */
 --prop-amber-deep: #C57B16; /* press / hover */
 --prop-amber-tint: #FBEAC8; /* soft amber wash */
 --prop-line: rgba(13, 27, 42, 0.10);
 --prop-line-strong: rgba(13, 27, 42, 0.18);
 --prop-shadow: 0 18px 60px rgba(13, 27, 42, 0.12);
 --prop-shadow-soft: 0 6px 20px rgba(13, 27, 42, 0.08);
 /* Aliases so prior rule-set keeps working without sweeping renames */
 --prop-copper: var(--prop-amber);
 --prop-copper-deep: var(--prop-amber-deep);
 --prop-copper-tint: var(--prop-amber-tint);
 --prop-gold: var(--prop-amber);
 background: var(--prop-bg);
 color: var(--prop-ink);
}

/* Section surfaces - alternating white / whisper-blue for editorial rhythm */
.property-page .prop-story,
.property-page .prop-value-stack,
.property-page .prop-paths,
.property-page .prop-personas,
.property-page .prop-protections,
.property-page .prop-gallery,
.property-page .prop-submit,
.property-page .prop-location,
.property-page .prop-schedule,
.property-page .prop-broker,
.property-page .prop-social,
.property-page .prop-cma,
.property-page .prop-broker-perspective,
.property-page .prop-market-context,
.property-page .prop-aggregators,
.property-page .prop-calendly { background: var(--prop-bg); color: var(--prop-ink); }

/* Whisper-blue alternates for rhythm */
.property-page .prop-value-stack,
.property-page .prop-personas,
.property-page .prop-gallery,
.property-page .prop-broker-perspective,
.property-page .prop-aggregators,
.property-page .prop-calendly { background: var(--prop-bg-alt); }

/* Navy sections (comp + views) - crisp white text on deep navy */
.property-page .prop-comp,
.property-page .prop-views {
 background: linear-gradient(155deg, var(--prop-navy) 0%, var(--prop-navy-deep) 100%);
 color: #FFFFFF;
}
.property-page .prop-views h3,
.property-page .prop-views strong { color: var(--prop-gold); }
.property-page .views-stat {
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid rgba(200, 162, 92, 0.28);
}

/* Typography - high contrast, editorial */
.property-page h1,
.property-page h2,
.property-page h3 { color: var(--prop-ink); font-weight: 500; letter-spacing: -0.012em; }
.property-page h2 { font-family: var(--prop-font-serif); font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.15; margin: 0 0 1rem; }
.property-page h3 { font-family: var(--prop-font-serif); font-size: 1.5rem; line-height: 1.25; }
.property-page p { color: var(--prop-ink-soft); line-height: 1.7; font-size: 1.0625rem; }
.property-page .prop-comp h2,
.property-page .prop-comp h3,
.property-page .prop-comp p,
.property-page .prop-views h2,
.property-page .prop-views h3,
.property-page .prop-views p { color: #FFFFFF; }
.property-page .prop-views p,
.property-page .prop-comp p { color: rgba(255, 255, 255, 0.82); }

/* ===== HERO - clean editorial overlay over the property photo ===== */
.property-page .prop-hero { color: #FFFFFF; }
.property-page .prop-hero__overlay {
 background:
 linear-gradient(180deg,
 rgba(10, 21, 48, 0.55) 0%,
 rgba(10, 21, 48, 0.55) 40%,
 rgba(10, 21, 48, 0.78) 85%,
 rgba(10, 21, 48, 0.92) 100%);
}
.property-page .prop-hero__content,
.property-page .prop-hero__inner { position: relative; z-index: 2; color: #FFFFFF; }
.property-page .prop-hero__title,
.property-page .prop-hero h1 {
 color: #FFFFFF !important;
 font-weight: 500;
 text-shadow: 0 2px 28px rgba(0, 0, 0, 0.55);
}
.property-page .prop-hero__eyebrow,
.property-page .prop-hero p.prop-hero__eyebrow {
 color: var(--prop-gold) !important;
 letter-spacing: 0.12em;
 text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}
.property-page .prop-hero__specs span {
 background: rgba(255, 255, 255, 0.10);
 backdrop-filter: blur(8px);
 border: 1px solid rgba(255, 255, 255, 0.22);
 color: #FFFFFF;
}

/* Hero price cards - white paper on the photo */
.property-page .prop-hero .price-card,
.property-page .prop-hero .path-card {
 background: rgba(255, 255, 255, 0.97);
 color: var(--prop-ink);
 backdrop-filter: blur(10px);
 border: 1px solid rgba(255, 255, 255, 0.6);
 border-top: 3px solid var(--prop-copper);
}
.property-page .prop-hero .price-card__amount,
.property-page .prop-hero .path-card__price { color: var(--prop-ink); }
.property-page .prop-hero .price-card__label,
.property-page .prop-hero .path-card__label { color: var(--prop-copper-deep); }

/* In-page price/path cards - same white paper, editorial copper rule */
.property-page .price-card,
.property-page .path-card {
 background: var(--prop-surface);
 border: 1px solid var(--prop-line);
 border-top: 3px solid var(--prop-copper);
 border-radius: 6px; /* tighter, more editorial */
 box-shadow: var(--prop-shadow-soft);
 color: var(--prop-ink);
}
.property-page .price-card__amount,
.property-page .path-card__price {
 color: var(--prop-ink);
 font-family: var(--prop-font-serif);
 font-weight: 600;
}
.property-page .path-card__label,
.property-page .price-card__label {
 color: var(--prop-copper-deep);
 letter-spacing: 0.1em;
 font-size: 0.75rem;
 text-transform: uppercase;
 font-weight: 700;
}

/* ===== STICKY NAV - translucent white with navy ink ===== */
.property-page .prop-sticky-nav {
 background: rgba(255, 255, 255, 0.92);
 border-bottom: 1px solid var(--prop-line);
 backdrop-filter: saturate(160%) blur(14px);
}
.property-page .prop-sticky-nav__link {
 color: var(--prop-ink);
 font-weight: 600;
}
.property-page .prop-sticky-nav__link.is-active,
.property-page .prop-sticky-nav__link:hover {
 color: var(--prop-copper-deep);
 border-bottom-color: var(--prop-copper);
}

/* MLS bar - deep navy with crisp white */
.property-page .mls-bar {
 background: linear-gradient(90deg, var(--prop-navy), var(--prop-navy-deep));
 color: #FFFFFF;
 border-bottom-color: rgba(200, 162, 92, 0.22);
}

/* Cards across the page - clean editorial paper */
.property-page .ba-card,
.property-page .ba-pair,
.property-page .scenario-card,
.property-page .aggregator-card,
.property-page .feature-card,
.property-page .structure-card,
.property-page .views-stat,
.property-page .cma-viewer {
 background: var(--prop-surface);
 border: 1px solid var(--prop-line);
 border-radius: 8px;
 box-shadow: var(--prop-shadow-soft);
}
.property-page .cma-viewer {
 background: linear-gradient(155deg, var(--prop-navy) 0%, var(--prop-navy-deep) 100%);
 border: 0;
}

/* CTAs - copper warmth on white, navy on copper hover */
.property-page .btn--accent,
.property-page .btn--gold {
 background: var(--prop-copper);
 color: #FFFFFF;
 border: 0;
 font-weight: 600;
 letter-spacing: 0.02em;
 box-shadow: 0 8px 20px rgba(180, 118, 68, 0.28);
}
.property-page .btn--accent:hover,
.property-page .btn--gold:hover {
 background: var(--prop-copper-deep);
 color: #FFFFFF;
}
.property-page .btn--outline {
 background: transparent;
 color: var(--prop-ink);
 border: 1.5px solid var(--prop-copper);
}
.property-page .btn--outline:hover {
 background: var(--prop-copper-tint);
 color: var(--prop-ink);
}

/* Ticker / countdown */
.property-page .prop-ticker {
 background: var(--prop-bg-alt);
 color: var(--prop-ink);
 border-block: 1px solid var(--prop-line);
}
.property-page .prop-ticker__track em { color: var(--prop-copper-deep); font-style: normal; font-weight: 700; }
.property-page .prop-countdown {
 background: linear-gradient(180deg, var(--prop-bg) 0%, var(--prop-bg-alt) 100%);
 color: var(--prop-ink);
}
.property-page .countdown-heading { color: var(--prop-ink); }
.property-page #cd-days, .property-page #cd-hours,
.property-page #cd-mins, .property-page #cd-secs {
 color: var(--prop-ink);
 font-family: var(--prop-font-serif);
 font-weight: 600;
}

/* Section eyebrows - editorial copper */
.property-page .section__label,
.property-page .section__label--gold {
 color: var(--prop-copper-deep);
 letter-spacing: 0.18em;
 font-weight: 700;
 font-size: 0.75rem;
 text-transform: uppercase;
}

/* Renovation reel - white background, soft cards */
.property-page .prop-reel { background: var(--prop-bg); padding: 64px 0; }
.property-page .reel-item {
 border-radius: 6px;
 overflow: hidden;
 box-shadow: var(--prop-shadow-soft);
}
.property-page .reel-item__cap {
 background: linear-gradient(0deg, rgba(10, 21, 48, 0.85) 0%, rgba(10, 21, 48, 0) 100%);
 color: #FFFFFF;
 font-weight: 500;
}
.property-page .prop-reel__honesty {
 color: var(--prop-ink-soft);
 font-style: italic;
 text-align: center;
 max-width: 720px;
 margin: 28px auto 0;
 font-size: 0.9375rem;
}

/* CMA section */
.property-page .prop-cma { background: var(--prop-bg-alt); padding: 80px 0; }
.property-page .cma-intro { color: var(--prop-ink-soft); }
.property-page .cma-controls { color: rgba(255, 255, 255, 0.85); }
.property-page .cma-controls button {
 background: rgba(200, 162, 92, 0.16);
 border: 1px solid rgba(200, 162, 92, 0.42);
 color: var(--prop-gold);
}
.property-page .cma-controls button:hover { background: rgba(200, 162, 92, 0.26); }

/* Aggregator / feature cards - copper-tinted hover */
.property-page .aggregator-card:hover {
 border-color: var(--prop-copper);
 box-shadow: 0 10px 28px rgba(15, 26, 46, 0.10);
}
.property-page .aggregator-card__platform { color: var(--prop-ink); }
.property-page .aggregator-card__cta { color: var(--prop-copper-deep); }

/* Broker perspective image */
.property-page .broker-perspective__attribution { color: var(--prop-ink-soft); }
.property-page .broker-perspective__attribution img {
 border: 2px solid var(--prop-copper);
}

/* ===== MOBILE STICKY CTA - editorial paper with copper button ===== */
.prop-mobile-cta {
 position: fixed;
 inset-inline: 0;
 bottom: 0;
 z-index: 90;
 display: none;
 align-items: center;
 justify-content: space-between;
 gap: 12px;
 padding: 12px 16px calc(env(safe-area-inset-bottom, 0) + 12px);
 background: rgba(255, 255, 255, 0.97);
 border-top: 1px solid var(--prop-line);
 backdrop-filter: saturate(170%) blur(16px);
 box-shadow: 0 -8px 28px rgba(15, 26, 46, 0.10);
}
.prop-mobile-cta__price {
 font-family: var(--prop-font-serif);
 font-size: 1.7rem;
 font-weight: 600;
 color: var(--prop-ink);
 line-height: 1;
}
.prop-mobile-cta__sub {
 font-size: 0.7rem;
 color: var(--prop-ink-mute);
 letter-spacing: 0.08em;
 text-transform: uppercase;
 font-weight: 600;
}
.prop-mobile-cta__btn {
 background: var(--prop-copper);
 color: #FFFFFF;
 border: 0;
 border-radius: 999px;
 padding: 12px 20px;
 font-weight: 700;
 font-size: 0.875rem;
 text-decoration: none;
 white-space: nowrap;
 letter-spacing: 0.02em;
 box-shadow: 0 8px 22px rgba(180, 118, 68, 0.36);
}
@media (max-width: 900px) {
 .prop-mobile-cta { display: flex; }
 /* Float the chat trigger above the sticky CTA bar */
 #prop-chat-trigger,
 .chat-trigger { bottom: 88px !important; left: auto !important; right: 16px !important; }
 /* Hide the floating funnel CTA on mobile - the sticky CTA bar already shows
 "Book a showing" + price, so the two were stacking on top of each other. */
 .fnl-cta-trigger { display: none !important; }
 .property-page main { padding-bottom: 88px; }
}

/* Image-led mobile hero */
@media (max-width: 768px) {
 .property-page .prop-hero { min-height: 80vh; }
 .property-page .prop-hero__title { font-size: clamp(1.95rem, 7vw, 2.8rem); line-height: 1.08; letter-spacing: -0.018em; }
 .property-page .prop-hero__eyebrow { letter-spacing: 0.14em; font-size: 0.7rem; }
 .property-page .prop-hero__prices { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
 .property-page .price-card { padding: 16px 18px; }
 .property-page .price-card__amount { font-size: 1.9rem; }
 .property-page .prop-hero__specs span { font-size: 0.78rem; padding: 4px 10px; }
 .property-page .prop-sticky-nav { top: 56px; padding: 6px 8px; }
 .property-page .prop-sticky-nav__link { font-size: 11px; padding: 6px 8px; letter-spacing: 0.04em; }
}

/* ============================================================
 WHITESPACE TIGHTENING - denser editorial pacing
 ============================================================ */
.property-page section[class^="prop-"],
.property-page section[class*=" prop-"] {
 padding-top: 56px;
 padding-bottom: 56px;
}
.property-page .prop-cma,
.property-page .prop-comp,
.property-page .prop-broker-perspective,
.property-page .prop-market-context,
.property-page .prop-broker { padding-top: 64px; padding-bottom: 64px; }
.property-page .prop-views,
.property-page .prop-aggregators,
.property-page .prop-calendly { padding-top: 48px; padding-bottom: 48px; }
.property-page .prop-broker-perspective .broker-perspective__body h3 {
 margin: 24px 0 8px;
}
.property-page .prop-broker-perspective .broker-perspective__body p {
 margin: 0 0 14px;
}
.property-page section .container > h2 { margin-bottom: 16px; }
.property-page section .container > .section__label { margin-bottom: 4px; }
@media (max-width: 768px) {
 .property-page section[class^="prop-"],
 .property-page section[class*=" prop-"] {
 padding-top: 44px;
 padding-bottom: 44px;
 }
}

/* ============================================================
 WEEKLY AVAILABILITY GRID - Tue–Sat showing schedule
 ============================================================ */
.schedule-week {
 list-style: none;
 margin: 24px 0;
 padding: 0;
 display: grid;
 grid-template-columns: repeat(5, 1fr);
 gap: 16px;
}
@media (max-width: 1024px) {
 .schedule-week { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
 .schedule-week { grid-template-columns: 1fr; }
}
.schedule-week__day {
 background: var(--prop-surface);
 border: 1px solid var(--prop-line);
 border-top: 3px solid var(--prop-blue);
 border-radius: 8px;
 padding: 16px 14px;
 display: flex;
 flex-direction: column;
 gap: 10px;
 box-shadow: var(--prop-shadow-soft);
}
.schedule-week__day--featured {
 border-top-color: var(--prop-amber);
 background: linear-gradient(180deg, var(--prop-amber-tint) 0%, var(--prop-surface) 35%);
}
.schedule-week__day header {
 display: flex;
 flex-direction: column;
 border-bottom: 1px solid var(--prop-line);
 padding-bottom: 8px;
}
.schedule-week__day .day-name {
 font-family: var(--prop-font-serif);
 font-size: 1.25rem;
 color: var(--prop-ink);
 font-weight: 600;
 line-height: 1;
}
.schedule-week__day .day-date {
 font-size: 0.7rem;
 text-transform: uppercase;
 letter-spacing: 0.12em;
 color: var(--prop-amber-deep);
 margin-top: 4px;
 font-weight: 700;
}
.schedule-week__day--featured .day-date {
 color: var(--prop-amber-deep);
}
.day-slots {
 list-style: none;
 padding: 0;
 margin: 0;
 display: flex;
 flex-direction: column;
 gap: 6px;
}
.day-slots li {
 display: flex;
 flex-direction: column;
 padding: 8px 10px;
 background: var(--prop-bg-alt);
 border-radius: 6px;
 border-left: 2px solid var(--prop-blue);
}
.day-slots li span:first-child {
 font-family: var(--prop-font-serif);
 font-weight: 600;
 color: var(--prop-ink);
 font-size: 1rem;
}
.slot-meta {
 font-size: 0.72rem;
 color: var(--prop-ink-mute);
 letter-spacing: 0.04em;
 margin-top: 2px;
}
.schedule-week__day--featured .day-slots li {
 border-left-color: var(--prop-amber);
 background: rgba(236, 154, 41, 0.06);
}
.day-note {
 font-size: 0.78rem;
 color: var(--prop-ink-mute);
 font-style: italic;
 line-height: 1.45;
 margin: 0;
 padding-top: 4px;
 border-top: 1px solid var(--prop-line);
}
.schedule-openhouse {
 background: var(--prop-navy);
 color: var(--prop-bg);
 border-radius: 8px;
 padding: 20px 24px;
 margin: 28px 0 24px;
 text-align: center;
 line-height: 1.55;
}
.schedule-openhouse strong { color: var(--prop-amber); }
.schedule-openhouse p { margin: 0; color: var(--prop-bg); }
.schedule-note { color: var(--prop-ink-soft); margin: 16px 0 0; font-size: 0.95rem; }
.schedule-note a { color: var(--prop-amber-deep); font-weight: 600; }

/* Pricing rationale + reserve callout */
.property-page .prop-broker-perspective .broker-perspective__body h3[style*="amber"] {
 border-left: 4px solid var(--prop-amber);
 padding-left: 12px;
 margin-top: 28px;
}
.property-page .prop-broker-perspective .broker-perspective__attribution {
 margin-top: 28px;
 padding-top: 16px;
 border-top: 1px solid var(--prop-line);
 font-size: 0.9rem;
 color: var(--prop-ink-soft);
}

/* ============================================================
 TEXT CONTRAST OVERRIDES - make low-contrast inherits readable
 on the warm/editorial palette
 ============================================================ */

/* Renovation gallery - cost lists + budget headers + meta */
.property-page .ba-card__name,
.property-page .ba-card__meta .ba-card__name {
 color: var(--prop-ink) !important;
 font-family: var(--prop-font-serif);
 font-size: 1.5rem;
 font-weight: 600;
 margin: 0 0 6px;
}
.property-page .ba-card__budget {
 color: var(--prop-ink) !important;
 font-size: 1rem;
 margin: 0 0 14px;
}
.property-page .ba-card__budget strong {
 color: var(--prop-amber-deep) !important;
 font-size: 1.1rem;
}
/* Per-room line items hidden - too granular for the listing audience.
 Bottom-line budget + 1-line scope summary on the card is enough. */
.property-page .ba-card__items { display: none; }
/* ============================================================
 "Art of the Deal" panel - concise 4-card summary
 ============================================================ */
.deal-art {
 background: var(--prop-surface);
 border: 1px solid var(--prop-line);
 border-radius: 12px;
 padding: 36px;
 margin: 32px 0;
 box-shadow: var(--prop-shadow-soft);
}
.deal-art__heading {
 font-family: var(--prop-font-serif);
 font-size: clamp(1.5rem, 2.4vw, 2rem);
 color: var(--prop-ink) !important;
 font-weight: 500;
 line-height: 1.2;
 margin: 8px 0 10px;
}
.deal-art__sub {
 color: var(--prop-ink-soft) !important;
 font-size: 1rem;
 line-height: 1.6;
 margin: 0 0 28px;
 max-width: 720px;
}
.deal-art__grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 18px;
}
@media (max-width: 1024px) { .deal-art__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .deal-art__grid { grid-template-columns: 1fr; } }
.deal-art__card {
 background: var(--prop-bg-alt);
 border: 1px solid var(--prop-line);
 border-top: 3px solid var(--prop-amber);
 border-radius: 8px;
 padding: 20px;
}
.deal-art__label {
 color: var(--prop-amber-deep) !important;
 font-size: 0.7rem;
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: 0.14em;
 margin: 0 0 10px;
}
.deal-art__amount {
 color: var(--prop-ink) !important;
 font-family: var(--prop-font-serif);
 font-size: 1.65rem;
 font-weight: 600;
 line-height: 1;
 margin: 0 0 12px;
 letter-spacing: -0.005em;
}
.deal-art__body {
 color: var(--prop-ink-soft) !important;
 font-size: 0.92rem;
 line-height: 1.5;
 margin: 0;
}
.deal-art__body strong { color: var(--prop-ink); }
.deal-art__disclaimer {
 color: var(--prop-ink-mute) !important;
 font-size: 0.78rem;
 line-height: 1.55;
 margin: 24px 0 0;
 font-style: italic;
 border-top: 1px solid var(--prop-line);
 padding-top: 14px;
}

/* .rehab-total has a dark navy background - keep text LIGHT, not dark */
.property-page .rehab-total { color: var(--prop-bg) !important; }
.property-page .rehab-total__sub {
 color: rgba(224, 225, 221, 0.82) !important;
 font-size: 0.95rem;
 line-height: 1.6;
 max-width: 720px;
 margin: 16px 0 0;
}
.property-page .arv-math {
 background: var(--prop-bg-alt);
 border: 1px solid var(--prop-line);
 border-radius: 8px;
 padding: 20px 24px;
 margin: 24px 0;
}
.property-page .arv-math__line {
 display: flex;
 justify-content: space-between;
 padding: 6px 0;
 color: var(--prop-ink) !important;
 font-size: 0.95rem;
}
.property-page .arv-math__line--sum {
 border-top: 1px solid var(--prop-line);
 border-bottom: 1px solid var(--prop-line);
 font-weight: 700;
 margin: 6px 0;
}
.property-page .arv-math__note {
 color: var(--prop-ink-soft) !important;
 font-size: 0.95rem;
 line-height: 1.6;
 font-style: italic;
 margin-top: 12px;
}

/* Two-path substructure cards */
.property-page .substruct__name,
.property-page .path-card .substruct__name {
 color: var(--prop-ink) !important;
 font-family: var(--prop-font-serif);
 font-weight: 600;
 font-size: 1.05rem;
 margin: 8px 0 4px;
}
.property-page .substruct__desc {
 color: var(--prop-ink-soft) !important;
 font-size: 0.95rem;
 line-height: 1.55;
}
.property-page .substruct__note {
 color: var(--prop-ink-mute) !important;
 font-size: 0.85rem;
 font-style: italic;
 margin-top: 10px;
}

/* ===== "The buyer-friendly truth" callout - make it pop ===== */
.property-page .taxes-callout {
 display: grid;
 grid-template-columns: 1.4fr 1fr;
 gap: 24px;
 align-items: center;
 background: linear-gradient(135deg, var(--prop-amber-tint) 0%, var(--prop-bg-alt) 100%);
 border: 1px solid var(--prop-line);
 border-left: 4px solid var(--prop-amber);
 border-radius: 12px;
 padding: 28px 32px;
 margin: 32px 0;
 box-shadow: var(--prop-shadow-soft);
}
@media (max-width: 768px) {
 .property-page .taxes-callout { grid-template-columns: 1fr; padding: 22px; }
}
.property-page .taxes-callout__label {
 color: var(--prop-amber-deep) !important;
 font-size: 0.75rem;
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: 0.15em;
 margin: 0 0 6px;
}
.property-page .taxes-callout__heading {
 color: var(--prop-ink) !important;
 font-family: var(--prop-font-serif);
 font-size: 1.6rem;
 font-weight: 600;
 line-height: 1.2;
 margin: 0 0 12px;
}
.property-page .taxes-callout__body {
 color: var(--prop-ink-soft) !important;
 font-size: 1rem;
 line-height: 1.6;
 margin: 0;
}
.property-page .taxes-callout__number { text-align: center; }
.property-page .taxes-callout__amount {
 color: var(--prop-amber-deep) !important;
 font-family: var(--prop-font-serif);
 font-size: 3rem;
 font-weight: 600;
 line-height: 1;
 margin: 0 0 4px;
}
.property-page .taxes-callout__caption {
 color: var(--prop-ink-soft) !important;
 font-size: 0.78rem;
 text-transform: uppercase;
 letter-spacing: 0.12em;
 margin: 0;
}

/* ===== Submit offer side panel + tools ===== */
.property-page .prop-submit__title {
 color: var(--prop-ink) !important;
}
.property-page .prop-submit__sub {
 color: var(--prop-ink-soft) !important;
 font-size: 1.0625rem;
 line-height: 1.6;
}
.property-page .submit-side {
 background: var(--prop-surface);
 border: 1px solid var(--prop-line);
 border-radius: 12px;
 padding: 24px;
 box-shadow: var(--prop-shadow-soft);
}
.property-page .submit-side__title {
 color: var(--prop-ink) !important;
 font-family: var(--prop-font-serif);
 font-size: 1.4rem;
 margin: 0 0 16px;
}
.property-page .submit-side__item {
 display: flex;
 gap: 14px;
 align-items: flex-start;
 padding: 14px 0;
 border-top: 1px solid var(--prop-line);
}
.property-page .submit-side__item:first-of-type { border-top: 0; padding-top: 0; }
.property-page .submit-side__item svg {
 flex-shrink: 0;
 width: 28px;
 height: 28px;
 color: var(--prop-amber-deep);
 margin-top: 2px;
}
.property-page .submit-side__item-title {
 color: var(--prop-ink) !important;
 font-weight: 600;
 margin: 0 0 4px;
 font-size: 1rem;
}
.property-page .submit-side__item-body {
 color: var(--prop-ink-soft) !important;
 font-size: 0.9rem;
 line-height: 1.55;
 margin: 0;
}
.property-page .submit-form__note {
 color: var(--prop-ink-mute) !important;
 font-size: 0.8rem;
 font-style: italic;
}

/* ===== Property Activity - multi-platform view aggregator ===== */
.property-page .prop-views { padding-top: 64px; padding-bottom: 64px; }
.property-page .prop-views h3 {
 color: var(--prop-amber) !important;
 font-family: var(--prop-font-serif);
 font-size: 2rem;
}
.property-page .views-aggregator {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 16px;
 max-width: 920px;
 margin: 24px auto 32px;
}
@media (max-width: 768px) {
 .property-page .views-aggregator { grid-template-columns: 1fr; }
}
.property-page .views-platform {
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid rgba(236, 154, 41, 0.28);
 border-radius: 10px;
 padding: 22px 18px;
 text-align: center;
}
.property-page .views-platform__name {
 color: var(--prop-amber);
 font-family: var(--prop-font-serif);
 font-size: 1.05rem;
 letter-spacing: 0.05em;
 margin: 0 0 4px;
 font-weight: 600;
}
.property-page .views-platform__count {
 color: #FFFFFF;
 font-family: var(--prop-font-serif);
 font-size: 2.6rem;
 font-weight: 600;
 line-height: 1;
 margin: 8px 0 4px;
 font-variant-numeric: tabular-nums;
}
.property-page .views-platform__label {
 color: rgba(255, 255, 255, 0.78);
 font-size: 0.78rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.property-page .views-platform__sub {
 color: var(--prop-amber);
 font-size: 0.85rem;
 margin-top: 6px;
}
.property-page .views-platform a {
 color: var(--prop-amber);
 text-decoration: none;
 border-bottom: 1px dotted rgba(236,154,41,0.5);
}
.property-page .views-platform a:hover { color: #FFFFFF; }
.property-page .views-since {
 text-align: center;
 color: rgba(255, 255, 255, 0.6);
 font-size: 0.8rem;
 margin-top: 8px;
 text-transform: uppercase;
 letter-spacing: 0.1em;
}


/* ============================================================
   Property Quick Facts modal — replaces the AI chatbot
   ============================================================ */
.prop-modal__panel--facts {
 max-width: 720px;
 width: 92vw;
 max-height: 88vh;
 overflow: hidden;
 background: var(--prop-surface);
 border-radius: 12px;
}
.prop-modal__panel--facts .prop-modal__head {
 background: var(--prop-navy);
 color: #FFFFFF;
 padding: 18px 24px;
 display: flex;
 align-items: flex-start;
 justify-content: space-between;
 gap: 16px;
}
.prop-modal__panel--facts .prop-modal__title {
 font-family: var(--prop-font-serif);
 font-size: 1.25rem;
 font-weight: 600;
 color: #FFFFFF;
 margin: 0 0 4px;
}
.prop-modal__panel--facts .prop-modal__sub {
 color: rgba(255,255,255,0.72);
 font-size: 0.85rem;
 margin: 0;
}
.prop-modal__panel--facts .prop-modal__close {
 background: rgba(255,255,255,0.08);
 border: 0;
 color: #FFFFFF;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 font-size: 1.4rem;
 line-height: 1;
 cursor: pointer;
}
.prop-modal__panel--facts .prop-modal__close:hover { background: rgba(236,154,41,0.28); }
.facts-body {
 padding: 18px 24px 24px;
 overflow-y: auto;
 max-height: calc(88vh - 76px);
}
.facts-block { padding: 18px 0; border-bottom: 1px solid var(--prop-line); }
.facts-block:last-child { border-bottom: 0; }
.facts-block__label {
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--prop-amber-deep);
 margin: 0 0 10px;
}
.facts-list { list-style: none; margin: 0; padding: 0; }
.facts-list li {
 display: flex;
 justify-content: space-between;
 gap: 14px;
 padding: 6px 0;
 font-size: 0.95rem;
 line-height: 1.5;
 color: var(--prop-ink);
 border-bottom: 1px dotted var(--prop-line);
}
.facts-list li:last-child { border-bottom: 0; }
.facts-list li strong {
 color: var(--prop-ink);
 font-weight: 600;
 flex: 0 0 38%;
}
.facts-list li span { color: var(--prop-ink-soft); text-align: right; flex: 1; }
.facts-callout {
 background: var(--prop-amber-tint);
 border-left: 4px solid var(--prop-amber);
 padding: 14px 16px;
 border-radius: 6px;
 color: var(--prop-ink);
 font-size: 0.95rem;
 line-height: 1.6;
 margin: 0;
}
.facts-callout strong { color: var(--prop-amber-deep); font-size: 1.05rem; }
.facts-paths { list-style: none; padding: 0; margin: 0 0 12px; }
.facts-paths li {
 padding: 10px 14px;
 background: var(--prop-bg-alt);
 border-radius: 6px;
 margin-bottom: 6px;
 color: var(--prop-ink);
 font-size: 0.95rem;
 line-height: 1.55;
}
.facts-paths li strong { color: var(--prop-amber-deep); }
.facts-block--cta { border-bottom: 0; padding-bottom: 4px; }
.facts-cta-row { display: flex; flex-wrap: wrap; gap: 10px; }
.facts-cta-row .btn { flex: 1 1 auto; min-width: 160px; }

/* ============================================================
 ASK ANYTHING - BUYER CONCIERGE (typed Q&A, no persona)
 Editorial luxe palette: Rich Black / Oxford Blue / Hunyadi Yellow.
 ============================================================ */
.prop-concierge {
 padding: 96px 0 96px;
 background: var(--prop-bg-alt);
 border-top: 1px solid var(--prop-line);
 border-bottom: 1px solid var(--prop-line);
}
.prop-concierge__title {
 font-family: var(--prop-font-serif);
 font-size: clamp(28px, 4vw, 42px);
 line-height: 1.15;
 color: var(--prop-ink);
 margin: 6px 0 14px;
 letter-spacing: -0.01em;
}
.prop-concierge__sub {
 color: var(--prop-ink-soft);
 max-width: 640px;
 font-size: 1rem;
 line-height: 1.6;
 margin: 0 0 28px;
}
.concierge-form {
 display: flex;
 gap: 12px;
 align-items: stretch;
 background: var(--prop-surface);
 border: 1px solid var(--prop-line-strong);
 border-radius: 12px;
 padding: 10px;
 box-shadow: var(--prop-shadow-soft);
 max-width: 760px;
}
.concierge-form input[type="text"] {
 flex: 1 1 auto;
 min-width: 0;
 border: 0;
 outline: 0;
 background: transparent;
 font-family: var(--prop-font-sans);
 font-size: 1rem;
 color: var(--prop-ink);
 padding: 10px 12px;
}
.concierge-form input[type="text"]::placeholder {
 color: var(--prop-ink-mute);
}
.concierge-form input[type="text"]:focus {
 outline: 2px solid var(--prop-amber);
 outline-offset: 2px;
 border-radius: 6px;
}
.concierge-form button {
 flex: 0 0 auto;
 min-width: 110px;
}
.concierge-form button[disabled],
.concierge-form button[aria-busy="true"] {
 opacity: 0.7;
 cursor: progress;
}
.concierge-answer {
 margin-top: 22px;
 padding: 20px 22px;
 background: var(--prop-surface);
 border-left: 4px solid var(--prop-amber);
 border-radius: 8px;
 color: var(--prop-ink);
 font-size: 1rem;
 line-height: 1.65;
 max-width: 760px;
 box-shadow: var(--prop-shadow-soft);
}
.concierge-answer[hidden] { display: none; }
.concierge-answer__meta {
 display: flex;
 align-items: center;
 gap: 10px;
 margin-top: 14px;
 padding-top: 12px;
 border-top: 1px solid var(--prop-line);
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--prop-ink-mute);
}
.concierge-answer__badge {
 display: inline-block;
 padding: 3px 9px;
 background: var(--prop-amber-tint);
 color: var(--prop-amber-deep);
 border-radius: 999px;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.05em;
}
.concierge-answer__badge--live {
 background: var(--prop-navy);
 color: #FFFFFF;
}
.concierge-answer__loader {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 color: var(--prop-ink-soft);
 font-style: italic;
}
.concierge-answer__loader::before {
 content: "";
 width: 14px;
 height: 14px;
 border-radius: 50%;
 border: 2px solid var(--prop-amber-tint);
 border-top-color: var(--prop-amber);
 animation: concierge-spin 0.8s linear infinite;
}
@keyframes concierge-spin {
 to { transform: rotate(360deg); }
}
.concierge-disclosure {
 margin-top: 18px;
 font-size: 0.82rem;
 color: var(--prop-ink-mute);
 max-width: 760px;
 line-height: 1.55;
}
.concierge-disclosure a {
 color: var(--prop-amber-deep);
 text-decoration: underline;
 font-weight: 600;
}
.visually-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}
@media (max-width: 640px) {
 .prop-concierge { padding: 64px 0; }
 .concierge-form { flex-direction: column; gap: 8px; padding: 12px; }
 .concierge-form button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
 .concierge-answer__loader::before { animation: none; }
}

/* Registration gate */
.concierge-register {
 max-width: 760px;
 background: var(--prop-surface);
 border: 1px solid var(--prop-line-strong);
 border-radius: 12px;
 padding: 28px;
 display: grid;
 gap: 16px;
 box-shadow: var(--prop-shadow-soft);
}
.concierge-register[hidden] { display: none; }
.concierge-register__row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 14px;
}
@media (max-width: 640px) {
 .concierge-register__row { grid-template-columns: 1fr; }
 .concierge-register { padding: 22px 18px; }
}
.concierge-register label {
 display: block;
 font-size: 12px;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--prop-amber-deep);
 font-weight: 700;
}
.concierge-register input[type="text"],
.concierge-register input[type="email"],
.concierge-register input[type="tel"] {
 display: block;
 width: 100%;
 margin-top: 6px;
 padding: 12px 14px;
 background: var(--prop-bg-alt);
 border: 1px solid var(--prop-line-strong);
 border-radius: 6px;
 color: var(--prop-ink);
 font-family: var(--prop-font-sans);
 font-size: 15px;
 font-weight: 400;
 text-transform: none;
 letter-spacing: normal;
}
.concierge-register input::placeholder { color: var(--prop-ink-mute); }
.concierge-register input:focus {
 outline: 2px solid var(--prop-amber);
 outline-offset: 2px;
 background: var(--prop-surface);
}
.concierge-register__consent {
 display: flex !important;
 align-items: flex-start;
 gap: 10px;
 font-size: 13px;
 text-transform: none;
 letter-spacing: normal;
 color: var(--prop-ink);
 font-weight: 400;
 line-height: 1.55;
}
.concierge-register__consent input[type="checkbox"] {
 width: auto;
 flex: 0 0 auto;
 margin-top: 3px;
}
.concierge-register__consent a {
 color: var(--prop-amber-deep);
 text-decoration: underline;
 font-weight: 600;
}
.concierge-register__note {
 margin: 6px 0 0;
 padding: 10px 14px;
 background: rgba(204, 0, 0, 0.08);
 border-left: 3px solid #C00;
 color: #8B0000;
 font-size: 13px;
 border-radius: 4px;
}
.concierge-form__meta {
 padding: 6px 12px;
 font-size: 12px;
 color: var(--prop-ink-mute);
 letter-spacing: 0.04em;
}
.concierge-form__row {
 display: flex;
 gap: 12px;
 align-items: stretch;
 width: 100%;
}
@media (max-width: 640px) {
 .concierge-form__row { flex-direction: column; }
}
.concierge-answer__badge--ended {
 background: rgba(204, 0, 0, 0.12) !important;
 color: #8B0000 !important;
}

/* ============================================================
   Renderings Stage — visualization examples at listing-team discretion
   ============================================================ */
.renderings-stage {
 margin: 40px 0 24px;
}
.renderings-stage__controls {
 display: flex;
 gap: 10px;
 flex-wrap: wrap;
 margin-bottom: 28px;
 padding: 6px;
 background: var(--prop-bg-alt);
 border: 1px solid var(--prop-line);
 border-radius: 999px;
 width: fit-content;
}
.renderings-stage__pill {
 padding: 12px 22px;
 background: transparent;
 color: var(--prop-ink-soft);
 border: 0;
 border-radius: 999px;
 font-family: 'Manrope', var(--font-body, "Manrope", system-ui, sans-serif);
 font-size: 13px;
 font-weight: 600;
 letter-spacing: 0.01em;
 cursor: pointer;
 transition: background 240ms ease, color 240ms ease;
 white-space: nowrap;
}
.renderings-stage__pill:hover { color: var(--prop-ink); }
.renderings-stage__pill.is-active {
 background: var(--prop-ink);
 color: #EC9A29;
}
@media (max-width: 640px) {
 .renderings-stage__controls { border-radius: 12px; }
 .renderings-stage__pill { font-size: 12px; padding: 10px 16px; flex: 1; text-align: center; }
}
.renderings-stage__grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 18px;
}
@media (max-width: 900px) { .renderings-stage__grid { grid-template-columns: 1fr; } }
.rendering-card {
 margin: 0;
 background: var(--prop-ink);
 border-radius: 6px;
 overflow: hidden;
 box-shadow: 0 12px 40px rgba(13, 27, 42, 0.16);
 transition: transform 600ms cubic-bezier(0.2, 0.85, 0.2, 1), box-shadow 600ms ease;
}
.rendering-card:hover {
 transform: translateY(-4px);
 box-shadow: 0 20px 60px rgba(13, 27, 42, 0.24);
}
.rendering-card__img {
 display: block;
 width: 100%;
 height: auto;
 aspect-ratio: 16/9;
 object-fit: cover;
 transition: opacity 480ms ease;
}
.rendering-card.is-switching .rendering-card__img { opacity: 0.4; }
.rendering-card figcaption {
 padding: 16px 20px 20px;
 display: flex;
 flex-direction: column;
 gap: 4px;
 background: var(--prop-ink);
 color: #E0E1DD;
}
.rendering-card__room {
 font-family: 'Fraunces', var(--font-head, "Archivo", system-ui, sans-serif);
 font-size: 20px;
 font-weight: 500;
 letter-spacing: -0.01em;
}
.rendering-card__sub {
 font-family: 'JetBrains Mono', ui-monospace, monospace;
 font-size: 11px;
 letter-spacing: 0.06em;
 color: rgba(224, 225, 221, 0.65);
}
.renderings-stage__disclaimer {
 margin-top: 18px;
 font-family: 'JetBrains Mono', ui-monospace, monospace;
 font-size: 11px;
 letter-spacing: 0.03em;
 color: var(--prop-ink-mute);
 line-height: 1.55;
 max-width: 720px;
}
