:root {
    --ink: #17211d;
    --muted: #5f6862;
    --paper: #fbfaf7;
    --soft: #f1eee8;
    --line: #ded8cf;
    --pine: #23443a;
    --blue: #315f72;
    --gold: #b78135;
    --white: #ffffff;
    --danger: #8b2d2d;
    --shadow: 0 18px 45px rgba(23, 33, 29, .12);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    top: -80px;
    left: 1rem;
    z-index: 20;
    padding: .75rem 1rem;
    background: var(--ink);
    color: var(--white);
}
.skip-link:focus { top: 1rem; }

.brokerage-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .35rem .9rem;
    padding: .48rem clamp(1rem, 4vw, 3rem);
    color: var(--ink);
    background: var(--soft);
    border-bottom: 1px solid var(--line);
    font-size: .9rem;
    font-weight: 700;
}
.brokerage-bar span:nth-child(2) {
    color: var(--muted);
    font-weight: 600;
}
.brokerage-bar a {
    color: var(--blue);
    text-decoration: none;
}
.brokerage-bar a:hover, .brokerage-bar a:focus-visible { text-decoration: underline; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .72rem clamp(1rem, 4vw, 3rem);
    color: var(--white);
    background: rgba(23, 33, 29, .96);
    border-bottom: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(12px);
}
.brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    text-decoration: none;
    min-width: 0;
}
.brand-logo {
    width: clamp(9.25rem, 18vw, 13.5rem);
    max-height: 3.1rem;
    object-fit: contain;
    object-position: left center;
    flex: 0 0 auto;
}
.brand-text {
    display: block;
    min-width: 0;
    padding-left: .75rem;
    border-left: 1px solid rgba(255,255,255,.2);
}
.brand-text strong { display: block; line-height: 1.05; }
.brand small { display: block; color: rgba(255,255,255,.68); line-height: 1.1; }
.site-nav { display: flex; align-items: center; gap: .35rem; }
.site-nav a {
    padding: .65rem .8rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 650;
}
.site-nav a:hover, .site-nav a:focus-visible { background: rgba(255,255,255,.1); outline: none; }
.site-nav .nav-cta { color: var(--ink); background: var(--white); }
.nav-toggle {
    display: none;
    position: relative;
    align-items: center;
    justify-content: center;
    width: 2.9rem;
    height: 2.9rem;
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 8px;
    color: var(--white);
    background: rgba(255,255,255,.08);
    cursor: pointer;
}
.nav-toggle span[aria-hidden="true"] {
    position: absolute;
    width: 1.25rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform .18s ease, opacity .18s ease;
}
.nav-toggle span[aria-hidden="true"]:nth-child(1) { transform: translateY(-6px); }
.nav-toggle span[aria-hidden="true"]:nth-child(3) { transform: translateY(6px); }
.nav-toggle[aria-expanded="true"] span[aria-hidden="true"]:nth-child(1) { transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] span[aria-hidden="true"]:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span[aria-hidden="true"]:nth-child(3) { transform: rotate(-45deg); }

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    min-height: 78vh;
    gap: 2rem;
    align-items: end;
    padding: clamp(3rem, 7vw, 6rem) clamp(1rem, 5vw, 5rem);
    background:
        linear-gradient(120deg, rgba(35, 68, 58, .92), rgba(23, 33, 29, .72)),
        radial-gradient(circle at 82% 24%, rgba(183, 129, 53, .30), transparent 28%),
        linear-gradient(135deg, #385a4f, #c9bca4);
    color: var(--white);
}
.hero-home {
    align-items: end;
    min-height: calc(100vh - 4.75rem);
    background:
        linear-gradient(110deg, rgba(23, 33, 29, .88) 0%, rgba(23, 33, 29, .72) 45%, rgba(23, 33, 29, .28) 100%),
        url("/static/img/owned/hero-birmingham-condo.9fd277157e49.webp") center / cover no-repeat;
}
.photo-story, .process-band, .recent-proof, .team-strip, .deep-section {
    width: min(1120px, calc(100% - 2rem));
    margin-inline: auto;
    padding: clamp(2rem, 5vw, 4rem) 0;
}
.photo-story {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 2rem;
    align-items: center;
}
.photo-collage {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: .75rem;
}
.photo-collage img, .media-card img, .wide-image {
    width: 100%;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--line);
}
.photo-collage img:first-child {
    grid-row: span 2;
    height: 420px;
}
.photo-collage img:not(:first-child) { height: 205px; }
.hero h1, .page-intro h1 {
    max-width: 920px;
    margin: 0;
    font-size: clamp(2.35rem, 5vw, 5rem);
    line-height: .98;
    letter-spacing: 0;
}
.lede {
    max-width: 780px;
    color: inherit;
    font-size: clamp(1.08rem, 2vw, 1.35rem);
}
.eyebrow {
    margin: 0 0 .75rem;
    color: var(--gold);
    font-weight: 800;
    text-transform: uppercase;
    font-size: .78rem;
    letter-spacing: .08em;
}
.hero-actions, .link-list, .tools-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .75rem 1rem;
    border: 1px solid transparent;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 800;
    cursor: pointer;
}
.button.primary { color: var(--white); background: var(--pine); }
.hero .button.primary { background: var(--white); color: var(--pine); }
.button.secondary { color: var(--pine); background: var(--soft); border-color: var(--line); }
.hero-panel {
    display: grid;
    gap: .55rem;
    align-self: center;
    align-content: start;
    justify-self: end;
    width: min(100%, 23rem);
    padding: .85rem;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(23,33,29,.78), rgba(23,33,29,.58));
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
    backdrop-filter: blur(8px);
}
.hero-panel a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 3rem;
    padding: .7rem .8rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 6px;
    color: var(--white);
    background: rgba(255,255,255,.08);
    font-weight: 750;
    text-decoration: none;
}
.hero-panel a::after {
    content: "";
    width: .45rem;
    height: .45rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .78;
    flex: 0 0 auto;
}
.hero-panel a:hover,
.hero-panel a:focus-visible {
    background: rgba(255,255,255,.16);
}

