/* Content page layer (home, topics, neighborhoods, guides, tools, legal).
   Header and footer rules apply everywhere; everything else is scoped to
   content pages (building pages use main.bldg and building.css). */

/* Live tower cards: today's numbers from link-site.mjs */
main:not(.bldg) .spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem 1rem; font-size: .92rem; color: var(--tw-text-muted, #4b5563); }
main:not(.bldg) .spec-grid strong { color: #142333; font-weight: 700; }
main:not(.bldg) .concession { border-radius: 8px; background: #f6f1e7; padding: .7rem .85rem; font-size: .9rem; line-height: 1.45; color: #142333; }
main:not(.bldg) .concession:empty { display: none; }
main:not(.bldg) .concession-label { display: block; margin-bottom: .15rem; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #806126; }

/* A grid column left alone after its media column was removed takes the row. */
main:not(.bldg) .lg\:grid-cols-12 > .lg\:col-span-5:only-child,
main:not(.bldg) .lg\:grid-cols-12 > .lg\:col-span-6:only-child,
main:not(.bldg) .lg\:grid-cols-12 > .lg\:col-span-7:only-child { grid-column: 1 / -1; max-width: 52rem; }

/* Real photos placed on content pages */
main:not(.bldg) .page-photo { margin: 0; }
main:not(.bldg) .page-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; background: #ece7dc; }
main:not(.bldg) .page-photo figcaption { margin-top: .5rem; font-size: .8rem; color: #5b6470; }
main:not(.bldg) .page-photo figcaption a { text-decoration: underline; text-underline-offset: 2px; }

/* Tables inside article text scroll inside themselves on phones. */
@media (max-width: 767px) {
  main:not(.bldg) .rich-content table, main:not(.bldg) .prose table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
  main:not(.bldg) .rich-content th, main:not(.bldg) .rich-content td { min-width: 7.5rem; }
}

/* Visible keyboard focus on every link, button and field */
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid #806126; outline-offset: 2px;
}

/* Grid columns never grow past the screen because of a wide table or long word. */
main:not(.bldg) .grid > * { min-width: 0; }
main:not(.bldg) .rich-content table { width: 100%; }
@media (max-width: 639px) { main:not(.bldg) .btn.whitespace-nowrap { white-space: normal; text-align: center; } }
footer a[href^="mailto:"] { overflow-wrap: anywhere; }

/* Diagrams drawn for abstract guides (inline SVG, site tokens) */
main:not(.bldg) .page-diagram svg { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--brand-border, rgba(20,35,51,.12)); background: #fff; }

/* Phone and email links that stand on their own line (contact, about): a 24px tall tap target. */
a.underline[href^="tel:"], a.underline[href^="mailto:"] { display: inline-block; min-height: 24px; line-height: 24px; }

/* ------------------------------------------------------------------------------------------
   Dallas design layer (design pass, October 2026). The same family as the Austin and Houston
   sites: square corners, flat tone-step surfaces instead of white cards with borders and
   shadows, no tiny tracked capital labels, one ink per headline, one type and spacing scale.
   Dallas keeps its own brand: navy, brass, parchment, EB Garamond headings, Manrope text.
   Shell rules (header, menus, footer, contact bar) apply on every page; the rest is scoped to
   content pages (main:not(.bldg)) so building pages keep building.css.
   ------------------------------------------------------------------------------------------ */
:root {
  --d-ground: #f7f4ed; --d-surface: #efeadf; --d-stone: #e2dbcc; --d-ink: #142333; --d-muted: #4c5662;
  --d-navy: #142333; --d-navy-hover: #22364b; --d-brass: #7a5c22; --d-brass-hover: #634a1a; --d-gold: #c3a15a;
  --d-line: rgb(20 35 51 / .14);
  --d-font-heading: "EB Garamond", Georgia, serif; --d-font-ui: Manrope, "Helvetica Neue", Arial, sans-serif;
  --fs-2xs: .75rem; --fs-xs: .8125rem; --fs-sm: .875rem; --fs-ui: .9375rem; --fs-base: 1rem;
  --fs-md: 1.125rem; --fs-lg: 1.25rem; --fs-xl: 1.5rem; --fs-2xl: 2rem; --fs-3xl: 2.75rem;
  --sp-1: .25rem; --sp-2: .5rem; --sp-3: .75rem; --sp-4: 1rem; --sp-5: 1.5rem; --sp-6: 2rem; --sp-7: 3rem; --sp-8: 4rem; --sp-9: 6rem;
  accent-color: var(--d-navy);
}
html, body { background: var(--d-ground); color: var(--d-ink); overflow-x: clip; }
::selection { background: #eadfc6; color: var(--d-ink); }
a { text-underline-offset: .18em; }
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--d-brass); outline-offset: 2px; }
footer a:focus-visible, .d-topbar a:focus-visible, .bg-primary-500 a:focus-visible { outline-color: var(--d-gold); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* Top bar: brokerage and the direct line, as on the sister sites (wide screens; phones have the contact bar). */
.d-topbar { background: var(--d-navy); color: #fff; font-family: var(--d-font-ui); font-size: .8125rem; }
.d-topbar .container-x { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 36px; }
.d-topbar .d-lic { border: 1px solid rgb(255 255 255 / .3); padding: .05rem .4rem; font-weight: 700; margin-right: .6rem; }
.d-topbar a { color: #fff; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; min-height: 24px; }
.d-topbar a:hover { text-decoration: underline; }
.d-topbar .d-dim { color: #c9cfd6; margin-right: .4rem; }
.d-topbar .d-right { display: flex; align-items: center; gap: 1.25rem; }
@media (max-width: 767px) { .d-topbar { display: none; } }

/* Header: flat parchment, no blur, no shadow; the logo is the name and one quiet line. */
#site-header.header-solid { background: var(--d-ground); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; border-bottom: 1px solid var(--d-line); }
#site-header .d-logo-name { font-family: var(--d-font-heading); font-weight: 500; font-size: 1.45rem; line-height: 1.1; color: var(--d-ink); letter-spacing: -.01em; }
#site-header .d-logo-sub { font-family: var(--d-font-ui); font-size: .75rem; font-weight: 600; color: var(--d-brass); letter-spacing: .01em; }
#site-header nav, #mobile-menu { font-family: var(--d-font-ui); }
#site-header .nav-link { color: var(--d-ink) !important; font-weight: 600; font-size: .95rem; }
#site-header .nav-link:hover { color: var(--d-brass) !important; }
#site-header .nav-link[aria-current] { color: var(--d-brass) !important; box-shadow: inset 0 -2px 0 currentColor; }
#site-header nav .rounded-lg, #site-header nav .rounded-xl { border-radius: 0 !important; }
#site-header nav [class*="shadow"] { box-shadow: 0 10px 24px rgb(20 35 51 / .10) !important; }
#site-header nav .block { color: var(--d-ink); }
#site-header nav .block:hover { background: var(--d-surface) !important; color: var(--d-brass) !important; }
#site-header nav .block[aria-current="page"], #site-header nav .text-secondary-500 { color: var(--d-brass) !important; font-weight: 700; }
#site-header .btn, #mobile-menu-btn { border-radius: 0 !important; box-shadow: none !important; }
#mobile-menu-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--d-line); }
@media (min-width: 1280px) { #mobile-menu-btn { display: none; } }
/* Classes the shared Buildings menu (tools/pages/link-site.mjs) uses, in Dallas colors. */
.text-charcoal { color: var(--d-ink); }
.hover\:bg-cream:hover { background-color: var(--d-surface); }

/* Phone menu: flat panel, square rows, the current page marked. */
#mobile-menu { background: var(--d-ground) !important; }
#mobile-menu .rounded-lg { border-radius: 0 !important; }
#mobile-menu a:hover, #mobile-menu button:hover { background: var(--d-surface) !important; }
#mobile-menu a[aria-current="page"] { color: var(--d-brass) !important; font-weight: 700 !important; background: var(--d-surface) !important; }
#mobile-menu .mobile-submenu-toggle { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
#mobile-menu .d-menu-contact { border-top: 1px solid var(--d-line); margin-top: .75rem; padding-top: .75rem; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
#mobile-menu .d-menu-contact a { display: flex; align-items: center; justify-content: center; min-height: 48px; font-weight: 700; border: 1px solid var(--d-navy); color: var(--d-navy); }
#mobile-menu .d-menu-contact a.d-solid { background: var(--d-navy); color: #fff; }

/* Phone contact bar: call, text, start a search (the same three as the sister sites). */
.d-quick { position: fixed; inset: auto 0 0 0; z-index: 40; display: grid; grid-template-columns: 1fr 1fr 1.4fr; border-top: 1px solid var(--d-line); background: var(--d-ground); font-family: var(--d-font-ui); }
.d-quick a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; min-height: 56px; font-size: .78rem; font-weight: 700; color: var(--d-navy); text-decoration: none; }
.d-quick a + a { border-left: 1px solid var(--d-line); }
.d-quick a.d-solid { background: var(--d-navy); color: #fff; }
.d-quick svg { width: 20px; height: 20px; }
@media (min-width: 768px) { .d-quick, .d-quick-pad { display: none !important; } }
.d-quick-pad { height: 56px; }

/* Footer: link lists in a quiet sans, headings as words not tracked capitals, two columns on phones. */
footer#compliance { font-family: var(--d-font-ui); }
footer#compliance p.uppercase { text-transform: none !important; letter-spacing: 0 !important; font-size: .95rem !important; font-weight: 700; color: #fff; }
footer#compliance .text-white\/70, footer#compliance .text-white\/60 { color: #c3cad2 !important; }
footer#compliance nav li a { display: inline-block; min-height: 24px; }
footer#compliance .d-contact-lines a { display: inline-block; min-height: 24px; }
footer#compliance .d-eho { text-transform: none !important; letter-spacing: 0 !important; color: var(--d-gold) !important; }
@media (max-width: 767px) {
  footer#compliance nav ul { columns: 2; column-gap: 1.25rem; }
  footer#compliance nav ul > li { break-inside: avoid; margin: 0 0 .5rem !important; }
  footer#compliance nav[aria-label^="Legal"] ul { columns: 1; }
}

/* ---------------- Content pages ---------------- */
main:not(.bldg) h1, main:not(.bldg) h2, main:not(.bldg) h3.font-heading, main:not(.bldg) .font-heading { font-family: var(--d-font-heading); font-weight: 400; letter-spacing: -.01em; }
main:not(.bldg) h1 { line-height: 1.06 !important; color: var(--d-ink); }
main:not(.bldg) h1 .italic, main:not(.bldg) h1 em, main:not(.bldg) h2 .italic { font-style: normal !important; color: inherit !important; }
main:not(.bldg) h3 { font-family: var(--d-font-ui); letter-spacing: 0; }

/* Grounds: parchment, with one tone step for bands and cards (white read as a template). */
main:not(.bldg) .bg-white { background-color: var(--d-ground) !important; }
main:not(.bldg) section.bg-parchment + section.bg-parchment, main:not(.bldg) section.bg-white + section.bg-white { border-top: 0; }
main:not(.bldg) .card, main:not(.bldg) .faq-item, main:not(.bldg) .rounded-xl.border.border-line, main:not(.bldg) .rounded-lg.border.border-line { border: 0 !important; background-color: var(--d-surface) !important; box-shadow: none !important; }
main:not(.bldg) section.bg-white .card, main:not(.bldg) section.bg-white .faq-item { background-color: var(--d-surface) !important; }
main:not(.bldg) .bg-parchment .bg-parchment { background-color: var(--d-ground) !important; }
main:not(.bldg) .rounded, main:not(.bldg) .rounded-sm, main:not(.bldg) .rounded-md, main:not(.bldg) .rounded-lg, main:not(.bldg) .rounded-xl, main:not(.bldg) .rounded-2xl, main:not(.bldg) .rounded-full, main:not(.bldg) .page-photo img, main:not(.bldg) .page-diagram svg { border-radius: 0 !important; }
main:not(.bldg) [class*="shadow"] { box-shadow: none !important; }
main:not(.bldg) .card:hover { transform: none !important; }
/* The icon tiles on cards were decoration in a box; the icon alone is enough. */
main:not(.bldg) .card > .mb-4.flex.h-11.w-11, main:not(.bldg) .card > .mb-4.flex.h-12.w-12 { background: none !important; width: auto; height: auto; justify-content: flex-start; margin-bottom: .75rem; }

/* No tiny tracked capitals or pills. */
main:not(.bldg) .uppercase, main:not(.bldg) .badge, main:not(.bldg) .field-label, main:not(.bldg) .concession-label { text-transform: none !important; letter-spacing: 0 !important; }
main:not(.bldg) .tracking-wider, main:not(.bldg) .tracking-widest, main:not(.bldg) [class*="tracking-["] { letter-spacing: 0 !important; }
main:not(.bldg) .text-xs.uppercase { font-size: .875rem !important; }
main:not(.bldg) .badge { border: 0; border-radius: 0; background: var(--d-surface); color: var(--d-brass); font-size: .8125rem; }
main:not(.bldg) .concession { border-radius: 0; background: #ece2cc; }
main:not(.bldg) .concession-label { font-size: .8125rem; color: var(--d-brass); }

/* Buttons: flat, square, named for the action. */
main:not(.bldg) .btn, .d-final .btn { border-radius: 0 !important; box-shadow: none !important; font-family: var(--d-font-ui); font-weight: 700; }
main:not(.bldg) .btn-outline { border-color: var(--d-navy); }
main:not(.bldg) .btn-outline:hover { background: var(--d-navy); color: #fff; }

/* Forms: visible labels in plain words, 48px fields and choices, square. */
main:not(.bldg) .field-label { font-size: .9rem; font-weight: 700; color: var(--d-ink); font-family: var(--d-font-ui); }
main:not(.bldg) .field, main:not(.bldg) select, main:not(.bldg) textarea, main:not(.bldg) input[type="number"], main:not(.bldg) input[type="text"], main:not(.bldg) input[type="email"], main:not(.bldg) input[type="tel"] { border-radius: 0 !important; }
main:not(.bldg) .field { background: #fff; border-color: rgb(20 35 51 / .3); min-height: 48px; }
main:not(.bldg) .field:focus { border-color: var(--d-navy); }
main:not(.bldg) .chip { border-radius: 0; min-height: 44px; display: flex; align-items: center; justify-content: center; background: #fff; }
main:not(.bldg) .peer:checked + .chip { background: var(--d-navy); color: #fff; border-color: var(--d-navy); }
main:not(.bldg) .field::placeholder, main:not(.bldg) textarea::placeholder { color: #6b7480; }
.field-error { margin-top: .35rem; font-family: var(--d-font-ui); font-size: .875rem; line-height: 1.4; color: #9b2c2c; font-weight: 600; }
main:not(.bldg) [aria-invalid="true"] { border-color: #9b2c2c !important; box-shadow: inset 0 0 0 1px #9b2c2c !important; }

/* Dark bands: one flat navy, no gradient; the closing call to action reads the same on every page. */
main:not(.bldg) .bg-primary-500, main:not(.bldg) section.text-white { background: var(--d-navy) !important; }
main:not(.bldg) section.text-white > .absolute:first-child { display: none; }
main:not(.bldg) .bg-primary-500 .card, main:not(.bldg) section.text-white .card, main:not(.bldg) .bg-primary-500 .rounded-xl.border { background: rgb(255 255 255 / .06) !important; }
main:not(.bldg) .bg-primary-500 .text-white\/60, main:not(.bldg) .bg-primary-500 .text-white\/70, main:not(.bldg) section.text-white .text-white\/60, main:not(.bldg) section.text-white .text-white\/70 { color: #c3cad2 !important; }
main:not(.bldg) .btn-outline-light { background: transparent; border-color: rgb(255 255 255 / .5); }

/* Section rhythm (Austin's scale): 6rem on wide screens, 3.5rem on phones. */
main:not(.bldg) .section-y { padding-top: 6rem; padding-bottom: 6rem; }
@media (max-width: 767px) { main:not(.bldg) .section-y { padding-top: 3.5rem; padding-bottom: 3.5rem; } }

/* FAQ: questions in the text face at a readable size, plus/minus marks, no boxes inside boxes. */
main:not(.bldg) .faq-item summary { font-family: var(--d-font-ui); font-weight: 600; color: var(--d-ink); min-height: 48px; }

/* Text pages (legal): one comfortable measure, list markers in brass. */
main:not(.bldg) .prose { --tw-prose-bullets: var(--d-brass); --tw-prose-counters: var(--d-muted); --tw-prose-links: var(--d-brass); }
main:not(.bldg) .prose a, main:not(.bldg) .rich-content a { color: var(--d-brass); }
main:not(.bldg) .prose h2 { font-family: var(--d-font-heading); font-weight: 400; }
main:not(.bldg) .prose blockquote, main:not(.bldg) .rich-content blockquote { border: 0; background: var(--d-surface); padding: 1rem 1.25rem; font-style: normal; quotes: none; }
@media (max-width: 767px) {
  main:not(.bldg) .table-scroll, main:not(.bldg) .overflow-x-auto, main:not(.bldg) .prose table, main:not(.bldg) .rich-content table {
    background:
      linear-gradient(to right, var(--d-ground) 40%, transparent) left center / 2.5rem 100% no-repeat local,
      linear-gradient(to left, var(--d-ground) 40%, transparent) right center / 2.5rem 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, rgb(20 35 51 / .22), transparent) left center / .9rem 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, rgb(20 35 51 / .22), transparent) right center / .9rem 100% no-repeat scroll;
  }
  main:not(.bldg) table th, main:not(.bldg) table td { word-break: normal; overflow-wrap: normal; hyphens: none; }
}
/* Home hero: two quiet next steps beside the form on wide screens; phones go straight to the form. */
.d-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 639px) { .d-hero-actions { display: none; } }
/* Calculator result: the label is a quiet line, the number is the headline. */
main:not(.bldg) .eyebrow-light { font-family: var(--d-font-ui); font-size: .95rem; font-weight: 600; color: #c3cad2; margin-bottom: .35rem; }
.d-quick-pad { background: var(--d-navy); }
/* Diagrams with a phone drawing (how it works, our team): the desktop drawing on wide screens,
   a narrow one on phones whose labels read at 14 to 16px with no sideways scroll. */
main:not(.bldg) .dg-wrap svg { display: block; width: 100%; height: auto; }
main:not(.bldg) .dg-wrap svg.dg-phone { display: none; }
@media (max-width: 620px) {
  main:not(.bldg) .dg-wrap svg.dg-desk { display: none; }
  main:not(.bldg) .dg-wrap svg.dg-phone { display: block; }
}
/* The phone contact bar clears the iPhone home indicator; its spacer matches, so the footer ends above the bar. */
@media (max-width: 767px) {
  .d-quick { padding-bottom: env(safe-area-inset-bottom); }
  .d-quick-pad { height: calc(57px + env(safe-area-inset-bottom)); }
}
/* Round 2: the phone bar slides away on first view (menu.js); phone numbers never break mid-number. */
.d-quick { transition: transform .2s ease-out, visibility .2s; }
.d-quick.d-off { transform: translateY(110%); visibility: hidden; }
a[href^="tel:"] { white-space: nowrap; }

/* Footer cleanup (November 2026): the legal links sit on one line under the columns. 14px keeps the TREC labels above the 10 point minimum. */
@media (min-width: 1024px) { footer#compliance .lg\:grid-cols-6 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
footer#compliance .d-legal, footer#compliance .d-copy { font-size: 14px; line-height: 1.6; margin: 0; }
footer#compliance .d-legal a { color: #c3cad2; text-decoration: underline; text-underline-offset: 2px; display: inline-block; min-height: 24px; }
footer#compliance .d-legal a:hover { color: var(--d-gold); }

/* Start your search page (November 2026): a focused page with one job. The header holds the
   name and the phone line only, and the form opens one step at a time. */
.dhr-focus-head { background: #fff; border-bottom: 1px solid var(--d-line); }
.dhr-focus-head .container-x { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; }
.dhr-focus-call { font-family: var(--d-font-ui); font-weight: 700; font-size: 15px; color: var(--d-ink); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; }
.dhr-focus-call:hover { color: var(--d-brass); }
.dhr-focus-call .dhr-dim { font-weight: 500; color: var(--d-muted); }
@media (max-width: 480px) { .dhr-focus-call .dhr-dim { display: none; } }
.dhr-focus-main { padding: 2.25rem 0 3.5rem; }
.dhr-focus-wrap { max-width: 720px; margin: 0 auto; }
.dhr-eyebrow { font-family: var(--d-font-ui); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--d-brass); margin: 0 0 .5rem; }
.dhr-focus-wrap h1 { font-size: 34px; line-height: 1.12; color: var(--d-ink); margin: 0 0 .75rem; }
@media (min-width: 768px) { .dhr-focus-wrap h1 { font-size: 44px; } }
.dhr-lede { font-size: 17px; line-height: 1.6; color: var(--d-muted); margin: 0 0 1.5rem; }
.dhr-card { background: #fff; border: 1px solid var(--d-line); box-shadow: 0 10px 30px rgb(20 35 51 / .08); scroll-margin-top: 16px; }
.dhr-card-top { padding: 1.25rem 1.25rem 1rem; border-bottom: 1px solid var(--d-line); }
.dhr-card-top h2 { font-family: var(--d-font-ui); font-size: 19px; font-weight: 800; color: var(--d-ink); margin: 0; }
.dhr-card-top p { font-size: 14px; color: var(--d-muted); margin: .25rem 0 0; }
.dhr-step { border-bottom: 1px solid var(--d-line); }
.dhr-step:last-of-type { border-bottom: 0; }
.dhr-step-head { width: 100%; display: flex; align-items: center; gap: .85rem; padding: 1rem 1.25rem; background: none; border: 0; text-align: left; cursor: pointer; font: inherit; color: var(--d-ink); min-height: 64px; }
.dhr-step-head:disabled { cursor: default; color: var(--d-muted); }
.dhr-step-head:focus-visible { outline: 2px solid var(--d-gold); outline-offset: -2px; }
.dhr-badge { flex: 0 0 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--d-font-ui); font-weight: 800; font-size: 15px; border: 1.5px solid var(--d-ink); color: var(--d-ink); background: #fff; }
.dhr-step.is-open .dhr-badge { background: var(--d-ink); color: #fff; }
.dhr-step-head:disabled .dhr-badge { border-color: var(--d-stone); color: var(--d-muted); }
.dhr-step.is-done .dhr-badge { background: #1f7a4d; border-color: #1f7a4d; color: #fff; font-size: 0; }
.dhr-step.is-done .dhr-badge::before { content: ""; width: 14px; height: 8px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: translateY(-2px) rotate(-45deg); }
.dhr-step-text { display: flex; flex-direction: column; min-width: 0; }
.dhr-step-title { font-family: var(--d-font-ui); font-weight: 800; font-size: 16px; }
.dhr-step-sum { font-size: 14px; color: var(--d-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dhr-step-sum:empty { display: none; }
.dhr-step.is-open .dhr-step-sum { display: none; }
.dhr-step-body { padding: .25rem 1.25rem 1.25rem; }
.dhr-step-body > * + * { margin-top: 1.25rem; }
.dhr-js .dhr-step:not(.is-open) .dhr-step-body { display: none; }
.dhr-nav { display: flex; gap: .75rem; align-items: center; justify-content: space-between; padding-top: .25rem; }
.dhr-nav .btn { min-height: 48px; }
.dhr-back { min-height: 48px; padding: 0 1rem; background: none; border: 1px solid var(--d-line); font: inherit; font-weight: 700; font-size: 15px; color: var(--d-ink); cursor: pointer; }
.dhr-back:hover { border-color: var(--d-ink); }
.dhr-next { margin-left: auto; min-width: 160px; }
.dhr-err { color: #b42318; font-size: 14px; font-weight: 600; margin: .35rem 0 0; }
.dhr-step-body [aria-invalid="true"] { border-color: #b42318 !important; }
.dhr-reassure { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .6rem; font-size: 15px; color: var(--d-ink); }
.dhr-reassure li { padding-left: 1.4rem; position: relative; }
.dhr-reassure li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; background: var(--d-gold); }
.dhr-focus-legal { border-top: 1px solid var(--d-line); padding: 1.25rem 0 2rem; font-size: 14px; line-height: 1.6; color: var(--d-muted); }
.dhr-focus-legal a { color: var(--d-ink); text-decoration: underline; text-underline-offset: 2px; display: inline-block; min-height: 24px; }
@media (prefers-reduced-motion: no-preference) { .dhr-step.is-open .dhr-step-body { animation: dhrIn .18s ease-out; } }
@keyframes dhrIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.dhr-thanks { margin: 1.25rem; padding: 1.5rem; border: 1px solid rgb(122 92 34 / .3); background: var(--d-ground); }
.dhr-thanks:focus { outline: none; }
.dhr-thanks-h { font-family: var(--d-font-heading); font-size: 26px; color: var(--d-ink); margin: 0 0 .5rem; }
.dhr-thanks p { margin: 0 0 .5rem; font-size: 16px; color: var(--d-ink); }
.dhr-heard { color: var(--d-muted) !important; }
.dhr-wait { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--d-line); }
.dhr-wait-h { font-family: var(--d-font-ui); font-weight: 800; }
.dhr-wait-list { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .6rem; }
.dhr-wait-list a { display: block; background: #fff; border: 1px solid var(--d-line); padding: .75rem 1rem; text-decoration: none; color: var(--d-ink); min-height: 44px; }
.dhr-wait-list a:hover, .dhr-wait-list a:focus-visible { border-color: var(--d-ink); }
.dhr-wait-list strong { display: block; font-family: var(--d-font-ui); }
.dhr-wait-list span { display: block; font-size: 14px; color: var(--d-muted); }
.dhr-thanks-more a { color: var(--d-ink); text-decoration: underline; }
.dhr-chip { display: none; }
@media (max-width: 767px) {
  .dhr-chip { position: fixed; right: 12px; bottom: 12px; z-index: 40; display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: 0 .9rem; background: var(--d-ink); color: #fff; font-family: var(--d-font-ui); font-weight: 700; font-size: 14px; text-decoration: none; border-radius: 999px; box-shadow: 0 6px 18px rgb(20 35 51 / .25); transition: opacity .15s, transform .15s; }
  .dhr-chip.is-off { opacity: 0; transform: translateY(8px); pointer-events: none; }
  .dhr-focus-legal { padding-bottom: 4.5rem; }
}
.dhr-focus-head .d-logo-name { font-family: var(--d-font-heading); font-weight: 500; font-size: 1.3rem; line-height: 1.1; color: var(--d-ink); letter-spacing: -.01em; }
.dhr-focus-head .d-logo-sub { font-family: var(--d-font-ui); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--d-brass); margin-top: 2px; }
.dhr-focus-head a.flex { text-decoration: none; }
@media (max-width: 400px) { .dhr-focus-head .d-logo-name { font-size: 1.1rem; } }
.dhr-card-top h2 { font-family: var(--d-font-heading) !important; font-weight: 500; font-size: 22px; }

/* Contact page (November 2026) */
.dhc-hero { padding: 2.5rem 0 3rem; }
.dhc-hero h1 { font-size: 38px; line-height: 1.1; color: var(--d-ink); margin: 0 0 1rem; max-width: 18ch; }
@media (min-width: 768px) { .dhc-hero h1 { font-size: 52px; } }
.dhc-lede { font-size: 18px; line-height: 1.6; color: var(--d-muted); max-width: 60ch; margin: 0 0 1.5rem; }
.dhc-hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.dhc-hero-cta p { margin: 0; font-size: 15px; color: var(--d-muted); max-width: 44ch; }
.dhc-split { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .dhc-split { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; } }
.dhc-three { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .dhc-three { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }
.dhc-split h2, .dhc-three h2, .dhc-form-card h2 { font-size: 28px; line-height: 1.2; color: var(--d-ink); margin: 0 0 1rem; }
.dhc-split p, .dhc-three p { font-size: 16px; line-height: 1.65; color: var(--d-ink); margin: 0 0 .9rem; }
.dhc-split p a, .dhc-three p a, .dhc-list a { color: var(--d-ink); text-decoration: underline; text-underline-offset: 2px; }
.dhc-ways { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.dhc-ways li { border: 1px solid var(--d-line); padding: 1rem 1.15rem; background: var(--d-ground); }
.dhc-way-h { font-family: var(--d-font-ui); font-size: 13px !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--d-brass) !important; margin: 0 0 .15rem !important; }
.dhc-way-link { font-family: var(--d-font-ui); font-weight: 800; font-size: 19px; color: var(--d-ink); text-decoration: none; overflow-wrap: normal; word-break: normal; display: inline-flex; align-items: center; flex-wrap: wrap; min-height: 44px; }
@media (max-width: 400px) { .dhc-way-link { font-size: 17px; } }
.dhc-way-link:hover { color: var(--d-brass); }
.dhc-ways li p:last-child { margin: .2rem 0 0; font-size: 15px; color: var(--d-muted); }
.dhc-hours { margin-top: 1.5rem; }
.dhc-hours h3 { font-family: var(--d-font-ui); font-size: 16px; font-weight: 800; margin: 0 0 .35rem; color: var(--d-ink); }
.dhc-form-card { background: #fff; border: 1px solid var(--d-line); box-shadow: 0 10px 30px rgb(20 35 51 / .08); padding: 1.5rem; scroll-margin-top: 110px; }
@media (min-width: 640px) { .dhc-form-card { padding: 2rem; } }
.dhc-form-sub { font-size: 15px !important; color: var(--d-muted) !important; }
.dhc-form > * + * { margin-top: 1rem; }
.dhc-row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .dhc-row { grid-template-columns: 1fr 1fr; } }
.dhc-consent { font-size: 14px !important; line-height: 1.5 !important; color: var(--d-muted) !important; text-align: center; }
.dhc-thanks { border: 1px solid rgb(122 92 34 / .3); background: var(--d-ground); padding: 1.25rem; }
.dhc-thanks:focus { outline: none; }
.dhc-thanks-h { font-family: var(--d-font-heading); font-size: 24px !important; }
.dhc-list { margin: 0 0 1rem; padding-left: 1.2rem; list-style: square; display: grid; gap: .45rem; font-size: 16px; color: var(--d-ink); }
.dhc-list li::marker { color: var(--d-gold); }

/* About page (November 2026) */
.dha-steps { list-style: none; counter-reset: dha; padding: 0; margin: 0; display: grid; gap: 1rem; }
@media (min-width: 1024px) { .dha-steps { grid-template-columns: repeat(5, 1fr); gap: 1.25rem; } }
.dha-steps li { counter-increment: dha; background: #fff; border: 1px solid var(--d-line); padding: 1.25rem; }
.dha-steps li::before { content: counter(dha); display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: var(--d-ink); color: #fff; font-family: var(--d-font-ui); font-weight: 800; margin-bottom: .75rem; }
.dha-steps h3 { font-family: var(--d-font-ui); font-size: 17px; font-weight: 800; color: var(--d-ink); margin: 0 0 .4rem; }
.dha-steps p, .dha-grid p { font-size: 15px; line-height: 1.6; color: var(--d-muted); margin: 0; }
.dha-steps a, .dha-grid a { color: var(--d-ink); text-decoration: underline; text-underline-offset: 2px; }
.dha-grid { display: grid; gap: 1.75rem 2.5rem; }
@media (min-width: 768px) { .dha-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dha-grid { grid-template-columns: repeat(3, 1fr); } }
.dha-grid > div { border-top: 2px solid var(--d-gold); padding-top: 1rem; }
.dha-grid h3 { font-family: var(--d-font-ui); font-size: 18px; font-weight: 800; color: var(--d-ink); margin: 0 0 .4rem; }
/* Start your search: "Filled in from <tower>. Change anything. Clear" (prefill line). */
.dhr-from { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: #4b5563; }
.dhr-from button { background: none; border: 0; padding: 0 6px; min-height: 44px; font: inherit; font-weight: 600; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* Header link to the saved list; shown once something is saved */
.dhr-saved-nav { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; min-width: 44px; padding: 0 12px; margin-right: 8px; border: 1px solid var(--d-line, #d9d4c7); border-radius: 999px; font-family: var(--d-font-ui, inherit); font-weight: 700; font-size: 0.9rem; color: var(--d-ink, #14213d); text-decoration: none; background: #fff; }
.dhr-saved-nav[hidden] { display: none; }
.dhr-saved-nav:hover, .dhr-saved-nav:focus-visible { border-color: currentColor; }
@media (max-width: 639px) { .dhr-saved-nav-w { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .dhr-saved-nav { padding: 0 10px; margin-right: 4px; } }
