/* v3 interior styles. Owned by the interior cluster (implementation/theme-v3-2026-10-02/BRIEF.md). Loaded on every page after style.css and home.css; scope rules by body class.
   Firm, Referrals, Privacy & Legal (template-parts/v3-interior-*.php). Every class here starts with v3i-, so nothing
   reaches another page. The sections reuse the practice pages' grid (.practice-grid: heading left, text on the shared
   text axis, 2px steel rule), so all three pages set their copy on the same left edge as the practice pages. */

/* ---------- Shared ---------- */
.v3i-note { grid-column: 2; max-width: var(--measure); margin: clamp(2.5rem, 5vw, 3.5rem) 0 0; }
.v3i-doc-text .v3i-note { grid-column: auto; margin: 0 0 2rem; }
/* The header lede is at least the size of the section openers below it. */
.v3i-hero-lede { margin: 1.5rem 0 0; max-width: 36rem; font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.45; letter-spacing: -.006em; font-variation-settings: 'opsz' 32; color: var(--ice); text-wrap: pretty; }
/* Follow-on paragraphs at 18px, so they don't read as fine print under the 24px opener. */
.v3i-section .practice-copy > p:not(:first-child) { font-size: 1.125rem; line-height: 1.6; }
.v3i-hero :focus-visible, .v3i-doc-header :focus-visible, .v3i-photo-header :focus-visible { outline-color: var(--sky); }

/* ---------- Firm header: the partners' photo bleeding off the right edge ---------- */
/* The backdrop is sampled from the left edge of the photo itself (Group-52, top to bottom), the way --hero-backdrop is
   sampled from Group-44, and the photo's left edge fades into it: no box, no seam. The photo's left edge sits on the
   wrap's grid (5/12 of the content width at 1280 and up), and the text column stops short of it. */
