/* Practice Areas: editorial hierarchy, black and gold, quiet interactions. */
.practice-hero { position: relative; isolation: isolate; overflow: hidden; background: #090909; color: var(--ivory); }
.practice-hero__visual { position: absolute; inset: 0; z-index: -1; }
.practice-hero__visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.practice-hero__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(8 8 8 / 88%) 0%, rgb(8 8 8 / 72%) 35%, rgb(8 8 8 / 15%) 62%, rgb(8 8 8 / 3%) 100%); }
.practice-hero__content { padding-block: 62px 64px; }
.practice-hero .eyebrow { color: var(--gold-bright); margin: 0 0 22px; }
.practice-hero h1 { max-width: 650px; margin: 0 0 24px; font-family: var(--serif); font-size: clamp(3.3rem, 4.8vw, 4.75rem); font-weight: 500; line-height: .99; letter-spacing: -.035em; }
.practice-hero h1 span { color: var(--gold-bright); }
.practice-hero__intro { max-width: 510px; margin: 0 0 27px; color: #f0ede5; font-family: var(--serif); font-size: 1.25rem; line-height: 1.35; }
.practice-page .practice-layout { grid-template-columns: 265px minmax(0, 1fr); gap: clamp(48px, 6vw, 88px); padding-block: 80px; }
.practice-page .practice-index { top: 145px; }
.practice-page .practice-index .eyebrow { margin: 0 0 22px; }
.practice-page .practice-index a { grid-template-columns: 25px 1fr; padding: 16px 0; gap: 10px; font-size: .95rem; font-weight: 450; color: #4c4942; transition: color 160ms ease; }
.practice-page .practice-index a span { font-family: var(--sans); font-size: .69rem; padding-top: 3px; letter-spacing: .06em; }
.practice-page .practice-index a:hover, .practice-page .practice-index a:focus-visible { color: #996b22; }
.practice-page .practice-index__note { max-width: 240px; font-size: .83rem; line-height: 1.55; }
.practice-page .practice-detail { scroll-margin-top: 145px; margin-bottom: 54px; padding-bottom: 54px; }
.practice-page .practice-detail > header { grid-template-columns: 44px minmax(0, 1fr); gap: 20px; }
.practice-page .practice-detail__icon { display: block; width: 42px; height: 42px; margin-top: 4px; color: var(--gold); }
.practice-page .practice-detail h2 { margin: 0 0 14px; font-size: clamp(2.2rem, 3vw, 3rem); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
.practice-page .practice-detail__summary { max-width: 680px; margin: 0; font-family: var(--serif); font-size: 1.25rem; line-height: 1.4; color: #656056; }
.practice-page .practice-detail__body { grid-template-columns: 1fr; gap: 26px; padding: 27px 0 0 64px; }
.practice-page .practice-detail .prose { font-size: .97rem; line-height: 1.7; color: #53514b; }
.practice-page .practice-detail .prose p { margin: 0 0 14px; }
.practice-page .practice-detail .prose p:last-child { margin: 0; }
.practice-page .practice-detail__body > div:last-child { padding: 23px 26px; background: #f3f0e8; border-radius: 8px; border: 1px solid #e6dfd2; }
.practice-page .practice-detail h3 { margin: 0 0 16px; color: #8c6225; font-size: .67rem; font-weight: 650; letter-spacing: .14em; }
.practice-page .service-list { margin: 0; gap: 12px 28px; }
.practice-page .service-list li { color: #46443e; font-size: .91rem; line-height: 1.45; }
.practice-next { padding-block: 52px; background: linear-gradient(115deg, #090909, #1b1b1b); color: var(--ivory); border-top: 1px solid #aa7e32; }
.practice-next__inner { display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.practice-next .eyebrow { margin: 0 0 16px; color: var(--gold-bright); }
.practice-next h2 { margin: 0 0 16px; font-family: var(--serif); font-size: clamp(2.2rem, 3.2vw, 3.1rem); font-weight: 500; line-height: 1.05; }
.practice-next p:last-child { margin: 0; color: #c9c6be; font-size: 1rem; }
.practice-next .button { flex: 0 0 auto; }
@media (max-width: 1020px) {
  .practice-page .practice-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 35px; }
  .practice-page .practice-detail__body { padding-left: 0; }
  .practice-page .practice-detail > header { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; }
  .practice-page .practice-detail__icon { width: 34px; height: 34px; margin-top: 2px; }
  .practice-hero__visual img { object-position: 62% center; }
  .practice-hero__visual::after { background: linear-gradient(90deg, rgb(8 8 8 / 94%), rgb(8 8 8 / 76%) 48%, rgb(8 8 8 / 20%)); }
}
@media (max-width: 700px) {
  .practice-hero__content { padding-block: 45px 48px; }
  .practice-hero h1 { font-size: clamp(2.65rem, 8.8vw, 3.7rem); margin-bottom: 22px; }
  .practice-hero__intro { font-size: 1.12rem; }
  .practice-hero__visual img { object-position: 58% center; }
  .practice-hero__visual::after { background: linear-gradient(90deg, rgb(8 8 8 / 94%), rgb(8 8 8 / 72%)); }
  .practice-page .practice-layout { display: block; padding-block: 42px 48px; }
  .practice-page .practice-index { position: static; margin-bottom: 48px; }
  .practice-page .practice-index ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
  .practice-page .practice-index li { display: flex; }
  .practice-page .practice-index a { width: 100%; grid-template-columns: 19px minmax(0, 1fr); gap: 6px; font-size: .86rem; padding-block: 13px; }
  .practice-page .practice-index__note { max-width: none; margin-top: 18px; }
  .practice-page .practice-detail { margin-bottom: 40px; padding-bottom: 40px; scroll-margin-top: 125px; }
  .practice-page .practice-detail h2 { font-size: 2.15rem; }
  .practice-page .practice-detail__summary { font-size: 1.14rem; }
  .practice-page .practice-detail__body { padding-top: 22px; gap: 22px; }
  .practice-page .practice-detail__body > div:last-child { padding: 21px; }
  .practice-page .service-list { grid-template-columns: 1fr; gap: 10px; }
  .practice-next { padding-block: 42px; }
  .practice-next__inner { align-items: flex-start; flex-direction: column; gap: 26px; }
}
