/* Live Florida Now: premium public design system.
   Distilled from the What's My Home Worth page (/value). Loaded after styles.css on public pages. */

:root {
    --pp-navy: #0f2744;
    --pp-navy-deep: #0a1c33;
    --pp-navy-soft: #1b3a5f;
    --pp-champagne: #cdb78a;
    --pp-champagne-light: #d9c9a6;
    --pp-champagne-deep: #8a7a55;
    --pp-ink: #34475e;
    --pp-muted: #4b5d73;
    --pp-quiet: #6b7b8f;
    --pp-line: #e3e9f0;
    --pp-line-strong: #d5dde6;
    --pp-soft: #f6f8fb;
    --pp-width: 1180px;
    --pp-radius: 4px;
    --pp-radius-card: 6px;
    --pp-head: 'Poppins', Arial, sans-serif;
    --pp-body: 'Roboto', Arial, sans-serif;

    /* retire the legacy teal / green tokens from the public site */
    --teal: #0f2744;
    --teal-dark: #0f2744;
    --leaf: #cdb78a;
    --home-leaf: #cdb78a;
    --accent: #0f2744;
    --accent-dark: #0f2744;
    --accent-light: #1b3a5f;
    --gold: #8a7a55;
}

html { scroll-behavior: smooth; }

body {
    color: var(--pp-navy);
    font-family: var(--pp-body);
    -webkit-font-smoothing: antialiased;
}

body.pp-page main { background: #ffffff; color: var(--pp-navy); }

/* ---------- layout ---------- */
body .pp-wrap {
    width: min(100% - 3rem, var(--pp-width));
    margin-inline: auto;
}

body .pp-section {
    padding: clamp(4rem, 8vw, 7rem) 0;
    background: #ffffff;
}

body .pp-section-soft { background: var(--pp-soft); }
body .pp-section-tight { padding: clamp(3rem, 6vw, 5rem) 0; }
body .pp-section-flush-top { padding-top: 0; }
body .pp-rule-top { border-top: 1px solid var(--pp-line); }

/* ---------- type ---------- */
body .pp-kicker {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 1.4rem;
    color: var(--pp-champagne-deep);
    font: 500 0.72rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

body .pp-kicker::before {
    content: "";
    flex: 0 0 44px;
    width: 44px;
    height: 1px;
    background: currentColor;
    opacity: 0.8;
}

body .pp-kicker-light { color: var(--pp-champagne-light); }
body .pp-kicker-bare::before { display: none; }

body .pp-title,
body .pp-head h2 {
    max-width: 22ch;
    margin: 0;
    color: var(--pp-navy);
    font: 500 clamp(2rem, 4vw, 3.1rem)/1.1 var(--pp-head);
    letter-spacing: -0.03em;
    text-transform: none;
}

body .pp-head { margin: 0 0 clamp(2.5rem, 5vw, 4rem); text-align: left; }
body .pp-head p:not(.pp-kicker),
body .pp-lede {
    max-width: 38rem;
    margin: 1.2rem 0 0;
    color: var(--pp-muted);
    font: 300 1.08rem/1.75 var(--pp-body);
}

body .pp-on-dark .pp-title,
body .pp-on-dark h2 { color: #ffffff; }
body .pp-on-dark .pp-lede,
body .pp-on-dark p:not(.pp-kicker) { color: rgba(255, 255, 255, 0.84); }

/* ---------- buttons ---------- */
body .pp-btn,
body .pp-btn-light,
body .pp-btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0.8rem 1.9rem;
    border: 1px solid var(--pp-navy);
    border-radius: var(--pp-radius);
    background: var(--pp-navy);
    box-shadow: none;
    color: #ffffff;
    font: 600 0.78rem/1 var(--pp-head);
    letter-spacing: 0.18em;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}

body .pp-btn:hover,
body .pp-btn:focus-visible {
    background: var(--pp-navy-soft);
    border-color: var(--pp-navy-soft);
    box-shadow: 0 14px 28px rgba(15, 39, 68, 0.28);
    color: #ffffff;
}

body .pp-btn-light {
    border-color: #ffffff;
    background: #ffffff;
    color: var(--pp-navy);
}

body .pp-btn-light:hover,
body .pp-btn-light:focus-visible {
    background: #e9eef4;
    border-color: #e9eef4;
    color: var(--pp-navy);
}

body .pp-btn-ghost {
    border-color: rgba(255, 255, 255, 0.45);
    background: transparent;
}

body .pp-btn-ghost:hover,
body .pp-btn-ghost:focus-visible {
    border-color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

body .pp-btn-outline {
    border-color: var(--pp-navy);
    background: transparent;
    color: var(--pp-navy);
}

body .pp-btn-outline:hover,
body .pp-btn-outline:focus-visible {
    background: var(--pp-navy);
    color: #ffffff;
}

body .pp-link {
    color: inherit;
    font: 600 0.74rem/1.4 var(--pp-head);
    letter-spacing: 0.16em;
    text-decoration: underline;
    text-decoration-color: var(--pp-champagne);
    text-decoration-thickness: 1px;
    text-transform: uppercase;
    text-underline-offset: 6px;
}

body .pp-link:hover,
body .pp-link:focus-visible { text-decoration-color: currentColor; }

body .pp-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.9rem 1.6rem;
    margin-top: 2rem;
}

/* ---------- hero ---------- */
body .pp-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--pp-navy-deep);
    color: #ffffff;
}

body .pp-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 60% 55%;
}

body .pp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(7, 22, 40, 0.94) 0%, rgba(10, 30, 53, 0.82) 42%, rgba(10, 30, 53, 0.32) 100%),
        linear-gradient(0deg, rgba(7, 22, 40, 0.7) 0%, rgba(7, 22, 40, 0) 38%);
}

body .pp-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: center;
    width: min(100% - 3rem, var(--pp-width));
    min-height: clamp(460px, 62vh, 600px);
    margin: 0 auto;
    padding: clamp(3rem, 6vw, 5rem) 0;
}

body .pp-hero-split .pp-hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
    min-height: clamp(620px, 82vh, 780px);
}

body .pp-hero .pp-kicker { color: var(--pp-champagne-light); }

body .pp-hero h1 {
    max-width: 14ch;
    margin: 0 0 1.5rem;
    color: #ffffff;
    font: 500 clamp(2.6rem, 5.6vw, 4.8rem)/1.02 var(--pp-head);
    letter-spacing: -0.035em;
    text-shadow: none;
    text-transform: none;
}

body .pp-hero .pp-lede {
    max-width: 31rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1.05rem, 1.5vw, 1.2rem);
}

body .pp-hero .pp-actions { margin-top: 2.2rem; }

body .pp-hero-plain {
    background: var(--pp-navy);
}

/* ---------- cards & forms ---------- */
body .pp-card {
    padding: clamp(1.6rem, 2.6vw, 2.2rem);
    border: 0;
    border-top: 2px solid var(--pp-champagne);
    border-radius: var(--pp-radius-card);
    background: #ffffff;
    box-shadow: 0 40px 90px rgba(3, 12, 24, 0.5);
    color: var(--pp-navy);
}

body .pp-card-flat {
    box-shadow: 0 1px 0 rgba(15, 39, 68, 0.04), 0 24px 60px rgba(15, 39, 68, 0.1);
}