.home-hero-cta .hero-copy {
    align-self: center;
    max-width: 860px;
}
.hero-note {
    max-width: 680px;
    margin: .9rem 0 0;
    color: rgba(255,255,255,.78);
    font-weight: 650;
}
.home-quick-panel {
    align-self: center;
    gap: .7rem;
}
.home-quick-panel .eyebrow {
    grid-column: 1 / -1;
    margin: 0 .25rem;
    color: var(--gold);
}
.home-quick-panel a {
    display: grid;
    justify-content: stretch;
    gap: .2rem;
    min-height: 4.15rem;
}
.home-quick-panel a span {
    font-weight: 850;
    line-height: 1.15;
}
.home-quick-panel a small {
    max-width: 18rem;
    color: rgba(255,255,255,.76);
    font-size: .9rem;
    font-weight: 550;
    line-height: 1.35;
}
.home-action-band, .home-plain-section, .sold-proof-band, .home-link-band {
    width: min(1120px, calc(100% - 2rem));
    margin-inline: auto;
    padding: clamp(2rem, 5vw, 4rem) 0;
}
.home-action-band .section-heading {
    max-width: 760px;
}
.action-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.action-card {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: .75rem;
    min-height: 100%;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
    background: var(--white);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.action-card img {
    width: 4.8rem;
    aspect-ratio: 1;
    justify-self: start;
    object-fit: cover;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
}
.action-card h3 {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.15;
}
.action-card p {
    margin: 0;
    color: var(--muted);
}
.action-card span {
    color: var(--blue);
    font-weight: 850;
}
.action-card:hover,
.action-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: var(--shadow);
}
@media (min-width: 851px) {
    .action-card {
        padding: 1.35rem;
    }
    .action-card img {
        justify-self: center;
        width: clamp(6.5rem, 7vw, 8rem);
    }
}
.home-plain-section {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(280px, 1.14fr);
    gap: 1.5rem;
    align-items: start;
    border-top: 1px solid var(--line);
}
.home-plain-section h2 {
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.5rem);
    line-height: 1.1;
}
.detail-list {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.detail-list li {
    padding: 1rem;
    border-left: 4px solid var(--gold);
    border-radius: 0 8px 8px 0;
    background: var(--soft);
}
.detail-list strong {
    color: var(--pine);
}
.sold-proof-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    border-top: 1px solid var(--line);
}
.sold-proof-band h2 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.5rem);
    line-height: 1.1;
}
.sold-proof-band p:last-child {
    max-width: 820px;
    margin-bottom: 0;
    color: var(--muted);
}
.sold-proof-band .button {
    justify-self: end;
    white-space: nowrap;
}
.home-link-band {
    border-block: 1px solid var(--line);
}
.link-tile-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
.link-tile-grid a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 3.25rem;
    padding: .8rem .95rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--pine);
    background: var(--white);
    font-weight: 800;
    text-decoration: none;
}
.link-tile-grid a::after {
    content: "";
    width: .45rem;
    height: .45rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .65;
    flex: 0 0 auto;
}
.home-team-compact {
    padding-top: clamp(2rem, 5vw, 3.25rem);
}

