/* Family Mortgages, editorial restraint layer */
.site-header { background: color-mix(in oklab, var(--bg) 92%, transparent); }
.site-header__inner { min-height: 78px; }
.site-header__logo { display:flex; align-items:center; flex:0 0 auto; }
.site-header__logo img { width: 214px; height: auto; }
.site-nav > ul, .header-actions { display:flex; align-items:center; gap:clamp(.8rem, 1.7vw, 1.6rem); }
.site-nav a, .footer a { color:var(--ink); text-decoration:none; }
.site-nav a { font-size:var(--step--1); }
.site-nav a:hover, .footer a:hover { color:var(--olive); }
.header-actions { gap:.6rem; }
.header-phone { font-size:var(--step--1); white-space:nowrap; }
.header-cta { min-height:42px; padding-inline:1.1rem; }
.site-nav ul, .footer ul { list-style:none; margin:0; padding:0; }
.hero { background:var(--bg); padding:clamp(2rem,5vw,4.5rem) 0 0; }
.hero__grid { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, .9fr); min-height:clamp(560px, 66vh, 740px); align-items:stretch; }
.hero__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem, 4vw, 4.5rem) clamp(1rem, 4vw, 5rem) clamp(3rem, 7vw, 7rem) 0; }
.eyebrow { color:var(--olive); font-size:var(--step--1); font-weight:700; letter-spacing:.08em; margin:0 0 var(--space-4); }
.eyebrow::before { content:""; display:inline-block; width:2.5rem; height:1px; background:var(--olive); vertical-align:middle; margin-inline-end:.7rem; }
.hero h1 { max-width:11ch; margin-bottom:var(--space-5); }
.hero h1 em { color:var(--olive); font-style:normal; }
.lead { color:var(--ink-soft); font-size:var(--step-1); line-height:1.7; }
.hero__actions, .cta-actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-top:var(--space-5); }
.hero__meta { display:flex; flex-wrap:wrap; gap:.65rem 1.4rem; margin-top:var(--space-6); color:var(--ink-soft); font-size:var(--step--1); }
.hero__meta span { display:inline-flex; align-items:center; gap:.4rem; }
.hero__media { min-height:100%; position:relative; overflow:hidden; }
.hero__media img { width:100%; height:100%; object-fit:cover; min-height:560px; }
.hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(251,250,248,.1), transparent 35%, rgba(22,21,15,.22)); pointer-events:none; }
.btn { border-radius:var(--radius-sm); }
.btn--primary { background:var(--ink); }
.btn--primary:hover { background:var(--olive); }
.btn--olive { background:var(--olive); color:#fff; }
.btn--olive:hover { background:var(--ink); }
.trust-strip { border-block:var(--border); background:var(--surface); }
.trust-strip__inner { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item { padding:1.3rem 1rem; border-inline-start:var(--border); text-align:center; font-size:var(--step--1); }
.trust-item:first-child { border-inline-start:0; }
.trust-item strong { display:block; font-family:var(--font-display); font-size:var(--step-1); }
.section-head { display:flex; justify-content:space-between; gap:var(--space-6); align-items:end; margin-bottom:var(--space-7); }
.section-head > div:first-child { max-width:35rem; }
.section-head p { color:var(--ink-soft); }
.section--soft { background:var(--surface); }
.rule { border-top:var(--border); }
.opening__grid, .split-feature, .contact-grid, .about-grid, .guide-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem, 6vw, 6rem); align-items:center; }
.opening__copy { padding-inline-end:var(--space-4); }
.opening__copy p { color:var(--ink-soft); }
.opening__visual, .feature-media, .about-media { position:relative; }
.opening__visual img, .feature-media img, .about-media img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.visual-caption { margin-top:.6rem; color:var(--ink-soft); font-size:var(--step--1); }
.services-list { border-top:var(--border); }
.service-row { display:grid; grid-template-columns:.7fr 1.7fr auto; gap:var(--space-5); align-items:start; padding-block:var(--space-6); border-bottom:var(--border); }
.service-row h3 { margin:0; font-size:var(--step-2); }
.service-row p { color:var(--ink-soft); margin:0; }
.service-row a, .text-link { color:var(--ink); font-weight:700; text-decoration:none; border-bottom:1px solid var(--olive); white-space:nowrap; }
.service-row a:hover, .text-link:hover { color:var(--olive); }
.topic-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--border); border-inline-start:var(--border); }
.topic-card { display:flex; flex-direction:column; min-height:250px; padding:var(--space-5); border-inline-end:var(--border); border-bottom:var(--border); text-decoration:none; color:var(--ink); }
.topic-card:hover { background:var(--bg); }
.topic-card span { color:var(--olive); font-size:var(--step--1); margin-bottom:auto; }
.topic-card h3 { margin-top:var(--space-5); font-size:var(--step-2); }
.topic-card p { color:var(--ink-soft); margin:0; }
.topic-card strong { margin-top:var(--space-5); font-size:var(--step--1); }
.stats-band { background:var(--ink); color:var(--accent-ink); }
.stats-band .eyebrow, .stats-band p { color:#d7d5ca; }
.stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); align-items:center; }
.rating-lockup { border-inline-start:1px solid rgba(251,250,248,.3); padding-inline-start:clamp(2rem,5vw,5rem); }
.rating-number { font-family:var(--font-display); font-size:clamp(4rem,9vw,8rem); line-height:.9; }
.stars { color:#c3cc98; letter-spacing:.18em; font-size:1.25rem; }
.rating-note { color:#d7d5ca; font-size:var(--step--1); margin-top:.65rem; }
.process-list { list-style:none; padding:0; margin:0; border-top:var(--border); counter-reset:step; }
.process-list li { counter-increment:step; display:grid; grid-template-columns:4rem 1fr; gap:var(--space-5); padding-block:var(--space-6); border-bottom:var(--border); }
.process-list li::before { content:counter(step, decimal-leading-zero); color:var(--olive); font-size:var(--step-2); font-family:var(--font-display); }
.process-list h3 { margin:0 0 .4rem; font-size:var(--step-1); }
.process-list p { margin:0; color:var(--ink-soft); }
.calculator { background:var(--surface); border-top:3px solid var(--olive); padding:clamp(1.25rem,3vw,2.5rem); }
.calculator-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.field { display:flex; flex-direction:column; gap:.35rem; }
.field label, .consent { font-size:var(--step--1); font-weight:700; }
.field input, .field select, .field textarea { width:100%; border:var(--border); background:var(--bg); color:var(--ink); border-radius:var(--radius-sm); padding:.85rem .9rem; font:inherit; min-height:46px; }
.field textarea { min-height:120px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline:2px solid var(--olive); outline-offset:2px; }
.calculator-output { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:var(--space-5); padding-top:var(--space-5); border-top:var(--border); }
.calculator-output strong { display:block; font-family:var(--font-display); font-size:var(--step-2); }
.calculator-output span { color:var(--ink-soft); font-size:var(--step--1); }
.fine-print { font-size:var(--step--1); color:var(--ink-soft); margin-top:var(--space-4); }
.editorial-grid { display:grid; grid-template-columns:1.25fr .75fr .75fr; gap:1rem; }
.editorial-card { min-height:380px; position:relative; overflow:hidden; display:flex; align-items:end; color:#fff; text-decoration:none; background:var(--ink); }
.editorial-card:first-child { min-height:500px; }
.editorial-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.editorial-card::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 30%, rgba(22,21,15,.88)); }
.editorial-card:hover img { transform:scale(1.03); }
.editorial-card__copy { position:relative; z-index:1; padding:var(--space-5); }
.editorial-card__copy h3 { margin-bottom:.45rem; color:#fff; }
.editorial-card__copy p { color:#e8e5dc; margin:0; }
.faq-list { border-top:var(--border); }
.faq-item { border-bottom:var(--border); padding-block:var(--space-4); }
.faq-item summary { cursor:pointer; list-style:none; font-weight:700; padding-inline-end:2rem; position:relative; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; position:absolute; inset-inline-end:0; font-size:1.4rem; font-weight:400; }
.faq-item[open] summary::after { content:"−"; }
.faq-answer { color:var(--ink-soft); padding-top:var(--space-3); max-width:65ch; }
.cta-band { background:var(--olive-soft); }
.cta-band__inner { display:flex; justify-content:space-between; gap:var(--space-6); align-items:center; }
.cta-band h2 { max-width:14ch; }
.footer { background:var(--ink); color:#f1efe9; padding-block:var(--space-8) var(--space-5); }
.footer a, .footer p, .footer li { color:#ddd9ce; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:var(--space-7); }
.footer h2 { font-family:var(--font-body); font-size:var(--step--1); color:#aab087; letter-spacing:.06em; margin-bottom:1rem; }
.footer ul { display:grid; gap:.6rem; }
.footer-logo { width:240px; max-width:100%; margin-bottom:1rem; }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; border-top:1px solid rgba(251,250,248,.2); margin-top:var(--space-7); padding-top:var(--space-4); font-size:var(--step--1); }
.page-hero { background:var(--surface); padding-block:clamp(3rem,8vw,7rem); border-bottom:var(--border); }
.page-hero__grid { display:grid; grid-template-columns:1fr .9fr; gap:var(--space-8); align-items:center; }
.page-hero h1 { max-width:13ch; }
.page-hero__visual img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.content-narrow { max-width:760px; margin-inline-start:auto; }
.content-narrow p, .legal-content p, .article-content p { color:var(--ink-soft); }
.content-narrow ul, .article-content ul { color:var(--ink-soft); line-height:1.9; }
.content-narrow li + li, .article-content li + li { margin-top:.35rem; }
.subnav { display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin-top:var(--space-5); font-size:var(--step--1); }
.subnav a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--olive); }
.guide-grid { align-items:start; }
.guide-toc { position:sticky; top:100px; border-top:2px solid var(--olive); padding-top:var(--space-4); }
.guide-toc a { display:block; color:var(--ink-soft); text-decoration:none; padding-block:.4rem; }
.guide-toc a:hover { color:var(--olive); }
.guide-content section { padding-block:var(--space-5); border-bottom:var(--border); scroll-margin-top:110px; }
.guide-content h2 { font-size:var(--step-2); }
.article-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.article-card { text-decoration:none; color:var(--ink); border-top:2px solid var(--ink); }
.article-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.article-card__copy { padding-top:var(--space-4); }
.article-card h2 { font-size:var(--step-2); }
.article-card p { color:var(--ink-soft); }
.article-layout { display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:var(--space-8); align-items:start; }
.article-content { max-width:760px; }
.article-content section { margin-bottom:var(--space-7); }
.article-content h2 { font-size:var(--step-3); }
.article-aside { position:sticky; top:100px; background:var(--surface); padding:var(--space-5); border-top:2px solid var(--olive); }
.article-aside h2 { font-size:var(--step-2); }
.article-note { border-inline-start:4px solid var(--olive); background:var(--surface); padding:var(--space-5); }
.contact-details { border-top:2px solid var(--olive); padding-top:var(--space-5); }
.contact-list { list-style:none; padding:0; margin:var(--space-6) 0 0; border-top:var(--border); }
.contact-list li { display:flex; justify-content:space-between; gap:1rem; padding-block:var(--space-4); border-bottom:var(--border); }
.contact-list a { color:var(--ink); font-weight:700; }
.form-shell { background:var(--surface); padding:clamp(1.25rem,3vw,2.5rem); }
.lead-form { display:grid; gap:1rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.consent { display:flex; gap:.55rem; align-items:flex-start; font-weight:400; color:var(--ink-soft); }
.consent input { margin-top:.35rem; min-width:18px; min-height:18px; }
.map-link { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:center; text-decoration:none; color:var(--ink); }
.map-link img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.map-link__copy { padding-inline:var(--space-4); }
.legal-content { max-width:760px; margin-inline-start:auto; }
.legal-content h2 { font-size:var(--step-2); margin-top:var(--space-7); }
.hours-table { width:100%; border-collapse:collapse; margin-top:var(--space-4); }
.hours-table th, .hours-table td { text-align:start; padding:.7rem .5rem; border-bottom:var(--border); }
.hours-table th { color:var(--ink-soft); font-weight:400; }
.sticky-bar { display:none; }
.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; }
@media (max-width: 1100px) {
  .site-nav { display:none; }
  .nav-toggle { display:inline-flex; }
  .header-phone { display:none; }
  .hero__grid, .page-hero__grid { grid-template-columns:1fr; }
  .hero__copy { order:2; padding-inline:0; padding-block:var(--space-7); }
  .hero__media { order:1; min-height:410px; }
  .hero__media img { min-height:410px; }
  .stats-grid { grid-template-columns:1fr; }
  .rating-lockup { border-inline-start:0; border-top:1px solid rgba(251,250,248,.3); padding-inline-start:0; padding-top:var(--space-6); }
  .footer-grid { grid-template-columns:1.4fr 1fr 1fr; }
}
@media (max-width: 720px) {
  .site-header__inner { min-height:64px; }
  .site-header__logo img { width:160px; }
  .hero__media, .hero__media img { min-height:300px; }
  .hero__copy { padding-block:2.5rem; }
  .header-cta { display:none; }
  .trust-strip__inner { grid-template-columns:1fr 1fr; }
  .trust-item:nth-child(3) { border-inline-start:0; }
  .opening__grid, .split-feature, .contact-grid, .about-grid, .guide-grid, .map-link { grid-template-columns:1fr; }
  .opening__visual { order:-1; }
  .section-head, .cta-band__inner { display:block; }
  .section-head > * + * { margin-top:var(--space-4); }
  .service-row { grid-template-columns:1fr; gap:.6rem; }
  .service-row a { justify-self:start; }
  .topic-grid, .article-card-grid, .editorial-grid { grid-template-columns:1fr; }
  .editorial-card, .editorial-card:first-child { min-height:330px; }
  .calculator-grid, .calculator-output, .form-row { grid-template-columns:1fr; }
  .article-layout { grid-template-columns:1fr; }
  .article-aside, .guide-toc { position:static; }
  .guide-toc { order:-1; }
  .contact-list li { display:block; }
  .contact-list li > * + * { display:block; margin-top:.25rem; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1 / -1; }
  .sticky-bar { position:fixed; z-index:var(--z-float); display:grid; grid-template-columns:1fr 1fr; inset-inline:0; inset-block-end:0; background:var(--ink); padding:8px max(12px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)); gap:8px; }
  .sticky-bar a { min-height:44px; display:flex; justify-content:center; align-items:center; color:var(--accent-ink); text-decoration:none; border:1px solid rgba(251,250,248,.3); font-weight:700; }
  .sticky-bar a:last-child { background:var(--olive); border-color:var(--olive); }
  body { padding-bottom:72px; }
}
@media (prefers-reduced-motion: reduce) { .editorial-card img { transition:none; } }
