/* Approved design direction: warm bronze, charcoal, and a city view.
   Loaded after the original styles so the shared templates retain their behavior. */
:root {
  --green: #191a1a;
  --gold: #b99a7b;
  --ink: #252525;
  --paper: #faf9f6;
  --muted: #63696a;
  --line: #ded9d1;
  --navy-rgb: 25 26 26;
  --copper-rgb: 185 154 123;
  --shadow: 0 18px 44px rgb(25 26 26 / .09);
}

body { background: #191a1a; color: var(--ink); }
h1, h2, .service-situation h3, .service-card h3, .practice-area-card h2 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.025em;
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
summary:focus-visible { outline-color: #b99a7b; }

.site-header {
  color: #f7f3ec;
  background: rgb(25 26 26 / .96);
  border-bottom: 1px solid rgb(185 154 123 / .32);
}
.site-header .brand, .site-header .desktop-nav a, .site-header .services-trigger,
.site-header .mobile-nav a { color: #f7f3ec; }
.brand-name { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
.site-header .brand-amp { color: #b99a7b; }
.site-header .brand-caption { color: #baa58f; }
.site-header .mobile-nav { background: #191a1a; border-color: rgb(185 154 123 / .34); }
.site-header .menu-toggle { color: #f7f3ec; background: transparent; border-color: #b99a7b; }
.site-header .mega-menu { background: rgb(250 249 246 / .98); border-color: #c9b49e; }
.site-header .mega-menu a { color: #252525; }
.site-header .mega-menu-head a, .site-header .mega-menu-head p { color: #252525; }
.site-header .mega-menu-grid>a:hover, .site-header .mega-menu-grid>a:focus-visible { background: #f0e9df; }

/* Quiet bronze controls. On photographic backgrounds, both actions are translucent. */
.button, button[type=submit] {
  min-height: 49px;
  border-radius: 5px;
  box-shadow: none;
  font-weight: 500;
  will-change: auto;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.button::before, .button::after, button[type=submit]::after { display: none; }
.button span[aria-hidden], button[type=submit] span[aria-hidden] {
  display: inline;
  width: auto;
  height: auto;
  flex: 0 0 auto;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 19px;
  color: inherit;
}
.button-primary, button[type=submit] { color: #fff; background: #806248; border-color: #806248; }
.button-primary:hover, button[type=submit]:hover { color: #fff; background: #6b523e; border-color: #a3876a; }
.button-secondary { color: #252525; background: transparent; border-color: #aa927d; }
.button-secondary:hover { color: #252525; background: #eee6db; }
.button-light { color: #fff; background: rgb(185 154 123 / .12); border-color: rgb(202 175 151 / .65); }
.button-light:hover { color: #fff; background: rgb(185 154 123 / .23); }
.site-header .header-actions .button-secondary {
  color: #f7f3ec;
  background: rgb(185 154 123 / .11);
  border-color: #b99a7b;
}
.site-header .header-actions .button-secondary:hover { background: rgb(185 154 123 / .24); color: #fff; }
.site-header .header-actions .button-secondary span[aria-hidden] { color: #d8bd9e; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:hover, button[type=submit]:hover { --lift: -2px; border-radius: 5px; box-shadow: 0 10px 22px rgb(0 0 0 / .12); }
  .button:hover span[aria-hidden] { transform: translateX(3px); background: transparent; color: inherit; }
}
.button:active, button[type=submit]:active { --lift: 0px; transform: scale(.98); box-shadow: none; }
.service-hero .hero-actions .button-primary, .practice-hero .hero-actions .button-primary,
.monument-hero .hero-actions .button-primary {
  color: #f8f2eb;
  background: rgb(146 112 85 / .52);
  border: 1px solid #b99a7b;
  backdrop-filter: blur(5px);
}
.service-hero .hero-actions .button-primary:hover, .practice-hero .hero-actions .button-primary:hover,
.monument-hero .hero-actions .button-primary:hover { color: #fff; background: rgb(146 112 85 / .7); }
.service-hero .hero-actions .button-light, .practice-hero .hero-actions .button-light,
.monument-hero .hero-actions .button-light {
  color: #f7f3ec;
  background: rgb(165 139 113 / .12);
  border: 1px solid rgb(185 154 123 / .67);
  backdrop-filter: blur(4px);
}
.service-hero .hero-actions .button-light:hover, .practice-hero .hero-actions .button-light:hover,
.monument-hero .hero-actions .button-light:hover { color: #fff; background: rgb(165 139 113 / .25); }

/* The same evening skyline is visible throughout the entry points. */
.monument-hero, .service-hero, .practice-hero, .inner-page .page-hero {
  background: #191a1a url('/city-at-dusk.webp') center 51% / cover no-repeat;
}
.monument-hero::before {
  background: linear-gradient(90deg, rgb(14 16 18 / .86), rgb(16 18 19 / .65) 55%, rgb(16 18 19 / .24)),
              linear-gradient(0deg, rgb(16 18 19 / .4), transparent 52%);
}
.monument-hero::after { display: none; }
.monument-hero .hero-grid { grid-template-columns: minmax(0, 1.26fr) minmax(300px, .74fr); gap: 30px; }
.monument-hero .hero-copy { position: relative; z-index: 2; padding: 85px 0 48px; }
.monument-hero .display-title { max-width: 760px; font-size: clamp(45px, 5vw, 74px); }
.monument-hero .display-title em { color: #c9aa8e; }
.monument-hero .lead, .monument-hero .eyebrow { color: #e7e0d7; }
.home-phone-callout {
  display: grid;
  justify-items: start;
  gap: 3px;
  width: fit-content;
  max-width: 100%;
  margin: 18px 0 28px;
  padding: 13px 20px;
  color: #f7f3ec;
  background: rgb(22 23 23 / .76);
  border-left: 3px solid #c9aa8e;
  border-radius: 0 8px 8px 0;
}
.home-phone-callout p { margin: 0; color: #e7d8ca; font-size: 13px; }
.home-phone-callout a { color: #fff; font-size: clamp(22px, 2.7vw, 30px); font-weight: 650; line-height: 1.2; white-space: nowrap; text-decoration-thickness: 1px; }
.home-phone-callout span { color: #e7d8ca; font-size: 13px; }
.home-phone-callout a:focus-visible { outline-color: #c9aa8e; }
.monument-hero .hero-proof {
  color: #fff;
  background: rgb(22 23 23 / .66);
  border: 1px solid rgb(185 154 123 / .31);
  border-radius: 6px;
}
.monument-hero .proof-item span { color: #e1d8ca; }
.home-hero-form {
  position: relative;
  z-index: 2;
  align-self: center;
  min-width: 0;
  padding: clamp(23px, 3vw, 36px);
  color: #f7f3ec;
  background: rgb(23 24 24 / .82);
  border: 1px solid rgb(185 154 123 / .58);
  border-radius: 9px;
  box-shadow: 0 18px 55px rgb(0 0 0 / .24);
  backdrop-filter: blur(14px);
}
.home-hero-form .eyebrow { margin-bottom: 12px; color: #d5b79b; }
.home-hero-form h2 {
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(27px, 2.7vw, 37px);
  line-height: 1.12;
}
.home-hero-form .lead-form { gap: 13px; }
.home-hero-form .lead-form .muted { color: #e4d9cc; }
.home-hero-form .lead-form > .muted { margin-bottom: 3px; line-height: 1.45; }
.home-hero-form .field label { color: #f7f3ec; }
.home-hero-form .field input, .home-hero-form .field textarea {
  width: 100%;
  color: #252525;
  background: rgb(255 253 249 / .96);
  border-color: #c9bba9;
}
.home-hero-form .field textarea { min-height: 86px; }
.home-hero-form .consent-field { color: #f1e9df; line-height: 1.45; }
.home-hero-form .consent-field a { color: #f2d1ae; }
.home-hero-form .form-status:not(:empty) { color: #fff; border-color: #c5a486; }
.home-hero-form button[type=submit] { width: 100%; }

.service-hero { min-height: 595px; }
.service-hero::before {
  z-index: 0;
  opacity: 1;
  background: linear-gradient(90deg, rgb(15 17 18 / .75), rgb(18 19 20 / .55) 60%, rgb(18 19 20 / .14)),
              linear-gradient(0deg, rgb(15 17 18 / .31), transparent 53%);
}
.service-hero-grid {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 1.38fr) minmax(280px, .74fr);
  gap: clamp(18px, 3vw, 48px);
  min-height: 595px;
}
.service-hero-copy { padding: 26px 0 40px; }
.service-hero .breadcrumbs { margin: 0 0 37px; color: #dfd7cc; }
.service-hero .breadcrumbs a { color: #ede6dd; }
.service-hero .eyebrow { color: #cfb295; }
.service-hero h1 {
  max-width: 850px;
  margin: 16px 0 22px;
  color: #fff;
  font-size: clamp(39px, 4.25vw, 67px);
  line-height: 1.11;
  overflow-wrap: anywhere;
}
.service-title-accent { color: #c5a486; }
.service-title-line { display: block; }
.service-hero-lead { max-width: 720px; color: #f2eee9; font-size: clamp(16px, 1.45vw, 20px); }
.service-hero-points li { color: #f7f4f0; }
.service-hero-points li::before { border-color: #c5a486; color: #d5b698; }
.service-hero-note { color: #e2d6ca; max-width: 760px; font-size: 11px; }
.service-hero-figure { background: none; border: 0; min-height: 520px; }
.service-hero-figure::before, .service-hero-figure figcaption { display: none; }
.service-hero-figure img {
  width: 100%;
  height: calc(100% + 52px);
  left: 0;
  bottom: -52px;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 16px 22px rgb(0 0 0 / .2));
}

.practice-hero { background-position: center 51%; padding: 42px 0 48px; }
.practice-hero::before {
  z-index: 0;
  background: linear-gradient(90deg, rgb(15 17 18 / .78), rgb(18 19 20 / .51) 65%, rgb(18 19 20 / .17));
}
.practice-hero-grid { position: relative; z-index: 1; grid-template-columns: minmax(0,1.26fr) minmax(280px,.74fr); }
.practice-hero h1 { color: #fff; }
.practice-hero .lead, .practice-hero .breadcrumbs, .practice-hero .breadcrumbs a { color: #f0e8df; }
.practice-hero .eyebrow, .practice-hero-note { color: #d8bea6; }
.practice-hero-note { font-size: 11px; margin-top: 20px; }
.practice-lawyer, .practice-hero .practice-lawyer {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.practice-lawyer figcaption { display: none; }
.practice-hero .practice-lawyer img { filter: drop-shadow(0 16px 22px rgb(0 0 0 / .2)); }
.inner-page .page-hero::before {
  background: linear-gradient(90deg, rgb(13 15 16 / .82), rgb(18 19 20 / .6) 58%, rgb(18 19 20 / .24));
}
.inner-page .page-hero .eyebrow { color: #d5b698; }

/* Pale, readable content cards beneath the photographic section. */
.inner-page main { background: #faf9f6; }
.inner-page main>.section:nth-of-type(odd) { background: #f5f2ec; }
.inner-page main>.section:nth-of-type(even) { background: #faf9f6; }
.inner-page main>.section.service-overview, .inner-page main>.section.service-longform {
  color: #252525;
  background: #faf9f6;
}
.inner-page main>.section.service-next { background: #f5f2ec; }
.inner-page main>.section.service-related { background: #faf9f6; }
.service-overview-heading .eyebrow, .service-next .eyebrow, .service-longform .eyebrow { color: #806248; }
.service-overview-heading h2, .service-next-heading h2 { color: #252525; }
.service-situation, .service-card, .article-card, .practice-area-card {
  color: #252525;
  background: #fff;
  border-color: #ded9d1;
  border-radius: 10px;
  box-shadow: 0 7px 25px rgb(25 26 26 / .06);
}
.service-situation-index, .service-context strong { color: #806248; }
.service-situation p, .service-context, .service-next-heading>p:not(.eyebrow) { color: #62696b; }
.service-context, .service-cost-note { border-color: #b99a7b; }
.service-documents, .service-longform .service-longform-intro, .service-checks {
  background: #f4f0ea;
  border-color: #ded9d1;
}
.service-checks summary { color: #252525; }
.service-documents li::marker { color: #806248; }
.service-related, .service-related .legal-note { border-color: #ded9d1; }
.inner-page .content-grid>.article-body { background: #fff; border-color: #ded9d1; }
.inner-page .sidebar { background: #292a2a; border-color: #a88767; }
.inner-page .sidebar .eyebrow { color: #d5b698; }
.demo-label, .demo-note, .notice { color: #413224; background: #f3e9dd; border-color: #c8aa8a; }
.legal-note { border-color: #b99a7b; }

.section:has(#services-grid) { background: #242525; }
.section:has(#services-grid)::before { display: none; }
.section:has(#services-grid) .filter-bar { background: rgb(25 26 26 / .73); border-color: rgb(185 154 123 / .39); }
.section:has(#services-grid) .tabs button { color: #fff; border-color: #a98d73; }
.section:has(#services-grid) .tabs button.is-active { color: #fff; background: #806248; border-color: #b99a7b; }
.section:has(#services-grid) .search-field input { color: #252525; background: #faf9f6; }
.section:has(#services-grid) .service-card {
  color: #252525;
  background: #faf9f6;
  border-color: #d8d0c7;
  backdrop-filter: none;
}
.section:has(#services-grid) .service-card:hover { background: #fff; border-color: #b99a7b; }
.section:has(#services-grid) .card-index, .section:has(#services-grid) .card-category,
.section:has(#services-grid) .card-bottom { color: #806248; }
.section:has(#services-grid) .card-title { color: #252525; }
.section:has(#services-grid) .card-arrow { color: #806248; border-color: #c6a88a; background: #f4eee6; }
.section:has(#services-grid) .catalog-progress { color: #e7ddd1; }
.section:has(#services-grid) .load-more { box-shadow: none; }
.load-more-wrap { overflow-anchor: none; }
.service-card.is-revealing, .article-card.is-revealing {
  animation: show-more-card .48s ease-out var(--reveal-delay, 0ms) both;
}
@keyframes show-more-card {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

.services-section, .practice-services, .practice-index, .pricing-section,
.contact-section { background: #f5f2ec; }
.people-section {
  background: linear-gradient(110deg, rgb(25 26 26 / .92), rgb(34 31 28 / .92)),
              url('/city-at-dusk.webp') center 50% / cover no-repeat;
}
.people-section .people-photo { border-color: #a98b6d; box-shadow: 0 30px 70px rgb(0 0 0 / .26); }
.people-section .people-photo::after { display: none; }
.people-section .people-photo img { filter: saturate(.85) contrast(1.03); object-position: 55% 50%; }
.people-copy { color: #252525; background: #f7f2ea; border-color: #ba9b7d; box-shadow: 0 22px 55px rgb(0 0 0 / .2); }
.people-copy .eyebrow { color: #806248; }
.people-points>div { border-color: #ded9d1; }
.process-section { background: #191a1a url('/city-at-dusk.webp') center / cover no-repeat; }
.process-section::before { background: linear-gradient(90deg, rgb(15 16 17 / .89), rgb(15 16 17 / .62)); }
.cases-section, .practice-articles { background: #242525; }
.practice-articles .article-card { color: #252525; background: #fff; border-color: #ded9d1; }
.practice-articles .article-card a { color: #252525; }
.practice-articles .article-card p { color: #63696a; }

/* The alternating inner-page rule has higher specificity than the original
   section background. Keep the article heading legible over its dark panel. */
.inner-page main > .section.practice-articles {
  background: #242525;
  color: #f7f3ec;
}
.inner-page main > .section.practice-articles .section-heading h2,
.inner-page main > .section.practice-articles .section-heading .eyebrow {
  color: #f7f3ec;
}
.inner-page main > .section.practice-articles .section-heading p { color: #ddd0c0; }
.inner-page main > .section.practice-index { background: #f5f2ec; color: #252525; }
.inner-page main > .section.practice-index .section-heading h2 { color: #252525; }
.about-band, .site-footer { background: #191a1a; }
.about-band p, .site-footer p, .site-footer small { color: #ddd3c5; }
.site-footer .brand-amp, .site-footer .footer-brand span { color: #c5a486; }
.site-footer .photo-credit { color: #cabdaf !important; }
.site-footer .photo-credit a { color: #e8d8c4; }
.footer-bottom { border-color: rgb(185 154 123 / .31); }

@media (max-width: 980px) {
  .service-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr); gap: 10px; }
  .service-hero h1 { font-size: clamp(37px, 4.7vw, 52px); }
  .service-hero-figure img { width: 100%; left: 0; }
}
@media (max-width: 800px) {
  .monument-hero .hero-grid, .practice-hero-grid, .service-hero-grid { grid-template-columns: 1fr; gap: 0; }
  .monument-hero .hero-copy { padding: 28px 0 16px; }
  .monument-hero .hero-proof { margin-top: 18px; }
  .home-hero-form { width: min(100%, 520px); justify-self: center; margin: 12px 0 20px; }
  .service-hero-copy { padding: 22px 0 12px; }
  .service-hero .breadcrumbs { margin-bottom: 25px; }
  .service-hero-figure { height: 385px; min-height: 0; width: min(100%, 450px); justify-self: center; }
  .service-hero-figure img { width: 100%; left: 0; }
  .practice-hero .practice-lawyer { height: 355px; max-width: 480px; }
  .monument-hero::before, .service-hero::before, .practice-hero::before {
    background: linear-gradient(90deg, rgb(16 18 19 / .82), rgb(16 18 19 / .36)),
                linear-gradient(0deg, rgb(16 18 19 / .36), transparent 55%);
  }
}
@media (max-width: 520px) {
  .home-phone-callout { margin: 12px 0 22px; padding: 11px 15px; }
  .site-header .header-actions>.button { display: none; }
  .site-header .menu-toggle { color: #fff; }
  .monument-hero .display-title { font-size: clamp(42px, 11vw, 56px); }
  .service-hero h1 { font-size: clamp(36px, 9vw, 48px); }
  .service-title-line { display: inline; }
  .service-hero-figure { height: 320px; }
  .service-hero-figure img { height: calc(100% + 49px); bottom: -49px; }
  .home-hero-form { padding: 23px 20px; }
  .monument-hero .hero-proof { grid-template-columns: 1fr; }
  .service-hero .hero-actions .button, .service-hero .hero-actions .button-light { width: 100%; }
}

@media (max-width: 380px) {
  .site-header .header-inner { gap: 8px; }
  .site-header .brand { gap: 7px; min-width: 0; font-size: 16px; }
  .site-header .brand-mark { width: 36px; min-width: 36px; height: 40px; }
  .site-header .brand-mark img { width: 34px; height: auto; }
  .site-header .brand-caption { font-size: 7px; letter-spacing: .09em; }
  .site-header .header-actions { gap: 0; }
  .home-hero-form h2 { font-size: 27px; }
}

/* Editorial images for every journal entry, reused by closely related topics. */
.article-card { overflow: hidden; }
.article-card-photo {
  display: block; height: 210px; margin: -28px -28px 23px;
  overflow: hidden; background: #e9e2d9;
}
.article-card-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.article-card:hover .article-card-photo img { transform: scale(1.035); }
.article-cover { margin: -36px -36px 34px; height: min(33vw,340px); min-height: 220px; overflow: hidden; background: #e9e2d9; }
.article-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 800px) { .article-cover { margin: -24px -24px 26px; height: 235px; } }

/* Let the mobile navigation scroll within the visible screen. */
.mega-menu-grid { max-height: min(62vh, 570px); overflow-y: auto; }
@media (max-width: 800px) {
  body > .mobile-nav.is-open {
    position: fixed;
    z-index: 50;
    top: var(--mobile-menu-header-height, 74px);
    bottom: 0;
    left: 0;
    right: 0;
    box-sizing: border-box;
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    padding: 16px 24px calc(24px + env(safe-area-inset-bottom));
    background: #191a1a;
    border-top: 1px solid rgb(185 154 123 / .34);
  }
  body > .mobile-nav.is-open a { color: #f7f3ec; }
  body > .mobile-nav.is-open { color: #f7f3ec; }
}

/* Confirmation appears only after the lead endpoint confirms delivery. */
.lead-toast {
  position: fixed;
  z-index: 1000;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 28px;
  align-items: start;
  gap: 12px;
  width: min(410px, calc(100vw - 32px));
  padding: 18px;
  color: #f7f3ec;
  background: #1c2220;
  border: 1px solid #b99a7b;
  border-radius: 15px;
  box-shadow: 0 18px 45px rgb(0 0 0 / .27);
}
.lead-toast[hidden] { display: none; }
.lead-toast-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #1c2220;
  background: #d3b38f;
  font-size: 22px;
  font-weight: 700;
}
.lead-toast-copy strong { display: block; font-size: 16px; line-height: 1.4; }
.lead-toast-copy p { margin: 4px 0 0; color: #eee4d8; font-size: 14px; line-height: 1.45; }
.lead-toast-close {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  color: #eee4d8;
  background: transparent;
  font-size: 24px;
  line-height: 1;
}
.lead-toast-close:focus-visible { outline: 2px solid #eee4d8; outline-offset: 2px; }
@media (max-width: 520px) {
  .lead-toast { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: no-preference) {
  .lead-toast:not([hidden]) { animation: lead-toast-in .25s ease-out; }
  @keyframes lead-toast-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
}