.page-shell, .split-section, .band, .tools-strip, .cta-panel, .faq-section {
    width: min(1120px, calc(100% - 2rem));
    margin-inline: auto;
}
.page-shell { padding: clamp(2.5rem, 6vw, 5rem) 0; }
.page-intro {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--line);
    margin-bottom: 2rem;
}
.page-intro .lede { color: var(--muted); }
.updated, .privacy-note, .disclaimer, .footer-note { color: var(--muted); font-size: .95rem; }
.answer-box {
    max-width: 820px;
    margin-top: 1.25rem;
    padding: 1.25rem;
    border-left: 5px solid var(--gold);
    background: var(--soft);
    border-radius: 0 8px 8px 0;
}
.content-body {
    max-width: 820px;
    font-size: 1.05rem;
}
.content-body h2 { margin-top: 2rem; line-height: 1.2; }
.content-body a, .text-link { color: var(--blue); font-weight: 750; }

.sold-page-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    margin: 2rem 0 1rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    border-left: 5px solid var(--gold);
    border-radius: 0 8px 8px 0;
    background: var(--soft);
}
.sold-page-intro h2 {
    margin: 0;
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    line-height: 1.1;
}
.sold-page-intro p:last-child {
    max-width: 860px;
    margin-bottom: 0;
    color: var(--muted);
}
.sold-page-intro .button {
    justify-self: end;
    white-space: nowrap;
}