body .pp-card .pp-form-kicker {
    margin: 0 0 0.3rem;
    color: var(--pp-navy);
    font: 600 0.74rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

body .pp-card h2,
body .pp-card h3 {
    margin: 0 0 0.5rem;
    color: var(--pp-navy);
    font: 500 1.5rem/1.2 var(--pp-head);
    letter-spacing: -0.02em;
}

body .pp-card p:not(.pp-form-kicker):not(.pp-kicker) { color: var(--pp-muted); font-weight: 300; line-height: 1.65; }
body .pp-hero .pp-card .pp-lede, body .pp-card .pp-lede { color: var(--pp-muted); font-size: 0.95rem; }

body .pp-form {
    display: grid;
    gap: 1rem;
    margin: 0;
}

body .pp-form label {
    display: grid;
    gap: 0.4rem;
    margin: 0;
}

body .pp-form label > span,
body .pp-form .pp-label {
    color: var(--pp-muted);
    font: 600 0.7rem/1.3 var(--pp-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body .pp-form label > span small { font-weight: 400; letter-spacing: 0.04em; text-transform: none; color: var(--pp-quiet); }

body .pp-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body .pp-form select,
body .pp-form textarea,
body .contact-form.pp-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body .contact-form.pp-form select,
body .contact-form.pp-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--pp-line-strong);
    border-radius: var(--pp-radius);
    background: #ffffff;
    box-shadow: none;
    color: var(--pp-navy);
    font: 400 1rem var(--pp-body);
}

body .pp-form textarea { min-height: 96px; resize: vertical; }

body .pp-form input:focus,
body .pp-form select:focus,
body .pp-form textarea:focus {
    border-color: var(--pp-navy);
    outline: 2px solid rgba(15, 39, 68, 0.16);
    outline-offset: 1px;
}

body .pp-form ::placeholder { color: #8795a6; }

body .pp-form button[type="submit"],
body .pp-form .pp-submit {
    min-height: 56px;
    margin-top: 0.2rem;
    padding: 0.8rem 1.6rem;
    border: 0;
    border-radius: var(--pp-radius);
    background: var(--pp-navy);
    box-shadow: none;
    color: #ffffff;
    font: 600 0.8rem/1 var(--pp-head);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.25s ease, box-shadow 0.25s ease;
}

body .pp-form button[type="submit"]:hover,
body .pp-form button[type="submit"]:focus-visible {
    background: var(--pp-navy-soft);
    box-shadow: 0 14px 28px rgba(15, 39, 68, 0.3);
}

body .pp-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
body .pp-form-note { margin: 0; color: var(--pp-quiet); font-size: 0.78rem; line-height: 1.55; text-align: center; }
body .pp-form-note a { color: var(--pp-navy); text-underline-offset: 3px; }

/* ---------- steps (hairline columns with light numerals) ---------- */
body .pp-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

body .pp-steps-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.4rem, 3vw, 2.4rem); }
body .pp-steps-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

body .pp-steps > li,
body .pp-steps > article,
body .pp-steps > div {
    padding: 0;
    border: 0;
    border-top: 1px solid var(--pp-champagne);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body .pp-step-num {
    display: block;
    margin: 1.2rem 0 0.9rem;
    color: var(--pp-navy);
    font: 200 clamp(3rem, 5vw, 4.4rem)/1 var(--pp-head);
    letter-spacing: -0.04em;
}

body .pp-steps h3 {
    margin: 1.2rem 0 0.6rem;
    color: var(--pp-navy);
    font: 500 1.15rem/1.3 var(--pp-head);
    letter-spacing: -0.01em;
}

body .pp-step-num + h3 { margin-top: 0; }

body .pp-steps p {
    max-width: 24rem;
    margin: 0;
    color: var(--pp-muted);
    font: 300 1rem/1.7 var(--pp-body);
}

/* ---------- hairline rows ---------- */
body .pp-rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pp-line); }
body .pp-rows > * {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
    gap: 0.4rem clamp(1.5rem, 5vw, 4rem);
    padding: 1.5rem 0;
    border: 0;
    border-bottom: 1px solid var(--pp-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body .pp-rows strong { color: var(--pp-navy); font: 500 1.1rem/1.35 var(--pp-head); letter-spacing: -0.01em; }
body .pp-rows span,
body .pp-rows p { margin: 0; color: var(--pp-muted); font: 300 1rem/1.7 var(--pp-body); }

/* ---------- split (copy + image) ---------- */
body .pp-split {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: center;
}

body .pp-split-reverse > :first-child { order: 2; }
body .pp-split img { display: block; width: 100%; height: auto; border-radius: var(--pp-radius-card); }
body .pp-split p:not(.pp-kicker) { color: var(--pp-muted); font: 300 1.05rem/1.75 var(--pp-body); }

/* ---------- navy band ---------- */
body .pp-band {
    background: var(--pp-navy);
    color: #ffffff;
}

body .pp-band-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem 3rem;
    width: min(100% - 3rem, var(--pp-width));
    margin: 0 auto;
    padding: clamp(2.6rem, 5vw, 4rem) 0;
}

body .pp-band h2 {
    max-width: 22ch;
    margin: 0;
    color: #ffffff;
    font: 500 clamp(1.7rem, 3vw, 2.4rem)/1.15 var(--pp-head);
    letter-spacing: -0.025em;
}

body .pp-band p:not(.pp-kicker) { margin: 0.7rem 0 0; color: rgba(255, 255, 255, 0.8); font-weight: 300; line-height: 1.65; }
body .pp-band .pp-actions { margin: 0; }

/* ---------- long-form text ---------- */
body .pp-prose { max-width: 46rem; }
body .pp-prose h2 { margin: 2.6rem 0 0.8rem; color: var(--pp-navy); font: 500 1.4rem/1.25 var(--pp-head); letter-spacing: -0.02em; }
body .pp-prose p,
body .pp-prose li { color: var(--pp-ink); font: 300 1.05rem/1.8 var(--pp-body); }
body .pp-prose a { color: var(--pp-navy); text-decoration-color: var(--pp-champagne); text-underline-offset: 3px; }

/* ---------- responsive ---------- */
@media (max-width: 980px) {
    body .pp-hero-split .pp-hero-inner {
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 2.2rem;
        padding-bottom: 0;
    }

    body .pp-hero-split .pp-card {
        width: min(100%, 560px);
        margin: 0 auto -3.5rem;
        position: relative;
        z-index: 2;
    }

    body .pp-hero-split + .pp-section { padding-top: clamp(6rem, 12vw, 8rem); }

    body .pp-steps-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .pp-split { grid-template-columns: 1fr; }
    body .pp-split-reverse > :first-child { order: 0; }
}

@media (max-width: 720px) {
    body .pp-steps,
    body .pp-steps-4,
    body .pp-steps-2 { grid-template-columns: 1fr; gap: 1.8rem; }
    body .pp-step-num { margin: 0.9rem 0 0.5rem; }
    body .pp-rows > * { grid-template-columns: 1fr; }
    body .pp-form-row { grid-template-columns: 1fr; }
    body .pp-hero h1 { font-size: clamp(2.3rem, 11vw, 3rem); }
    body .pp-actions { gap: 0.9rem 1.2rem; }
    body .pp-actions .pp-btn,
    body .pp-actions .pp-btn-light,
    body .pp-actions .pp-btn-ghost { width: 100%; }
}

@media (max-width: 480px) {
    body .pp-wrap,
    body .pp-hero-inner,
    body .pp-band-inner { width: min(100% - 2rem, var(--pp-width)); }
}

/* ---------- header refinements ---------- */
body .public-split-header .nav-desktop-link-cta,
body .nav-desktop-link-cta {
    border-radius: var(--pp-radius);
    box-shadow: none;
    letter-spacing: 0.16em;
}

body .public-split-header .nav-desktop-link-cta:hover,
body .nav-desktop-link-cta:hover { box-shadow: 0 10px 22px rgba(15, 39, 68, 0.22); }

/* footer: see end of file */

body .pp-split h2 + p { margin-top: 1.2rem; max-width: 30rem; }
body .pp-split .pp-rows > * { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 0.4rem 1.6rem; }
@media (max-width: 720px) { body .pp-split .pp-rows > * { grid-template-columns: 1fr; } }

body .pp-steps-3x2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3.5rem);
}
body .pp-steps-3x2 > div { padding: 0; border-top: 1px solid var(--pp-champagne); }
body .pp-steps-3x2 h3 { margin: 1.2rem 0 0.6rem; color: var(--pp-navy); font: 500 1.15rem/1.3 var(--pp-head); letter-spacing: -0.01em; }
body .pp-steps-3x2 p { max-width: 24rem; margin: 0; color: var(--pp-muted); font: 300 1rem/1.7 var(--pp-body); }
@media (max-width: 980px) { body .pp-steps-3x2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { body .pp-steps-3x2 { grid-template-columns: 1fr; } }

/* ---------- portrait, photo cards, community tiles ---------- */
body .pp-portrait { margin: 0; }
body .pp-portrait img { display: block; width: 100%; height: auto; max-width: 440px; margin-inline: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 12%; border-radius: var(--pp-radius-card); }
body .pp-portrait figcaption { max-width: 440px; margin: 1rem auto 0; padding-top: 0.9rem; border-top: 1px solid var(--pp-champagne); color: var(--pp-navy); font: 500 0.95rem var(--pp-head); letter-spacing: -0.01em; }
body .pp-portrait figcaption span { display: block; margin-top: 0.2rem; color: var(--pp-muted); font: 400 0.82rem var(--pp-body); letter-spacing: 0; }

body .pp-photo-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); }
body .pp-photo-card { display: block; color: var(--pp-navy); text-decoration: none; }
body .pp-photo-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 11; object-fit: cover; border-radius: var(--pp-radius-card); }
body .pp-photo-card .pp-step-num { margin: 1.4rem 0 0.4rem; font-size: 2.4rem; }
body .pp-photo-card h3 { margin: 0 0 0.6rem; color: var(--pp-navy); font: 500 1.3rem/1.25 var(--pp-head); letter-spacing: -0.02em; }
body .pp-photo-card p { margin: 0 0 1.2rem; color: var(--pp-muted); font: 300 1rem/1.7 var(--pp-body); }
body .pp-photo-card .pp-link { color: var(--pp-navy); }
body .pp-photo-card:hover img { filter: brightness(0.94); }