.v3i-hero { --v3i-photo-left: max(calc(50vw - 7.5rem), calc(var(--gutter) + 38vw)); position: relative; isolation: isolate; overflow: hidden; color: var(--white); background: linear-gradient(180deg, #1A2130 0%, #1D2435 12%, #202739 22%, #21283B 32%, #21293B 42%, #21283A 52%, #202739 62%, #1E2537 72%, #1A2132 82%, #181F2F 92%, #171E2D 100%); }
.v3i-hero h1 { font-size: var(--t-page-h1); line-height: .98; letter-spacing: -.025em; color: var(--white); text-wrap: balance; }
.v3i-hero-inner { display: flex; flex-direction: column; justify-content: center; min-height: min(40vw, 46rem); padding-top: clamp(3rem, 5vw, 4.5rem); padding-bottom: clamp(3rem, 5vw, 4.5rem); }
.v3i-hero-text, .v3i-hero-people { position: relative; z-index: 1; max-width: calc(var(--v3i-photo-left) - max(var(--gutter), 50vw - 640px + var(--gutter)) - 2.5rem); }
.v3i-hero-photo { position: absolute; z-index: 0; top: 0; right: 0; bottom: 0; left: var(--v3i-photo-left); margin: 0; }
.v3i-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 15%); mask-image: linear-gradient(90deg, transparent 0, #000 15%); }
/* The partners' names, in the photo's order, linked to their profiles. */
.v3i-hero-people { display: flex; flex-wrap: wrap; gap: 1rem clamp(2rem, 3.5vw, 3.25rem); margin-top: clamp(2rem, 3vw, 2.75rem); padding-top: 1.25rem; border-top: 1px solid var(--rule-dark); }
.v3i-hero-people li { display: flex; flex-direction: column; gap: .35rem; }
.v3i-hero-people a { font-family: var(--font-display); font-weight: 650; font-size: 1.0625rem; line-height: 1.3; color: var(--white); text-decoration: underline; text-decoration-color: var(--sky); text-decoration-thickness: 1.5px; text-underline-offset: .3em; transition: color .25s var(--ease-out); }
.v3i-hero-people a:hover { color: var(--sky); }
.v3i-hero-people span { font-family: var(--font-display); font-size: var(--t-meta); font-weight: 600; line-height: 1.3; color: var(--sky); }

/* ---------- Sections on the practice grid ---------- */
/* Firm's first section is the page's statement: its opening paragraph at display size across the text column. */
.v3i-thesis .practice-copy { max-width: none; }
.v3i-thesis .practice-copy > p:first-child { max-width: 22em; font-size: clamp(1.5rem, 2.25vw, 2.0625rem); line-height: 1.3; letter-spacing: -.014em; font-variation-settings: 'opsz' 48; color: var(--steel); margin-bottom: 1em; }
.v3i-thesis .practice-copy > p:not(:first-child) { max-width: var(--measure); }
/* The logo's ampersand at 5% under the heading, as in the home page's partners section (Dan, 2026-09-30: one watermark,
   clear of the text). Here it sits in the empty heading column beside the statement about both partners. */
.v3i-thesis .practice-head { position: relative; }
.v3i-thesis .practice-head::after { content: ''; position: absolute; left: 0; top: calc(100% + clamp(2.5rem, 4vw, 3.5rem)); width: clamp(10rem, 14vw, 13.5rem); aspect-ratio: 55 / 63; background: url('../../images/home/ampersand.svg') center / contain no-repeat; opacity: .05; pointer-events: none; }
/* Referrals: a list reads down two columns, not across rows. */
.v3i-section--list .practice-copy { max-width: none; }
.v3i-section--list .practice-copy > p { max-width: var(--measure); }
.v3i-section--list .practice-copy ul { display: block; columns: 2; column-gap: 2.5rem; margin: .5rem 0 0; max-width: 43rem; }
.v3i-section--list .practice-copy ul li { break-inside: avoid; margin-bottom: .9rem; }

/* ---------- The page's judicial quote: the courthouse band (template-parts/courthouse-quote.php) ---------- */
.v3i-band { margin-top: clamp(4rem, 8vw, 7rem); }
.v3i-clients + .v3i-band { margin-top: 0; }

/* ---------- Firm: What clients can expect (2026-10-06). The urgent-matters line elevated: an ink panel at the head of
   the section, the line at display size and the phone under it; then the expectations as a two-up row of labeled items. */
.v3i-urgent { padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem); background: var(--ink); color: var(--white); border-left: 3px solid var(--sky); }
.v3i-urgent-line { margin: 0; max-width: 24em; font-family: var(--font-body); font-size: clamp(1.375rem, 2vw, 1.75rem); line-height: 1.3; letter-spacing: -.012em; font-variation-settings: 'opsz' 40; color: var(--white); text-wrap: pretty; }
.v3i-urgent-phone { display: inline-block; margin-top: 1rem; padding-block: .2rem; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.25rem, 1.8vw, 1.5rem); letter-spacing: -.005em; color: var(--white); text-decoration: underline; text-decoration-color: var(--sky); text-decoration-thickness: 2px; text-underline-offset: .22em; font-variant-numeric: tabular-nums; }
.v3i-urgent-phone:hover { color: var(--sky); }
.v3i-urgent :focus-visible { outline-color: var(--sky); }
.v3i-expect { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem clamp(1.5rem, 3vw, 2.5rem); margin-top: clamp(1.75rem, 3vw, 2.25rem); }
.v3i-expect-item { padding-top: 1rem; border-top: 1px solid var(--rule-light); }
.v3i-expect-item h3 { margin: 0 0 .5rem; font-size: 1.1875rem; font-stretch: 100%; font-variation-settings: 'wdth' 100; font-weight: 700; letter-spacing: -.005em; line-height: 1.3; color: var(--steel); }
.v3i-expect-item p { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--ink); text-wrap: pretty; }
@media (max-width: 640px) { .v3i-expect { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Firm: Types of cases we handle (2026-10-06). Two columns under the paragraph: the federal groups and the
   state case types, each under its hub's name (a link to the hub). The items are categories, not links: ink, with the
   site's dot. "Every practice area" follows. */
.v3i-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 3vw, 2.5rem); margin: clamp(1.5rem, 2.6vw, 2rem) 0 clamp(1.5rem, 2.6vw, 2rem); max-width: 46rem; align-items: start; }
.v3i-types-col h3 { margin: 0 0 .75rem; padding-bottom: .6rem; border-bottom: 1px solid var(--rule-light); font-size: 1.0625rem; font-stretch: 100%; font-variation-settings: 'wdth' 100; font-weight: 700; letter-spacing: -.005em; line-height: 1.3; }
.v3i-types-col h3 a { color: var(--steel); text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1.5px; text-underline-offset: .2em; transition: color .25s var(--ease-out), text-decoration-color .25s var(--ease-out); }
.v3i-types-col h3 a:is(:hover, :focus-visible) { color: var(--lake); text-decoration-color: currentColor; }
.v3i-types .v3i-types-col ul { display: block; columns: auto; margin: 0; padding: 0; list-style: none; }
.v3i-types .v3i-types-col li { position: relative; margin: 0; padding: .3rem 0 .3rem 1.1rem; font-family: var(--font-display); font-weight: 500; font-size: 1rem; line-height: 1.35; color: var(--ink); }
.v3i-types .v3i-types-col li::before { content: ''; position: absolute; left: 0; top: calc(.3rem + .6em); width: 5px; height: 5px; border-radius: 50%; background: var(--lake); }
/* The two lists start level when one heading wraps: each column spans the grid's two rows (heading, list). */
.v3i-types { grid-template-rows: auto auto; row-gap: 0; }
.v3i-types-col { display: grid; grid-row: span 2; grid-template-rows: subgrid; }
.v3i-types-col h3 { align-self: end; }
@media (max-width: 520px) { .v3i-types { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 2rem; } .v3i-types-col { display: block; } }

