/* =============================================================================
   Theme 1 — ESTATE editorial overlay (aligned with buyers-agents deck)
   Ink navy · bone ivory · antique brass · Playfair + DM Sans + DM Mono
   Loaded after public.css (and page CSS); remaps --ehl-* tokens where practical.
   ============================================================================= */

:root {
    --ehl-blue: #B08A4A;
    --ehl-blue-dark: #8B6A33;
    --ehl-blue-light: #ECE7DD;
    --ehl-blue-pale: #FBF8F1;
    --ehl-bg: #F5F1E8;
    --ehl-white: #FFFCF6;
    --ehl-field-bg: #FBF8F1;
    --ehl-text: #0E1A2B;
    --ehl-text-sec: #6E665C;
    --ehl-text-light: #8A8278;
    --ehl-border: rgba(14, 26, 43, 0.14);
    --ehl-shadow-sm: 0 1px 4px rgba(14, 26, 43, 0.06);
    --ehl-shadow-md: 0 4px 24px rgba(14, 26, 43, 0.08);
    --ehl-shadow-lg: 0 12px 40px rgba(14, 26, 43, 0.12);
    --ehl-radius: 2px;
    --ehl-footer-bg: #0E1A2B;

    --estate-ink: #0E1A2B;
    --estate-ink-soft: #1F2C3E;
    --estate-bone: #F5F1E8;
    --estate-cream: #FBF8F1;
    --estate-paper: #FFFCF6;
    --estate-stone: #ECE7DD;
    --estate-brass: #B08A4A;
    --estate-brass-soft: #D9C39A;
    --estate-brass-deep: #8B6A33;
    --estate-charcoal: #2A2622;
    --estate-mute: #6E665C;
    --estate-hair: rgba(14, 26, 43, 0.14);
    --estate-hair-light: rgba(245, 241, 232, 0.18);

    --estate-serif: "Playfair Display", Georgia, serif;
    --estate-sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --estate-mono: "DM Mono", ui-monospace, "JetBrains Mono", monospace;
}

body {
    font-family: var(--estate-sans);
}

/* Typography ---------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--estate-serif);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--estate-ink);
}

.hero-image h1,
.hero-image h2 {
    color: #fff;
}

.hero-image h1 {
    margin-bottom: 20px;
}

.hero-compact h1 {
    font-weight: 500;
}

.hero-lead-title,
.detail-price,
.card-price {
    font-family: var(--estate-serif);
}

.affordability-panel-title,
.affordability-buyer-costs-ai-title,
.affordability-matching-properties-title {
    font-family: var(--estate-serif);
    font-weight: 500;
    letter-spacing: -0.015em;
}

.detail-location {
    font-family: var(--estate-serif);
}

/* Utilities (deck) ----------------------------------------------------------- */
.ital {
    font-family: var(--estate-serif);
    font-style: italic;
    font-weight: 400;
    color: var(--estate-brass);
}

.hero-image .ital {
    color: var(--estate-brass-soft);
}

/* Public section headings — editorial serif + brass italic accent (hero .ital) */
.home-section-heading,
.results-header h2,
.opp-results-header h2,
.fhb-section-title,
.fhb-hub-section-title,
.section-box-text h2,
.sp-page-title,
.nad-title {
    font-family: var(--estate-serif);
    font-weight: 500;
    font-size: clamp(1.35rem, 2.6vw, 1.95rem);
    letter-spacing: -0.025em;
    line-height: 1.18;
    color: var(--estate-ink);
}

.home-section-heading--compact,
.news-sidebar-heading,
.sp-module h2,
.referral-form-card h2,
.resource-lead-form-title,
.hub-contact-form-title {
    font-family: var(--estate-serif);
    font-weight: 500;
    font-size: clamp(1.1rem, 2vw, 1.45rem);
    letter-spacing: -0.02em;
    line-height: 1.22;
    color: var(--estate-ink);
}

.fsr-section-heading {
    font-family: var(--estate-serif);
    font-weight: 500;
    font-size: clamp(1.35rem, 2.6vw, 1.95rem);
    letter-spacing: -0.025em;
    line-height: 1.18;
    color: var(--estate-ink);
}

.sp-enquiry-header h2 {
    font-family: var(--estate-serif);
    font-weight: 500;
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--estate-ink);
}

.sp-module-dark h2 {
    color: rgba(255, 252, 246, 0.92);
}

.sp-module-dark h2 .ital {
    color: var(--estate-brass-soft);
}

.eyebrow {
    font-family: var(--estate-sans);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--estate-brass);
    margin-bottom: 16px;
}

.hero-image .eyebrow {
    color: var(--estate-brass-soft);
    letter-spacing: 0.28em;
}

a {
    color: var(--estate-brass-deep);
}