body .pp-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
body .pp-tile { position: relative; display: block; overflow: hidden; border-radius: var(--pp-radius-card); background: var(--pp-navy); aspect-ratio: 4 / 3; color: #ffffff; text-decoration: none; }
body .pp-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
body .pp-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7, 22, 40, 0.78) 0%, rgba(7, 22, 40, 0) 55%); }
body .pp-tile span { position: absolute; left: 1.3rem; right: 1.3rem; bottom: 1.1rem; z-index: 1; font: 500 1.15rem/1.2 var(--pp-head); letter-spacing: -0.01em; }
body .pp-tile:hover img { transform: scale(1.04); }

body .pp-more-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 2rem; margin: 2.4rem 0 0; padding-top: 1.4rem; border-top: 1px solid var(--pp-line); }
body .pp-more-links a { color: var(--pp-navy); font: 500 0.78rem var(--pp-head); letter-spacing: 0.14em; text-decoration: none; text-transform: uppercase; }
body .pp-more-links a:hover { color: var(--pp-champagne-deep); }
body .pp-more-links .pp-link { margin-left: auto; }

body .pp-hero-title {
    max-width: 12ch;
    margin: 0 0 1.5rem;
    color: #ffffff;
    font: 500 clamp(2.6rem, 5.6vw, 4.8rem)/1.02 var(--pp-head);
    letter-spacing: -0.035em;
}

@media (max-width: 980px) {
    body .pp-photo-cards { grid-template-columns: 1fr; }
    body .pp-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .pp-more-links .pp-link { margin-left: 0; }
}
@media (max-width: 480px) { body .pp-tiles { gap: 0.6rem; } body .pp-tile span { font-size: 1rem; left: 0.9rem; bottom: 0.8rem; } }

body .pp-band-inner > div:first-child { flex: 1 1 22rem; }
body .pp-band .pp-actions { flex: 0 0 auto; }
body .pp-band .pp-btn-light, body .pp-band .pp-btn-ghost { padding-inline: 1.5rem; }

body .pp-portrait img { max-width: 380px; }
body .pp-portrait figcaption { max-width: 380px; }

/* ---------- home hero, in the same language ---------- */
body.home-page .hero-luxury .hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    width: auto;
    margin: 0 0 1.6rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--pp-champagne-light);
    font: 500 0.72rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
    backdrop-filter: none;
}

body.home-page .hero-luxury .hero-eyebrow::before {
    content: "";
    flex: 0 0 44px;
    width: 44px;
    height: 1px;
    border-radius: 0;
    background: currentColor;
    box-shadow: none;
    opacity: 0.8;
}

body.home-page .hero-luxury .hero-subheadline {
    color: rgba(255, 255, 255, 0.88);
    font: 300 clamp(1.05rem, 1.6vw, 1.25rem)/1.6 var(--pp-body);
}

body.home-page .hero-luxury .hero-btn {
    min-height: 54px;
    padding: 0.8rem 1.9rem;
    border-radius: var(--pp-radius);
    box-shadow: none;
    font: 600 0.78rem/1 var(--pp-head);
    letter-spacing: 0.18em;
}