.split-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: clamp(2rem, 5vw, 4rem) 0;
}
.split-section > article, .split-section > div, .card, .calculator-card, .result-card, .notice {
    padding: 1.25rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.split-section.compact { width: 100%; }
.band {
    padding: clamp(2rem, 5vw, 4rem) 0;
}
.section-heading { margin-bottom: 1rem; }
.section-heading h2, .tools-strip h2, .cta-panel h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.5rem); line-height: 1.1; }
.card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.step-grid, .feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.step-grid article, .feature-grid article {
    padding: 1.2rem;
    border-top: 3px solid var(--gold);
    background: var(--white);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.step-grid span {
    color: var(--gold);
    font-weight: 900;
}
.media-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sold-property-gallery {
    width: 100%;
}
.sold-property-gallery .media-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.media-card {
    display: flex;
    flex-direction: column;
    padding: .5rem;
    overflow: hidden;
    border-radius: 8px;
    background: var(--white);
    border: 1px solid var(--line);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.media-card img {
    aspect-ratio: 16 / 9;
    height: auto;
    object-fit: contain;
    border: 0;
    border-radius: 6px;
    background: #111a17;
}
.media-card h3, .media-card p { margin-inline: .5rem; }
.media-card h3 { margin-top: .9rem; }
.media-card p { color: var(--muted); margin-bottom: 0; padding-bottom: .5rem; }
.sold-property-card span {
    margin: .75rem .5rem 0;
    color: var(--gold);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.sold-property-card h3 {
    margin-top: .25rem;
}
.sold-takeaway-section {
    margin: 1rem 0 2rem;
}
.team-strip {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 2rem;
    align-items: center;
}
.team-images {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
.team-images img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 8px;
    background: var(--soft);
}
.about-portrait {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 1rem;
    align-items: stretch;
    margin: 2rem 0;
}
.team-images-large {
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.about-note {
    display: grid;
    align-content: center;
    padding: clamp(1.25rem, 4vw, 2rem);
    border-radius: 8px;
    color: var(--white);
    background: var(--pine);
}
.about-note .eyebrow { color: var(--gold); }
.about-note h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.05; }
.about-note p:last-child { margin-bottom: 0; color: rgba(255,255,255,.84); }
.wide-image {
    max-height: 360px;
    margin-top: 1rem;
}
.property-showcase {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 1rem;
    align-items: stretch;
    margin: 2rem 0;
}
.property-showcase img {
    width: 100%;
    min-height: 360px;
    object-fit: cover;
    border-radius: 8px;
}
.property-facts {
    display: grid;
    align-content: center;
    padding: 1.5rem;
    border-radius: 8px;
    color: var(--white);
    background: var(--pine);
}
.property-facts span {
    color: var(--gold);
    font-weight: 900;
    text-transform: uppercase;
}
.property-facts strong {
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1;
}
.property-facts li { margin: .25rem 0; }
.card { text-decoration: none; color: var(--ink); }
.card h2, .card h3 { margin-top: 0; line-height: 1.15; }
.card p { color: var(--muted); margin-bottom: 0; }
.location-index { width: 100%; }
.location-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.location-card {
    display: grid;
    gap: .75rem;
    align-content: start;
}
.location-card .eyebrow { margin: 0; }
.area-preview {
    padding-top: .75rem;
    border-top: 1px solid var(--line);
    color: var(--pine) !important;
    font-size: .92rem;
    font-weight: 750;
}
.mini-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .25rem;
}
.mini-pills span {
    display: inline-flex;
    padding: .35rem .55rem;
    border-radius: 999px;
    color: var(--pine);
    background: var(--soft);
    font-size: .86rem;
    font-weight: 750;
}
.local-areas-section { width: 100%; }
.area-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.area-grid article {
    padding: 1.15rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    box-shadow: 0 8px 24px rgba(23,33,29,.05);
}
.area-grid h3 { margin: 0 0 .4rem; line-height: 1.15; }
.area-grid p { margin: 0; color: var(--muted); }
.tools-strip {
    margin-block: 2rem;
    padding: 1.25rem;
    border-block: 1px solid var(--line);
}
.tools-strip a, .link-list a, .pill-list span {
    display: inline-flex;
    padding: .6rem .8rem;
    border-radius: 999px;
    background: var(--soft);
    color: var(--pine);
    text-decoration: none;
    font-weight: 750;
}
.pill-list { display: flex; flex-wrap: wrap; gap: .6rem; }
.cta-panel {
    margin-block: 2rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    border-radius: 8px;
    color: var(--white);
    background: linear-gradient(135deg, var(--pine), #1d302a);
}
.cta-panel .privacy-note { color: rgba(255,255,255,.78); }
.lead-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}
.lead-form label { display: grid; gap: .35rem; font-weight: 750; }
.lead-form label span { font-weight: 500; opacity: .85; }
.lead-form input, .lead-form textarea, .calculator-card input, .calculator-card select {
    width: 100%;
    min-height: 2.75rem;
    padding: .7rem .75rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
    background: var(--white);
    font: inherit;
}
.search-form {
    max-width: 760px;
    margin-bottom: 2rem;
}
.search-form label {
    display: block;
    margin-bottom: .4rem;
    font-weight: 800;
}
.search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
}
.search-row input {
    width: 100%;
    min-height: 2.75rem;
    padding: .7rem .75rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
    background: var(--white);
    font: inherit;
}
.search-results {
    display: grid;
    gap: 1rem;
    max-width: 820px;
    padding: 0;
    list-style-position: inside;
}
.search-results li {
    padding: 1.1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
}
.search-results h2 {
    display: inline;
    font-size: 1.25rem;
}
.lead-form label:nth-of-type(4), .lead-form .check-row, .lead-form .privacy-note { grid-column: 1 / -1; }
.check-row {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: start;
    gap: .6rem !important;
}
.check-row input { width: 1rem; min-height: 1rem; margin-top: .3rem; }
.hp-field { position: absolute; left: -100vw; width: 1px; height: 1px; overflow: hidden; }
.messages { width: min(1120px, calc(100% - 2rem)); margin: 1rem auto 0; }
.message { padding: .75rem 1rem; border-radius: 8px; background: var(--soft); }
.message.error { color: var(--danger); }

.breadcrumbs {
    width: min(1120px, calc(100% - 2rem));
    margin: 1rem auto 0;
    color: var(--muted);
    font-size: .93rem;
}
.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}
.breadcrumbs li {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}
.breadcrumbs li + li::before {
    content: "/";
    margin-right: .35rem;
    color: var(--line);
}
.breadcrumbs a {
    color: var(--blue);
    font-weight: 750;
    text-decoration: none;
}
.breadcrumbs a:hover, .breadcrumbs a:focus-visible { text-decoration: underline; }
.breadcrumbs [aria-current="page"] {
    overflow: hidden;
    max-width: min(48rem, 82vw);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.faq-section, .related-links, .sources { margin-top: 2.5rem; }
.faq-section details {
    border-top: 1px solid var(--line);
    padding: 1rem 0;
}
.faq-section summary { cursor: pointer; font-weight: 800; }
.sources { color: var(--muted); }

.calculator-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr);
    gap: 1rem;
    align-items: start;
    margin-bottom: 2rem;
}
.calculator-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.mortgage-calculator-layout {
    grid-template-columns: minmax(0, 1fr) minmax(310px, .58fr);
    gap: 1.25rem;
}
.mortgage-calculator-card {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    overflow: hidden;
}
.calc-fieldset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
    min-width: 0;
    margin: 0;
    padding: 1.25rem;
    border: 0;
    border-bottom: 1px solid var(--line);
}
.calc-fieldset legend {
    grid-column: 1 / -1;
    padding: 0 0 .75rem;
    color: var(--pine);
    font-size: 1.05rem;
    font-weight: 900;
}
.calc-field {
    display: grid;
    gap: .35rem;
    align-content: start;
    font-weight: 800;
}
.calc-field small {
    color: var(--muted);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.35;
}
.calculator-assumptions {
    padding: 1.25rem;
    background: var(--soft);
}
.calculator-assumptions h2 {
    margin: 0 0 .35rem;
    font-size: 1.1rem;
    line-height: 1.2;
}
.calculator-assumptions p {
    margin: 0 0 .75rem;
    color: var(--muted);
}
.calculator-assumptions ul {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-left: 1.15rem;
    color: var(--muted);
    font-size: .92rem;
}
.calculator-assumptions strong { color: var(--ink); }
.calculator-assumptions a {
    color: var(--blue);
    font-weight: 750;
}
.mortgage-result-card {
    position: sticky;
    top: 6rem;
}
.result-card output {
    display: block;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1;
    font-weight: 900;
    color: var(--pine);
}
.payment-breakdown, .mortgage-facts {
    display: grid;
    gap: .55rem;
    margin: 1.25rem 0;
}
.payment-breakdown div, .mortgage-facts div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--line);
}
.payment-breakdown dt, .mortgage-facts dt {
    color: var(--muted);
    font-weight: 700;
}
.payment-breakdown dd, .mortgage-facts dd {
    margin: 0;
    color: var(--ink);
    font-weight: 900;
    text-align: right;
}
.mortgage-facts {
    padding: .85rem;
    border-radius: 8px;
    background: var(--soft);
}
.mortgage-facts div:last-child, .payment-breakdown div:last-child { border-bottom: 0; }
.calculator-warnings {
    display: grid;
    gap: .35rem;
    margin: 1rem 0;
    padding: .85rem 1rem .85rem 2rem;
    border: 1px solid rgba(139, 45, 45, .25);
    border-radius: 8px;
    color: var(--danger);
    background: #fff7f5;
    font-weight: 700;
}
.formula-box, .notice {
    max-width: 820px;
    margin-top: 1.5rem;
}

