/* Shared extensions for the multi-page site. No hosting rewrites required. */
.nav a[aria-current="page"] { color: var(--accent-light); }
.nav a[aria-current="page"]::after { transform: scaleX(1); }
.page-hero { padding: 8.4rem 0 4.5rem; background: var(--ink-deep); color: var(--white); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .5rem .85rem; margin-bottom: 3rem; color: rgba(255,253,248,.7); font-size: .72rem; }
.breadcrumbs a { border-bottom: 1px solid var(--line-light); }
.breadcrumbs a:hover { color: var(--accent-light); }
.breadcrumbs [aria-current] { color: rgba(255,253,248,.5); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) 16rem; align-items: center; gap: clamp(3rem,8vw,8rem); }
.page-hero__copy { animation: hero-rise .8s var(--ease) both; }
.page-hero .eyebrow { color: var(--accent-light); }
.page-hero h1 { max-width: 18ch; margin: 0; font: 400 clamp(2.8rem,5.4vw,5.2rem)/1.02 var(--serif); letter-spacing: -.045em; text-wrap: balance; }
.page-hero__lead { max-width: 41rem; margin: 1.7rem 0; font-size: 1rem; color: rgba(255,253,248,.72); text-wrap: pretty; }
.page-hero__identity { margin: 0; text-align: center; animation: hero-rise .9s .15s var(--ease) both; }
.page-hero__identity button, .practice-profile button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.page-hero__identity img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.page-hero__identity figcaption { margin-top: 1.25rem; }
.page-hero__identity strong { display: block; font: 400 1.35rem var(--serif); }
.page-hero__identity figcaption span { display: block; margin-top: .45rem; font-size: .7rem; color: rgba(255,253,248,.66); }
.page-layout { display: grid; grid-template-columns: 14rem minmax(0,1fr); gap: clamp(3rem,8vw,8rem); padding-block: 5rem 6rem; }
.page-rail { position: sticky; top: 8rem; align-self: start; }
.page-rail nav a { display: block; padding: .7rem 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .82rem; transition: color .2s; }
.page-rail nav a:hover { color: var(--ink); }
.rail-phone { display: inline-block; margin-top: 2rem; font: 400 1.25rem var(--serif); }
.rail-note { margin: .65rem 0 0; color: var(--muted); font-size: .75rem; }
.page-article { min-width: 0; max-width: 58rem; }
.article-section { padding-bottom: 4rem; margin-bottom: 4rem; border-bottom: 1px solid var(--line); }
.article-section:last-child { margin-bottom: 0; padding-bottom: 0; border: 0; }
.article-section h2 { max-width: 26ch; margin: 0 0 1.7rem; font: 400 clamp(2rem,3.2vw,3.1rem)/1.08 var(--serif); letter-spacing: -.035em; text-wrap: balance; }
.article-section > p:not(.eyebrow), .scope-list p { max-width: 48rem; color: var(--muted); font-size: .97rem; line-height: 1.75; }
.article-section .article-intro { color: var(--ink); font-size: 1.15rem; }
.ruled-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.ruled-list li { position: relative; padding: 1.2rem 0 1.2rem 1.5rem; border-bottom: 1px solid var(--line); }
.ruled-list li::before { position: absolute; left: 0; color: #8b713e; content: "—"; }
.scope-list { margin: 0; padding: 0; list-style: none; }
.scope-list li { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: 1rem; padding: 1.4rem 0; border-top: 1px solid var(--line); }
.scope-list li > span { padding-top: .3rem; color: #8b713e; font: italic .85rem var(--serif); }
.scope-list h3 { margin: 0; font: 400 1.5rem/1.25 var(--serif); }
.scope-list p { margin: .6rem 0 0; }
.document-checklist { padding: 0 0 0 1.1rem; }
.document-checklist li { padding: .4rem 0 .4rem .5rem; }
.document-checklist li::marker { color: #8b713e; }
.article-section > .article-note { margin: 1.7rem 0 0; font-size: .83rem; }
.inline-link { display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.4rem; padding-bottom: .35rem; border-bottom: 1px solid #9d895f; font-size: .85rem; transition: color .2s, gap .25s var(--ease); }
.inline-link:hover { color: #7c673e; gap: 1.3rem; }
.service-prices { margin: 0; }
.service-prices > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.5rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.service-prices > div:first-child { border-top: 1px solid var(--line); }
.service-prices dt { color: var(--muted); }
.service-prices dd { margin: 0; font-weight: 600; white-space: nowrap; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; padding: 1.5rem 0; font: 400 1.4rem/1.25 var(--serif); cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary > span { position: relative; width: 1rem; height: 1rem; flex: 0 0 1rem; }
.faq-item summary > span::before, .faq-item summary > span::after { position: absolute; left: 0; top: 50%; width: 1rem; height: 1px; background: currentColor; content: ""; transition: transform .25s var(--ease); }
.faq-item summary > span::after { transform: rotate(90deg); }
.faq-item[open] summary > span::after { transform: rotate(0); }
.faq-item summary:hover { color: #7c673e; }
.faq-item__answer { padding: 0 2.5rem 1.6rem 0; color: var(--muted); animation: details-open .35s var(--ease); }
.faq-item__answer p { max-width: 48rem; margin: 0; line-height: 1.75; }
.faq-item__answer a { color: var(--ink); text-decoration: underline; text-decoration-color: #ad9564; text-underline-offset: .2em; }
.related-links { padding: 0; }
.related-links > a { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.25rem 0; border-top: 1px solid var(--line); font: 400 1.45rem/1.3 var(--serif); }
.related-links > a:hover { color: #7c673e; }
.related-links > a > span { flex-shrink: 0; font: 1.2rem var(--sans); }
.contact--compact { padding-block: 5rem; }
.contact--compact .contact__main h2 { max-width: 14ch; font-size: clamp(2.5rem,4vw,4rem); }
.contact--compact .contact__phone { font-size: clamp(2.2rem,3.5vw,3.7rem); margin-top: 2rem; white-space: nowrap; }
.contact--compact .contact__grid { gap: clamp(3rem,6vw,6rem); }
.footer-links { display: flex; flex-wrap: wrap; gap: .5rem 2rem; padding-block: 1.5rem; border-top: 1px solid var(--line-light); }
.footer-links a { padding-block: .5rem; font-size: .75rem; color: rgba(255,253,248,.72); }
.footer-links a:hover { color: var(--accent-light); }
.practice-profile { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1fr); gap: 2.5rem; margin-top: 2.5rem; }
.practice-profile figure { margin: 0; }
.practice-profile figure img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.practice-profile figcaption { color: var(--muted); margin-top: .75rem; font-size: .7rem; }
.practice-facts { margin: 0; }
.practice-facts > div { padding: 1rem 0; border-top: 1px solid var(--line); }
.practice-facts dt { font: 400 1.7rem var(--serif); }
.practice-facts dd { margin: .5rem 0 0; color: var(--muted); font-size: .85rem; }
.direction-links a { display: grid; grid-template-columns: 2rem minmax(0,1fr) 1rem; align-items: center; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid var(--line); font: 400 1.5rem/1.3 var(--serif); }
.direction-links a:hover { color: #7c673e; }
.direction-links .direction-links__number { color: var(--muted); font-size: .78rem; font-style: italic; }
.practice-quote { margin: 2rem 0 2.5rem; color: #806837; font: italic clamp(1.7rem,2.6vw,2.6rem)/1.25 var(--serif); letter-spacing: -.02em; }
.explore { padding-block: 3.5rem; background: var(--paper-deep); }
.explore__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4rem; }
.explore a { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.4rem; }
.explore .eyebrow { grid-column: 1/-1; margin: 0; }
.explore strong { font: 400 clamp(1.7rem,2.5vw,2.5rem)/1.1 var(--serif); letter-spacing: -.03em; }
.explore__arrow { transition: transform .3s var(--ease); }
.explore a:hover .explore__arrow { transform: translate(3px,-3px); }

@media (max-width: 1180px) {
  .nav { max-height: 100dvh; overflow-y: auto; }
  .page-hero__grid { grid-template-columns: minmax(0,1fr) 12rem; gap: 3rem; }
  .page-layout { grid-template-columns: 11rem minmax(0,1fr); gap: 3rem; }
}
@media (max-width: 900px) {
  .page-layout { display: block; padding-block: 3rem 4rem; }
  .page-rail { position: static; margin-bottom: 3.5rem; }
  .page-rail nav { display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; }
  .page-rail .eyebrow { flex-basis: 100%; margin-bottom: .5rem; }
  .page-rail nav a { font-size: .8rem; }
  .page-rail .rail-phone, .page-rail .rail-note { display: none; }
  .page-article { max-width: none; }
  .practice-profile { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width: 620px) {
  html { scroll-padding-bottom: 5.8rem; }
  .faq-item summary { scroll-margin-block: 6rem; }
  .page-hero { padding: 6rem 0 2.5rem; }
  .breadcrumbs { margin-bottom: 1.6rem; font-size: .65rem; gap: .35rem .6rem; }
  .breadcrumbs [aria-current] { display: none; }
  .breadcrumbs > span[aria-hidden]:nth-last-child(2) { display: none; }
  .page-hero__grid { display: flex; flex-direction: column; align-items: stretch; gap: 1.8rem; }
  .page-hero__identity { order: -1; display: flex; align-items: center; gap: 1rem; text-align: left; }
  .page-hero__identity button { width: 4rem; flex: 0 0 4rem; }
  .page-hero__identity figcaption { margin: 0; }
  .page-hero__identity strong { font-size: 1.2rem; }
  .page-hero__identity figcaption span { font-size: .63rem; }
  .page-hero h1 { max-width: 20ch; font-size: clamp(2.25rem,9.5vw,3.5rem); }
  .page-hero .eyebrow { font-size: .63rem; margin-bottom: 1rem; }
  .page-hero__lead { margin: 1.1rem 0 .6rem; font-size: .88rem; }
  .article-section { margin-bottom: 3rem; padding-bottom: 3rem; }
  .article-section h2 { font-size: clamp(1.85rem,7.5vw,2.4rem); }
  .article-section > p:not(.eyebrow), .scope-list p { font-size: .9rem; }
  .ruled-list li, .document-checklist li { font-size: .9rem; }
  .scope-list li { grid-template-columns: 1.4rem minmax(0,1fr); gap: .75rem; }
  .scope-list h3 { font-size: 1.35rem; }
  .service-prices > div { gap: .8rem; font-size: .82rem; }
  .faq-item summary { font-size: 1.25rem; padding-block: 1.3rem; }
  .faq-item__answer { padding-right: .5rem; font-size: .88rem; }
  .related-links > a { font-size: 1.25rem; }
  .contact--compact .contact__phone { font-size: clamp(1.85rem,8.7vw,3rem); }
  .footer-links { gap: .25rem 1.4rem; }
  .footer-links a { font-size: .7rem; }
  .practice-profile { gap: 1.5rem; }
  .practice-facts dt { font-size: 1.35rem; }
  .practice-facts dd { font-size: .76rem; }
  .practice-profile figure img { aspect-ratio: 3/5; object-position: 50% 15%; }
  .direction-links a { font-size: 1.25rem; grid-template-columns: 1.4rem minmax(0,1fr) 1rem; gap: .7rem; }
  .explore__grid { grid-template-columns: minmax(0,1fr); gap: 2.5rem; }
  .nav a { padding-block: .6rem; }
}
@media (max-width: 380px) {
  .practice-profile { grid-template-columns: minmax(0,1fr); }
  .practice-profile figure { max-width: 13rem; }
  .practice-profile figure img { aspect-ratio: 3/4; }
}
@media (max-width: 1180px) and (max-height: 600px) {
  .nav { align-content: start; min-height: 100dvh; padding-top: 6rem; padding-bottom: 5rem; }
  .nav a { font-size: 1.65rem; padding-block: .45rem; }
}
