/* bpm-next design system — ported from approved Variant I (Established Firm), 2026-07-03 */
* { margin: 0; padding: 0; box-sizing: border-box; }

  html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
  }

  body {
    font-family: var(--font-body);
    font-size: 16.5px;
    line-height: 1.6;
    color: var(--ink);
    background: var(--paper);
  }

  h1, h2, h3 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.3;
  }
  h1 { font-size: 30px; letter-spacing: 0.01em; }
  h2 { font-size: 25px; }
  h3 { font-size: 18px; }
  h2[id], h3[id] { scroll-margin-top: 96px; }

  a { color: var(--ink); }
  img { max-width: 100%; display: block; }

  .wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
  }

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

  .skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--gold);
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 600;
    padding: 12px 20px;
    z-index: 100;
  }
  .skip-link:focus {
    left: 0;
  }

  /* ---------- Topbar ---------- */
  .topbar {
    background: var(--ink);
    border-bottom: 1px solid var(--line-dark);
    color: #e8e6e2;
    font-size: 14px;
  }
  .topbar .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    min-height: 40px;
    gap: 4px 16px;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .topbar a {
    color: #ffffff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    min-height: 36px;
  }
  .topbar a:hover, .topbar a:focus { text-decoration: underline; }
  /* In-sentence links need more than a color shift (WCAG 1.4.1) */
  .topbar .left-group span > a { text-decoration: underline; text-underline-offset: 2px; }
  .topbar .portal-links {
    display: flex;
    gap: 20px;
  }
  .topbar .left-group {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
  }
  .topbar .owner-hook {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    color: #ffd77a;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.02em;
  }
  .topbar .owner-hook a {
    color: #ffd77a;
    text-decoration: underline;
    margin: 0;
    min-height: auto;
    display: inline;
  }

  /* ---------- Masthead ---------- */
  .masthead {
    background: var(--ink);
    color: var(--white);
    border-bottom: 3px solid var(--gold);
  }
  .masthead .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 32px;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .lockup {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    color: var(--white);
  }
  .lockup img {
    width: 200px;
    height: auto;
    display: block;
  }
  .lockup .mark {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 34px;
    letter-spacing: 0.06em;
    line-height: 1;
    border-right: 1px solid #4a4a4a;
    padding-right: 16px;
  }
  .lockup .name {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    line-height: 1.5;
    max-width: 220px;
  }
  .masthead nav ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: center;
  }
  .masthead nav a {
    color: var(--white);
    text-decoration: none;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.04em;
    padding: 12px 8px;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    border-bottom: 2px solid transparent;
  }
  .masthead nav a:hover, .masthead nav a:focus {
    border-bottom-color: var(--gold);
  }
  .masthead nav a[aria-current="page"] { border-bottom-color: var(--gold); }
  .masthead nav li.cta-li { margin-left: 8px; }
  .masthead nav a.btn-owner {
    background: var(--gold);
    color: var(--ink);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.03em;
    padding: 0 18px;
    min-height: 40px;
    border-radius: 2px;
    border-bottom: none;
    white-space: nowrap;
  }
  .masthead nav a.btn-owner:hover, .masthead nav a.btn-owner:focus {
    background: #ffb51e;
    border-bottom: none;
  }

  /* ---------- Lead band ---------- */
  .lead {
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    padding: 44px 0 36px;
  }
  .lead p.intro {
    margin-top: 10px;
    max-width: 640px;
    color: var(--muted);
  }
  .page-toc {
    background: var(--white);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  .page-toc .wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .page-toc-label,
  .page-toc-reviewed {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 11.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  .page-toc-label { color: var(--gold-text); }
  .page-toc a {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 34px;
    padding: 4px 9px;
    border: 1px solid var(--line);
    border-bottom: 2px solid var(--gold);
    border-radius: var(--radius);
    color: var(--ink);
    background: var(--white);
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
    overflow-wrap: anywhere;
  }
  .page-toc a:hover, .page-toc a:focus { color: var(--gold-text); }
  .page-toc-reviewed {
    margin-left: auto;
    color: var(--muted);
  }
  .filter {
    margin-top: 26px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
  }
  .filter .field {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .filter label {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .filter select {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--ink);
    background: var(--white);
    border: 1px solid #b9b4aa;
    border-radius: var(--radius);
    padding: 0 12px;
    height: 46px;
    min-width: 150px;
  }
  .filter select:hover { border-color: var(--ink); }
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 26px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.03em;
    border-radius: var(--radius);
    border: 1px solid var(--ink);
    background: var(--ink);
    color: var(--white);
    cursor: pointer;
    text-decoration: none;
  }
  .btn:hover, .btn:focus { background: #2e2e2e; }
  .btn-gold {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
  }
  .btn-gold:hover, .btn-gold:focus { background: #ffb51e; border-color: #ffb51e; }
  .btn-ghost {
    background: transparent;
    color: var(--ink);
  }
  .btn-ghost:hover, .btn-ghost:focus { background: var(--ink); color: var(--white); }
  /* Keyboard focus needs more than a background shift (WCAG 2.4.7). Same gold
     outline the form inputs use. */
  .btn:focus-visible, a:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 5px var(--paper); }

  /* Zero-results panel injected by site.js on /rentals/. */
  .empty-state {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper);
    text-align: center;
  }
  .empty-state p { margin: 0 0 16px; }

  /* ---------- Listings ---------- */
  .listings {
    padding: 44px 0 40px;
  }
  .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
  }
  .card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .card:hover { border-color: #b9b4aa; box-shadow: 0 2px 8px rgba(17,17,17,0.07); }
  .card .photo {
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: #e8e5df;
  }
  .card .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .card .body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
  }
  .card .rent {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
  }
  .card .rent span {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    color: var(--muted);
  }
  .card h3 {
    font-size: 16.5px;
    font-weight: 600;
    margin-top: 6px;
  }
  .card .facts {
    margin-top: 6px;
    font-size: 15px;
    color: var(--muted);
  }
  .card .avail {
    display: inline-block;
    margin-top: 10px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gold-text);
  }
  .card .actions {
    margin-top: auto;
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .card .actions a {
    min-height: 44px;
    font-size: 14px;
    padding: 0 12px;
  }
  .grid-foot {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-top: 1px solid var(--line);
    padding-top: 22px;
  }
  .grid-foot p { color: var(--muted); }
  .grid-foot a.see-all {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    border-bottom: 2px solid var(--gold);
    padding: 8px 2px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .grid-foot a.see-all:hover, .grid-foot a.see-all:focus { color: var(--gold-text); }

  /* ---------- Renter services ---------- */
  .renter-services {
    background: var(--white);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 48px 0;
  }
  .panel-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin-top: 26px;
  }
  .panel {
    border: 1px solid var(--line);
    border-top: 3px solid var(--gold);
    border-radius: var(--radius);
    background: var(--paper);
    padding: 26px 24px 24px;
    display: flex;
    flex-direction: column;
  }
  .panel p {
    margin-top: 8px;
    font-size: 15.5px;
    color: var(--muted);
    flex: 1;
  }
  .panel a.panel-link {
    margin-top: 16px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14.5px;
    text-decoration: none;
    color: var(--ink);
    border-bottom: 2px solid var(--gold);
    align-self: flex-start;
    padding: 8px 2px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .panel a.panel-link:hover, .panel a.panel-link:focus { color: var(--gold-text); }

  /* ---------- Owner block ---------- */
  .owners {
    background: var(--ink);
    color: #e8e6e2;
    padding: 56px 0;
  }
  .owners .inner {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 48px;
    align-items: center;
  }
  .owners h2 { color: var(--white); }
  .owners p { margin-top: 14px; max-width: 560px; }
  .owners ul {
    list-style: none;
    margin-top: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 28px;
    font-size: 15.5px;
  }
  .owners ul li {
    padding-left: 18px;
    position: relative;
  }
  .owners ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 8px;
    height: 2px;
    background: var(--gold);
  }
  .owners .cta {
    text-align: center;
    border: 1px solid var(--line-dark);
    border-radius: var(--radius);
    padding: 34px 28px;
  }
  .owners .cta p.small {
    font-size: 14.5px;
    color: #b8b4ae;
    margin-top: 12px;
    max-width: none;
  }

  /* ---------- Team ---------- */
  .team { padding: 52px 0; }
  .team > .wrap > p.intro-line {
    margin-top: 10px;
    color: var(--muted);
    max-width: 640px;
  }
  .team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin-top: 28px;
  }
  .person {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 22px;
    display: flex;
    gap: 18px;
    align-items: center;
  }
  .person:hover { border-color: #b9b4aa; }
  .person img {
    width: 84px;
    height: 84px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid var(--line);
    flex-shrink: 0;
  }
  .person h3 { font-size: 16.5px; }
  .person .role {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
    margin-top: 2px;
  }
  .person .dre {
    font-size: 13.5px;
    color: var(--muted);
    margin-top: 2px;
  }
  .person a.tel {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 2px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    color: var(--ink);
  }
  .person a.tel:hover, .person a.tel:focus { color: var(--gold-text); text-decoration: underline; }

  /* ---------- Footer ---------- */
  .site-footer {
    background: var(--ink);
    color: #c9c5bf;
    font-size: 14.5px;
    border-top: 3px solid var(--gold);
    padding: 48px 0 36px;
  }
  .site-footer :where(a) { color: var(--white); text-decoration: none; display: inline-flex; align-items: center; min-height: 34px; }
  .site-footer :where(a:hover, a:focus) { text-decoration: underline; }
  .foot-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
  }
  .foot-grid h2 {
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white);
    margin-bottom: 12px;
  }
  .foot-grid ul { list-style: none; }
  .foot-grid li { margin-bottom: 4px; }
  .foot-legal {
    margin-top: 36px;
    padding-top: 22px;
    border-top: 1px solid var(--line-dark);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    font-size: 13.5px;
    color: #a5a09a;
  }
  .foot-legal p { max-width: 720px; }

  /* ---------- Responsive ---------- */
  @media (max-width: 980px) {
    .grid, .panel-row, .team-grid { grid-template-columns: repeat(2, 1fr); }
    .owners .inner { grid-template-columns: 1fr; }
    .foot-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 620px) {
    h1 { font-size: 24px; }
    h2 { font-size: 22px; }
    .page-toc-reviewed { margin-left: 0; }
    .grid, .panel-row, .team-grid, .foot-grid { grid-template-columns: 1fr; }
    .owners ul { grid-template-columns: 1fr; }
    .filter { flex-direction: column; align-items: stretch; }
    .filter select, .filter .btn { width: 100%; }
  }

  /* ---------- Compact header (≤1180px) ----------
     Topbar and full nav fold into a no-JS <details> disclosure menu;
     the bar keeps logo + primary CTA + Menu. */
  .nav-compact { display: none; }
  @media (max-width: 1180px) {
    .topbar { display: none; }
    .masthead nav.nav-desktop { display: none; }
    .masthead .wrap { flex-wrap: nowrap; justify-content: space-between; padding-top: 10px; padding-bottom: 10px; }
    .lockup img { width: 148px; }
    .nav-compact { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
    .nav-compact > a.btn-owner {
      background: var(--gold); color: var(--ink);
      font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.03em;
      text-decoration: none; padding: 0 16px; min-height: 42px;
      display: inline-flex; align-items: center; border-radius: 2px; white-space: nowrap;
    }
    .nav-compact > a.btn-owner:hover, .nav-compact > a.btn-owner:focus { background: #ffb51e; }
    .nav-menu { position: relative; }
    .nav-menu summary {
      list-style: none; cursor: pointer;
      font-family: var(--font-display); font-weight: 600; font-size: 14px; letter-spacing: 0.03em;
      color: var(--white); border: 1px solid #4a4a4a; border-radius: 2px;
      padding: 0 14px; min-height: 42px; display: inline-flex; align-items: center; gap: 7px;
    }
    .nav-menu summary::-webkit-details-marker { display: none; }
    .nav-menu summary::after { content: "\25BE"; color: var(--gold); transition: transform 0.15s ease; }
    .nav-menu[open] summary::after { transform: rotate(180deg); }
    .nav-menu summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 5px var(--paper); }
    .nav-menu .menu-panel {
      position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
      display: block; min-width: 264px; list-style: none;
      background: var(--ink); border: 1px solid var(--line-dark); border-top: 3px solid var(--gold);
      box-shadow: 0 18px 44px rgba(0, 0, 0, 0.5); padding: 8px 0;
    }
    .nav-menu .menu-panel a {
      display: flex; align-items: center; min-height: 44px; padding: 0 22px;
      color: var(--white); text-decoration: none;
      font-family: var(--font-display); font-weight: 500; font-size: 14.5px;
      border-bottom: 0; border-left: 3px solid transparent;
    }
    .nav-menu .menu-panel a:hover, .nav-menu .menu-panel a:focus { background: #1d1d1d; border-bottom: 0; }
    .nav-menu .menu-panel a[aria-current="page"] { border-left-color: var(--gold); color: #ffd77a; border-bottom: 0; }
    .nav-menu .menu-panel li.menu-rule { border-top: 1px solid var(--line-dark); margin-top: 8px; padding-top: 8px; }
  }
  @media (max-width: 480px) {
    .lockup img { width: 112px; }
    .nav-compact { gap: 8px; }
    .nav-compact > a.btn-owner { font-size: 12px; padding: 0 12px; min-height: 40px; }
    .nav-menu summary { padding: 0 12px; min-height: 40px; font-size: 13px; }
  }


/* ---------- Utilities & v1.1 components ---------- */
.stack-top { margin-top: 22px; }
.stack-none { margin-top: 0; }
.stack-top-sm { margin-top: 10px; }
.stack-top-lg { margin-top: 30px; }
.narrow { max-width: 820px; }
.fine { font-size: 14px; color: var(--muted); }
.owners .fine { color: #b8b4ae; }
/* The form card is white; its fine print must stay dark (WCAG 1.4.3) */
.owners .lead-form .fine { color: var(--muted); }
.link-light { color: #ffffff; }
.no-rule { border-top: 0; padding-top: 0; }
.optional { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--muted); }
.field-note { margin: 0; font-size: 14px; color: var(--muted); }
.panel-title { font-size: 18px; }
.lead-ctas { margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; }
.btn-col { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.detail-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 26px; align-items: start; }
.panel-row--pair { grid-template-columns: 1fr 1fr; }
.qa-list { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 32px; }
.qa { border-top: 2px solid var(--gold); padding-top: 14px; }
.qa h3 { font-size: 16.5px; }
.qa p { margin-top: 6px; font-size: 15.5px; color: var(--muted); }

/* Owner lead form (on dark .owners band) */
.lead-form { background: var(--white); border-radius: var(--radius); padding: 26px 24px; display: flex; flex-direction: column; gap: 14px; color: var(--ink); }
.lead-form .field { display: flex; flex-direction: column; gap: 4px; }
.lead-form label { font-family: var(--font-display); font-weight: 600; font-size: 12.5px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.lead-form input, .lead-form textarea { font-family: var(--font-body); font-size: 16px; color: var(--ink); background: var(--white); border: 1px solid #7a746b; border-radius: var(--radius); padding: 10px 12px; }
.lead-form input:focus, .lead-form textarea:focus { outline: 2px solid var(--ink); outline-offset: 1px; }
.lead-form .fine { margin: 0; }

@media (max-width: 720px) {
  .detail-grid { grid-template-columns: 1fr; }
  .panel-row--pair { grid-template-columns: 1fr; }
  .qa-list { grid-template-columns: 1fr; }
}


/* ---------- Office proof ---------- */
.office-strip { background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 48px 0; }
.office-strip-inner { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: center; }
.office-strip-inner img { border-radius: var(--radius); border: 1px solid var(--line); height: auto; }
.office-photo { border-radius: var(--radius); border: 1px solid var(--line); height: auto; margin-bottom: 4px; }
.contact-office-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: 32px; align-items: stretch; }
.contact-office-layout .office-photo { width: 100%; height: 100%; min-height: 520px; margin: 0; object-fit: cover; object-position: 50% 62%; }
.contact-office-layout .panel-row { grid-template-columns: 1fr; gap: 16px; margin-top: 0; }
@media (max-width: 720px) {
  .office-strip-inner { grid-template-columns: 1fr; gap: 20px; }
  .contact-office-layout { grid-template-columns: 1fr; gap: 22px; }
  .contact-office-panels { order: 1; }
  .contact-office-layout .office-photo { order: 2; height: 260px; min-height: 0; }
}


/* ---------- Listing detail v2 ----------
   Ported from the approved "clarity" direction: photo mosaic above the fold,
   labeled fact strip, sticky request rail, mobile action bar. Everything is
   ld- prefixed so none of it can reach another page's markup. */
.ld-lead { padding-bottom: 22px; }
.ld-status { margin-top: 10px; display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
.ld-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); display: block; }
.ld-title-sub { margin-top: 6px; max-width: 720px; color: var(--muted); }
.ld-label { display: block; margin: 0 0 6px; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }

.ld-gallery { position: relative; background: var(--white); border-block: 1px solid var(--line); }
.ld-mosaic { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 6px; height: clamp(320px, 53vh, 560px); }
.ld-thumbs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; min-width: 0; min-height: 0; }
.ld-shot { position: relative; display: block; overflow: hidden; width: 100%; height: 100%; min-width: 0; min-height: 0; background: var(--paper); cursor: zoom-in; }
.ld-shot img { width: 100%; height: 100%; object-fit: cover; }
.ld-shot:hover img { opacity: .92; }
.ld-gallery--single .ld-mosaic { grid-template-columns: minmax(0, 1fr); }
.ld-gallery-cta { position: absolute; right: 18px; bottom: 18px; min-height: 40px; }
.ld-more-shots { display: none; }

/* AppFolio listings embed on /rentals/ (listings_mode = embed). Height is
   set by the frame's own message; the minimum keeps a first paint visible. */
.af-embed { margin-top: 20px; }
.af-embed iframe { display: block; width: 100%; border: 0; min-height: 760px; background: var(--white); }
.af-embed .fine { margin-top: 12px; }
/* Rentals section buttons (rentals + commercial pages): the current page
   is filled ink, the others are white with an ink border and fill on hover. */
.rentals-nav { display: flex; flex-wrap: wrap; gap: 12px; }
.rn-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 24px; border: 2px solid var(--ink); border-radius: var(--radius); background: var(--white); color: var(--ink); font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background .15s ease, color .15s ease; }
.rn-btn:hover, .rn-btn:focus-visible, .rn-btn[aria-current="page"] { background: var(--ink); color: var(--white); }
.rn-btn[aria-current="page"]:hover { background: var(--ink); }
@media (max-width: 640px) {
  .rentals-nav { flex-direction: column; }
  .rn-btn { width: 100%; }
}}
/* A unit with no usable photo still opens on the branded panel, held to the
   same band height as the mosaic so it reads as a stand-in, not a void. */
.ld-gallery--none { padding-block: 22px; }
.ld-gallery--none .no-photo--hero { aspect-ratio: auto; height: clamp(280px, 38vh, 400px); }

.ld-facts { background: var(--white); border-bottom: 1px solid var(--line); }
.ld-facts-in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ld-fact { padding: 20px 22px; border-left: 1px solid var(--line); min-width: 0; }
.ld-fact:first-child { border-left: 0; padding-left: 0; }
.ld-fact .v { display: block; font-family: var(--font-display); font-weight: 300; font-size: 23px; line-height: 1.2; }
.ld-fact .n { display: block; margin-top: 2px; font-size: 13px; color: var(--muted); }

.ld-body { padding-block: 0 24px; }
.ld-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 56px; padding: 44px 0 8px; align-items: start; }
/* The rail comes first in the DOM so single-column screens read and tab in
   the order they are painted. Desktop puts it back on the right by column,
   not by `order`, which would reintroduce the mismatch. */