/* ---------- Firm: Referrals (2026-10-06), the Referrals page's content folded into the Firm page ---------- */
.v3i-refer-part { margin-top: clamp(2rem, 3.5vw, 2.75rem); max-width: var(--measure); }
.v3i-refer-part h3 { margin: 0 0 .65rem; font-size: 1.1875rem; font-stretch: 100%; font-variation-settings: 'wdth' 100; font-weight: 700; letter-spacing: -.005em; line-height: 1.3; color: var(--steel); }
.v3i-refer-part > p { font-size: 1.125rem; line-height: 1.6; }
.v3i-refer-part--list { max-width: 43rem; }
.v3i-refer-part--list ul { display: block; columns: 2; column-gap: 2.5rem; margin: .5rem 0 0; }
.v3i-refer-part--list ul li { break-inside: avoid; margin-bottom: .9rem; }
.v3i-refer-contact { margin: clamp(2rem, 3.5vw, 2.75rem) 0 0; padding-top: 1.25rem; border-top: 1px solid var(--rule-light); max-width: var(--measure); font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; line-height: 1.6; color: var(--steel); }
.v3i-refer-contact a { color: var(--lake); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.v3i-refer-contact a:hover { color: var(--steel); }
.v3i-refer-contact span { margin: 0 .35em; color: var(--mist); }
.v3i-body--firm .v3i-clients { margin-top: clamp(3.5rem, 7vw, 6rem); }

/* ---------- Firm: Recognition as one row of three (as on Reviews) ---------- */
.v3i-recognition { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: var(--space-section); }

/* The arrow links share one line across the pair. */
/* The closing strip one section gap below the last block, not two. */

/* ---------- Referrals header: the Dirksen facade under the practice header's overlay ---------- */
/* The facade is a black-and-white photograph: a steel color layer tints it into the palette, then the practice overlay. */
.v3i-photo-header { padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(4rem, 7vw, 6rem); }
.v3i-photo-header-img { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.v3i-photo-header:has(.v3i-photo-header-img)::before { z-index: -2; background: var(--steel); mix-blend-mode: color; }
.v3i-photo-header--referrals::after { background: linear-gradient(90deg, rgba(14, 26, 36, .9) 0%, rgba(14, 26, 36, .8) 42%, rgba(14, 26, 36, .56) 74%, rgba(14, 26, 36, .46) 100%); }
.v3i-photo-header-text { max-width: 46rem; }

/* ---------- Referrals: the referred clients' quotes on limestone-light ---------- */
.v3i-clients { margin-top: clamp(4rem, 8vw, 7rem); padding: clamp(4rem, 8vw, 7rem) 0; background: var(--limestone-light); }
.v3i-clients-list { max-width: 40rem; }
.v3i-clients-list li + li { margin-top: 2.25rem; padding-top: 2.25rem; border-top: 1px solid rgba(30, 58, 82, .2); }
.v3i-clients-list figure, .v3i-clients-list blockquote { margin: 0; }
.v3i-clients-list p { margin: 0; font-size: clamp(1.3125rem, 1.8vw, 1.625rem); line-height: 1.4; letter-spacing: -.01em; font-variation-settings: 'opsz' 40; color: var(--steel); text-indent: -.42em; text-wrap: pretty; }
.v3i-clients-list figcaption { margin-top: 1rem; font-family: var(--font-display); font-size: var(--t-meta); font-weight: 600; line-height: 1.45; color: var(--steel); }
/* Contact: the page's paragraph, the button, the phone, and the email. */
.v3i-body--referrals { padding-bottom: clamp(4.5rem, 9vw, 7.5rem); }
.v3i-clients + .v3i-contact { padding-top: clamp(4rem, 8vw, 6rem); }
.v3i-contact .practice-copy { max-width: none; }
.v3i-contact .practice-copy > p { max-width: var(--measure); }
.v3i-contact-actions { gap: 1rem 2rem; }
.v3i-contact-email { font-family: var(--font-display); font-weight: 600; font-size: 1.0625rem; color: var(--lake); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .25em; }
.v3i-contact-email:hover { color: var(--steel); }

/* ---------- Privacy & Legal: a document ---------- */
/* An ink header that reads as one block with the site header, then an index beside the sections. */
.v3i-doc-header { padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.75rem, 5vw, 3.75rem); background: var(--ink); color: var(--white); }
.v3i-doc-header h1 { font-size: var(--t-h1); line-height: 1; letter-spacing: -.02em; color: var(--white); }
.v3i-doc-lede { margin: 1.25rem 0 0; max-width: 34rem; font-size: var(--t-lede); line-height: 1.5; color: var(--ice); text-wrap: balance; }
.v3i-doc-updated { margin: 1.25rem 0 0; font-family: var(--font-display); font-size: var(--t-meta); font-weight: 500; line-height: 1.4; color: var(--sky); }
.v3i-doc { padding: clamp(3.5rem, 6vw, 5rem) 0 clamp(4.5rem, 9vw, 7.5rem); }
.v3i-doc-index { position: sticky; top: calc(var(--header-h) + 2rem); border-top: 2px solid var(--steel); padding-top: 1.25rem; }
.admin-bar .v3i-doc-index { top: calc(var(--header-h) + var(--wp-admin--admin-bar--height, 0px) + 2rem); }
.v3i-doc-index-toggle { display: inline-flex; align-items: center; gap: .45rem; padding: .2rem 0; font-family: var(--font-display); font-size: var(--t-meta); font-weight: 600; color: var(--mist); }
.v3i-doc-index-toggle::after { content: ''; width: .45rem; height: .45rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(.1rem) rotate(-135deg); transition: transform .25s var(--ease-out); }
.v3i-doc-index-toggle[aria-expanded="false"]::after { transform: translateY(-.15rem) rotate(45deg); }
.v3i-doc-index-toggle[aria-expanded="false"] + ul { display: none; }
.v3i-doc-index-toggle:hover { color: var(--steel); }
/* Desktop: the index is simply open, so its label is a label (no caret, no pointer), as on the practice pages. */
@media (min-width: 861px) {
  .v3i-doc-index-toggle { pointer-events: none; cursor: default; }
  .v3i-doc-index-toggle::after { display: none; }
}
.v3i-doc-index ul { display: grid; gap: .1rem; margin-top: .6rem; }
.v3i-doc-index a { position: relative; display: inline-block; padding: .3rem 0 .3rem 1.1rem; font-family: var(--font-display); font-weight: 500; font-size: .9375rem; line-height: 1.35; color: var(--steel); text-decoration: none; transition: color .2s var(--ease-out); }
.v3i-doc-index a::before { content: ''; position: absolute; left: 0; top: calc(.3rem + .55em); width: 5px; height: 5px; border-radius: 50%; background: var(--rule-light); transition: background-color .2s var(--ease-out); }
.v3i-doc-index a:hover { color: var(--lake); text-decoration: underline; text-underline-offset: .2em; }
.v3i-doc-index a[aria-current] { color: var(--lake); font-weight: 650; }
.v3i-doc-index a[aria-current]::before, .v3i-doc-index a:hover::before { background: var(--lake); }
.v3i-doc-text { max-width: 36rem; }
.v3i-doc-section { scroll-margin-top: 1rem; }
.v3i-doc-section:first-of-type { border-top: 2px solid var(--steel); padding-top: 1.25rem; }
.v3i-doc-section + .v3i-doc-section { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--rule-light); }
.v3i-doc-section h2 { margin-bottom: .85rem; font-size: var(--t-h3); line-height: 1.15; letter-spacing: -.012em; color: var(--steel); }
.v3i-doc-section p { margin: 0 0 1em; }
.v3i-doc-section > :last-child { margin-bottom: 0; }
/* Photography: the credits as a list of subject and credit. */
.v3i-doc-credits { display: grid; margin: 0; }
.v3i-doc-credits > div { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: .25rem 1.75rem; padding: .9rem 0; border-top: 1px solid var(--rule-light); }
.v3i-doc-credits > div:first-child { border-top: 0; padding-top: .15rem; }
.v3i-doc-credits > div:last-child { padding-bottom: 0; }
.v3i-doc-credits dt { font-family: var(--font-display); font-weight: 600; font-size: .9375rem; line-height: 1.45; color: var(--steel); }
.v3i-doc-credits dd { margin: 0; font-size: 1rem; line-height: 1.5; }