.site-footer {
    margin-top: 3rem;
    padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem);
    background: var(--ink);
    color: var(--white);
}
.footer-logo {
    display: block;
    max-width: 10.5rem;
    margin: .5rem 0 1rem;
    padding: .4rem .55rem;
    border-radius: 8px;
    background: var(--white);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);
    gap: 1.5rem;
}
.site-footer h2 { font-size: 1rem; }
.site-footer a {
    display: block;
    color: var(--white);
    text-decoration: none;
    margin: .35rem 0;
}
.footer-link-button {
    display: block;
    margin: .35rem 0;
    padding: 0;
    border: 0;
    color: var(--white);
    background: transparent;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.site-footer a:hover,
.site-footer a:focus-visible,
.footer-link-button:hover,
.footer-link-button:focus-visible {
    text-decoration: underline;
}
.footer-note { margin-top: 2rem; color: rgba(255,255,255,.72); }
.footer-contact { margin: .75rem 0; }
.equal-housing {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: rgba(255,255,255,.8);
    font-size: .92rem;
}
.equal-housing img {
    width: 2.15rem;
    height: 2.15rem;
    padding: .2rem;
    border-radius: 6px;
    background: var(--white);
}

.cookie-banner {
    position: fixed;
    right: clamp(.75rem, 3vw, 1.25rem);
    bottom: clamp(.75rem, 3vw, 1.25rem);
    left: clamp(.75rem, 3vw, 1.25rem);
    z-index: 50;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    max-width: 980px;
    margin-inline: auto;
    padding: 1rem;
    border: 1px solid rgba(23,33,29,.16);
    border-radius: 8px;
    background: var(--white);
    box-shadow: var(--shadow);
}
.cookie-banner h2,
.cookie-modal h2 {
    margin: 0 0 .25rem;
    font-size: 1.2rem;
    line-height: 1.2;
}
.cookie-banner p,
.cookie-modal p {
    margin: 0;
    color: var(--muted);
}
.cookie-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    justify-content: flex-end;
}
.cookie-actions .button {
    min-height: 2.45rem;
    padding: .6rem .85rem;
}
.cookie-modal {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(23,33,29,.62);
}
.cookie-modal__panel {
    position: relative;
    display: grid;
    gap: .9rem;
    width: min(640px, 100%);
    max-height: calc(100vh - 2rem);
    overflow: auto;
    padding: clamp(1.1rem, 4vw, 1.6rem);
    border-radius: 8px;
    background: var(--white);
    box-shadow: var(--shadow);
}
.cookie-close {
    position: absolute;
    top: .85rem;
    right: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
    background: var(--soft);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}