a:hover {
    color: var(--estate-brass);
}

/* Navigation ---------------------------------------------------------------- */
.site-nav {
    background: var(--estate-paper);
    border-bottom: 1px solid var(--estate-hair);
}

.nav-link {
    border-radius: 0;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid var(--estate-hair);
    background: transparent;
}

.nav-link:hover {
    background: var(--estate-stone);
    color: var(--estate-ink);
    border-color: rgba(176, 138, 74, 0.35);
    box-shadow: none;
    text-decoration: none;
}

.nav-link.active {
    background: var(--estate-ink);
    color: var(--estate-bone);
    border-color: var(--estate-ink);
    box-shadow: none;
}

.nav-link-admin {
    border-color: rgba(176, 138, 74, 0.35);
}

.nav-link-admin:hover {
    background: var(--estate-ink);
    color: var(--estate-bone);
    border-color: var(--estate-ink);
}

.nav-link.nav-link-members,
.nav-member-badge {
    border-radius: 0;
}

.nav-link.nav-link-members:hover {
    border-color: rgba(176, 138, 74, 0.45);
    color: var(--estate-brass-deep);
}

.nav-member-avatar {
    background: var(--estate-ink);
    border-radius: 0;
}

.nav-member-badge.active {
    background: var(--estate-ink);
    border-color: var(--estate-ink);
}

.nav-member-badge.active .nav-member-avatar {
    background: var(--estate-bone);
    color: var(--estate-ink);
}

/* Transparent nav over hero */
.page-home .site-nav.nav-scrolled,
.page-opportunities .site-nav.nav-scrolled,
.page-suburb-profiles .site-nav.nav-scrolled,
.page-news .site-nav.nav-scrolled,
.page-fhb-hub .site-nav.nav-scrolled,
.page-suburb-detail .site-nav.nav-scrolled,
.page-property-detail .site-nav.nav-scrolled,
.page-member .site-nav.nav-scrolled {
    background: var(--estate-paper);
    box-shadow: 0 2px 12px rgba(14, 26, 43, 0.06);
    border-bottom: 1px solid var(--estate-hair);
}

.page-home .site-nav.nav-scrolled .nav-link:hover,
.page-opportunities .site-nav.nav-scrolled .nav-link:hover,
.page-suburb-profiles .site-nav.nav-scrolled .nav-link:hover,
.page-news .site-nav.nav-scrolled .nav-link:hover,
.page-fhb-hub .site-nav.nav-scrolled .nav-link:hover,
.page-suburb-detail .site-nav.nav-scrolled .nav-link:hover,
.page-property-detail .site-nav.nav-scrolled .nav-link:hover,
.page-member .site-nav.nav-scrolled .nav-link:hover {
    background: var(--estate-stone);
    color: var(--estate-ink);
    border-color: rgba(176, 138, 74, 0.35);
}

.page-home .site-nav.nav-scrolled .nav-link.active,
.page-opportunities .site-nav.nav-scrolled .nav-link.active,
.page-suburb-profiles .site-nav.nav-scrolled .nav-link.active,
.page-news .site-nav.nav-scrolled .nav-link.active,
.page-fhb-hub .site-nav.nav-scrolled .nav-link.active,
.page-suburb-detail .site-nav.nav-scrolled .nav-link.active,
.page-property-detail .site-nav.nav-scrolled .nav-link.active,
.page-member .site-nav.nav-scrolled .nav-link.active {
    background: var(--estate-ink);
    color: var(--estate-bone);
    border-color: var(--estate-ink);
}

.page-home .nav-link,
.page-opportunities .nav-link,
.page-suburb-profiles .nav-link,
.page-news .nav-link,
.page-fhb-hub .nav-link,
.page-suburb-detail .nav-link,
.page-property-detail .nav-link,
.page-member .nav-link {
    background: rgba(255, 252, 246, 0.12);
    color: rgba(255, 252, 246, 0.92);
    border-color: rgba(217, 195, 154, 0.45);
}

.page-home .nav-link:hover,
.page-opportunities .nav-link:hover,
.page-suburb-profiles .nav-link:hover,
.page-news .nav-link:hover,
.page-fhb-hub .nav-link:hover,
.page-suburb-detail .nav-link:hover,
.page-property-detail .nav-link:hover,
.page-member .nav-link:hover {
    background: rgba(255, 252, 246, 0.22);
    color: #fff;
    border-color: var(--estate-brass-soft);
}

.page-home .nav-link.active,
.page-opportunities .nav-link.active,
.page-suburb-profiles .nav-link.active,
.page-news .nav-link.active,
.page-fhb-hub .nav-link.active,
.page-suburb-detail .nav-link.active,
.page-property-detail .nav-link.active,
.page-member .nav-link.active {
    background: var(--estate-ink);
    color: var(--estate-bone);
    border-color: var(--estate-brass);
}