/* ---------- Motion (interior.js): the site's fade and short rise; nothing hidden without the script ---------- */

/* ---------- Responsive ---------- */
@media (max-width: 1040px) {
  /* The photo stacks under the text before the text column gets too narrow. */
  .v3i-hero { --v3i-photo-left: 0px; background: linear-gradient(180deg, #171E2D 0%, #1C2334 45%, #1A2130 100%); }
  .v3i-hero-inner { display: block; min-height: 0; padding-bottom: 0; }
  .v3i-hero-text, .v3i-hero-people { max-width: 40rem; }
  .v3i-hero-photo { position: relative; inset: auto; aspect-ratio: 16 / 9; margin: clamp(2.25rem, 4vw, 3rem) calc(-1 * var(--gutter)) 0; }
  .v3i-hero-photo img { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14%); mask-image: linear-gradient(180deg, transparent 0, #000 14%); }
  /* Under the photo, each name under its partner. */
  .v3i-hero-people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 1rem var(--gutter) 1.75rem; border-top: 0; text-align: center; }
  .v3i-hero-people li { align-items: center; }
}
@media (max-width: 860px) {
  .v3i-hero-photo { aspect-ratio: 3 / 2; }
  .v3i-note { grid-column: auto; }
  .v3i-thesis .practice-copy > p:first-child { max-width: none; }
  .v3i-thesis .practice-head::after { display: none; }
  /* Over the facade the lede spans the width: the overlay evens out. */
  .v3i-photo-header--referrals::after { background: rgba(14, 26, 36, .82); }
  /* The index is a small control above the document, not a second rule. */
  .v3i-doc-index { border-top: 0; padding-top: 0; margin-bottom: 1.25rem; }
  .v3i-doc-index ul { padding-bottom: .5rem; }
  .v3i-doc-index { position: static; }
  .v3i-doc-text { max-width: none; }
}
@media (max-width: 640px) {
  .v3i-section--list .practice-copy ul { columns: 1; }
  .v3i-doc-credits > div { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .v3i-hero-people a, .v3i-doc-index a, .v3i-doc-index-toggle::after { transition: none; }
}