body.home-page .hero-luxury .hero-btn-primary { border-color: #ffffff; background: #ffffff; color: var(--pp-navy); }
body.home-page .hero-luxury .hero-btn-primary:hover { background: #e9eef4; }
body.home-page .hero-luxury .hero-btn-ghost { border: 1px solid rgba(255, 255, 255, 0.45); background: transparent; color: #ffffff; }
body.home-page .hero-luxury .hero-btn-ghost:hover { border-color: #ffffff; background: rgba(255, 255, 255, 0.1); }

body.home-page .hero-luxury .hero-start-card {
    border: 0;
    border-top: 2px solid var(--pp-champagne);
    border-radius: var(--pp-radius-card);
    background: #ffffff;
    box-shadow: 0 40px 90px rgba(3, 12, 24, 0.5);
}

body.home-page .hero-luxury .hero-start-card > span {
    color: var(--pp-champagne-deep);
    font: 600 0.72rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

body.home-page .hero-luxury .hero-start-card h2 {
    color: var(--pp-navy);
    font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1.15 var(--pp-head);
    letter-spacing: -0.025em;
}

body.home-page .hero-luxury .hero-start-links { gap: 0; }

body.home-page .hero-luxury .hero-start-links a {
    min-height: 0;
    padding: 0.95rem 0;
    border: 0;
    border-bottom: 1px solid var(--pp-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.home-page .hero-luxury .hero-start-links a:last-child { border-bottom: 0; }
body.home-page .hero-luxury .hero-start-links a:hover { background: transparent; transform: none; box-shadow: none; }
body.home-page .hero-luxury .hero-start-links a:hover strong { color: var(--pp-champagne-deep); }

body.home-page .hero-luxury .hero-start-text strong { color: var(--pp-navy); font: 500 1.02rem/1.3 var(--pp-head); letter-spacing: -0.01em; }
body.home-page .hero-luxury .hero-start-text small { color: var(--pp-muted); font-weight: 300; }

body.home-page .hero-luxury .hero-start-chevron {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--pp-champagne-deep);
}

body .pp-card .pp-form-kicker + .pp-form,
body .pp-card .pp-form-kicker + p + .pp-form { margin-top: 1.1rem; }
body .pp-page-title { max-width: 16ch; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.04; }

/* ---------- team roster (cards rendered by team.js) ---------- */
body.team-page .team-grid.roster-team-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.5rem, 3vw, 2.2rem);
    max-width: none;
    margin: 0;
}

body.team-page .team-card.roster-team-card {
    overflow: hidden;
    border: 1px solid var(--pp-line);
    border-top: 2px solid var(--pp-champagne);
    border-radius: var(--pp-radius-card);
    background: #ffffff;
    box-shadow: none;
    transform: none;
}

body.team-page .team-card.roster-team-card:hover { box-shadow: 0 24px 50px rgba(15, 39, 68, 0.1); transform: none; }

body.team-page .team-card.roster-team-card .roster-team-media,
body.team-page .team-card.roster-team-card .roster-team-photo { background: var(--pp-soft); }

body.team-page .team-card.roster-team-card .roster-team-initials {
    border: 1px solid var(--pp-line-strong);
    background: #ffffff;
    box-shadow: none;
    color: var(--pp-navy);
    font-family: var(--pp-head);
    font-weight: 300;
}

body.team-page .team-card.roster-team-card .team-role {
    color: var(--pp-champagne-deep);
    font: 600 0.66rem/1.3 var(--pp-head);
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

body.team-page .team-card.roster-team-card h3 {
    color: var(--pp-navy);
    font: 500 1.4rem/1.2 var(--pp-head);
    letter-spacing: -0.02em;
}

body.team-page .team-social-links { gap: 0.5rem; }

body.team-page .team-social-link {
    border: 1px solid var(--pp-line-strong);
    border-radius: 3px;
    background: transparent;
    box-shadow: none;
    color: var(--pp-navy);
    font: 600 0.68rem var(--pp-head);
    letter-spacing: 0.1em;
}

body.team-page .team-contact-info { gap: 0; border-top: 1px solid var(--pp-line); }

body.team-page .team-contact-card {
    padding: 0.7rem 0;
    border: 0;
    border-bottom: 1px solid var(--pp-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.team-page .team-contact-mark { display: none; }
body.team-page .team-contact-copy small { color: var(--pp-quiet); font: 600 0.62rem var(--pp-head); letter-spacing: 0.2em; text-transform: uppercase; }
body.team-page .team-contact-copy strong { color: var(--pp-navy); font: 400 0.95rem var(--pp-body); }

body.team-page .team-contact-btn,
body.team-page .team-card.roster-team-card .team-contact-btn {
    min-height: 50px;
    border: 1px solid var(--pp-navy);
    border-radius: var(--pp-radius);
    background: var(--pp-navy);
    box-shadow: none;
    color: #ffffff;
    font: 600 0.74rem/1 var(--pp-head);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.team-page .team-contact-btn:hover { background: var(--pp-navy-soft); box-shadow: 0 12px 24px rgba(15, 39, 68, 0.25); }

@media (max-width: 980px) { body.team-page .team-grid.roster-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.team-page .team-grid.roster-team-grid { grid-template-columns: 1fr; } }

body.team-page .team-card.roster-team-card .team-contact-card {
    display: block;
    padding: 0.7rem 0;
    border: 0;
    border-bottom: 1px solid var(--pp-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
body.team-page .team-card.roster-team-card .team-contact-copy { display: grid; gap: 0.15rem; min-width: 0; }
body.team-page .team-card.roster-team-card .team-contact-copy strong { overflow-wrap: anywhere; }
body.team-page .team-card.roster-team-card .team-social-link { background: transparent; box-shadow: none; }


/* ---------- communities index ---------- */
body.communities-page .communities-section { padding: clamp(4rem, 8vw, 7rem) 0; background: #ffffff; }
body.communities-page .communities-container { width: min(100% - 3rem, var(--pp-width)); max-width: none; margin: 0 auto; padding: 0; }
body.communities-page .communities-header { max-width: none; margin: 0 0 clamp(2.5rem, 5vw, 4rem); text-align: left; }

body.communities-page .communities-label,
body.communities-page .community-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 1.4rem;
    color: var(--pp-champagne-deep);
    font: 500 0.72rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

body.communities-page .communities-label::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }

body.communities-page .communities-header h1 {
    max-width: 16ch;
    margin: 0;
    color: var(--pp-navy);
    font: 500 clamp(2.4rem, 5vw, 4rem)/1.04 var(--pp-head);
    letter-spacing: -0.035em;
}

body.communities-page .communities-header p { max-width: 38rem; margin: 1.2rem 0 0; color: var(--pp-muted); font: 300 1.08rem/1.75 var(--pp-body); }
body.communities-page .community-data-note { display: none; }

body.communities-page .communities-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem); }

body.communities-page .community-card {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
}

body.communities-page .community-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--pp-radius-card); transition: filter 0.3s ease; }
body.communities-page .community-card:hover img { filter: brightness(0.94); }
body.communities-page .community-card .community-content { padding: 1.2rem 0 0; background: transparent; }
body.communities-page .community-card .community-content span { color: var(--pp-champagne-deep); font: 600 0.66rem/1.3 var(--pp-head); letter-spacing: 0.22em; text-transform: uppercase; }
body.communities-page .community-card .community-content h3 { margin: 0.5rem 0 0.5rem; color: var(--pp-navy); font: 500 1.35rem/1.2 var(--pp-head); letter-spacing: -0.02em; }
body.communities-page .community-card .community-content p { margin: 0; color: var(--pp-muted); font: 300 0.98rem/1.7 var(--pp-body); }
body.communities-page .community-photo-credit { display: block; margin-top: 0.4rem; color: var(--pp-quiet); font-size: 0.68rem; }

body.communities-page .communities-consultation {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem 3rem;
    margin: 0; max-width: none; width: 100%;
    padding: clamp(2.6rem, 5vw, 4rem) max(1.5rem, calc((100% - var(--pp-width)) / 2));
    border: 0;
    border-radius: 0;
    background: var(--pp-navy);
    box-shadow: none;
    color: #ffffff;
}

body.communities-page .communities-consultation > div { flex: 1 1 22rem; }
body.communities-page .communities-consultation .communities-label { color: var(--pp-champagne-light); }
body.communities-page .communities-consultation h2 { max-width: 24ch; margin: 0; color: #ffffff; font: 500 clamp(1.7rem, 3vw, 2.4rem)/1.15 var(--pp-head); letter-spacing: -0.025em; }
body.communities-page .communities-consultation p { max-width: 36rem; margin: 0.8rem 0 0; color: rgba(255, 255, 255, 0.8); font-weight: 300; }
body.communities-page .communities-consultation .btn-primary { background: #ffffff; color: var(--pp-navy); border-color: #ffffff; }

/* ---------- community guides ---------- */
body.community-detail-page main { background: #ffffff; }
body.community-detail-page .breadcrumb {
    width: min(100% - 3rem, var(--pp-width));
    margin: 0 auto;
    padding: 1.2rem 0;
    color: var(--pp-quiet);
    font: 400 0.8rem var(--pp-body);
}
body.community-detail-page .breadcrumb a { color: var(--pp-navy); text-underline-offset: 3px; }

body.community-detail-page .community-hero {
    position: relative;
    max-width: none;
    margin: 0;
    padding: clamp(3.5rem, 7vw, 5.5rem) max(1.5rem, calc((100% - var(--pp-width)) / 2));
    border: 0;
    border-radius: 0;
    background: linear-gradient(90deg, #0a1c33 0%, #0f2744 60%, #163459 100%);
    box-shadow: none;
    color: #ffffff;
    text-align: left;
}

body.community-detail-page .community-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 1.4rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pp-champagne-light);
    font: 500 0.72rem/1.3 var(--pp-head);
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

body.community-detail-page .community-eyebrow::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }

body.community-detail-page .community-hero h1 {
    max-width: 14ch;
    margin: 0 0 1.4rem;
    color: #ffffff;
    font: 500 clamp(2.6rem, 5.6vw, 4.6rem)/1.02 var(--pp-head);
    letter-spacing: -0.035em;
    text-align: left;
}

body.community-detail-page .community-hero-sub { max-width: 36rem; margin: 0; color: rgba(255, 255, 255, 0.86); font: 300 1.15rem/1.7 var(--pp-body); text-align: left; }

body.community-detail-page .community-hero-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.2rem, 3vw, 2.5rem);
    max-width: none;
    margin: 2.6rem 0 0;
}

body.community-detail-page .community-hero-highlights article {
    padding: 1rem 0 0;
    border: 0;
    border-top: 1px solid rgba(205, 183, 138, 0.7);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
}

body.community-detail-page .community-hero-highlights strong { display: block; color: #ffffff; font: 500 1.05rem/1.3 var(--pp-head); letter-spacing: -0.01em; }
body.community-detail-page .community-hero-highlights small { display: block; margin-top: 0.3rem; color: rgba(255, 255, 255, 0.72); font-size: 0.9rem; }

body.community-detail-page .community-official-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.8rem; margin: 2rem 0 0; }
body.community-detail-page .community-official-links a {
    padding: 0 0 3px;
    border: 0;
    border-bottom: 1px solid var(--pp-champagne);
    border-radius: 0;
    background: transparent;
    color: #ffffff;
    font: 500 0.74rem var(--pp-head);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body.community-detail-page .community-ctas,
body.community-detail-page .community-contact-btns { display: flex; flex-wrap: wrap; gap: 0.9rem; margin: 2.2rem 0 0; justify-content: flex-start; }

body.community-detail-page .community-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0.8rem 1.8rem;
    border: 1px solid #ffffff;
    border-radius: var(--pp-radius);
    background: #ffffff;
    box-shadow: none;
    color: var(--pp-navy);
    font: 600 0.76rem/1 var(--pp-head);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.community-detail-page .community-cta-btn-outline { border-color: rgba(255, 255, 255, 0.5); background: transparent; color: #ffffff; }

body.community-detail-page main > .community-content {
    width: min(100% - 3rem, var(--pp-width));
    max-width: none;
    margin: 0 auto;
    padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(2rem, 4vw, 3rem);
}

body.community-detail-page main > .community-content h2 { margin: 0 0 1.4rem; color: var(--pp-navy); font: 500 clamp(1.8rem, 3.4vw, 2.6rem)/1.12 var(--pp-head); letter-spacing: -0.03em; text-align: left; }
body.community-detail-page main > .community-content p { max-width: 46rem; margin: 0 0 1.2rem; color: var(--pp-ink); font: 300 1.08rem/1.8 var(--pp-body); }

body.community-detail-page .community-mobility-snapshot { margin: 0; padding: clamp(3rem, 6vw, 5rem) max(1.5rem, calc((100% - var(--pp-width)) / 2)); border: 0; border-radius: 0; background: var(--pp-soft); box-shadow: none; }
body.community-detail-page .community-mobility-shell { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; max-width: none; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.community-detail-page .community-section-label { display: flex; align-items: center; gap: 0.9rem; margin: 0 0 1.2rem; color: var(--pp-champagne-deep); font: 500 0.72rem/1.3 var(--pp-head); letter-spacing: 0.26em; text-transform: uppercase; }
body.community-detail-page .community-section-label::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }
body.community-detail-page .community-mobility-copy h2 { margin: 0 0 1rem; color: var(--pp-navy); font: 500 clamp(1.6rem, 2.8vw, 2.2rem)/1.15 var(--pp-head); letter-spacing: -0.025em; }
body.community-detail-page .community-mobility-copy p { color: var(--pp-ink); font: 300 1.02rem/1.75 var(--pp-body); }
body.community-detail-page .community-mobility-source { color: var(--pp-navy); font-size: 0.82rem; text-underline-offset: 3px; }
body.community-detail-page .community-mobility-score-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
body.community-detail-page .community-mobility-score { padding: 1rem 0 0; border: 0; border-top: 1px solid var(--pp-champagne); border-radius: 0; background: transparent; box-shadow: none; text-align: left; }
body.community-detail-page .community-mobility-score strong { display: block; color: var(--pp-navy); font: 200 clamp(2.6rem, 4.5vw, 3.6rem)/1 var(--pp-head); letter-spacing: -0.04em; }
body.community-detail-page .community-mobility-score span { display: block; margin-top: 0.6rem; color: var(--pp-navy); font: 500 0.9rem var(--pp-head); }
body.community-detail-page .community-mobility-score small { color: var(--pp-quiet); }

body.community-detail-page .community-neighbors { width: min(100% - 3rem, var(--pp-width)); max-width: none; margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) 0; text-align: left; }
body.community-detail-page .community-neighbors h2 { margin: 0 0 1.6rem; color: var(--pp-navy); font: 500 1.6rem/1.2 var(--pp-head); letter-spacing: -0.02em; text-align: left; }
body.community-detail-page .community-neighbors-grid { display: flex; flex-wrap: wrap; gap: 0.7rem 2rem; padding-top: 1.4rem; border-top: 1px solid var(--pp-line); }
body.community-detail-page .community-neighbors-grid a { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--pp-navy); font: 500 0.78rem var(--pp-head); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
body.community-detail-page .community-neighbors-grid a:hover { color: var(--pp-champagne-deep); }

body.community-detail-page .community-contact { margin: 0; padding: clamp(2.8rem, 5vw, 4rem) max(1.5rem, calc((100% - var(--pp-width)) / 2)); border: 0; border-radius: 0; background: var(--pp-navy); box-shadow: none; color: #ffffff; text-align: left; }
body.community-detail-page .community-contact h2 { max-width: 24ch; margin: 0; color: #ffffff; font: 500 clamp(1.7rem, 3vw, 2.4rem)/1.15 var(--pp-head); letter-spacing: -0.025em; text-align: left; }
body.community-detail-page .community-contact p { max-width: 36rem; margin: 0.8rem 0 0; color: rgba(255, 255, 255, 0.8); font-weight: 300; }

@media (max-width: 980px) {
    body.communities-page .communities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.community-detail-page .community-mobility-shell { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    body.communities-page .communities-grid { grid-template-columns: 1fr; }
    body.community-detail-page .community-hero-highlights { grid-template-columns: 1fr; }
    body.community-detail-page .community-mobility-score-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.community-detail-page .community-cta-btn { width: 100%; }
}

body.community-detail-page .community-hero-highlights { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; overflow: visible; }
body.community-detail-page .community-hero-highlights article { background: transparent; }
body.community-detail-page .community-hero-highlights strong { font-weight: 500; text-transform: none; letter-spacing: -0.01em; }
body.community-detail-page .community-hero-highlights small { font-weight: 300; }
body.community-detail-page .community-section-label { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.community-detail-page .community-mobility-source { display: inline-block; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.community-detail-page .community-neighbors-grid { justify-content: flex-start; max-width: none; margin: 0; }
body.community-detail-page .community-neighbors-grid a { min-height: 0; justify-content: flex-start; }

body .pp-split-top { align-items: start; }
body .pp-list { padding: 0; list-style: none; }
body .pp-list > li { display: block; color: var(--pp-ink); font: 300 1.05rem/1.7 var(--pp-body); }
body .pp-faq { margin-top: 2.2rem; }
body .pp-faq details { border-bottom: 1px solid var(--pp-line-strong); }
body .pp-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; color: var(--pp-navy); font: 500 1rem/1.4 var(--pp-head); letter-spacing: -0.01em; cursor: pointer; list-style: none; }
body .pp-faq summary::-webkit-details-marker { display: none; }
body .pp-faq summary::after { content: "+"; color: var(--pp-champagne-deep); font: 300 1.4rem/1 var(--pp-head); }
body .pp-faq details[open] summary::after { content: "\2212"; }
body .pp-faq details p { margin: 0 0 1.1rem; color: var(--pp-muted); font: 300 0.98rem/1.7 var(--pp-body); }

body .pp-start-paths { display: grid; max-width: 31rem; margin: 2rem 0 0; border-top: 1px solid rgba(255, 255, 255, 0.22); }
body .pp-start-paths a { display: grid; grid-template-columns: 7rem 1fr; gap: 0.2rem 1rem; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.22); color: #ffffff; text-decoration: none; }
body .pp-start-paths span { font: 500 1.15rem/1.3 var(--pp-head); letter-spacing: -0.01em; }
body .pp-start-paths small { color: rgba(255, 255, 255, 0.76); font: 300 0.95rem/1.5 var(--pp-body); }
body .pp-start-paths a:hover span { color: var(--pp-champagne-light); }
@media (max-width: 480px) { body .pp-start-paths a { grid-template-columns: 1fr; } }

/* ---------- legal pages ---------- */
body.legal-info-page:not(.listings-page) .legal-shell { width: min(100% - 3rem, var(--pp-width)); max-width: none; margin: 0 auto; padding: clamp(4rem, 8vw, 6rem) 0; background: transparent; }
body.legal-info-page:not(.listings-page) .legal-page-header { max-width: none; margin: 0 0 clamp(2.4rem, 5vw, 3.5rem); padding: 0; text-align: left; }
body.legal-info-page .legal-kicker { display: flex; align-items: center; gap: 0.9rem; margin: 0 0 1.4rem; color: var(--pp-champagne-deep); font: 500 0.72rem/1.3 var(--pp-head); letter-spacing: 0.26em; text-transform: uppercase; }
body.legal-info-page .legal-kicker::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }
body.legal-info-page .legal-page-header h1 { max-width: 16ch; margin: 0; color: var(--pp-navy); font: 500 clamp(2.4rem, 5vw, 4rem)/1.04 var(--pp-head); letter-spacing: -0.035em; text-align: left; }
body.legal-info-page .legal-page-header p { max-width: 40rem; margin: 1.2rem 0 0; color: var(--pp-muted); font: 300 1.05rem/1.75 var(--pp-body); text-align: left; }
body.legal-info-page .legal-content { max-width: 46rem; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.legal-info-page .legal-section { padding: 1.6rem 0; border: 0; border-top: 1px solid var(--pp-line); border-radius: 0; background: transparent; box-shadow: none; }
body.legal-info-page .legal-section h2 { margin: 0 0 0.7rem; color: var(--pp-navy); font: 500 1.25rem/1.3 var(--pp-head); letter-spacing: -0.015em; }
body.legal-info-page .legal-section p,
body.legal-info-page .legal-section li { color: var(--pp-ink); font: 300 1.02rem/1.8 var(--pp-body); }
body.legal-info-page .legal-section a { color: var(--pp-navy); text-underline-offset: 3px; }

/* ---------- mortgage calculator ---------- */
body.mortgage-calculator-page .mortgage-calculator-shell { width: min(100% - 3rem, var(--pp-width)); max-width: none; margin: 0 auto; padding: clamp(4rem, 8vw, 6rem) 0; }
body.mortgage-calculator-page .mortgage-calculator-intro { max-width: none; margin: 0 0 clamp(2.2rem, 4vw, 3.2rem); text-align: left; }
body.mortgage-calculator-page .mortgage-calculator-intro > span { display: flex; align-items: center; gap: 0.9rem; margin: 0 0 1.4rem; color: var(--pp-champagne-deep); font: 500 0.72rem/1.3 var(--pp-head); letter-spacing: 0.26em; text-transform: uppercase; }
body.mortgage-calculator-page .mortgage-calculator-intro > span::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }
body.mortgage-calculator-page .mortgage-calculator-intro h1 { margin: 0; color: var(--pp-navy); font: 500 clamp(2.4rem, 5vw, 4rem)/1.04 var(--pp-head); letter-spacing: -0.035em; text-align: left; }
body.mortgage-calculator-page .mortgage-calculator-intro p { max-width: 38rem; margin: 1.2rem 0 0; color: var(--pp-muted); font: 300 1.08rem/1.75 var(--pp-body); }
body.mortgage-calculator-page .mortgage-form { border: 0; border-top: 2px solid var(--pp-champagne); border-radius: var(--pp-radius-card); background: #ffffff; box-shadow: 0 24px 60px rgba(15, 39, 68, 0.1); }
body.mortgage-calculator-page .mortgage-form label > span { color: var(--pp-muted); font: 600 0.7rem/1.3 var(--pp-body); letter-spacing: 0.12em; text-transform: uppercase; }
body.mortgage-calculator-page .mortgage-form input,
body.mortgage-calculator-page .mortgage-form select { min-height: 48px; border: 1px solid var(--pp-line-strong); border-radius: var(--pp-radius); box-shadow: none; color: var(--pp-navy); font: 400 1rem var(--pp-body); }
body.mortgage-calculator-page .mortgage-form input:focus,
body.mortgage-calculator-page .mortgage-form select:focus { border-color: var(--pp-navy); outline: 2px solid rgba(15, 39, 68, 0.16); outline-offset: 1px; }
body.mortgage-calculator-page .mortgage-results { border: 0; border-radius: var(--pp-radius-card); background: var(--pp-navy); box-shadow: none; color: #ffffff; }
body.mortgage-calculator-page .mortgage-results h2,
body.mortgage-calculator-page .mortgage-results strong { font-family: var(--pp-head); }
body.mortgage-calculator-page .mortgage-form .btn-primary,
body.mortgage-calculator-page .mortgage-results .btn-primary { border-radius: var(--pp-radius); font: 600 0.78rem/1 var(--pp-head); letter-spacing: 0.18em; text-transform: uppercase; }

/* ---------- listings index ---------- */
body.listings-page .listings-shell { width: min(100% - 3rem, var(--pp-width)); max-width: none; margin: 0 auto; padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(4rem, 8vw, 6rem); }
body.listings-page .listings-section-header { max-width: none; margin: 0 0 clamp(2rem, 4vw, 3rem); text-align: left; }
body.listings-page .listings-kicker { display: flex; align-items: center; gap: 0.9rem; margin: 0 0 1.4rem; color: var(--pp-champagne-deep); font: 500 0.72rem/1.3 var(--pp-head); letter-spacing: 0.26em; text-transform: uppercase; }
body.listings-page .listings-kicker::before { content: ""; flex: 0 0 44px; height: 1px; background: currentColor; opacity: 0.8; }
body.listings-page .listings-section-header h1 { max-width: 16ch; margin: 0; color: var(--pp-navy); font: 500 clamp(2.4rem, 5vw, 4rem)/1.04 var(--pp-head); letter-spacing: -0.035em; }
body.listings-page .listings-section-header p { max-width: 38rem; margin: 1.2rem 0 0; color: var(--pp-muted); font: 300 1.08rem/1.75 var(--pp-body); }

body.pp-page.listings-page .plt { border: 0; border-top: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page.listings-page .plt-search,
body.pp-page.listings-page .plt-field { border: 1px solid var(--pp-line-strong); border-radius: var(--pp-radius); background: #ffffff; box-shadow: none; }
body.pp-page.listings-page .plt-search input,
body.pp-page.listings-page .plt-field select { border: 0; box-shadow: none; color: var(--pp-navy); font-family: var(--pp-body); }
body.pp-page.listings-page .plt-segment { border: 1px solid var(--pp-line-strong); border-radius: var(--pp-radius); background: #ffffff; box-shadow: none; }
body.pp-page.listings-page .plt-segment button { border-radius: 3px; font: 600 0.7rem var(--pp-head); letter-spacing: 0.14em; text-transform: uppercase; }
body.pp-page.listings-page .plt-segment button.active { background: var(--pp-navy); color: #ffffff; box-shadow: none; }
body.pp-page.listings-page .plt-field > span { color: var(--pp-muted); font: 600 0.62rem var(--pp-body); letter-spacing: 0.14em; text-transform: uppercase; }
body.pp-page.listings-page .plt-count { color: var(--pp-muted); font: 400 0.88rem var(--pp-body); letter-spacing: 0; text-transform: none; }

body.pp-page.listings-page .public-listing-card,
body.pp-page .public-listing-card { overflow: hidden; border: 1px solid var(--pp-line); border-radius: var(--pp-radius-card); background: #ffffff; box-shadow: none; transform: none; transition: box-shadow 0.3s ease; }
body.listings-page .public-listing-card:hover { box-shadow: 0 24px 50px rgba(15, 39, 68, 0.1); transform: none; }
body.pp-page .public-listing-media em,
body.pp-page .public-listing-type-rent .public-listing-media em,
body.pp-page .public-listing-status-pending .public-listing-media em { border: 0; border-radius: 3px; background: var(--pp-navy); color: #ffffff; font: 600 0.62rem/1 var(--pp-head); letter-spacing: 0.18em; text-transform: uppercase; }
body.pp-page .public-listing-status-pending .public-listing-media em { background: #6b5a35; }
body.pp-page .public-listing-price-row strong { color: var(--pp-navy); font: 500 1.5rem/1.2 var(--pp-head); letter-spacing: -0.02em; }
body.pp-page .public-listing-price-row span,
body.pp-page .public-listing-type-rent .public-listing-price-row span,
body.pp-page .public-listing-status-pending .public-listing-price-row span { border: 0; border-radius: 0; background: transparent; color: var(--pp-champagne-deep); font: 600 0.62rem/1 var(--pp-head); letter-spacing: 0.2em; text-transform: uppercase; }
body.pp-page .public-listing-stats { gap: 0; border-top: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); }
body.pp-page .public-listing-stats span { padding: 0.7rem 0.4rem; border: 0; border-right: 1px solid var(--pp-line); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page .public-listing-stats span:last-child { border-right: 0; }
body.pp-page .public-listing-body h2 { color: var(--pp-navy); font: 500 1.1rem/1.3 var(--pp-head); letter-spacing: -0.01em; }
body.pp-page .public-listing-location { color: var(--pp-champagne-deep); font: 600 0.62rem var(--pp-head); letter-spacing: 0.2em; }
body.pp-page .public-listing-address { color: var(--pp-ink); font: 400 0.92rem/1.5 var(--pp-body); }
body.pp-page .public-listing-agent { border: 0; border-top: 1px solid var(--pp-line); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page .public-listing-link { border: 1px solid var(--pp-line-strong); border-radius: var(--pp-radius); background: #ffffff; box-shadow: none; color: var(--pp-navy); font: 600 0.68rem/1 var(--pp-head); letter-spacing: 0.14em; text-transform: uppercase; }
body.pp-page .public-listing-actions .btn-primary { border-radius: var(--pp-radius); box-shadow: none; font: 600 0.68rem/1 var(--pp-head); letter-spacing: 0.14em; text-transform: uppercase; }
body.pp-page .public-listing-body li::before { border-radius: 0; width: 0.4rem; height: 1px; background: var(--pp-champagne-deep); vertical-align: 0.3em; }

body.listings-page .listing-fallback-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4rem); margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: clamp(2.5rem, 5vw, 3.5rem); border-top: 1px solid var(--pp-line); }
body.listings-page .listing-fallback-content > section { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.listings-page .listing-fallback-content > section > span { color: var(--pp-champagne-deep); font: 500 0.7rem/1.3 var(--pp-head); letter-spacing: 0.26em; text-transform: uppercase; }
body.listings-page .listing-fallback-content h2 { margin: 0.8rem 0; color: var(--pp-navy); font: 500 1.6rem/1.2 var(--pp-head); letter-spacing: -0.02em; }
body.listings-page .listing-fallback-content p { color: var(--pp-muted); font: 300 1rem/1.7 var(--pp-body); }
body.listings-page .listing-fallback-content .btn-primary { border-radius: var(--pp-radius); font: 600 0.74rem/1 var(--pp-head); letter-spacing: 0.16em; text-transform: uppercase; }
@media (max-width: 760px) { body.listings-page .listing-fallback-content { grid-template-columns: 1fr; } }

/* ---------- agent contact pages ---------- */
body .pp-broker { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1.6rem; align-items: start; margin-top: 2.6rem; padding-top: 2rem; border-top: 1px solid var(--pp-champagne); }
body .pp-broker-photo { display: block; width: 150px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 10%; border-radius: var(--pp-radius-card); }
body .pp-broker h2 { margin: 0; color: var(--pp-navy); font: 500 1.3rem/1.2 var(--pp-head); letter-spacing: -0.02em; }
body .pp-broker .pp-broker-tag { margin: 0.3rem 0 1rem; color: var(--pp-champagne-deep); font: 600 0.66rem/1.4 var(--pp-head); letter-spacing: 0.2em; text-transform: uppercase; }
body .pp-broker p { margin: 0 0 0.8rem; color: var(--pp-muted); font: 300 0.98rem/1.7 var(--pp-body); }
body .pp-broker .pp-broker-cta { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--pp-line); font-weight: 400; }
body .pp-broker a { color: var(--pp-navy); text-underline-offset: 3px; }
@media (max-width: 640px) { body .pp-broker { grid-template-columns: 1fr; } body .pp-broker-photo { width: 120px; } }

/* ---------- listing detail (rendered by property-listing.js) ---------- */
body.pp-page.property-page .property-back-link { color: var(--pp-navy); font: 600 0.72rem var(--pp-head); letter-spacing: 0.16em; text-transform: uppercase; }
body.pp-page.property-page .pg-frame,
body.pp-page.property-page .pg img { border-radius: var(--pp-radius-card); }
body.pp-page.property-page .pg-viewall,
body.pp-page.property-page .pg-counter { border-radius: 3px; font: 600 0.7rem var(--pp-head); letter-spacing: 0.12em; text-transform: uppercase; }

body.pp-page.property-page .property-price-main strong { color: var(--pp-navy); font: 500 clamp(2.4rem, 4.4vw, 3.4rem)/1.05 var(--pp-head); letter-spacing: -0.035em; }
body.pp-page.property-page .property-price-main span { color: var(--pp-champagne-deep); font: 600 0.68rem var(--pp-head); letter-spacing: 0.22em; text-transform: uppercase; }
body.pp-page.property-page .property-price-stats { gap: 0; border-top: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); }
body.pp-page.property-page .property-price-stats span,
body.pp-page.property-page .property-price-stats > * { border: 0; border-right: 1px solid var(--pp-line); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page.property-page .property-price-stats > *:last-child { border-right: 0; }

body.pp-page.property-page .property-listing-summary h1,
body.pp-page.property-page .property-overview-copy h2,
body.pp-page.property-page .property-section-heading h2,
body.pp-page.property-page .property-agent-feature h2,
body.pp-page.property-page .property-showing-cta h2 { color: var(--pp-navy); font: 500 clamp(1.7rem, 3vw, 2.4rem)/1.12 var(--pp-head); letter-spacing: -0.03em; }
body.pp-page.property-page .property-section-kicker,
body.pp-page.property-page .property-section-heading span,
body.pp-page.property-page .property-eyebrow-row span { color: var(--pp-champagne-deep); font: 500 0.7rem/1.3 var(--pp-head); letter-spacing: 0.24em; text-transform: uppercase; }
body.pp-page.property-page .property-overview-copy p,
body.pp-page.property-page .property-listing-summary p { color: var(--pp-ink); font: 300 1.05rem/1.8 var(--pp-body); }

body.pp-page.property-page .property-highlight-panel { border: 0; border-top: 1px solid var(--pp-champagne); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page.property-page .property-highlight-panel li::before,
body.pp-page.property-page .property-contact-promises li::before { content: ""; display: inline-block; width: 0.5rem; height: 1px; margin-right: 0.6rem; border: 0; border-radius: 0; background: var(--pp-champagne-deep); box-shadow: none; vertical-align: 0.3em; color: transparent; font-size: 0; }

body.pp-page.property-page .property-primary-action,
body.pp-page.property-page .property-secondary-action,
body.pp-page.property-page .property-showing-button,
body.pp-page.property-page .property-contact-actions a,
body.pp-page.property-page .property-contact-actions button,
body.pp-page.property-page .property-hero-actions a,
body.pp-page.property-page .property-hero-actions button { border-radius: var(--pp-radius); box-shadow: none; font: 600 0.7rem/1 var(--pp-head); letter-spacing: 0.14em; text-transform: uppercase; }

body.pp-page.property-page .property-contact-card { border: 0; border-top: 2px solid var(--pp-champagne); border-radius: var(--pp-radius-card); background: #ffffff; box-shadow: 0 24px 60px rgba(15, 39, 68, 0.12); }
body.pp-page.property-page .property-contact-card::before { display: none; }
body.pp-page.property-page .property-contact-card h2,
body.pp-page.property-page .property-contact-card h3 { color: var(--pp-navy); font: 500 1.35rem/1.2 var(--pp-head); letter-spacing: -0.02em; }

body.pp-page.property-page .property-fact-table { border-radius: 0; box-shadow: none; }
body.pp-page.property-page .property-financing-card,
body.pp-page.property-page .property-map-card,
body.pp-page.property-page .property-land-financing-card { border: 0; border-top: 1px solid var(--pp-champagne); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page.property-page .property-land-financing-icon,
body.pp-page.property-page .property-map-pin { display: none; }
body.pp-page.property-page .property-financing-card h3,
body.pp-page.property-page .property-map-card h3,
body.pp-page.property-page .property-land-financing-card h3 { color: var(--pp-navy); font: 500 1.3rem/1.25 var(--pp-head); letter-spacing: -0.02em; }

body.pp-page.property-page .property-agent-feature { border: 0; border-top: 1px solid var(--pp-champagne); border-radius: 0; background: transparent; box-shadow: none; }
body.pp-page.property-page .property-showing-cta { background: var(--pp-navy); }
body.pp-page.property-page .property-showing-cta h2 { color: #ffffff; }
body.pp-page.property-page .property-offer-modeler,
body.pp-page.property-page .property-offer-result { border-radius: var(--pp-radius-card); box-shadow: none; }

body .pp-hero-copy, body .pp-hero-inner > * { min-width: 0; }
body .pp-btn, body .pp-btn-light, body .pp-btn-ghost { text-align: center; }
@media (max-width: 720px) {
    body .pp-actions { width: 100%; }
    body .pp-band .pp-actions { flex: 1 1 100%; }
    body .pp-actions .pp-btn,
    body .pp-actions .pp-btn-light,
    body .pp-actions .pp-btn-ghost { flex: 1 1 100%; max-width: 100%; padding-inline: 1rem; }
    body .pp-band-inner > div:first-child { flex-basis: 100%; }
}

@media (max-width: 720px) {
  body .pp-portrait img, body .pp-portrait figcaption { max-width: 280px; }
  body .pp-photo-card img { aspect-ratio: 16 / 9; }
}


body.pp-page.property-page .property-price-main strong { color: var(--pp-navy) !important; }
body.pp-page.property-page .property-fact-grid { background: var(--pp-line, #e5e9ef) !important; border-color: var(--pp-line, #e5e9ef) !important; }
body.pp-page.property-page .property-fact-grid span { background: #ffffff !important; }


/* mortgage results panel: light text on navy */
body.mortgage-calculator-page .mortgage-results > span { color: var(--pp-champagne); font: 600 0.72rem/1.3 var(--pp-head); letter-spacing: 0.22em; text-transform: uppercase; }
body.mortgage-calculator-page .mortgage-results > strong { color: #ffffff; font-weight: 500; }
body.mortgage-calculator-page .mortgage-results dt { color: rgba(255, 255, 255, 0.72); }
body.mortgage-calculator-page .mortgage-results dd,
body.mortgage-calculator-page .mortgage-results b { color: #ffffff; }
body.mortgage-calculator-page .mortgage-results small { color: rgba(255, 255, 255, 0.7); }
body.mortgage-calculator-page .mortgage-results p { color: rgba(255, 255, 255, 0.66); }
body.mortgage-calculator-page .mortgage-results .btn-primary { background: #ffffff; color: var(--pp-navy); }
body.mortgage-calculator-page .mortgage-summary-grid, body.mortgage-calculator-page .mortgage-summary-grid > div { background: rgba(255, 255, 255, 0.08) !important; border-color: rgba(255, 255, 255, 0.14) !important; }

/* ---------- footer ----------
   One flat navy, identical to the top utility bar (#0f2744).
   Layout (desktop): brand + phone + address | link columns
                     licensing strip (two brokerages side by side)
                     affiliations left, copyright right, one hairline.
   Existing markup is kept; wrappers are flattened with display: contents. */
body footer {
    padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(1.8rem, 4vw, 2.4rem);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    background: var(--pp-navy);
    background-image: none;
    color: rgba(255, 255, 255, 0.8);
    text-align: left;
}

body footer .footer-legal {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
        "brand links"
        "phone links"
        "addr  links"
        "lic   lic"
        "bottom bottom";
    column-gap: clamp(2rem, 6vw, 5rem);
    row-gap: 0;
    align-items: start;
    justify-items: stretch;
    width: min(100% - 3rem, var(--pp-width));
    max-width: none;
    margin: 0 auto;
    padding: 0;
    text-align: left;
}

body footer .footer-topline,
body footer .footer-identity,
body footer .footer-license-intro { display: contents; }

/* brand */
body footer .footer-brand {
    grid-area: brand;
    justify-self: start;
    margin: 0 0 1rem;
    color: #ffffff;
    font: 500 1.35rem/1.2 var(--pp-head);
    letter-spacing: -0.02em;
}

body:not(.referral-network-page) footer .footer-brand {
    width: clamp(190px, 18vw, 232px);
    aspect-ratio: 1245 / 580;
    font-size: 0;
    line-height: 0;
    color: transparent;
    background: url("/assets/live-florida-now-logo-hero-white.png") no-repeat left center / contain;
    background-image: image-set(url("/assets/live-florida-now-logo-hero-white.webp") type("image/webp"), url("/assets/live-florida-now-logo-hero-white.png") type("image/png"));
    overflow: hidden;
}

/* tagline is redundant next to the licensing strip */
body footer .footer-license-intro > p:not(.footer-brand) { display: none; }
body footer .footer-contact-link {
    grid-area: phone;
    justify-self: start;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #ffffff;
    font: 500 1.05rem/1.3 var(--pp-head);
    letter-spacing: 0.04em;
}

body footer .footer-address {
    grid-area: addr;
    margin: 0.55rem 0 0;
    color: rgba(255, 255, 255, 0.68);
    font: 400 0.9rem/1.5 var(--pp-body);
    font-style: normal;
    text-align: left;
}

/* link columns: no underlines or rules, regular weight */
body footer .footer-links {
    grid-area: links;
    display: block;
    column-count: 2;
    column-gap: clamp(1.5rem, 4vw, 3rem);
    margin: 0;
    padding: 0;
    justify-content: start;
    justify-items: start;
    text-align: left;
}

body footer .footer-links a {
    display: block;
    width: 100%;
    margin: 0;
    break-inside: avoid;
    padding: 0.32rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.78);
    font: 400 0.92rem/1.4 var(--pp-body);
    letter-spacing: 0;
    text-align: left;
    text-decoration: none;
    text-transform: none;
}

body footer .footer-links a:hover,
body footer .footer-links a:focus-visible {
    background: transparent;
    color: #ffffff;
    text-decoration: none;
}

/* licensing strip */
body footer .footer-license-grid {
    grid-area: lic;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem clamp(2rem, 6vw, 5rem);
    width: 100%;
    margin-top: clamp(2rem, 4vw, 2.8rem);
    padding-top: clamp(1.4rem, 3vw, 1.8rem);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

body footer .footer-license-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
}

body footer .footer-license-eyebrow {
    color: var(--pp-champagne-light);
    font: 500 0.64rem/1.3 var(--pp-head);
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

body footer .footer-license-card strong { color: #ffffff; font: 500 0.98rem/1.35 var(--pp-head); }

body footer .footer-license-card span:not(.footer-license-eyebrow) {
    display: block;
    color: rgba(255, 255, 255, 0.68);
    font: 400 0.82rem/1.5 var(--pp-body);
    text-align: left;
}

/* bottom row */
body footer .footer-logos {
    grid-area: bottom;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem 2rem;
    margin: clamp(1.6rem, 3vw, 2rem) 0 0;
    padding: clamp(1.4rem, 3vw, 1.8rem) 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    opacity: 0.9;
}

body footer .footer-logos img { width: auto; max-width: 100%; }
body footer .footer-logo-strip { height: 40px; }
body footer .footer-logo-orra { height: 50px; }
body footer .footer-logo-badge { display: inline-flex; align-items: center; }

body footer .footer-copy {
    grid-area: bottom;
    align-self: end;
    justify-self: end;
    margin: 0;
    color: rgba(255, 255, 255, 0.62);
    font: 400 0.78rem/1.5 var(--pp-body);
    text-align: right;
}

@media (max-width: 860px) {
    body footer .footer-legal {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "brand"
            "phone"
            "addr"
            "links"
            "lic"
            "logos"
            "copy";
    }
    body footer .footer-links { margin-top: 1.6rem; }
    body footer .footer-license-grid { grid-template-columns: minmax(0, 1fr); }
    body footer .footer-logos { grid-area: logos; }
    body footer .footer-copy { grid-area: copy; justify-self: start; margin-top: 1.2rem; text-align: left; }
}

@media (max-width: 480px) {
    body footer .footer-legal { width: min(100% - 2rem, var(--pp-width)); }
}