/* Hero ---------------------------------------------------------------------- */
.hero {
    background: var(--estate-cream);
    border-bottom: 1px solid var(--estate-hair);
}

.hero-compact {
    background: linear-gradient(180deg, var(--estate-cream) 0%, var(--estate-bone) 100%);
    border-bottom: 1px solid var(--estate-hair);
}

.hero-compact .hero-blob path {
    fill: rgba(176, 138, 74, 0.08);
}

.hero-overlay {
    background: linear-gradient(
        to right,
        rgba(7, 17, 30, 0.92) 0%,
        rgba(14, 26, 43, 0.72) 45%,
        rgba(14, 26, 43, 0.22) 72%,
        transparent 100%
    );
}

.hero h1 {
    font-family: var(--estate-serif);
    font-weight: 500;
}

.hero-image h1 {
    font-weight: 500;
    letter-spacing: -0.025em;
}

.hero-sub {
    color: var(--estate-mute);
}

.hero-image .hero-sub {
    color: rgba(245, 241, 232, 0.78);
}

.hero-cta {
    border-radius: 0;
    background: var(--estate-ink);
    color: var(--estate-bone);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-size: 0.78rem;
    padding: 14px 28px;
    border: 1px solid var(--estate-ink);
}

.hero-cta:hover {
    background: var(--estate-brass);
    color: var(--estate-bone);
    border-color: var(--estate-brass);
    box-shadow: none;
}

.hero-lead-card {
    border-radius: 0;
    background: var(--estate-paper);
    border: 1px solid var(--estate-hair);
    box-shadow: var(--ehl-shadow-lg);
}

.hero-lead-field input,
.hero-lead-field select {
    border-radius: 0;
    background: var(--estate-cream);
}

.hero-lead-field input:focus,
.hero-lead-field select:focus {
    border-color: var(--estate-brass);
    box-shadow: 0 0 0 3px rgba(176, 138, 74, 0.18);
}

.hero-lead-btn {
    border-radius: 0;
    background: var(--estate-ink);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-size: 0.75rem;
}

.hero-lead-btn:hover {
    background: var(--estate-brass-deep);
    box-shadow: none;
}

.hero-trust-points li svg {
    color: var(--estate-brass-soft);
}

/* Search bar & panels ------------------------------------------------------- */
.search-filter-bar {
    background: var(--estate-paper);
    border-bottom: 1px solid var(--estate-hair);
    box-shadow: none;
}

.hero-search-panel {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    box-shadow: var(--ehl-shadow-lg);
}

.hero-search-row .search-input,
.hero-search-row .search-select {
    background: var(--estate-cream);
}

.search-btn {
    border-radius: 0;
    background: var(--estate-ink);
    color: var(--estate-bone);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.72rem;
}

.search-btn:hover {
    background: var(--estate-brass-deep);
}

/* Property cards ------------------------------------------------------------ */
.prop-card {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    box-shadow: none;
}

.prop-card:hover {
    box-shadow: none;
    border-color: rgba(176, 138, 74, 0.45);
}

.prop-card.prop-card-featured:hover {
    box-shadow: var(--ehl-shadow-md);
    transform: translateY(-2px);
    border-color: rgba(176, 138, 74, 0.5);
}

.card-image {
    background: var(--estate-stone);
}