.ld-main { grid-column: 1; grid-row: 1; }
.ld-rail { grid-column: 2; grid-row: 1; }
.ld-main { min-width: 0; }
.ld-main > section + section { margin-top: 44px; }
.ld-main h2 { font-size: 24px; }

.ld-rail { position: sticky; top: 24px; }
.ld-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.ld-price { font-family: var(--font-display); font-weight: 300; font-size: 34px; line-height: 1.1; }
.ld-price .per { font-family: var(--font-body); font-size: 15px; color: var(--muted); }
.ld-rail-meta { margin: 6px 0 18px; font-size: 15px; color: var(--muted); }
.ld-rail-note { margin-top: 10px; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.ld-rail-split { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.ld-phone { display: inline-block; font-family: var(--font-display); font-size: 21px; text-decoration: none; }
.ld-phone:hover, .ld-phone:focus-visible { color: var(--gold-text); }
.ld-verified { margin-top: 14px; font-size: 13px; color: var(--muted); }
.ld-card .listing-owner-line, .ld-card .managed-by { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14.5px; color: var(--muted); }

.ld-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ld-tile { padding: 16px 16px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.ld-tile .v { display: block; font-family: var(--font-display); font-weight: 300; font-size: 21px; line-height: 1.25; }
.ld-tile .n { display: block; margin-top: 3px; font-size: 13px; line-height: 1.4; color: var(--muted); }
.ld-addons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ld-addon { padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.ld-addon .v { display: block; font-family: var(--font-display); font-weight: 300; font-size: 18px; line-height: 1.3; }
.ld-addon p { margin-top: 4px; font-size: 14.5px; color: var(--muted); }

.ld-highlights { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--line); }
.ld-hl { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start; padding: 20px 22px; background: var(--white); }
.ld-hl .num { padding-top: 4px; font-family: var(--font-display); font-size: 12px; letter-spacing: .14em; color: var(--gold-text); }
.ld-hl h3 { font-size: 16px; }
.ld-hl p { margin-top: 4px; font-size: 15.5px; color: var(--muted); }

.ld-speclist { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.ld-spec { padding: 14px 0 15px; border-bottom: 1px solid var(--line); font-size: 16px; }
.ld-spec dt { margin-bottom: 3px; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.ld-spec dd { margin: 0; }

.ld-criteria { margin: 0; padding: 0; list-style: none; counter-reset: ldc; }
.ld-criteria li { counter-increment: ldc; position: relative; padding: 11px 0 11px 40px; border-bottom: 1px solid var(--line); font-size: 16px; }
.ld-criteria li::before { content: counter(ldc); position: absolute; left: 0; top: 11px; width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-family: var(--font-display); font-size: 11px; color: var(--gold-text); }

.ld-callout { padding: 22px 24px; border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius); background: var(--white); }
.ld-callout h2 { margin-bottom: 8px; }
.ld-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.ld-check { display: flex; align-items: flex-start; gap: 11px; min-height: 24px; padding: 9px 0; font-size: 16px; cursor: pointer; }
.ld-check input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
.ld-fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.ld-fieldset legend { padding: 0; margin-bottom: 8px; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }

.ld-mobile-bar { display: none; }
@media (max-width: 1080px) {
  .ld-layout { grid-template-columns: 1fr; gap: 0; }
  .ld-main, .ld-rail { grid-column: 1; grid-row: auto; }
  .ld-rail { position: static; margin-bottom: 34px; }
  .ld-speclist { grid-template-columns: 1fr; }
}
@media (max-width: 900px) and (min-height: 480px) {
  body { padding-bottom: 81px; }
  html { scroll-padding-bottom: 97px; }
  .ld-mobile-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: center; position: fixed; left: 0; right: 0; bottom: 0; height: 81px; padding: 16px; background: var(--white); border-top: 1px solid var(--line); z-index: 90; }
  .ld-mobile-bar .btn { min-height: 46px; padding: 0 12px; font-size: 11px; }
}
@media (max-width: 820px) {
  .ld-mosaic { height: auto; grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .ld-mosaic .ld-hero { aspect-ratio: 4 / 3; height: auto; }
  .ld-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto; }
  .ld-thumbs .ld-shot { aspect-ratio: 4 / 3; }
  .ld-gallery-cta { right: 12px; bottom: 12px; font-size: 11px; padding: 0 14px; }
  .ld-facts-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ld-fact { padding: 16px 18px; border-top: 1px solid var(--line); }
  .ld-fact:first-child, .ld-fact:nth-child(2) { border-top: 0; }
  .ld-fact:nth-child(odd) { border-left: 0; padding-left: 0; }
  .ld-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ld-addons, .ld-grid2 { grid-template-columns: 1fr; }
  .ld-layout { padding-top: 30px; }
}
.hero-photo img { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid var(--line); }
.detail-body { padding: 18px 2px 6px; }
.detail-body h2 { font-size: 20px; }
.detail-body p { margin-top: 8px; }
.gallery { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.gallery img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3/2; border-radius: var(--radius); border: 1px solid var(--line); }

/* Branded no-photo card — stands in when AppFolio holds no usable unit photo.
   Aims to read as a deliberate placeholder rather than a broken image: brand
   ink ground, a warm off-centre wash, a line-art watermark keyed to the kind
   of property, and the address anchored bottom-left where a caption sits. */
.no-photo {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 6px;
  height: 100%;
  padding: 20px;
  background:
    radial-gradient(115% 85% at 84% 14%, rgba(240, 160, 0, 0.17), transparent 62%),
    linear-gradient(158deg, #1e1e1e 0%, var(--ink) 55%, #090909 100%);
  border-top: 3px solid var(--gold);
  text-decoration: none;
}
/* The rule hangs off the caption instead of sitting at a fixed offset from the
   bottom, so it stays with the text when the address wraps to two or three
   lines on a narrow card. The caption also sits above the glyph. */
.no-photo-cap {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
  padding-top: 13px;
  border-top: 1px solid var(--no-photo-rule, rgba(255, 255, 255, 0.10));
}
/* The glyph is painted with a mask rather than a background image so each
   theme can colour it from a token; the classic theme is dark, the modern
   reskin is light, and a baked-in stroke colour would be invisible on one. */
.no-photo::before {
  content: "";
  position: absolute;
  right: -10px;
  top: 34%;
  transform: translateY(-50%);
  width: 132px;
  height: 132px;
  background-color: var(--no-photo-glyph, rgba(255, 255, 255, 0.17));
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.no-photo--home::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 29 32 7l25 22'/%3E%3Cpath d='M14 26v29h36V26'/%3E%3Cpath d='M26 55V39h12v16'/%3E%3Cpath d='M20 33h7v7h-7z'/%3E%3Cpath d='M37 33h7v7h-7z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 29 32 7l25 22'/%3E%3Cpath d='M14 26v29h36V26'/%3E%3Cpath d='M26 55V39h12v16'/%3E%3Cpath d='M20 33h7v7h-7z'/%3E%3Cpath d='M37 33h7v7h-7z'/%3E%3C/svg%3E");
}
.no-photo--commercial::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 55V13h25v42'/%3E%3Cpath d='M36 55V27h17v28'/%3E%3Cpath d='M5 55h54'/%3E%3Cpath d='M17 21h5M17 30h5M17 39h5M28 21h3M28 30h3M28 39h3M42 34h5M42 43h5'/%3E%3Cpath d='M22 55V45h8v10'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 55V13h25v42'/%3E%3Cpath d='M36 55V27h17v28'/%3E%3Cpath d='M5 55h54'/%3E%3Cpath d='M17 21h5M17 30h5M17 39h5M28 21h3M28 30h3M28 39h3M42 34h5M42 43h5'/%3E%3Cpath d='M22 55V45h8v10'/%3E%3C/svg%3E");
}
.no-photo-addr {
  position: relative;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 19px;
  color: var(--white);
  line-height: 1.3;
}
.no-photo-note {
  position: relative;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold);
}
/* Detail-page hero: same panel at hero scale, matching the 3:2 photo it replaces. */
.no-photo--hero {
  aspect-ratio: 3 / 2;
  height: auto;
  padding: 30px;
  border-radius: var(--radius);
}
.no-photo--hero::before { width: 210px; height: 210px; right: 4%; }
.no-photo--hero .no-photo-addr { font-size: 26px; }
/* Narrow cards: the caption wraps to two or three lines and would collide with
   a centred glyph, so the glyph moves up out of its way and loses some weight. */
@media (max-width: 640px) {
  .no-photo { padding: 16px; }
  .no-photo::before { width: 92px; height: 92px; top: 26%; right: -6px; }
  .no-photo--hero { padding: 20px; }
  .no-photo--hero::before { width: 128px; height: 128px; top: 26%; }
  .no-photo--hero .no-photo-addr { font-size: 20px; }
  .no-photo-addr { font-size: 17px; }
  .no-photo-note { font-size: 11px; }
}

/* ---------- Resources / knowledge base ---------- */
.crumbs, .lead-eyebrow {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.03em;
  color: var(--muted);
  margin-bottom: 14px;
}
.crumbs a, .lead-eyebrow a { color: var(--muted); text-decoration: none; padding: 6px 0; }
.crumbs a:hover, .crumbs a:focus, .lead-eyebrow a:hover, .lead-eyebrow a:focus { color: var(--ink); text-decoration: underline; }
.crumbs .sep { margin: 0 7px; color: #b9b4aa; }
.notice {
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: var(--radius);
  padding: 16px 18px;
  font-size: 14.5px;
  color: var(--muted);
  max-width: 820px;
}
.notice strong { color: var(--ink); }
.reviewed {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold-text);
}
.src-line { font-size: 14px; color: var(--muted); margin-top: 8px; }
.src-line a { color: var(--ink); }
sup.fn { line-height: 0; font-size: 11.5px; }
sup.fn a { text-decoration: none; color: var(--gold-text); font-weight: 700; padding: 0 1px; }
sup.fn a:hover, sup.fn a:focus { text-decoration: underline; }
.footnotes { margin-top: 14px; padding-left: 22px; font-size: 13.5px; color: var(--muted); }
.footnotes li { margin: 6px 0; }
.footnotes a { color: var(--ink); overflow-wrap: anywhere; }
.about-page { font-size: 13.5px; color: var(--muted); max-width: 900px; }
.about-page p { margin-top: 8px; }

/* ---------- Rental-law knowledge center ---------- */
.law-hero {
  position: relative;
  overflow: hidden;
  padding: 54px 0 50px;
  color: var(--white);
  background:
    radial-gradient(circle at 82% 12%, rgba(244, 168, 24, .16), transparent 30%),
    linear-gradient(135deg, #151513 0%, #23221e 66%, #171714 100%);
  border-bottom: 3px solid var(--gold);
}
.law-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(to left, #000, transparent 72%);
}
.law-hero .wrap { position: relative; z-index: 1; }
.law-hero .crumbs, .law-hero .crumbs a { color: #c9c5bd; }
.law-hero .crumbs .sep { color: #757168; }
.law-hero h1 { max-width: 780px; margin-top: 12px; font-size: clamp(34px, 5vw, 58px); line-height: 1.08; letter-spacing: -.025em; }
.law-hero p.intro { max-width: 740px; margin-top: 18px; color: #dedad3; font-size: 18px; }
.law-eyebrow, .law-kicker {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--gold-text);
}
.law-hero .law-eyebrow { margin-top: 20px; color: #ffc44a; }
.law-proof { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.law-proof span { display: inline-flex; align-items: center; min-height: 38px; padding: 7px 13px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #d4d0c9; background: rgba(255,255,255,.055); font-size: 13px; }
.law-proof strong { margin-right: 5px; color: #fff; font-family: var(--font-display); }
.law-hero .law-notice { margin-top: 30px; max-width: 900px; color: #cbc7c0; background: rgba(255,255,255,.065); border-color: rgba(255,255,255,.16); border-left-color: var(--gold); }
.law-hero .law-notice strong { color: #fff; }

.law-orientation, .law-source-key, .law-formats, .law-topic-browser, .law-directories { padding: 64px 0; }
.law-orientation, .law-formats, .law-directories { background: var(--paper); }
.law-source-key, .law-topic-browser { background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.law-section-head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 32px; align-items: end; margin-bottom: 28px; }
.law-section-head h2 { margin-top: 6px; font-size: clamp(25px, 3.2vw, 36px); letter-spacing: -.015em; }
.law-section-head > p { max-width: 520px; color: var(--muted); }

.law-pathways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.law-path { display: grid; grid-template-columns: auto 1fr; gap: 18px; min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); box-shadow: 0 12px 30px rgba(17,17,17,.045); }
.law-path--owner { border-top: 4px solid var(--gold); }
.law-path--resident { border-top: 4px solid #6e7d82; }
.law-path-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; font-family: var(--font-display); font-weight: 700; color: var(--ink); background: #f5c45e; }
.law-path--resident .law-path-mark { color: #fff; background: #6e7d82; }
.law-path h3 { margin-top: 5px; font-size: 22px; }
.law-path nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin-top: 18px; }
.law-path nav a { display: inline-flex; min-height: 34px; align-items: center; color: var(--ink); font-size: 14.5px; line-height: 1.35; text-decoration-color: #b5b0a7; text-underline-offset: 3px; }
.law-path nav a:hover, .law-path nav a:focus { color: var(--gold-text); text-decoration-thickness: 2px; }

.law-levels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.law-levels article { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 8px; background: #fbfaf7; }
.law-levels h3 { margin-top: 15px; font-size: 17px; }
.law-levels p { margin-top: 8px; color: var(--muted); font-size: 14px; }
.law-level, .law-format-label { display: inline-flex; align-items: center; min-height: 25px; width: fit-content; padding: 3px 9px; border-radius: 999px; font-family: var(--font-display); font-size: 10.5px; font-weight: 700; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.law-level--federal { color: #344753; background: #dfe9ee; }
.law-level--california { color: #694900; background: #f9e7b5; }
.law-level--petaluma { color: #355a43; background: #dfece3; }
.law-level--nearby { color: #5e5165; background: #ece5ef; }
.law-level--help { color: #5e4334; background: #eee4dc; }

.law-format-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.law-format-grid article { display: flex; flex-direction: column; min-width: 0; min-height: 270px; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 10px 24px rgba(17,17,17,.04); }
.law-format-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #d5ae55; border-radius: 50%; font-family: var(--font-display); font-size: 12px; font-weight: 700; color: var(--gold-text); background: #fff9eb; }
.law-format-grid h3 { margin-top: 16px; font-size: 19px; }
.law-format-grid article > p:not(.law-format-links) { margin-top: 8px; color: var(--muted); font-size: 14.5px; }
.law-format-links { display: grid; gap: 7px; margin-top: auto; padding-top: 20px; }
.law-format-links a { font-family: var(--font-display); font-size: 13.5px; font-weight: 600; text-underline-offset: 3px; }
.law-format-links a::after { content: " ↗"; color: var(--gold-text); }

.law-section-head--topics { margin-bottom: 24px; }
.law-topic-grid { display: grid; gap: 14px; }
.law-topic-card { scroll-margin-top: 24px; border: 1px solid var(--line); border-radius: 9px; background: #fcfbf8; overflow: clip; }
.law-topic-card[open] { border-color: #c6b37f; background: var(--white); box-shadow: 0 12px 30px rgba(17,17,17,.055); }
.law-topic-card summary { display: grid; grid-template-columns: 54px 1fr auto; gap: 16px; align-items: center; min-height: 86px; padding: 18px 22px; cursor: pointer; list-style: none; }
.law-topic-card summary::-webkit-details-marker { display: none; }
.law-topic-card summary::after { content: "+"; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: #fff; font-family: var(--font-display); font-size: 21px; line-height: 1; }
.law-topic-card[open] summary::after { content: "–"; color: #fff; background: var(--ink); border-color: var(--ink); }
.law-topic-card summary:hover, .law-topic-card summary:focus-visible { background: #f6f3eb; outline: none; }
.law-topic-card summary:focus-visible { box-shadow: inset 0 0 0 3px var(--gold); }
.law-card-number { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 6px; color: var(--gold-text); background: #f6ecd2; font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.law-topic-card summary strong { display: block; font-family: var(--font-display); font-size: 19px; line-height: 1.3; }
.law-topic-card summary small { display: block; margin-top: 5px; color: var(--muted); font-size: 12.5px; }
.law-card-body { padding: 4px 22px 26px 92px; }
.law-subject-block { padding: 18px 20px; border-left: 3px solid var(--gold); background: #faf6eb; }
.law-subject-block h3 { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.law-subjects { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 0; list-style: none; }
.law-subjects li { padding: 7px 10px; border: 1px solid #ddd2b8; border-radius: 999px; color: #4c463c; background: #fff; font-size: 12.5px; line-height: 1.25; }
.law-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; padding: 0; list-style: none; }
.law-source { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.law-source-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.law-format-label { color: #555048; background: #efede8; }
.law-source-title { display: inline; font-family: var(--font-display); font-size: 15.5px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.law-source-title:hover, .law-source-title:focus { color: var(--gold-text); text-decoration-thickness: 2px; }
.law-source-title::after { content: " ↗"; color: var(--gold-text); font-size: 12px; }
.law-keywords { margin-top: 9px; color: var(--muted); font-size: 13px; line-height: 1.48; }
.law-keywords strong { color: var(--ink); }
.law-boundary { margin-top: 16px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid #7d878a; color: var(--muted); background: #f7f8f7; font-size: 13px; }
.law-boundary strong { color: var(--ink); }

.law-directory-panel { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); gap: 38px; padding: 32px; border-radius: 10px; color: #fff; background: var(--ink); }
.law-directory-panel h2 { margin-top: 6px; font-size: 32px; }
.law-directory-panel > div > p:last-child { margin-top: 12px; color: #c7c3bc; }
.law-directory-links { display: grid; gap: 10px; }
.law-directory-links a { display: grid; grid-template-columns: 120px 1fr; gap: 14px; align-items: center; min-height: 66px; padding: 13px 16px; border: 1px solid #47443e; border-radius: 6px; color: #fff; background: #24231f; text-decoration: none; }
.law-directory-links a:hover, .law-directory-links a:focus { border-color: var(--gold); background: #2c2a24; }
.law-directory-links span { color: #ffc44a; font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.law-directory-links strong { font-family: var(--font-display); font-size: 14px; font-weight: 600; }

@media (max-width: 980px) {
  .law-levels, .law-format-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .law-format-grid article { min-height: 230px; }
}
@media (max-width: 760px) {
  .law-orientation, .law-source-key, .law-formats, .law-topic-browser, .law-directories { padding: 48px 0; }
  .law-section-head, .law-directory-panel { grid-template-columns: 1fr; gap: 16px; }
  .law-pathways { grid-template-columns: 1fr; }
  .law-path nav { grid-template-columns: 1fr; }
  .law-card-body { padding: 4px 16px 22px; }
  .law-sources { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .law-hero { padding-top: 40px; }
  .law-hero h1 { font-size: 35px; }
  .law-proof { display: grid; }
  .law-proof span { width: fit-content; }
  .law-path { grid-template-columns: 1fr; padding: 22px; }
  .law-levels, .law-format-grid { grid-template-columns: 1fr; }
  .law-format-grid article { min-height: auto; }
  .law-topic-card summary { grid-template-columns: 44px 1fr auto; gap: 10px; min-height: 80px; padding: 14px 12px; }
  .law-card-number { width: 40px; height: 40px; }
  .law-topic-card summary strong { font-size: 16px; }
  .law-topic-card summary small { font-size: 11.5px; }
  .law-topic-card summary::after { width: 30px; height: 30px; }
  .law-subject-block, .law-source { padding: 15px; }
  .law-directory-panel { padding: 22px; }
  .law-directory-links a { grid-template-columns: 1fr; gap: 3px; }
}

@media print {
  .law-hero { color: #000; background: #fff; border-bottom: 2px solid #000; }
  .law-hero::after { display: none; }
  .law-hero .crumbs, .law-hero .crumbs a, .law-hero p.intro, .law-hero .law-notice { color: #222; }
  .law-hero .law-notice, .law-directory-panel { color: #000; background: #fff; border: 1px solid #777; }
  .law-proof span { color: #000; border-color: #777; background: #fff; }
  .law-proof strong, .law-hero .law-notice strong { color: #000; }
  .law-pathways, .law-levels, .law-format-grid, .law-sources { grid-template-columns: 1fr 1fr; }
  .law-topic-card { break-inside: avoid; box-shadow: none; }
  .law-topic-card:not([open]) > :not(summary) { display: block !important; }
  .law-topic-card summary::after { display: none; }
  .law-source-title::after, .law-format-links a::after { content: ""; }
  .law-directory-panel h2, .law-directory-links a, .law-directory-links strong { color: #000; }
  .law-directory-links a { background: #fff; border-color: #777; }
  .law-directory-links span { color: #000; }
}

/* ---------- Rental-law Option 2: breadth-first neutral reference ---------- */
.neutral-option-hero {
  position: relative;
  overflow: hidden;
  padding: 54px 0 48px;
  background: #f1eee6;
  border-bottom: 1px solid #d8d1c3;
}
.neutral-option-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(244,168,24,.09) 0, rgba(244,168,24,0) 46%); }
.neutral-option-hero .wrap { position: relative; z-index: 1; }
.neutral-option-hero h1 { max-width: 900px; margin-top: 12px; font-size: clamp(34px, 5vw, 56px); line-height: 1.08; letter-spacing: -.025em; }
.neutral-option-hero p.intro { max-width: 820px; margin-top: 18px; font-size: 18px; }
.neutral-proof { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.neutral-proof span { display: inline-flex; align-items: center; min-height: 38px; padding: 7px 13px; border: 1px solid #d7cdb9; border-radius: 999px; color: var(--muted); background: rgba(255,255,255,.72); font-size: 13px; }
.neutral-proof strong { margin-right: 5px; color: var(--ink); font-family: var(--font-display); }
.neutral-option-switch { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; max-width: 820px; margin-top: 28px; padding: 15px 18px; border: 1px solid #d4c7a8; border-radius: 7px; background: #fffaf0; }
.neutral-option-switch div { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; }
.neutral-option-switch span { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-text); }
.neutral-option-switch strong { font-family: var(--font-display); font-size: 14px; }
.neutral-option-switch a { font-family: var(--font-display); font-size: 13.5px; font-weight: 700; text-underline-offset: 3px; }

.neutral-method { padding: 48px 0; color: #fff; background: var(--ink); }
.neutral-method-grid { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: 42px; align-items: center; }
.neutral-method h2 { margin-top: 7px; max-width: 420px; font-size: 31px; }
.neutral-method ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 0; list-style: none; }
.neutral-method li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; min-width: 0; padding: 18px; border: 1px solid #45423c; border-radius: 7px; background: #24231f; }
.neutral-method li > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--ink); background: var(--gold); font-family: var(--font-display); font-size: 12px; font-weight: 700; }
.neutral-method li strong { font-family: var(--font-display); font-size: 14px; }
.neutral-method li p { margin-top: 5px; color: #bcb8b0; font-size: 12.5px; line-height: 1.45; }

.neutral-archive { padding: 64px 0; background: var(--paper); }
.neutral-archive-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 38px; align-items: start; }
.neutral-toc { position: sticky; top: 24px; padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.neutral-toc nav { display: grid; gap: 2px; margin-top: 13px; }
.neutral-toc a { display: grid; gap: 2px; min-height: 50px; padding: 9px 10px; border-left: 3px solid transparent; text-decoration: none; }
.neutral-toc a:hover, .neutral-toc a:focus { border-left-color: var(--gold); background: #f7f4ec; }
.neutral-toc a span { font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.neutral-toc a strong { color: var(--muted); font-size: 11.5px; font-weight: 400; }
.neutral-archive-main { min-width: 0; }
.neutral-archive-intro { padding: 0 0 34px; border-bottom: 1px solid var(--line); }
.neutral-archive-intro h2 { margin-top: 6px; font-size: 34px; }
.neutral-archive-intro > p:last-child { max-width: 740px; margin-top: 12px; color: var(--muted); }

.neutral-jurisdiction { scroll-margin-top: 24px; padding: 52px 0 6px; }
.neutral-jurisdiction > header { display: grid; grid-template-columns: 170px minmax(240px, .9fr) minmax(240px, 1.1fr); gap: 22px; align-items: end; margin-bottom: 22px; }
.neutral-jurisdiction > header > div { display: grid; gap: 7px; align-content: end; }
.neutral-section-count { color: var(--muted); font-family: var(--font-display); font-size: 11.5px; font-weight: 600; }
.neutral-jurisdiction > header h2 { font-size: 27px; }
.neutral-jurisdiction > header > p { color: var(--muted); font-size: 14px; }
.neutral-entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.neutral-entry { display: flex; flex-direction: column; min-width: 0; padding: 21px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 7px 18px rgba(17,17,17,.025); }
.neutral-entry-id { font-family: var(--font-display); font-size: 10.5px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; color: var(--gold-text); }
.neutral-entry h3 { margin-top: 7px; font-size: 17px; }
.neutral-source-description { margin-top: 10px; color: var(--muted); font-size: 13px; line-height: 1.52; }
.neutral-source-description strong { color: var(--ink); }
.neutral-direct-links { display: grid; gap: 6px; margin-top: auto; padding-top: 16px; }
.neutral-direct-links a { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; min-height: 34px; padding: 6px 8px; border: 1px solid #e2ded5; border-radius: 5px; color: var(--ink); background: #faf9f6; font-family: var(--font-display); font-size: 12.5px; font-weight: 650; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
.neutral-direct-links a:hover, .neutral-direct-links a:focus { border-color: #b59a5e; background: #fffaf0; }
.neutral-direct-links a::after { content: "↗"; justify-self: end; color: var(--gold-text); }
.neutral-direct-links a span { padding: 3px 6px; border-radius: 999px; color: #5a554c; background: #ebe9e4; font-family: var(--font-display); font-size: 8.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.neutral-boundary-line { margin-top: 12px; padding: 9px 10px; border-left: 3px solid #858d8f; color: var(--muted); background: #f5f6f5; font-size: 11.5px; line-height: 1.45; }

.neutral-additions { scroll-margin-top: 24px; margin-top: 56px; padding: 34px; border-radius: 10px; background: #e9eee9; }
.neutral-additions > header { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, .8fr); gap: 22px; align-items: end; }
.neutral-additions > header .law-kicker { grid-column: 1 / -1; }
.neutral-additions > header h2 { font-size: 29px; }
.neutral-additions > header > p:last-child { color: #59635c; font-size: 14px; }
.neutral-gap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.neutral-gap-grid article { min-width: 0; padding: 19px; border: 1px solid #cbd4cc; border-radius: 7px; background: rgba(255,255,255,.78); }
.neutral-gap-grid article > span { color: #4c6755; font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.neutral-gap-grid h3 { margin-top: 6px; font-size: 16px; }
.neutral-gap-grid p { margin-top: 8px; color: #59635c; font-size: 12.5px; }
.neutral-gap-grid a { display: inline-flex; margin: 12px 9px 0 0; font-family: var(--font-display); font-size: 12px; font-weight: 700; text-underline-offset: 3px; }

.neutral-boundaries { scroll-margin-top: 24px; display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); gap: 30px; margin-top: 52px; padding: 32px; border-radius: 10px; color: #fff; background: var(--ink); }
.neutral-boundaries h2 { margin-top: 6px; font-size: 27px; }
.neutral-boundaries ul { display: grid; gap: 9px; padding-left: 20px; color: #d0ccc5; font-size: 13.5px; }
.neutral-boundaries .about-page { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid #45423c; color: #aaa69f; }

@media (max-width: 1040px) {
  .neutral-archive-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 24px; }
  .neutral-jurisdiction > header { grid-template-columns: 150px 1fr; }
  .neutral-jurisdiction > header > p { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .neutral-method-grid, .neutral-archive-layout { grid-template-columns: 1fr; }
  .neutral-method ol { grid-template-columns: 1fr; }
  .neutral-toc { position: static; }
  .neutral-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .neutral-jurisdiction > header { grid-template-columns: 1fr; gap: 8px; }
  .neutral-jurisdiction > header > p { grid-column: auto; }
  .neutral-additions > header, .neutral-boundaries { grid-template-columns: 1fr; }
  .neutral-additions > header .law-kicker, .neutral-boundaries .about-page { grid-column: auto; }
}
@media (max-width: 620px) {
  .neutral-option-hero h1 { font-size: 35px; }
  .neutral-proof { display: grid; }
  .neutral-proof span { width: fit-content; }
  .neutral-option-switch { align-items: flex-start; }
  .neutral-entry-grid, .neutral-gap-grid { grid-template-columns: 1fr; }
  .neutral-toc nav { grid-template-columns: 1fr; }
  .neutral-additions, .neutral-boundaries { padding: 22px; }
  .neutral-direct-links a { grid-template-columns: 1fr auto; }
  .neutral-direct-links a span { grid-column: 1 / -1; width: fit-content; }
}

@media print {
  .neutral-option-hero, .neutral-archive { background: #fff; }
  .neutral-option-switch, .neutral-toc { display: none; }
  .neutral-method { color: #000; background: #fff; border-top: 1px solid #777; border-bottom: 1px solid #777; }
  .neutral-method-grid, .neutral-archive-layout, .neutral-jurisdiction > header, .neutral-additions > header { grid-template-columns: 1fr; }
  .neutral-method li { color: #000; background: #fff; border-color: #777; }
  .neutral-method li p { color: #333; }
  .neutral-entry-grid, .neutral-gap-grid { grid-template-columns: 1fr 1fr; }
  .neutral-entry, .neutral-gap-grid article { break-inside: avoid; box-shadow: none; }
  .neutral-direct-links a::after { content: ""; }
  .neutral-additions { background: #fff; border: 1px solid #777; }
  .neutral-boundaries { grid-template-columns: 1fr; color: #000; background: #fff; border: 1px solid #777; }
  .neutral-boundaries ul, .neutral-boundaries .about-page { color: #222; }
}

@media (max-width: 720px) {
  .gallery { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Proposal path preview (chooser + path banner + owner-first hero) ---------- */

.path-banner { background: var(--gold); padding: 10px 0; }
.path-banner .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.path-banner p { font-family: var(--font-display); font-size: 13.5px; font-weight: 500; color: var(--ink); }
.path-banner-links a { font-weight: 700; color: var(--ink); margin-left: 18px; text-underline-offset: 3px; }

.hero-owner { position: relative; color: var(--white); background: var(--ink); }
.hero-owner::before { content: ""; position: absolute; inset: 0; background: url(/assets/office-522-dusk.jpg) center 35%/cover no-repeat; }
.hero-owner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(10,10,10,.88) 0%, rgba(10,10,10,.72) 45%, rgba(10,10,10,.38) 100%); }
.hero-owner-inner { position: relative; z-index: 1; padding-top: 56px; padding-bottom: 52px; }
.hero-owner .overline { font-family: var(--font-display); font-weight: 600; font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.hero-owner h1 { color: var(--white); font-size: clamp(32px, 4.2vw, 50px); line-height: 1.15; font-weight: 700; max-width: 720px; margin-top: 12px; }
.hero-owner .hero-sub { font-size: 18.5px; color: #e8e5df; max-width: 560px; margin: 16px 0 26px; }
.hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-ghost-light { border: 2px solid rgba(255,255,255,.55); color: var(--white); background: transparent; }
.btn-ghost-light:hover, .btn-ghost-light:focus { border-color: var(--white); background: rgba(255,255,255,.12); color: var(--white); }
.hero-chips { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 34px; list-style: none; }
.hero-chips li { font-family: var(--font-display); font-size: 13.5px; font-weight: 600; letter-spacing: .05em; color: #d8d5d0; }
.hero-chips li::before { content: ""; display: inline-block; width: 7px; height: 7px; background: var(--gold); margin-right: 9px; transform: rotate(45deg); }

.proof-band { background: var(--white); border-bottom: 1px solid var(--line); padding: 34px 0 30px; }
.proof-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.proof-tiles .tile { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px; }
.proof-tiles .tile b { display: block; font-family: var(--font-display); font-size: 26px; font-weight: 700; }
.proof-tiles .tile span { font-size: 13px; color: var(--muted); }
.proof-note { font-size: 13px; color: var(--muted); margin-top: 14px; }
.proof-note a { color: var(--gold-text); }

.lead-secondary h2 { font-size: 25px; }

@media (max-width: 860px) {
  .proof-tiles { grid-template-columns: 1fr 1fr; }
  .hero-owner-inner { padding-top: 44px; padding-bottom: 44px; }
}

/* Chooser (standalone page, no site chrome) */
.chooser { background: var(--ink); min-height: 100vh; color: #e8e5df; }
.chooser-masthead { border-bottom: 1px solid var(--line-dark); padding: 18px 0; }
.chooser-masthead .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.chooser-masthead img { height: 44px; width: auto; }
.chooser-tag { font-family: var(--font-display); font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.chooser-lead { text-align: center; padding: 32px 0 2px; }
.chooser-lead h1 { color: var(--white); font-size: clamp(21px, 2.2vw, 28px); line-height: 1.25; }
.chooser-lead p { max-width: 680px; margin: 12px auto 0; font-size: 16px; color: #cfccc6; }
.chooser-lead .chooser-facts { max-width: 760px; margin: 13px auto 0; font-size: 16px; line-height: 1.5; color: #cfccc6; }
.chooser-lead .chooser-facts a { color: var(--white); text-decoration: underline; text-underline-offset: 2px; }
.chooser-lead .chooser-facts a:hover, .chooser-lead .chooser-facts a:focus { color: var(--gold); }
.chooser-lead strong { color: var(--gold); }
.chooser-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; padding: 26px 24px 20px; max-width: 1500px; }
.path-card { display: block; background: #1d1d1d; border: 1px solid var(--line-dark); border-radius: 8px; padding: 26px 26px 24px; text-decoration: none; color: #cfccc6; transition: transform .15s ease, border-color .15s ease; }
.path-card:hover, .path-card:focus-visible { transform: translateY(-4px); border-color: var(--gold); outline: none; }
.path-label { font-family: var(--font-display); font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.path-card h2 { color: var(--white); font-size: 27px; margin: 6px 0 16px; }
.path-card .shot { border-radius: 5px; overflow: hidden; border: 1px solid #3a3a3a; }
.path-card .shot img { width: 100%; height: auto; display: block; }
.path-card p { font-size: 15px; line-height: 1.6; margin: 18px 0 14px; }
.path-card .path-go { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--gold); }
.path-card:hover .path-go { text-decoration: underline; text-underline-offset: 3px; }
.chooser-foot { text-align: center; padding: 20px 0 38px; }
.chooser-foot .fine { font-size: 12.5px; color: #9d9990; }
.chooser-foot .fine a { color: #b5b1aa; text-decoration: underline; text-underline-offset: 2px; }
.chooser-foot .fine a:hover, .chooser-foot .fine a:focus { color: #cfccc6; }

@media (max-width: 900px) {
  .chooser-grid { grid-template-columns: minmax(0,1fr); }
}

/* ---------- Modern design (homepage-level restyle: /owner-modern/).
   Full-bleed hero, larger type scale, generous dark bands. Inner pages stay Classic;
   the chooser says so. Classes are m-* so nothing here touches the Classic pages. */

.m-hero { position: relative; display: flex; align-items: flex-end; min-height: min(82vh, 760px); background: var(--ink); color: var(--white); }
.m-hero::before { content: ""; position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.m-hero-owner::before { background-image: url(/assets/office-522-dusk.jpg); background-position: center 35%; }
.m-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.30) 0%, rgba(10,10,10,.26) 40%, rgba(10,10,10,.86) 100%), linear-gradient(90deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.18) 52%, rgba(10,10,10,0) 100%); }
.m-hero-inner { position: relative; z-index: 1; width: 100%; padding-top: 110px; padding-bottom: 92px; }
.m-overline { font-family: var(--font-display); font-weight: 600; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.m-hero h1 { color: var(--white); font-size: clamp(38px, 5.6vw, 68px); line-height: 1.08; font-weight: 700; letter-spacing: -0.015em; max-width: 900px; margin-top: 14px; }
.m-hero .m-hero-sub { font-size: 19px; color: #ece9e3; max-width: 620px; margin: 20px 0 30px; }
.m-hero .hero-ctas .btn { min-height: 52px; padding: 0 32px; font-size: 15.5px; }

.m-listings-flush { padding-top: 0; }

/* Search card; --overlap variant pulls it up over a hero's bottom edge (unused since the renter variants retired; kept for reuse) */
.m-search { position: relative; z-index: 2; padding-bottom: 10px; }
.m-search--overlap { margin-top: -48px; }
.m-search .filter { margin-top: 0; background: var(--white); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 20px 44px rgba(17,17,17,.16); padding: 24px 26px; }

/* Section head: eyebrow + oversized heading */
.m-head { margin-bottom: 34px; }
.m-head .m-eyebrow { font-family: var(--font-display); font-weight: 700; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-text); }
.m-head h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 700; letter-spacing: -0.01em; line-height: 1.12; margin-top: 10px; }
.m-head p.m-head-sub { margin-top: 12px; max-width: 640px; color: var(--muted); font-size: 17px; }
.m-band-dark .m-head .m-eyebrow, .m-split .m-head .m-eyebrow { color: var(--gold); }
.m-band-dark .m-head h2, .m-split .m-head h2 { color: var(--white); }

.m-section { padding: 88px 0; }
.m-band-dark { background: var(--ink); color: #d8d5d0; }

/* Stats band (dark, gold-ruled tiles, oversized numerals) */
.m-stats { background: var(--ink); color: #d8d5d0; padding: 76px 0 68px; }
.m-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 30px; }
.m-stat { border-top: 2px solid var(--gold); padding-top: 18px; }
.m-stat b { display: block; font-family: var(--font-display); font-weight: 700; font-size: clamp(32px, 3.6vw, 54px); line-height: 1.05; color: var(--white); }
.m-stat span { display: block; margin-top: 8px; font-size: 14px; color: #b8b4ae; }
.m-stats-note { margin-top: 30px; font-size: 13.5px; color: #a5a09a; }
.m-stats-note a { color: var(--gold); }

/* Split feature: edge-to-edge photo half + copy half */
.m-split { background: var(--ink); color: #d8d5d0; }
.m-split-inner { display: grid; grid-template-columns: 1.05fr 1fr; align-items: stretch; }
.m-split-media { min-height: 420px; }
.m-split-media img { width: 100%; height: 100%; object-fit: cover; }
.m-split-copy { padding: 88px 72px; max-width: 680px; }
.m-split-copy p { margin-top: 16px; max-width: 520px; }
.m-split-copy ul { list-style: none; margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; font-size: 15.5px; }
.m-split-copy ul li { padding-left: 18px; position: relative; }
.m-split-copy ul li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 8px; height: 2px; background: var(--gold); }
.m-split-copy .btn { margin-top: 28px; }
.m-split-copy .m-small { font-size: 14.5px; color: #b8b4ae; margin-top: 12px; }

/* Full-width closing CTA band */
.m-cta { background: var(--ink); border-top: 1px solid var(--line-dark); text-align: center; padding: 92px 24px; }
.m-cta h2 { color: var(--white); font-size: clamp(28px, 3.6vw, 44px); font-weight: 700; letter-spacing: -0.01em; max-width: 820px; margin: 0 auto; }
.m-cta p { color: #cfccc6; font-size: 17px; max-width: 640px; margin: 16px auto 30px; }
.m-cta .btn { min-height: 52px; padding: 0 32px; }
.m-cta .m-small { font-size: 14.5px; color: #a5a09a; margin: 14px auto 0; }

@media (max-width: 900px) {
  .m-hero { min-height: min(72vh, 640px); }
  .m-hero-inner { padding-top: 80px; padding-bottom: 64px; }
  .m-split-inner { grid-template-columns: 1fr; }
  .m-split-media { min-height: 260px; }
  .m-split-copy { padding: 56px 24px; max-width: none; }
  .m-section { padding: 64px 0; }
  .m-stats-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .m-hero h1 { font-size: 34px; }
  .m-hero .m-hero-sub { font-size: 17px; }
  .m-search--overlap { margin-top: -34px; }
  .m-split-copy ul { grid-template-columns: 1fr; }
}

/* Manager strip beside the rental-analysis form (dark band) */
.manager-strip { display: flex; align-items: center; gap: 14px; margin: 22px 0 18px; }
.manager-strip .faces { display: flex; flex-shrink: 0; }
.manager-strip .faces img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gold); margin-left: -10px; background: var(--ink); }
.manager-strip .faces img:first-child { margin-left: 0; }
.manager-strip p { font-size: 14px; color: #d8d5d0; line-height: 1.5; }
@media (max-width: 620px) { .manager-strip { flex-direction: column; align-items: flex-start; gap: 10px; } }

/* ---------- Listing photo lightbox ---------- */
a.glb { display: block; cursor: zoom-in; }
dialog.lightbox { border: 0; padding: 0; margin: 0; width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; background: rgba(17, 15, 12, 0.92); display: none; place-items: center; }
dialog.lightbox[open] { display: grid; }
dialog.lightbox::backdrop { background: rgba(17, 15, 12, 0.6); }
dialog.lightbox img { max-width: 92vw; max-height: 84vh; width: auto; height: auto; display: block; border-radius: var(--radius); }
dialog.lightbox button { position: fixed; z-index: 2; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.55); background: rgba(17,15,12,.55); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; border-radius: 50%; }
dialog.lightbox button:hover, dialog.lightbox button:focus { background: rgba(255,255,255,.18); }
dialog.lightbox .lb-close { top: 18px; right: 18px; }
dialog.lightbox .lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
dialog.lightbox .lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
dialog.lightbox .lb-count { position: fixed; left: 50%; transform: translateX(-50%); bottom: 16px; color: #fff; font-family: var(--font-display); font-size: 13px; letter-spacing: 0.08em; }

/* ---------- Property maps (Leaflet) ---------- */
.view-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.view-toggle button { font-family: var(--font-display); font-weight: 600; font-size: 13.5px; letter-spacing: 0.04em; padding: 10px 22px; min-height: 44px; background: var(--white); color: var(--ink); border: 0; cursor: pointer; }
.view-toggle button + button { border-left: 1px solid var(--line); }
.view-toggle button[aria-pressed="true"] { background: var(--ink); color: var(--white); }
.view-toggle button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
#rentals-map { height: 560px; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); }
.detail-map { height: 340px; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); margin-top: 6px; }
.leaflet-container { font-family: var(--font-body); background: #e8e5df; }
.leaflet-popup-content { font-size: 14px; line-height: 1.5; }
.leaflet-popup-content a { color: var(--gold-text); font-family: var(--font-display); font-weight: 600; text-decoration: none; }
.leaflet-popup-content a:hover { text-decoration: underline; }
/* Click/tap panning beside drag panning (WCAG 2.2 2.5.7). */
.bpm-map-pan { display: grid; grid-template-areas: ". n ." "w . e" ". s ."; gap: 2px; padding: 3px; background: #fff; border: 2px solid rgba(0,0,0,.2); border-radius: 4px; }
.bpm-map-pan button { width: 30px; height: 30px; padding: 0; font: 600 16px/1 var(--font-body); color: #111; background: #fff; border: 1px solid #6b6b6b; border-radius: 3px; cursor: pointer; }
.bpm-map-pan button:hover { background: #f1efe9; }
.bpm-map-pan button:focus-visible { outline: 3px solid #111; outline-offset: 1px; }
.bpm-map-pan-north { grid-area: n; } .bpm-map-pan-west { grid-area: w; } .bpm-map-pan-east { grid-area: e; } .bpm-map-pan-south { grid-area: s; }
@media (max-width: 620px) { #rentals-map { height: 420px; } }

/* Presort (Homes/Commercial) + view toggles share a row */
.toggles { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

/* Quick tiles: photo shortcut cards under the /owners/ and /renters/ page
   headers — the audience dropdowns' key destinations, one click from the top
   of the page. White text over a scrim keeps contrast on any photo; the ink
   background is the graceful fallback if an image ever 404s. */
.quick-tiles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.qtile {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 150px;
  padding: 16px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #16130f;
  text-decoration: none;
}
.qtile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.qtile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22,19,15,.30) 0%, rgba(22,19,15,.62) 50%, rgba(22,19,15,.86) 100%);
}
.qtile:hover img, .qtile:focus img { transform: scale(1.045); }
.qtile:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.qt-text { position: relative; z-index: 1; color: #fff; }
.qt-text b {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}
.qt-text i {
  display: block;
  font-style: normal;
  font-size: 13px;
  margin-top: 3px;
  color: rgba(255,255,255,.85);
}
.qt-action {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.55);
  font-family: var(--font-display);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
}
.qt-action span { font-size: 17px; transition: transform .25s ease; }
.qtile:hover .qt-action span, .qtile:focus .qt-action span { transform: translateX(4px); }
@media (max-width: 900px) { .quick-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .quick-tiles { grid-template-columns: 1fr; } .qtile { min-height: 110px; } }

/* Owner expertise statement: a restrained editorial pause between the hero
   shortcuts and the service comparison. */
.owner-guidance { border-bottom: 1px solid var(--line); }
.owner-guidance-grid {
  display: grid;
  grid-template-columns: minmax(250px, .8fr) minmax(0, 1.65fr);
  gap: clamp(36px, 7vw, 88px);
  align-items: start;
}
.owner-guidance-kicker {
  margin-bottom: 13px;
  color: var(--gold-text);
  font-family: var(--font-display);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.owner-guidance-copy { max-width: 780px; }
.owner-guidance-copy p { color: var(--muted); }
.owner-guidance-copy p + p { margin-top: 15px; }
.service-fee-note { white-space: nowrap; font-weight: inherit; }

/* Location-authentic community cards. The whole tile is one obvious link,
   with the image supporting the location rather than replacing its name. */
.community-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.community-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 2px solid var(--ink);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.community-card:hover, .community-card:focus {
  border-color: var(--ink);
  box-shadow: 0 14px 32px rgba(33,30,26,.12);
  transform: translateY(-3px);
}
.community-card:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.community-card-media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #ded8cd;
}
.community-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 56%, rgba(22,19,15,.22));
}
.community-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.community-card:hover img, .community-card:focus img { transform: scale(1.035); }
.community-card-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 20px 21px 19px;
}
.community-card-kicker {
  color: var(--gold-text);
  font-family: var(--font-display);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.community-card h3 { margin-top: 5px; }
.community-card-meta { margin-top: 8px; color: var(--muted); font-size: 14.5px; }
.community-card-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: 17px;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.community-card-action span { font-size: 17px; transition: transform .25s ease; }
.community-card:hover .community-card-action span,
.community-card:focus .community-card-action span { transform: translateX(4px); }
.photo-credits { margin-top: 24px; color: var(--muted); font-size: 12.5px; }
.photo-credits summary {
  cursor: pointer;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.photo-credits p { max-width: 1000px; line-height: 1.8; }
.photo-credits a { color: var(--ink); }
.photo-credits summary:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
@media (max-width: 980px) {
  .owner-guidance-grid { grid-template-columns: 1fr; gap: 24px; }
  .community-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .community-grid { grid-template-columns: 1fr; }
}

/* ---------- Rental-law Option 3: question-first source finder ---------- */
.finder-hero {
  position: relative;
  overflow: hidden;
  background: #f3f0e8;
  border-bottom: 1px solid #d7d0c2;
  padding: 42px 0 34px;
}
.finder-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 18%, rgba(187, 142, 42, .16), transparent 28%),
    linear-gradient(115deg, transparent 58%, rgba(255, 255, 255, .6));
}
.finder-hero .wrap { position: relative; z-index: 1; }
.finder-hero .crumbs { margin-bottom: 30px; }
.finder-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); gap: 60px; align-items: end; }
.finder-eyebrow, .finder-kicker {
  margin: 0 0 8px;
  color: #725714;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.finder-hero h1 { max-width: 760px; font-size: clamp(38px, 5vw, 64px); line-height: 1.05; letter-spacing: -.025em; }
.finder-hero .intro { max-width: 720px; margin-top: 18px; color: #4f4a43; font-size: 19px; line-height: 1.55; }
.finder-role-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.finder-role-jump a { display: inline-flex; align-items: center; min-height: 42px; padding: 8px 13px; border: 1px solid #b9ad9a; background: rgba(255,255,255,.68); text-decoration: none; font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.finder-role-jump a:hover, .finder-role-jump a:focus { border-color: #8f6b16; background: #fff; }
.finder-boundary { border-left: 4px solid var(--gold); background: rgba(255,255,255,.74); padding: 22px 24px; box-shadow: 0 12px 36px rgba(42, 34, 21, .08); }
.finder-boundary strong { display: block; font-family: var(--font-display); font-size: 17px; line-height: 1.35; }
.finder-boundary p { margin-top: 8px; color: #5a554d; font-size: 14px; line-height: 1.55; }

.finder-search { display: none; grid-template-columns: 180px minmax(280px, 1fr); gap: 8px 18px; align-items: center; max-width: 880px; margin-top: 34px; }
.finder-js .finder-search { display: grid; }
.finder-search label { font-family: var(--font-display); font-size: 14px; font-weight: 700; }
.finder-search-control { display: grid; grid-template-columns: 1fr auto; border: 1px solid #a99e8d; background: #fff; box-shadow: 0 8px 20px rgba(42, 34, 21, .08); }
.finder-search input { width: 100%; min-height: 52px; border: 0; padding: 0 16px; background: transparent; color: var(--ink); font: inherit; }
.finder-search input:focus { outline: 3px solid var(--gold); outline-offset: -3px; }
.finder-search button, .finder-no-results button { border: 0; border-left: 1px solid #d8d0c2; padding: 0 18px; background: #fff; color: #675018; font-family: var(--font-display); font-weight: 700; cursor: pointer; }
.finder-search button:hover, .finder-search button:focus, .finder-no-results button:hover, .finder-no-results button:focus { background: #f5edd7; }
.finder-search-status { grid-column: 2; min-height: 22px; color: #69635a; font-size: 13px; }
.finder-search-matches { grid-column: 2; border: 1px solid #d1c6b3; background: rgba(255,255,255,.82); padding: 12px; }
.finder-search-matches > strong { display: block; margin-bottom: 8px; color: #5f4a17; font-family: var(--font-display); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.finder-search-matches nav { display: flex; flex-wrap: wrap; gap: 6px; }
.finder-search-matches a { padding: 6px 9px; border: 1px solid #ddd3c1; background: #fff; text-decoration: none; font-size: 12px; line-height: 1.3; }
.finder-search-matches a:hover, .finder-search-matches a:focus { border-color: #977421; background: #fff8e7; }

.finder-fast-routes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 26px; }
.finder-fast-routes a { display: flex; flex-direction: column; justify-content: space-between; min-height: 104px; padding: 15px 16px; border: 1px solid #d4ccbd; background: rgba(255,255,255,.72); text-decoration: none; transition: transform .15s ease, border-color .15s ease, background .15s ease; }
.finder-fast-routes a:hover, .finder-fast-routes a:focus { transform: translateY(-2px); border-color: #a17b1d; background: #fff; }
.finder-fast-routes span { color: #676158; font-size: 13px; }
.finder-fast-routes strong { margin-top: 10px; font-family: var(--font-display); font-size: 15px; line-height: 1.3; }
.finder-fast-routes strong::after { content: " →"; color: #92701b; }

.finder-main { background: #fbfaf7; }
.finder-audiences, .finder-topics, .finder-help { padding: 72px 0; }
.finder-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 480px); gap: 40px; align-items: end; margin-bottom: 30px; }
.finder-section-head h2 { font-size: clamp(28px, 3.3vw, 42px); line-height: 1.15; }
.finder-section-head > p { color: #625d55; }
.finder-audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.finder-audience { position: relative; overflow: hidden; border: 1px solid #d8d0c2; background: #fff; padding: 26px; box-shadow: 0 14px 42px rgba(42,34,21,.06); }
.finder-audience { scroll-margin-top: 110px; }
.finder-audience::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--gold); }
.finder-audience--resident::before { background: #56746a; }
.finder-audience-title { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.finder-audience-title > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--ink); color: #fff; font-family: var(--font-display); font-weight: 700; }
.finder-audience--resident .finder-audience-title > span { background: #45635a; }
.finder-audience-title p { color: #6b655d; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.finder-audience-title h3 { font-size: 22px; }
.finder-audience nav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.finder-audience nav a { display: flex; align-items: center; min-height: 52px; padding: 9px 12px; border: 1px solid #e3ddd2; background: #faf8f3; text-decoration: none; font-size: 14px; line-height: 1.35; }
.finder-audience nav a:hover, .finder-audience nav a:focus { border-color: #a98225; background: #fff8e4; }

.finder-location { padding: 30px 0; background: #24221e; color: #fff; }
.finder-location-inner { display: grid; grid-template-columns: minmax(280px, .85fr) 1.15fr; gap: 46px; align-items: center; }
.finder-location h2 { color: #fff; font-size: 28px; }
.finder-location p:not(.finder-kicker) { color: #c7c2ba; margin-top: 4px; }
.finder-location .finder-kicker { color: #e2bd5c; }
.finder-location nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.finder-location nav a { padding: 12px 14px; border: 1px solid #56514a; color: #fff; text-decoration: none; font-family: var(--font-display); font-size: 14px; }
.finder-location nav a:hover, .finder-location nav a:focus { border-color: #dbb856; background: #302c26; }

.finder-topics { background: #efebe3; }
.finder-section-head--topics { margin-bottom: 20px; }
.finder-result-boundary, .finder-local-boundary { border-left: 3px solid var(--gold); padding: 10px 14px; background: rgba(255,255,255,.68); color: #585249; font-size: 14px; }
.finder-no-results { margin: 30px 0; border: 1px solid #d2c8b6; background: #fff; padding: 30px; text-align: center; }
.finder-no-results p { margin: 8px auto 18px; color: #655f56; }
.finder-no-results button { min-height: 44px; border: 1px solid #cfc4b1; }
.finder-stage { margin-top: 50px; }
.finder-stage > header { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.finder-stage > header > span { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #aa8b45; color: #755b1d; font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.finder-stage > header p { color: #756e64; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.finder-stage > header h2 { font-size: 25px; }
.finder-local-boundary { margin: 0 0 14px 64px; }
.finder-topic-list { display: grid; gap: 10px; }
.finder-topic-card { scroll-margin-top: 110px; border: 1px solid #d5cec1; background: #fff; box-shadow: 0 5px 18px rgba(42,34,21,.035); }
.finder-topic-card[hidden], .finder-stage[hidden] { display: none; }
.finder-topic-card > summary { display: grid; grid-template-columns: 46px 1fr; gap: 15px; align-items: center; min-height: 84px; padding: 14px 56px 14px 18px; position: relative; cursor: pointer; list-style: none; }
.finder-topic-card > summary::-webkit-details-marker { display: none; }
.finder-topic-card > summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); color: #775b18; font-family: var(--font-display); font-size: 26px; font-weight: 500; }
.finder-topic-card[open] > summary::after { content: "−"; }
.finder-topic-card > summary:hover, .finder-topic-card > summary:focus { background: #faf7ef; }
.finder-topic-card > summary:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.finder-topic-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #eee6d4; color: #6c5112; font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.finder-topic-card--high .finder-topic-icon { background: #253d37; color: #fff; }
.finder-topic-card summary strong { display: block; font-family: var(--font-display); font-size: 18px; line-height: 1.3; }
.finder-topic-card summary small { display: block; margin-top: 4px; color: #6c665d; font-size: 14px; line-height: 1.4; }
.finder-topic-body { border-top: 1px solid #e5dfd4; padding: 22px 24px 26px 79px; }
.finder-topic-scope { max-width: 920px; color: #514c44; }
.finder-subjects { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 20px; list-style: none; }
.finder-subjects li { border: 1px solid #ddd3bf; border-radius: 999px; background: #f8f4eb; padding: 5px 10px; color: #61594d; font-size: 12px; line-height: 1.25; }
.finder-source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.finder-source { display: flex; flex-direction: column; min-height: 230px; padding: 16px; border: 1px solid #d9d2c5; background: #fbfaf7; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.finder-source:hover, .finder-source:focus { transform: translateY(-2px); border-color: #9b792a; box-shadow: 0 10px 24px rgba(42,34,21,.08); }
.finder-source-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px; }
.finder-source-meta b, .finder-source-meta em { display: inline-block; padding: 3px 7px; border: 1px solid #cfc4ad; color: #65501f; font-family: var(--font-display); font-size: 10px; font-style: normal; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.finder-source-meta em { border-color: #d8d4cd; color: #5e5a53; }
.finder-source > strong { font-size: 15px; line-height: 1.35; }
.finder-source-contains { margin-top: 10px; color: #625d54; font-size: 13px; line-height: 1.5; }
.finder-source-action { margin-top: auto; padding-top: 16px; color: #735817; font-family: var(--font-display); font-size: 12px; font-weight: 700; }
.finder-source-action::after { content: " ↗"; }
.finder-more { margin-top: 10px; border: 1px solid #ddd5c7; background: #faf8f3; }
.finder-more > summary { padding: 12px 14px; cursor: pointer; color: #5f4915; font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.finder-more > summary:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.finder-more > a { display: grid; grid-template-columns: minmax(160px, .32fr) minmax(200px, .38fr) 1fr; gap: 12px; align-items: baseline; padding: 12px 14px; border-top: 1px solid #e4ddd2; text-decoration: none; }
.finder-more > a:hover, .finder-more > a:focus { background: #fff; }
.finder-more > a span { color: #746b5d; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.finder-more > a strong { font-size: 13px; }
.finder-more > a small { color: #655f56; font-size: 12px; line-height: 1.4; }
.finder-referral { margin-top: 14px; border-left: 3px solid #496b61; background: #f0f5f3; padding: 10px 12px; color: #42534e; font-size: 13px; }

.finder-prepare { padding: 48px 0; background: #2b2925; color: #fff; }
.finder-prepare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.finder-prepare h2 { color: #fff; font-size: 32px; }
.finder-prepare p:not(.finder-kicker) { margin-top: 10px; color: #c8c3bb; }
.finder-prepare .finder-kicker { color: #e0ba57; }
.finder-prepare ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; list-style: none; }
.finder-prepare li { position: relative; padding: 10px 12px 10px 30px; border: 1px solid #4d4942; color: #eeeae3; font-size: 14px; }
.finder-prepare li::before { content: "•"; position: absolute; left: 13px; color: #dfba56; }

.finder-help { background: #fff; }
.finder-help-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.finder-help-grid a { display: flex; flex-direction: column; min-height: 150px; padding: 18px; border: 1px solid #ddd6ca; background: #faf8f3; text-decoration: none; }
.finder-help-grid a:hover, .finder-help-grid a:focus { border-color: #9b792a; background: #fffaf0; }
.finder-help-grid span { color: #735817; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.finder-help-grid strong { margin-top: 8px; font-family: var(--font-display); font-size: 16px; }
.finder-help-grid small { margin-top: auto; padding-top: 14px; color: #655f57; font-size: 13px; }

.finder-library { padding: 42px 0; background: #e9e3d8; border-top: 1px solid #d4ccbe; }
.finder-library-inner { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.finder-library h2 { font-size: 28px; }
.finder-library p:not(.finder-kicker) { max-width: 720px; margin-top: 7px; color: #5f5951; }
.finder-library-links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.finder-library-links a:not(.button) { color: #5f4915; font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.finder-about { padding: 22px 0; background: #f8f5ef; border-top: 1px solid #ded6c9; }
.finder-about p { color: #5f5951; font-size: 13px; line-height: 1.6; }

@media (max-width: 1040px) {
  .finder-hero-grid, .finder-section-head { grid-template-columns: 1fr; gap: 24px; }
  .finder-boundary { max-width: 760px; }
  .finder-fast-routes { grid-template-columns: repeat(2, 1fr); }
  .finder-audience-grid { grid-template-columns: 1fr; }
  .finder-location-inner { grid-template-columns: 1fr; gap: 22px; }
  .finder-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finder-help-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .finder-hero { padding-top: 28px; }
  .finder-hero .crumbs { margin-bottom: 22px; }
  .finder-hero h1 { font-size: 39px; }
  .finder-hero .intro { font-size: 17px; }
  .finder-search, .finder-js .finder-search { grid-template-columns: 1fr; }
  .finder-search-status, .finder-search-matches { grid-column: 1; }
  .finder-fast-routes { grid-template-columns: 1fr 1fr; }
  .finder-fast-routes a { min-height: 94px; }
  .finder-audiences, .finder-topics, .finder-help { padding: 54px 0; }
  .finder-audience { padding: 22px 18px; }
  .finder-audience nav { grid-template-columns: 1fr; }
  .finder-location nav { grid-template-columns: 1fr; }
  .finder-stage { margin-top: 40px; }
  .finder-stage > header { align-items: flex-start; }
  .finder-stage > header h2 { font-size: 21px; }
  .finder-local-boundary { margin-left: 0; }
  .finder-topic-card > summary { grid-template-columns: 40px 1fr; padding: 14px 44px 14px 12px; }
  .finder-topic-card > summary::after { right: 15px; }
  .finder-topic-icon { width: 38px; height: 38px; }
  .finder-topic-card summary strong { font-size: 16px; }
  .finder-topic-card summary small { font-size: 13px; }
  .finder-topic-body { padding: 18px 14px 22px; }
  .finder-source-grid { grid-template-columns: 1fr; }
  .finder-source { min-height: 0; }
  .finder-source-action { margin-top: 10px; }
  .finder-more > a { grid-template-columns: 1fr; gap: 4px; }
  .finder-prepare-grid, .finder-library-inner { grid-template-columns: 1fr; gap: 26px; }
  .finder-prepare ul { grid-template-columns: 1fr; }
  .finder-help-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .finder-hero h1 { font-size: 34px; }
  .finder-fast-routes { grid-template-columns: 1fr; }
  .finder-fast-routes a { min-height: 78px; }
  .finder-search-control { grid-template-columns: 1fr; }
  .finder-search button { min-height: 42px; border-left: 0; border-top: 1px solid #d8d0c2; }
}

@media print {
  .finder-hero, .finder-audiences, .finder-location, .finder-topics, .finder-prepare, .finder-help, .finder-library, .finder-about { background: #fff !important; color: #000 !important; }
  .finder-search, .finder-fast-routes, .finder-audience nav, .finder-location nav, .finder-library-links { display: none !important; }
  .finder-hero, .finder-audiences, .finder-topics, .finder-help { padding: 20px 0 !important; }
  .finder-boundary, .finder-result-boundary, .finder-local-boundary, .finder-referral { background: #fff !important; color: #000 !important; }
  .finder-topic-card { break-inside: avoid; box-shadow: none; }
  .finder-topic-card > summary::after { display: none; }
  .finder-topic-card > .finder-topic-body { display: block !important; }
  .finder-source-grid { grid-template-columns: 1fr 1fr; }
  .finder-source { min-height: 0; break-inside: avoid; }
  .finder-more > * { display: block !important; }
  .finder-more > a { break-inside: avoid; }
  .finder-help-grid { grid-template-columns: 1fr 1fr; }
}

/* Manager profile pages (/team/<slug>/) */

.mgr-profile { display: flex; gap: 28px; align-items: flex-start; flex-wrap: wrap; }
.mgr-profile img { width: 220px; max-width: 100%; height: auto; border-radius: 10px; flex: 0 0 auto; }
.mgr-profile > div { flex: 1 1 320px; max-width: 65ch; }
.mgr-reach { margin-top: 12px; }
.mgr-more { display: block; margin-top: 6px; font-size: 14px; }

/* lf-laws:start (generated by gen_laws_faq.py, edit the generator) */
.lf-hero { background: var(--paper); padding: 33px 0 6px; }
.lf-hero h1 { font-family: var(--font-display); margin: 8px 0 10px; }
.lf-lede { max-width: 62ch; color: var(--muted); }
.lf-body { padding: 8px 0 70px; background: var(--paper); }
.lf-popular { margin: 14px 0 24px; }
.lf-popular h2 { font-family: var(--font-display); font-size: .78rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gold-text); margin: 0 0 8px; }
.lf-popular ol { list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .lf-popular ol { columns: 2; column-gap: 34px; } }
.lf-popular li { break-inside: avoid; padding: 5px 0; }
.lf-popular a { color: var(--ink); font-weight: 600; font-size: .95rem;
  text-decoration-color: var(--gold-text); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.lf-popular a:hover { color: var(--gold-text); }
.lf-search { display: none; position: relative; margin: 0 0 12px; }
.lf-js .lf-search { display: block; }
.lf-search input { width: 100%; padding: 13px 44px 13px 16px; font-size: 1rem;
  border: 1.5px solid var(--line); border-radius: 10px; background: var(--white); font-family: inherit; }
.lf-search input:focus { outline: 2px solid var(--gold-text); outline-offset: 1px; }
.lf-clear { position: absolute; right: 8px; top: 11px; border: 0; background: none;
  font-size: 1.1rem; color: var(--muted); cursor: pointer; padding: 6px 10px; display: none; }
.lf-search.has-text .lf-clear { display: block; }
.lf-chipbar { display: none; background: var(--paper); padding: 10px 0 8px; margin: 0 0 6px;
  border-bottom: 1px solid var(--line); }
.lf-js .lf-chipbar { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 720px) { .lf-chipbar { position: sticky; top: 0; z-index: 10; } }
.lf-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; min-height: 36px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--white);
  color: var(--ink); font-size: .86rem; font-weight: 600; text-decoration: none; }
.lf-chip .lf-cnt { color: var(--muted); font-weight: 500; font-size: .78rem; }
.lf-chip:hover { border-color: var(--gold-text); }
.lf-chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.lf-chip.is-active .lf-cnt { color: #f2e5c6; }
.lf-count { color: var(--muted); font-size: .85rem; margin: 6px 2px 18px; min-height: 1.2em; }
.lf-count button { border: 0; background: none; color: var(--gold-text); font: inherit;
  font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; padding: 0; }
.lf-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 860px) { .lf-cat .lf-rows { display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; align-items: start; padding: 0 0 10px; } }
.lf-cat { background: var(--white); border: 1px solid var(--line); border-radius: 10px;
  margin: 0; overflow: hidden; display: flex; flex-direction: column; }
.lf-cat .lf-rows { flex: 1; }
.lf-cat h2 { font-family: var(--font-display); font-size: .8rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gold-text); margin: 0; padding: 14px 18px 10px; }
.lf-hcnt { color: var(--muted); letter-spacing: 0; font-family: var(--font-body); font-weight: 500; }
.lf-faq { border-top: 1px solid var(--line); }
.lf-faq summary { display: flex; align-items: center; gap: 12px; padding: 13px 18px; min-height: 48px;
  cursor: pointer; list-style: none; }
.lf-faq summary::-webkit-details-marker { display: none; }
.lf-q { flex: 1; min-width: 0; font-weight: 600; font-size: .95rem; }
.lf-faq[open] { background: #fbf7ee; box-shadow: inset 3px 0 0 var(--gold-text); }
.lf-caret { flex: none; width: 9px; height: 9px; border-right: 2px solid var(--gold-text);
  border-bottom: 2px solid var(--gold-text); transform: rotate(45deg); transition: transform .15s; margin-right: 2px; }
.lf-faq[open] .lf-caret { transform: rotate(-135deg); }
.lf-flag { flex: none; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase;
  background: #f2e5c6; border-radius: 999px; padding: 3px 9px; white-space: nowrap; }
.lf-anss { list-style: none; margin: 0; padding: 2px 18px 14px 18px; }
.lf-ans { padding: 8px 0; }
.lf-ans a { font-weight: 600; color: var(--ink); text-decoration-color: var(--gold-text);
  text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.lf-ans a:hover { color: var(--gold-text); }
.lf-tail { color: var(--muted); }
.lf-hidden { display: none; }
.lf-directories { margin: 26px 0 0; padding: 14px 18px; background: var(--white);
  border: 1px solid var(--line); border-radius: 10px; font-size: .92rem; }
.lf-directories a { color: var(--ink); font-weight: 600; margin-left: 12px;
  text-decoration-color: var(--gold-text); text-underline-offset: 3px; }
.lf-about { margin-top: 22px; color: var(--muted); font-size: .85rem; max-width: 75ch; }
.lf-totop { position: fixed; right: 18px; bottom: 18px; z-index: 20; display: none;
  padding: 9px 14px; border-radius: 999px; background: var(--ink); color: var(--white);
  font-size: .82rem; font-weight: 600; text-decoration: none; box-shadow: 0 6px 20px rgba(17,17,17,.25); }
.lf-js .lf-totop.show { display: block; }
@media (max-width: 540px) {
  .lf-faq summary { flex-wrap: wrap; }
  .lf-q { flex: 1 1 calc(100% - 30px); }
  .lf-flag { order: 3; margin: 4px 0 2px; }
}
.lf-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* lf-laws:end */

/* ---------- Owner Services (/owners/, rebuilt 2026-08-22) ----------
   Grafts onto the existing owners-page classes; every new rule is ov2-*. */

.ov2-hero .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(360px, .68fr);
  column-gap: 48px;
  row-gap: 28px;
  align-items: start;
}
.ov2-hero-copy { max-width: 760px; }
.ov2-hero .lead-ctas { align-items: center; }
.ov2-jump { min-height: 44px; display: inline-flex; align-items: center; font-size: 15px; color: var(--ink); text-underline-offset: 3px; }
.ov2-owner-links {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 20px;
  font-size: 14px;
  color: var(--muted);
}
.ov2-owner-links-label {
  font-family: var(--font-display);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ov2-owner-links a { min-height: 36px; display: inline-flex; align-items: center; color: var(--ink); text-underline-offset: 3px; }
.ov2-owner-separator { display: none; }
.ov2-proof { margin-top: 2px; padding: 22px; }
.ov2-proof .manager-strip { margin: 0; flex-direction: column; align-items: flex-start; gap: 12px; }
.ov2-proof .manager-strip p { color: var(--muted); font-size: 15px; }
.ov2-proof .manager-strip p a { color: var(--ink); text-underline-offset: 3px; }
.ov2-proof-row { list-style: none; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); display: grid; gap: 6px; font-size: 14.5px; color: var(--muted); }
.ov2-proof-row strong { color: var(--ink); font-weight: 600; }

.ov2-kicker { margin: 0 0 6px; font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.ov2-sub { margin-top: 10px; color: var(--muted); max-width: 640px; }
.ov2-service-grid { gap: 24px; align-items: stretch; }
.ov2-service-card { min-width: 0; }
/* Paper cards on the deep-paper band: the exact inverse of the process
   section below (paper band, deep-paper panels). Greg 2026-09-04.
   Specificity beats k-site.css's generic .panel. */
.renter-services.ov2-services .panel.ov2-service-card { background: var(--paper); }
.ov2-service-card > p { flex: none; }
.ov2-best-for { min-block-size: 3.4em; margin-top: 8px; }
.ov2-list { min-block-size: 166px; margin-top: 16px; display: grid; gap: 8px; list-style: none; font-size: 15.5px; }
.ov2-list li { position: relative; padding-left: 20px; }
.ov2-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 9px; height: 2px; background: var(--gold); }
.ov2-after {
  margin-top: auto;
  padding-top: 18px;
  display: grid;
  grid-template-rows: minmax(136px, auto) minmax(7em, auto) auto;
  gap: 14px;
}
.ov2-boundary { min-block-size: 136px; padding: 12px 14px; border-left: 3px solid var(--ink); background: rgba(0,0,0,.04); font-size: 14.5px; }
.ov2-boundary strong,
.ov2-fee > strong { display: block; font-family: var(--font-display); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 2px; color: var(--ink); }
.ov2-fee { min-block-size: 7em; margin: 0; font-size: 14px; color: var(--muted); }
.panel .ov2-cta { width: min(100%, 300px); margin-top: 0; align-self: start; }
.ov2-unsure { margin-top: 22px; color: var(--muted); }

.ov2-process-grid { grid-template-columns: minmax(0, .9fr) minmax(0, .9fr) minmax(0, 1.2fr); gap: 24px; align-items: stretch; }
.ov2-step-split { margin-top: 12px; display: grid; gap: 18px; }
.ov2-process-branch .ov2-step-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ov2-step-split p { margin: 0; }
.ov2-step-split p + p { padding-left: 18px; border-left: 1px solid var(--line); }
.ov2-step-split strong { display: block; font-family: var(--font-display); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 2px; }

.owners.ov2-analysis .inner { align-items: start; }
.ov2-gets { margin-top: 16px; }
.ov2-service { margin: 0; padding: 0; border: 0; display: grid; gap: 0; }
.ov2-service legend { margin: 0 0 8px; padding: 0; font-family: var(--font-display); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lead-form .ov2-service label { min-height: 44px; padding: 6px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 9px; font-family: var(--font-body); font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink); }
.lead-form .ov2-service label:first-of-type { border-top: 1px solid var(--line); }
.ov2-service input[type="radio"] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--ink); margin: 0; }

.ov2-guidance-intro { grid-template-columns: minmax(300px, .9fr) minmax(0, 1.6fr); gap: 64px; align-items: end; }
.ov2-guidance .owner-guidance-copy { max-width: 72ch; }
.ov2-guidance-panels { margin-top: 32px; align-items: stretch; }

.lead.ov2-hero { padding-block: 66px 52px; border-bottom: 0; }
.renter-services.ov2-services,
.listings.ov2-process,
.owners.ov2-analysis,
.listings.ov2-guidance,
.renter-services.ov2-faq { padding-block: 64px; border: 0; }
.renter-services.ov2-services { background: var(--k-paper-deep); }
.listings.ov2-process { background: var(--paper); }
.owners.ov2-analysis { background: var(--k-stone); }
.listings.ov2-guidance { background: var(--k-paper-deep); }
.renter-services.ov2-faq { background: var(--paper); }
:is(
  .renter-services.ov2-services,
  .listings.ov2-process,
  .owners.ov2-analysis,
  .listings.ov2-guidance,
  .renter-services.ov2-faq
) { border-top: 1px solid var(--line); }
.listings.ov2-service-area { padding-block: 32px; border-top: 1px solid var(--line); }

@media (max-width: 900px) {
  .ov2-hero .wrap { grid-template-columns: 1fr; gap: 28px; }
  .ov2-proof { max-width: 560px; }
}
@media (max-width: 720px) {
  .ov2-service-grid { gap: 26px; }
  .ov2-best-for,
  .ov2-list,
  .ov2-boundary,
  .ov2-fee { min-block-size: 0; }
  .ov2-after { grid-template-rows: auto; gap: 14px; }
  .panel .ov2-cta { width: 100%; max-width: none; }
  .ov2-process-grid { grid-template-columns: 1fr; gap: 0; margin-top: 24px; border-top: 1px solid var(--line); }
  .ov2-process-grid > .panel { padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
  .ov2-process-branch .ov2-step-split { grid-template-columns: 1fr; }
  .ov2-step-split p + p { padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 620px) {

  .renter-services.ov2-services,
  .listings.ov2-process,
  .owners.ov2-analysis,
  .listings.ov2-guidance,
  .renter-services.ov2-faq { padding-block: 48px; }
  .ov2-hero .wrap { gap: 10px; }
  .ov2-hero .lead-ctas { margin-top: 12px; display: grid; grid-template-columns: 1fr; gap: 8px; }
  .ov2-hero .lead-ctas .btn { width: 100%; }
  .ov2-owner-links { margin-top: 10px; padding-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .ov2-owner-links-label { grid-column: 1 / -1; }
  .ov2-owner-links a { min-height: 44px; }
  .ov2-proof { width: 100%; max-width: none; padding: 14px; }
  .ov2-proof .manager-strip { flex-direction: column; align-items: flex-start; gap: 6px; }
  .ov2-proof .manager-strip .faces img { width: 30px; height: 30px; margin-left: -8px; }
  .ov2-proof .manager-strip p { width: 100%; font-size: 14px; line-height: 1.5; }
  .ov2-proof-row { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: 8px; padding-top: 8px; font-size: 13px; line-height: 1.45; }
  .ov2-proof-row li:last-child strong { display: inline; }
  .ov2-list { gap: 6px; font-size: 15px; }
  .ov2-after { padding-top: 14px; }
  .ov2-guidance-intro { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .ov2-guidance-panels { gap: 0; margin-top: 24px; border-top: 1px solid var(--line); }
  .ov2-guidance-panels .panel { padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
}
@media (max-width: 340px) {
}

/* ---- Greg's 8/22 notes: bigger linked faces, bold service names, landscape form, polished bookend ---- */
.ov2-proof { padding: 18px 22px 20px; }
.ov2-proof .manager-strip { gap: 8px; }
.ov2-faces-link { display: inline-flex; border-radius: 999px; }
.ov2-proof .manager-strip .faces img { width: 56px; height: 56px; margin-left: -14px; transition: transform .2s ease, border-color .2s ease; }
.ov2-proof .manager-strip .faces img:first-child { margin-left: 0; }
.ov2-faces-link:hover img, .ov2-faces-link:focus-visible img { border-color: var(--ink); }
.ov2-faces-link:hover img { transform: translateY(-2px); }

.ov2-service-card h3 { font-weight: 700; font-size: 22px; letter-spacing: -.005em; }

.owners.ov2-analysis .inner { grid-template-columns: 1fr; gap: 26px; }
.ov2-analysis-copy > p:not(.fine) { max-width: 760px; }
.ov2-analysis .ov2-gets { display: flex; flex-wrap: wrap; gap: 10px 40px; }
.ov2-analysis .lead-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; gap: 14px 22px; align-items: start; padding: 24px 28px 22px; }
.ov2-analysis .ov2-service { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0 32px; padding-bottom: 4px; border-bottom: 1px solid var(--line); }
.ov2-analysis .ov2-service legend { float: left; width: 100%; margin: 0 0 4px; }
.ov2-analysis .lead-form .ov2-service label,
.ov2-analysis .lead-form .ov2-service label:first-of-type { border: 0; min-height: 40px; padding: 0; }
.ov2-analysis .ov2-f-name { grid-column: 1; }
.ov2-analysis .ov2-f-phone { grid-column: 2; }
.ov2-analysis .ov2-f-email { grid-column: 3; }
.ov2-analysis #lf-contact-note { grid-column: 1 / -1; margin-top: -4px; }
.ov2-analysis .ov2-f-address { grid-column: 1 / 3; }
.ov2-analysis .ov2-f-notes { grid-column: 3; }
.ov2-analysis .ov2-f-notes textarea { min-height: 94px; }
.ov2-analysis .form-privacy-note { grid-column: 1 / 3; align-self: center; }
.ov2-analysis .lead-form button[type="submit"] { grid-column: 3; width: 100%; }
.ov2-analysis .ov2-f-fine { grid-column: 1 / -1; margin-top: -4px; }

.listings.ov2-service-area { padding-block: 44px 50px; text-align: center; }
.ov2-area::before { content: ""; display: block; width: 44px; height: 2px; margin: 0 auto 18px; background: var(--k-brass, #8a6519); }
.ov2-area-kicker { font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.ov2-area-cities { list-style: none; max-width: 820px; margin: 12px auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 0; font-size: 17px; color: var(--ink); }
.ov2-area-cities li + li::before { content: "\00b7"; margin: 0 12px; color: var(--k-brass, #8a6519); }
.ov2-area-cities a { display: inline-flex; align-items: center; min-height: 36px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--k-brass, #8a6519); transition: color .2s; }
.ov2-area-cities a:hover, .ov2-area-cities a:focus-visible { color: var(--k-brass, #8a6519); }

@media (max-width: 720px) {
  .ov2-analysis .lead-form { grid-template-columns: 1fr; }
  .ov2-analysis .ov2-f-name, .ov2-analysis .ov2-f-phone, .ov2-analysis .ov2-f-email,
  .ov2-analysis .ov2-f-address, .ov2-analysis .ov2-f-notes, .ov2-analysis .form-privacy-note,
  .ov2-analysis .lead-form button[type="submit"] { grid-column: 1 / -1; }
  .ov2-analysis .ov2-service { display: grid; gap: 0; border-bottom: 0; padding-bottom: 0; }
  .ov2-analysis .lead-form .ov2-service label { min-height: 44px; padding: 6px 0; border-bottom: 1px solid var(--line); }
  .ov2-analysis .lead-form .ov2-service label:first-of-type { border-top: 1px solid var(--line); }
  .ov2-analysis .ov2-gets { display: grid; grid-template-columns: 1fr; }
  .ov2-proof .manager-strip .faces img { width: 40px; height: 40px; margin-left: -10px; }
  .ov2-area-cities { font-size: 15.5px; }
  .ov2-area-cities li + li::before { margin: 0 8px; }
}

/* ---------- Owner CTA insertions ---------- */
.office-strip-actions { margin-top: 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px 24px; }
.mgr-owner-cta { margin-top: 12px; }
.lf-owner-band { padding: 26px 0; border-top: 1px solid var(--line); background: var(--k-paper-deep); }
.lf-owner-band p { color: var(--muted); }
.lf-owner-band a { color: var(--ink); }
.listing-owner-line { flex: none; margin-top: 14px; color: var(--muted); }
.listing-owner-line a { color: var(--ink); }
.community-living-foot { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); }
.community-living-foot a { color: var(--ink); font-weight: 600; text-underline-offset: 3px; }

/* ---------- Communities hub: regional orientation map ---------- */
.communities-map-band { padding-block: 46px; border-top: 1px solid var(--line); background: var(--k-paper-deep); }
.communities-map-layout { display: grid; grid-template-columns: minmax(240px, .52fr) minmax(0, 1.48fr); gap: 28px; align-items: start; }
.communities-map-copy { padding: 28px; border: 1px solid var(--line); border-top: 2px solid var(--ink); background: var(--paper); }
.communities-map-copy h2 { font-size: 25px; }
.communities-map-copy > p:not(.community-section-kicker) { margin-top: 12px; color: var(--muted); }
.communities-map { min-height: 340px; width: 100%; border: 1px solid var(--line); background: #e8e5df; }
@media (max-width: 900px) {
  .communities-map-layout { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .communities-map { min-height: 300px; }
  .communities-map-copy { padding: 22px; }
}

/*[bpm-local-setup]*/
/* ---------- Move-in and local setup ---------- */
.guide-hero:has(.crumbs) { padding-block: 33px 42px; }
.guide-hero .intro { max-width: 860px; }
.guide-header-nav { margin-top: 28px; }
.local-setup-hero .intro { max-width: 780px; }
.local-setup-section { padding-block: 58px; }
.local-setup-section .panel { border-top-color: var(--ink); }
.local-setup-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 56px; align-items: start; }
.setup-steps { margin-bottom: 0; padding: 0; list-style: none; }
.setup-steps li { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 18px; padding: 22px 0; border-top: 1px solid var(--line); }
.setup-steps li:last-child { border-bottom: 1px solid var(--line); }
.setup-step-number { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.setup-steps h3 { font-size: 19px; }
.setup-steps p { margin-top: 7px; color: var(--muted); }
.setup-steps a { display: inline-flex; min-height: 38px; align-items: center; margin-top: 8px; color: var(--ink); font-family: var(--font-display); font-size: 13px; font-weight: 600; text-underline-offset: 4px; }
.local-setup-boundary { padding: 28px; border: 1px solid var(--line); border-top: 2px solid var(--ink); background: var(--paper); }
.local-setup-boundary h2 { font-size: 25px; }
.local-setup-boundary > p:not(.community-section-kicker) { margin-top: 11px; color: var(--muted); }
.local-setup-boundary .panel-link { min-height: 42px; display: inline-flex; align-items: center; margin-top: 20px; border-bottom: 2px solid var(--gold); color: var(--ink); font-family: var(--font-display); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.local-community-links { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.local-community-links a { min-width: 0; min-height: 74px; padding: 14px 15px; border: 1px solid var(--line); border-top: 2px solid var(--ink); display: flex; flex-direction: column; justify-content: space-between; gap: 6px; color: var(--ink); background: var(--paper); text-decoration: none; }
.local-community-links a:hover, .local-community-links a:focus-visible { border-color: var(--gold-text); color: var(--gold-text); }
.local-community-links span { font-family: var(--font-display); font-size: 14px; font-weight: 600; line-height: 1.3; }
.local-community-links small { color: var(--muted); font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.local-new-california { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 44px; align-items: center; }
.local-new-california > div > p:last-child { margin-top: 10px; max-width: 760px; color: var(--muted); }
.local-setup-cta { padding-block: 42px; border-block: 1px solid var(--line); background: var(--k-stone); }
.local-setup-cta .community-section-kicker { color: var(--ink); }
@media (max-width: 1000px) {
  .local-community-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .local-setup-layout, .local-new-california { grid-template-columns: 1fr; gap: 28px; }
  .local-community-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .local-new-california > .btn { justify-self: start; }
}
@media (max-width: 520px) {
  .local-setup-section { padding-block: 48px; }
  .local-community-links { grid-template-columns: 1fr; }
  .setup-steps li { grid-template-columns: 36px minmax(0, 1fr); gap: 13px; }
  .setup-step-number { width: 32px; height: 32px; }
  .local-new-california > .btn { width: 100%; }
}
/*[/bpm-local-setup]*/
/*[bpm-resident-guide]*/
/* ---------- Resident guide ---------- */
.resident-guide-hero .intro { max-width: 900px; }
.resident-guide-section { padding-block: 58px; }
.resident-guide-section .qa-list { gap: 26px 42px; }
.resident-guide-section .qa { border-top-color: var(--ink); padding-top: 17px; }
.resident-guide-section .qa h3 { font-size: 18px; }
.resident-guide-section .qa p { margin-top: 8px; line-height: 1.65; }
.resident-guide-section .qa a { color: var(--ink); font-weight: 600; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.resident-guide-section .qa a:hover, .resident-guide-section .qa a:focus-visible { color: var(--gold-text); }
@media (max-width: 680px) {
  .guide-hero:has(.crumbs) { padding-block: 30px 38px; }
  .resident-guide-section { padding-block: 48px; }
}
/*[/bpm-resident-guide]*/
/* ---------- Resource-first community guides ---------- */
.lead.community-hero { padding-block: 66px 52px; }
.lead.community-hero:has(.crumbs) { padding-block: 33px 52px; }
.community-hero-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .65fr); gap: 52px; align-items: start; }
.community-hero-copy { min-width: 0; }
.community-hero-copy h1 { max-width: 760px; }
.community-guide-nav { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; flex-wrap: wrap; gap: 6px 20px; }
.community-guide-label, .community-guide-reviewed { color: var(--gold-text); font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.community-guide-nav a { min-height: 36px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--gold); color: var(--ink); font-family: var(--font-display); font-size: 12.5px; font-weight: 600; letter-spacing: .04em; text-decoration: none; }
.community-guide-nav a:hover, .community-guide-nav a:focus-visible { color: var(--gold-text); }
.community-guide-reviewed { flex-basis: 100%; margin-top: 3px; color: var(--muted); font-size: 10.5px; }
.community-hero-photo { margin: 0; overflow: hidden; border: 1px solid var(--line); border-top: 2px solid var(--ink); border-radius: var(--radius); background: var(--white); }
.community-hero-photo img { display: block; width: 100%; height: clamp(230px, 21vw, 290px); object-fit: cover; }

.community-section-kicker { margin: 0 0 7px; color: var(--gold-text); font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.community-living { padding-block: 64px; border-top: 1px solid var(--line); background: var(--k-paper-deep); }
.community-living-grid { margin-top: 30px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.community-living-module { min-width: 0; padding: 22px 0 0; border-top: 2px solid var(--ink); display: flex; flex-direction: column; }
.community-living-module h3 { font-size: 20px; }
.community-living-module > p { margin-top: 10px; color: var(--muted); font-size: 15.5px; }
.community-resource-links { margin-top: auto; padding-top: 18px; display: grid; }
.community-resource-links a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-family: var(--font-display); font-size: 12.5px; font-weight: 600; line-height: 1.35; text-decoration: none; }
.community-resource-links a::after { content: "\2197"; flex: 0 0 auto; color: var(--gold-text); }
.community-resource-links a:hover, .community-resource-links a:focus-visible { color: var(--gold-text); }

.community-map-panel { margin-top: 46px; padding-top: 38px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(240px, .58fr) minmax(0, 1.42fr); gap: 28px; align-items: stretch; }
.community-map-copy { padding: 28px; border: 1px solid var(--line); border-top: 2px solid var(--ink); background: var(--paper); }
.community-map-copy h3 { font-size: 24px; }
.community-map-copy > p:not(.community-section-kicker) { margin-top: 12px; color: var(--muted); }
.community-map-copy .panel-link { margin-top: 22px; min-height: 40px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--gold); color: var(--ink); font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.community-map-copy .panel-link::after { content: "\2197"; margin-left: 8px; color: var(--gold-text); }
.community-map-copy .panel-link:hover, .community-map-copy .panel-link:focus-visible { color: var(--gold-text); }
.community-map { min-height: 370px; width: 100%; border: 1px solid var(--line); background: #e8e5df; }

.community-municipalities { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.community-municipalities > p { margin-top: 8px; max-width: 760px; color: var(--muted); }
.community-table-scroll { margin-top: 18px; overflow-x: auto; }
.community-table-scroll table { width: 100%; border-collapse: collapse; background: var(--paper); }
.community-table-scroll th, .community-table-scroll td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.community-table-scroll thead th { background: var(--ink); color: var(--white); font-family: var(--font-display); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.community-table-scroll tbody th { width: 30%; color: var(--ink); font-family: var(--font-display); font-size: 14px; }
.community-table-scroll td a { color: var(--ink); font-weight: 600; text-underline-offset: 3px; }
.community-table-scroll td span { display: block; margin-top: 3px; color: var(--muted); font-size: 13px; }

.community-rules { padding-block: 48px; border-block: 1px solid var(--line); background: var(--k-paper-deep); }
.community-rules-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 52px; align-items: center; }
.community-rules-layout p:last-child { margin-top: 10px; max-width: 760px; }
.community-rules-links { display: grid; }
.community-rules-links a { min-height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-family: var(--font-display); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.community-rules-links a::after { content: "\2192"; color: var(--gold-text); }

.community-availability { padding-block: 54px; border-bottom: 1px solid var(--line); background: var(--paper); }
.community-availability-box { margin-top: 20px; padding: 24px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; }
.community-availability-status { max-width: 720px; color: var(--ink); font-size: 17px; }
.community-availability-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 22px; }

.community-owner-band { padding-block: 40px; border-block: 1px solid var(--line); background: var(--k-stone); }
.community-owner-band-layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: center; }
.community-owner-band-layout h2 { font-size: 25px; }
.community-owner-band-layout p:last-child { margin-top: 7px; color: var(--muted); }

.community-nearby { padding-block: 38px; border-top: 1px solid var(--line); background: var(--k-paper-deep); }
.community-nearby-layout { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 40px; align-items: center; }
.community-nearby-layout h2 { font-size: 23px; white-space: nowrap; }
.community-nearby-layout nav { display: flex; flex-wrap: wrap; gap: 7px; }
.community-nearby-layout nav a { min-height: 38px; display: inline-flex; align-items: center; padding: 6px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-family: var(--font-display); font-size: 13.5px; font-weight: 600; text-decoration: none; background: var(--paper); }
.community-nearby-layout nav a:hover, .community-nearby-layout nav a:focus-visible { border-color: var(--gold-text); color: var(--gold-text); }
.community-photo-credits { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); }

@media (max-width: 1100px) {
  .community-living-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .community-hero-layout { grid-template-columns: 1fr; gap: 30px; }
  .community-hero-photo { max-width: 620px; }
  .community-hero-photo img { height: auto; aspect-ratio: 16 / 9; }
  .community-map-panel { grid-template-columns: 1fr; }
  .community-rules-layout { grid-template-columns: 1fr; gap: 24px; }
  .community-availability-box { grid-template-columns: 1fr; gap: 20px; }
  .community-availability-actions { justify-content: flex-start; }
}

@media (max-width: 680px) {
  .lead.community-hero { padding-block: 66px 52px; }
  .community-guide-nav { gap-inline: 16px; }
  .community-guide-label { flex-basis: 100%; }
  .community-living { padding-block: 50px; }
  .community-living-grid { grid-template-columns: 1fr; }
  .community-map-copy { padding: 22px; }
  .community-map { min-height: 300px; }
  .community-availability-actions { align-items: stretch; flex-direction: column; }
  .community-availability-actions .btn { width: 100%; }
  .community-owner-band-layout { grid-template-columns: 1fr; gap: 20px; }
  .community-owner-band-layout > .btn { width: 100%; }
  .community-nearby-layout { grid-template-columns: 1fr; gap: 15px; }
  .community-nearby-layout h2 { white-space: normal; }
}