.cookie-preferences {
    display: grid;
    gap: .9rem;
}
.cookie-category-list {
    display: grid;
    gap: .6rem;
}
.cookie-category {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
}
.cookie-category input {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .2rem;
}
.cookie-category strong,
.cookie-category small {
    display: block;
}
.cookie-category small {
    color: var(--muted);
    font-size: .92rem;
}
.cookie-gpc,
.cookie-current-tools,
.cookie-status {
    padding: .75rem;
    border-radius: 8px;
    background: var(--soft);
}

:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

@media (max-width: 850px) {
    .nav-toggle { display: inline-flex; }
    .site-nav {
        position: absolute;
        left: clamp(.75rem, 4vw, 1rem);
        right: clamp(.75rem, 4vw, 1rem);
        top: calc(100% + .6rem);
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: .25rem;
        padding: .7rem;
        color: var(--ink);
        background: var(--white);
        border: 1px solid rgba(23,33,29,.12);
        border-radius: 8px;
        box-shadow: var(--shadow);
    }
    .site-nav.is-open { display: flex; }
    .site-nav a { padding: .85rem 1rem; }
    .site-nav a:hover, .site-nav a:focus-visible { background: var(--soft); }
    .site-nav .nav-cta { color: var(--white); background: var(--pine); }
    .hero, .split-section, .calculator-layout, .footer-grid, .photo-story, .team-strip, .property-showcase, .about-portrait, .sold-proof-band, .sold-page-intro { grid-template-columns: 1fr; }
    .cookie-banner { grid-template-columns: 1fr; }
    .cookie-actions { justify-content: stretch; }
    .cookie-actions .button { flex: 1 1 10rem; }
    .hero { min-height: auto; }
    .hero-panel {
        justify-self: stretch;
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .hero-home {
        min-height: calc(100vh - 4.5rem);
        background:
            linear-gradient(180deg, rgba(23, 33, 29, .88), rgba(23, 33, 29, .62)),
            url("/static/img/owned/hero-birmingham-condo.9fd277157e49.webp") center / cover no-repeat;
    }
    .card-grid, .step-grid, .feature-grid, .media-grid, .area-grid, .action-card-grid, .link-tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sold-property-gallery .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-plain-section { grid-template-columns: 1fr; }
    .sold-proof-band .button, .sold-page-intro .button { justify-self: start; }
    .lead-form, .calculator-card, .calc-fieldset { grid-template-columns: 1fr; }
    .mortgage-result-card { position: static; }
}

@media (max-width: 560px) {
    .card-grid, .step-grid, .feature-grid, .media-grid, .area-grid, .team-images, .photo-collage, .action-card-grid, .link-tile-grid { grid-template-columns: 1fr; }
    .sold-property-gallery .media-grid { grid-template-columns: 1fr; }
    .photo-collage img:first-child, .photo-collage img:not(:first-child) { height: 220px; grid-row: auto; }
    .site-header { align-items: center; gap: .6rem; padding-inline: .85rem; }
    .brokerage-bar {
        justify-content: flex-start;
        padding-inline: .85rem;
        font-size: .84rem;
    }
    .brokerage-bar span:nth-child(2) { display: none; }
    .brand { gap: .55rem; }
    .brand-logo { width: clamp(8.5rem, 45vw, 10.5rem); }
    .brand-text { display: none; }
    .hero { padding-top: clamp(2rem, 14vw, 3rem); }
    .hero h1, .page-intro h1 { font-size: clamp(2.05rem, 12vw, 3.15rem); }
    .hero-panel { align-content: start; grid-template-columns: 1fr; }
    .home-quick-panel a { min-height: auto; }
    .action-card {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        align-items: start;
    }
    .action-card img {
        grid-row: 1 / 4;
        width: 4rem;
    }
    .button { width: 100%; }
    .cookie-actions .button { flex-basis: 100%; }
    .search-row { grid-template-columns: 1fr; }
    .tools-strip a, .link-list a, .pill-list span { width: 100%; justify-content: center; border-radius: 8px; }
    .property-showcase img { min-height: 240px; }
}