.card-image img {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.card-type-badge {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.card-added-badge.card-added-today {
    background: var(--estate-ink);
}

.card-added-badge.card-added-recent {
    background: rgba(176, 138, 74, 0.92);
}

.card-features {
    border-top-color: var(--estate-hair);
}

/* Detail page --------------------------------------------------------------- */
.detail-gallery {
    background: var(--estate-cream);
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.gallery-carousel-slide {
    background: var(--estate-cream);
}

.gallery-carousel-prev,
.gallery-carousel-next {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.detail-breadcrumb a {
    color: var(--estate-brass-deep);
}

/* Footer -------------------------------------------------------------------- */
.site-footer {
    border-top: 1px solid rgba(217, 195, 154, 0.12);
}

.footer-grid {
    border-bottom-color: rgba(217, 195, 154, 0.18);
}

.footer-col h4 {
    font-family: var(--estate-serif);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.82rem;
    border-bottom-color: rgba(217, 195, 154, 0.22);
    color: rgba(245, 241, 232, 0.92);
}

.footer-col ul a:hover {
    color: var(--estate-brass-soft);
}

.footer-social:hover {
    color: var(--estate-brass-soft);
}

.footer-bottom-links a:hover {
    color: var(--estate-brass-soft);
}

/* Forms & legal pages ------------------------------------------------------- */
.legal-content {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    background: var(--estate-paper);
}

.referral-form-card,
.contact-form-card {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.btn-referral {
    border-radius: 0;
    background: var(--estate-ink);
    color: var(--estate-bone);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.75rem;
    font-weight: 600;
}

.btn-referral:hover {
    background: var(--estate-brass-deep);
}

.btn-referral-submit {
    border-radius: 0;
    background: var(--estate-ink);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.btn-referral-submit:hover:not(:disabled) {
    background: var(--estate-brass-deep);
}

/* Mailing / community ------------------------------------------------------- */
.mailing-btn {
    border-radius: 0;
    background: var(--estate-ink);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 0.72rem;
}

.mailing-btn:hover:not(:disabled) {
    background: var(--estate-brass-deep);
}

.spinner {
    border-top-color: var(--estate-brass);
}

/* News (news.css) ----------------------------------------------------------- */
.news-main-wrap {
    background: var(--estate-bone);
}

.news-no-articles {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    box-shadow: none;
}

.nad-article {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    box-shadow: none;
}

.nad-tag-inline {
    border-radius: 0;
    background: var(--estate-brass);
}

.nsl-item,
.nst-btn,
.news-sidebar-widget {
    border-radius: 0;
}

.nsl-thumb,
.nsl-thumb--placeholder {
    border-radius: 0;
}

.nst-count {
    border-radius: 0;
}

.nst-btn--active {
    background: var(--estate-ink);
}

.news-sidebar-search-btn {
    border-radius: 0;
    background: var(--estate-ink);
    color: var(--estate-bone);
}

.news-sidebar-search-btn:hover {
    background: var(--estate-brass-deep);
}

/* Opportunities toolbar (opportunities.css uses vars where possible) -------- */
.opp-search-toolbar-input,
.opp-search-toolbar-select {
    border-radius: 0;
}

/* Suburb profile page ------------------------------------------------------- */
.sp-hero-image {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.sp-page-title {
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--estate-brass);
}

/* Hub pages ----------------------------------------------------------------- */
.fhb-hub-intro {
    color: var(--estate-mute);
}

.auth-modal {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

.auth-modal-body .btn-member {
    border-radius: 0;
    background: var(--estate-ink);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
}

.auth-modal-body .btn-member:hover {
    background: var(--estate-brass-deep);
}

/* Property map -------------------------------------------------------------- */
.property-map-wrap {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
}

/* Member pages (login, register, account, forgot-password, reset-password,
   verify-email, unsubscribe) — all use .page-member + .member-card ---------- */
.member-card {
    border-radius: 0;
    border: 1px solid var(--estate-hair);
    background: var(--estate-paper);
}

.member-card h2 {
    font-family: var(--estate-serif);
    font-weight: 500;
    letter-spacing: -0.015em;
}

.member-card .section-title {
    font-family: var(--estate-serif);
    font-weight: 500;
}

.member-card .form-field input {
    border-radius: 0;
    background: var(--estate-cream);
}

.member-card .form-field input:focus {
    border-color: var(--estate-brass);
    box-shadow: 0 0 0 3px rgba(176, 138, 74, 0.18);
}

.code-input-wrapper input {
    border-radius: 0;
    border-color: var(--estate-hair);
    font-family: var(--estate-serif);
}

.code-input-wrapper input:focus {
    border-color: var(--estate-brass);
    box-shadow: 0 0 0 3px rgba(176, 138, 74, 0.18);
}

.member-card .btn-member {
    border-radius: 0;
    background: var(--estate-ink);
    color: var(--estate-bone);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.78rem;
    font-weight: 600;
}

.member-card .btn-member:hover {
    background: var(--estate-brass-deep);
    box-shadow: none;
}

.member-msg {
    border-radius: 0;
}

.info-badge {
    border-radius: 0;
    letter-spacing: 0.14em;
}

.info-badge-verified {
    background: var(--estate-stone);
    color: var(--estate-brass-deep);
}

.member-card .card-link:hover {
    color: var(--estate-brass-deep);
}

.member-card .card-divider a,
.member-card .resend-row button {
    color: var(--estate-brass-deep);
}

/* 404 ----------------------------------------------------------------------- */
.page-404 .ehl-404-links a {
    border-radius: 0;
    border-color: var(--estate-hair);
    background: var(--estate-paper);
}

.page-404 .ehl-404-links a:hover {
    border-color: rgba(176, 138, 74, 0.45);
    background: var(--estate-cream);
}

/* Reduce residual teal glow on decorative elements */
.hero-blob path[fill*="32,158,187"] {
    fill: rgba(176, 138, 74, 0.07);
}

/* Responsive: keep shape tweaks from public.css; colours only -------------- */
@media (max-width: 900px) {
    .nav-link {
        border-radius: 0;
    }
}
