/* Editorial interiors: the home page's palette, typography and fine rules. */
.interior-page { --content: 1320px; }
.interior-page main { max-width: 1600px; margin-inline: auto; }
.interior-page .page-intro { padding-block: clamp(3.5rem, 7vw, 6rem); border: 0; }
.interior-page .page-intro h1 { font-size: clamp(3.2rem, 6.5vw, 6.8rem); line-height: 1.02; max-width: 15ch; }
.interior-page .page-intro .lede { font-size: 1.05rem; line-height: 1.75; max-width: 52ch; margin-bottom: 0; }
.interior-page .eyebrow, .interior-page .meta { font-size: .78rem; letter-spacing: .13em; }
.interior-page .section-pad { padding-block: clamp(3rem, 5vw, 5rem); }
.interior-page .page-intro.section-pad { padding-block: clamp(3.5rem, 7vw, 6rem); }
.interior-page .page-intro .eyebrow { margin-bottom: 1.25rem; }
.interior-page .page-intro h1 { margin-bottom: 1.6rem; }
.page-heading-grid { display: grid; gap: 2rem; }
.page-heading-note { display: flex; align-items: center; gap: 1.25rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.page-heading-note > span { font: italic 3.5rem/1 var(--serif); color: var(--accent); }
.page-heading-note p { margin: 0; color: var(--muted); font-size: .85rem; }
.page-heading-note strong { display: block; font-weight: 500; color: var(--ink); }
.section-label { display: flex; align-items: center; gap: .9rem; margin-bottom: 2rem; }
.section-label .eyebrow { margin: 0; }
.section-label .section-index { font-size: 1rem; }
.interior-page .contact:not(.contact-full) { background: var(--paper-2); border-top: 1px solid var(--line); margin-top: 1rem; gap: 2rem; }
.interior-page .contact:not(.contact-full) h2 { font-size: clamp(2.75rem, 5.5vw, 5rem); max-width: 14ch; }
.interior-page .contact-details > p { font-size: 1rem; line-height: 1.75; }
.interior-page .contact:not(.contact-full) .email-link { margin-block: 1rem 0; }
.interior-page .button { font-size: .78rem; min-height: 48px; }
.interior-page .text-link { display: inline-flex; align-items: center; min-height: 44px; }
/* Insights: one leading story, followed by an indexed editorial list. */
.insights-feature { padding: 0 var(--pad) 3rem; }
.featured-story { display: grid; gap: 2rem; border-top: 1px solid var(--line); padding-top: 2rem; }
.featured-story-art { min-height: 260px; background: #6e211e; color: #f2efe8; position: relative; overflow: hidden; display: grid; place-items: center; }
.featured-story-art svg { width: min(80%, 340px); height: 260px; fill: none; stroke: #e0b8ac; stroke-width: 1; }
.featured-story-art .art-axis { stroke-dasharray: 3 6; opacity: .5; }
.featured-story-art .art-center { fill: #e0b8ac; stroke: none; }
.featured-story-art > span { position: absolute; left: 1.5rem; bottom: 1rem; font: italic 1rem var(--serif); letter-spacing: .05em; }
.featured-story-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; }
.featured-story-copy .meta { margin-bottom: 1rem; }
.featured-story h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); line-height: 1.12; letter-spacing: -.03em; margin-bottom: 1rem; }
.featured-story h2 a { text-decoration: none; }
.featured-story h2 a:hover { color: var(--accent); }
.featured-story-copy > p:not(.meta) { color: var(--muted); font-size: 1rem; line-height: 1.75; max-width: 55ch; }
.featured-story .text-link { margin-top: .5rem; }
.interior-page .insights-archive { padding-top: 1rem; }
.archive-list { border-top: 1px solid var(--line); }
.archive-story { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; padding-block: 2rem; border-bottom: 1px solid var(--line); }
.story-index { font: italic 1rem var(--serif); color: var(--accent); padding-top: .1rem; }
.archive-story h2 { font-size: clamp(1.7rem, 2.7vw, 2.5rem); line-height: 1.15; letter-spacing: -.025em; margin-bottom: .8rem; }
.archive-story h2 a:hover { color: var(--accent); }
.archive-story p:not(.meta) { color: var(--muted); font-size: 1rem; line-height: 1.75; max-width: 60ch; margin-bottom: .5rem; }
/* Resources: quiet document cards with explicit access methods. */
.page-resources .resources-full { background: var(--paper); color: var(--ink); padding-top: 0; display: block; }
.resource-catalog { display: grid; gap: 1.25rem; }
.resource-card { display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--paper-2); border: 1px solid var(--line); min-width: 0; transition: border-color .2s ease, background .2s ease; }
.resource-card:hover { border-color: var(--accent); }
.resource-card-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; }
.document-icon { width: 48px; height: 56px; color: var(--accent); fill: none; stroke: currentColor; stroke-width: 1.25; }
.resource-card-top > span { font: italic 1rem var(--serif); color: var(--muted); }
.resource-card .meta { margin-bottom: 1rem; }
.resource-card h2 { font-size: clamp(1.8rem, 2.7vw, 2.6rem); line-height: 1.14; letter-spacing: -.025em; margin-bottom: 1.2rem; }
.resource-card > p:not(.meta) { color: var(--muted); font-size: 1rem; line-height: 1.75; margin-bottom: 1.8rem; max-width: 56ch; }
.resource-card-action { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; border-top: 1px solid var(--line); padding-top: 1.1rem; min-height: 58px; font-size: .8rem; color: var(--accent); }
.resource-card-action span:last-child { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 50%; font-size: 1.2rem; transition: background .2s ease, color .2s ease; }
.resource-card-action:hover span:last-child { background: var(--accent); color: var(--paper); }
.resource-card-action:focus-visible { outline-offset: 5px; }
/* Contact: a direct conversation, balanced against an architectural panel. */
.contact-layout { display: grid; padding: clamp(3.5rem, 7vw, 6rem) var(--pad); gap: 2.5rem; align-items: start; }
.page-contact .contact-layout .page-intro { padding: 0; }
.page-contact .contact-layout h1 { max-width: 12ch; }
.contact-panel { background: #17211d; color: #eeeae0; padding: clamp(1.5rem, 3vw, 3rem); min-width: 0; }
.page-contact .contact-full { display: block; padding: 0; }
.contact-panel .eyebrow, .contact-panel .contact-grid small { color: #e0b8ac; }
.contact-panel .email-link { font-size: clamp(1.4rem, 2.5vw, 2rem); margin: 1rem 0 2rem; border-color: rgba(238,234,224,.25); gap: .5rem; overflow-wrap: anywhere; }
.contact-panel .email-link span { color: #e0b8ac; }
.contact-panel .contact-grid { gap: 2rem; }
.contact-panel address, .contact-panel .telephone-link, .contact-panel .contact-grid p { font-size: 1rem; line-height: 1.75; }
.contact-panel .telephone-link { min-height: 44px; }
.contact-panel .contact-grid small { font-size: .7rem; }
.contact-panel :focus-visible { outline-color: #e0b8ac; }
.contact-panel .contact-link::after { background: #e0b8ac; }
.contact-coordinates { display: flex; justify-content: space-between; gap: 1rem; font-size: .65rem; letter-spacing: .13em; color: #aeb6b0; border-top: 1px solid rgba(238,234,224,.25); margin-top: 2.5rem; padding-top: 1rem; }
.page-contact .contact-process { border: 0; background: var(--paper-2); display: block; }
.contact-process h2 { max-width: 18ch; font-size: clamp(2.4rem, 4.5vw, 4.2rem); }
.contact-process .proof-points { display: grid; grid-template-columns: 1fr; border: 0; padding: 0; gap: 1.5rem; margin: 2.5rem 0 0; }
.contact-process .proof-points > div { margin: 0; padding: 1.5rem 0 0; border-top: 1px solid var(--line); border-bottom: 0; }
.contact-process .proof-points dt { font-size: 2.5rem; }
.contact-process .proof-points dd { font-size: 1rem; line-height: 1.75; margin-top: 1rem; }
/* Reading pages: generous measure and a persistent desktop contents rail. */
.breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin: 0 0 2rem; font-size: .8rem; color: var(--muted); }
.breadcrumb a { display: inline-flex; min-height: 44px; align-items: center; }
.breadcrumb a:hover { color: var(--accent); }
.page-article .article-intro { border-bottom: 1px solid var(--line); }
.page-article .article-intro h1 { max-width: 24ch; font-size: clamp(2.6rem, 5vw, 5.5rem); line-height: 1.08; }
.reading-time { color: var(--muted); font-size: .85rem; margin: 1.5rem 0 0; }
.article-layout { display: grid; gap: 2.5rem; padding: 2.5rem var(--pad) 4rem; }
.article-contents { min-width: 0; align-self: start; }
.article-contents summary { cursor: pointer; color: var(--accent); font-size: .8rem; letter-spacing: .08em; padding-block: 1rem; border-bottom: 1px solid var(--line); min-height: 44px; }
.article-contents ol { padding: 1rem 0 0; margin: 0; list-style: none; }
.article-contents li { border-bottom: 1px solid var(--line); }
.article-contents a { display: block; padding-block: .85rem; font-size: .85rem; line-height: 1.5; min-height: 44px; color: var(--muted); }
.article-contents a:hover { color: var(--accent); }
.page-article .article-body { padding: 0; margin: 0; width: 100%; max-width: 72ch; min-width: 0; opacity: 1; transform: none; }
.page-article .article-body p, .page-article .article-body li { font-size: 1.0625rem; line-height: 1.85; }
.page-article .article-body > p:first-child { font: 1.5rem/1.5 var(--serif); color: var(--ink); padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.page-article .article-body h2 { margin-top: 3rem; font-size: clamp(1.8rem, 2.5vw, 2.3rem); line-height: 1.2; }
.page-article .article-body h2:first-child { margin-top: 0; }
.page-article .article-body .article-footnote { font-size: .85rem; color: var(--muted); }
.page-article .article-cta { margin: 0 var(--pad) 3rem; max-width: none; background: var(--paper-2); border: 1px solid var(--line); padding: 2rem; }
.page-article .article-cta .article-back { margin-bottom: 0; }
.interior-page .site-footer { gap: 1.5rem 2rem; }
.interior-page .site-footer > div { line-height: 1.7; }
@media (min-width: 700px) {
  .resource-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-process .proof-points { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
  .archive-story { grid-template-columns: 3rem minmax(0, 1fr); gap: 2rem; }
}
@media (min-width: 1024px) {
  .page-heading-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, .6fr); gap: 5rem; align-items: end; }
  .page-heading-note { margin-bottom: .4rem; border-top: 0; border-left: 1px solid var(--line); padding: 1rem 0 1rem 2rem; }
  .featured-story { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3rem; }
  .featured-story-art { min-height: 410px; }
  .archive-story { grid-template-columns: 5rem minmax(0, 1fr); }
  .archive-story-copy { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 1rem 3rem; }
  .archive-story-copy .meta { grid-column: 1 / -1; margin-bottom: 0; }
  .archive-story-copy h2 { grid-row: span 2; }
  .archive-story-copy .text-link { justify-self: start; align-self: start; }
  .contact-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; }
  .contact-panel .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-layout { grid-template-columns: 230px minmax(0, 1fr); gap: clamp(3rem, 6vw, 6rem); }
  .article-contents { position: sticky; top: 115px; max-height: calc(100dvh - 145px); overflow-y: auto; padding-right: .75rem; scrollbar-width: thin; }
  .page-article .article-body { max-width: 68ch; }
  .page-article .article-body p, .page-article .article-body li { font-size: 1.125rem; }
  .page-article .article-cta { margin-left: calc(var(--pad) + 230px + clamp(3rem, 6vw, 6rem)); }
  .interior-page .site-footer { grid-template-columns: auto minmax(170px, .7fr) minmax(0, 1.3fr); }
}
@media (prefers-reduced-motion: reduce) {
  .interior-page *, .interior-page *::after, .interior-page *::before { transition: none !important; }
}
.resource-card-action:focus-visible { outline-color: var(--accent); }

/* Keep the contact headline's emphasis together in every language. */
.page-contact .contact-layout h1 em { display: block; max-width: 100%; }


/* Firm pages: a consistent editorial system for approach, practice and people. */
.firm-heading { display: grid; gap: 2.5rem; }
.firm-heading .page-heading-copy { min-width: 0; }
.interior-page .firm-heading h1 { max-width: 20ch; font-size: clamp(3rem, 5.8vw, 6rem); }
.about-symbol { background: var(--paper-2); min-height: 300px; padding: 2rem; display: grid; place-items: center; position: relative; }
.about-symbol::before, .about-symbol::after { content: ''; position: absolute; border: 1px solid var(--line); }
.about-symbol::before { inset: 2rem; }
.about-symbol::after { inset: 4rem; }
.about-symbol svg { width: min(80%, 260px); height: auto; z-index: 1; }
.about-symbol .logo-ink { fill: var(--ink); }
.about-symbol .logo-clay { fill: var(--accent-light); }
.symbol-caption { position: absolute; left: 2rem; bottom: 1rem; color: var(--muted); font-size: .65rem; letter-spacing: .12em; }
.page-about .about-promise { display: grid; gap: 2.5rem; background: #17211d; color: #eeeae0; border: 0; }
.about-promise .eyebrow, .about-promise h2 em, .about-promise .proof-points dt { color: #e0b8ac; }
.about-promise h2 { font-size: clamp(2.5rem, 4.5vw, 4.8rem); max-width: 20ch; }
.about-promise .statement-copy > p:last-child { color: #aeb6b0; font-size: 1rem; line-height: 1.8; }
.about-promise .proof-points { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; border: 0; padding: 0; gap: 1rem; }
.about-promise .proof-points > div { border: 0; border-top: 1px solid rgba(238,234,224,.25); margin: 0; padding: 1.5rem 0 0; }
.about-promise .proof-points dt { font-size: clamp(2.5rem, 4vw, 4.5rem); }
.about-promise .proof-points dd { color: #aeb6b0; font-size: .85rem; line-height: 1.6; }
.page-about .firm-values { background: var(--paper); }
.firm-values .section-heading { display: block; }
.firm-values .section-heading h2 { font-size: clamp(2.5rem, 4.5vw, 4.5rem); max-width: 20ch; }
.page-about .values-grid { grid-template-columns: 1fr; gap: 0; border: 0; padding-top: 0; counter-reset: value; }
.page-about .values-grid > div { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .5rem 1rem; border-top: 1px solid var(--line); padding-block: 1.8rem; min-width: 0; }
.page-about .values-grid > div::before { counter-increment: value; content: counter(value, decimal-leading-zero); font: italic .9rem var(--serif); color: var(--accent); padding-top: .3rem; grid-row: span 2; }
.page-about .values-grid dt { margin: 0; font-size: 1.8rem; line-height: 1.2; }
.page-about .values-grid dd { font-size: 1rem; line-height: 1.75; max-width: 48ch; }
/* Practice: in-page index and calm, fully readable descriptions. */
.practice-index { display: grid; gap: .1rem; padding: 1.5rem; background: var(--paper-2); }
.practice-index .eyebrow { margin-bottom: .5rem; }
.practice-index a { display: flex; align-items: center; gap: 1rem; border-top: 1px solid var(--line); padding-block: .8rem; font-size: .9rem; line-height: 1.5; min-height: 48px; }
.practice-index a span { font: italic .85rem var(--serif); color: var(--accent); }
.practice-index a:hover { color: var(--accent); }
.page-practice .practice-catalog { background: var(--paper); padding-top: 0; }
.page-practice .practice-list-full .practice-item { grid-template-columns: 2rem minmax(0,1fr); gap: 1rem; padding-block: 2.5rem; }
.page-practice .practice-list-full .practice-item > span { font-size: 1rem; }
.page-practice .practice-item h2 { font-size: clamp(2rem,3.5vw,3.4rem); line-height: 1.12; letter-spacing: -.025em; margin: 0; }
.page-practice .practice-list-full .practice-item p { font-size: 1rem; line-height: 1.8; margin: 0; max-width: 62ch; }
.practice-detail-link { grid-column: 2; justify-self: start; color: var(--accent); }
/* Team: equal, aligned profiles and honest monogram portraits. */
.page-team .team-full { background: var(--paper); color: var(--ink); padding-top: 0; display: block; }
.page-team .team-grid { grid-template-columns: 1fr; gap: 2.5rem; }
.page-team .person { margin: 0; min-width: 0; }
.page-team .portrait { aspect-ratio: 5/4; }
.page-team .portrait-a { background: #17211d; }
.page-team .portrait-b { background: #6e211e; }
.page-team .portrait-c { background: #d5cabb; }
.page-team .portrait-c::before, .page-team .portrait-c::after { border-color: rgba(23,33,29,.22); }
.page-team .portrait-c span { color: rgba(23,33,29,.7); }
.page-team .portrait span { color: #e0b8ac; font-size: clamp(5rem,10vw,8rem); font-weight: 400; }
.page-team .portrait-c span { color: #17211d; }
.profile-caption { padding: 1.5rem 0 0; border-bottom: 1px solid var(--line); }
.page-team .person h2 { font-size: clamp(2rem,3vw,2.8rem); line-height: 1.15; letter-spacing: -.02em; margin-bottom: .6rem; }
.page-team .person p { font-size: .8rem; color: var(--muted); line-height: 1.6; letter-spacing: .04em; margin-bottom: .75rem; }
.profile-caption .text-link { color: var(--accent); font-size: .7rem; margin-bottom: .7rem; }
.page-team .team-network { display: block; border: 0; background: var(--paper-2); }
.team-network .statement-copy { display: grid; gap: 1.5rem; }
.team-network .statement-copy h2 { font-size: clamp(2.5rem,4.5vw,4.5rem); max-width: 20ch; margin-bottom: 0; }
.team-network .statement-copy > p:last-child { font-size: 1rem; line-height: 1.8; margin: 0; max-width: 60ch; }
/* Home: preserve the identity and improve navigation, measure and touch targets. */
@media (min-width: 700px) {
  .page-about .values-grid { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 3rem; }
  .page-team .team-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
  .page-team .portrait { aspect-ratio: 3/4; }
  .page-team .person h2 { font-size: clamp(1.7rem,2.6vw,2.8rem); }
  .page-team .portrait span { font-size: clamp(3.5rem,8vw,7rem); }
}
@media (min-width: 1024px) {
  .firm-heading { grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: 4rem; align-items: center; }
  .about-symbol { min-height: 430px; }
  .page-about .about-promise { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 4rem; align-items: center; }
  .about-promise .proof-points { gap: 1.25rem; }
  .practice-index { padding: 2rem; }
  .page-practice .practice-list-full .practice-item { grid-template-columns: 3rem minmax(0,.95fr) minmax(0,1.05fr); gap: 1.5rem 3rem; padding-block: 3rem; }
  .page-practice .practice-list-full .practice-item p { grid-column: 3; grid-row: 1 / span 2; }
  .team-network .statement-copy { grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 1.5rem 4rem; }
  .team-network .statement-copy .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
  .team-network .statement-copy > p:last-child { align-self: center; }
  }

/* Home uses the same editorial components as the interior pages. */
.site-home { --home-heading: clamp(2.4rem, 4.8vw, 4.8rem); }
.site-home main { max-width: 1600px; margin-inline: auto; }
.site-home .section-pad { padding-block: clamp(3rem, 5vw, 5rem); }
.site-home .eyebrow, .site-home .meta { font-size: .78rem; letter-spacing: .13em; }
.site-home h2 { font-size: var(--home-heading); line-height: 1.08; max-width: 20ch; }
.site-home .text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .78rem; }
.site-home .hero { min-height: 0; grid-template-rows: auto auto; padding: clamp(2.5rem,5vw,4rem) var(--pad) 1.5rem; overflow: visible; gap: 2rem; }
.site-home .hero-copy { min-width: 0; align-self: center; }
.site-home .hero h1 { font-size: clamp(2.8rem, 6.3vw, 5.75rem); line-height: 1.04; max-width: 17ch; margin-bottom: 1.5rem; overflow-wrap: normal; }
.site-home .hero-intro { font-size: 1.0625rem; line-height: 1.75; max-width: 49ch; margin-bottom: 1.5rem; }
.site-home .hero .eyebrow { font-size: .78rem; line-height: 1.6; }
.site-home .hero-foot { border-top: 1px solid var(--line); padding-top: 1rem; gap: 1rem; font-size: .78rem; align-items: center; }
.site-home .hero-foot > span { max-width: 45ch; }
.site-home .hero-graphic { min-width: 0; }
.site-home .hero .monogram-frame { max-width: 330px; }
.site-home .hero .monogram-frame svg { max-height: 390px; }
.site-home .home-about { gap: 2.5rem; }
.site-home .home-about h2 { max-width: 20ch; }
.site-home .home-about .statement-copy > p:last-of-type { font-size: 1rem; line-height: 1.75; max-width: 52ch; margin: 1.5rem 0 1rem; }
.site-home .home-about .proof-points { grid-template-columns: repeat(3,minmax(0,1fr)); border: 0; margin: 0; padding: 0; gap: 1rem; }
.site-home .home-about .proof-points > div { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 1.5rem 0 0; }
.site-home .proof-points dt { font-size: clamp(2.5rem,4vw,3.5rem); }
.site-home .proof-points dd { font-size: .85rem; line-height: 1.6; }
.site-home .section-heading { margin-bottom: 2rem; gap: 1rem; }
.site-home .section-heading h2 { margin-bottom: 0; }
.site-home .practice-item { position: relative; gap: .8rem; padding-block: 1.5rem; }
.site-home .practice-item h3 { font-size: clamp(1.6rem,2.6vw,2.4rem); line-height: 1.2; margin: 0; }
.site-home .practice-item h3 a::after { content: ''; position: absolute; inset: 0; }
.site-home .practice-item:focus-within { outline: 2px solid var(--accent); outline-offset: 4px; }
.site-home .practice-item h3 a:focus-visible { outline: 0; }
.site-home .practice-item p { display: block; grid-column: 2 / -1; margin: 0; font-size: 1rem; line-height: 1.75; }
.site-home .practice-item i { grid-column: 3; grid-row: 1; }
.home-section-heading { display: grid; gap: 1.5rem; margin-bottom: 2.5rem; }
.home-section-heading .eyebrow { margin-top: .6rem; }
.home-section-heading h2 { margin-bottom: 0; }
.home-section-summary { align-self: end; min-width: 0; }
.home-section-summary > p { color: var(--muted); font-size: 1rem; line-height: 1.75; max-width: 50ch; margin-bottom: .75rem; }
.site-home .home-team { display: block; color: var(--ink); background: var(--paper); }
.site-home .home-team .eyebrow, .site-home .home-team .section-index, .site-home .home-team h2 em { color: var(--accent); }
.site-home .home-team .team-grid { grid-template-columns: 1fr; gap: 1.5rem; }
.site-home .home-team .person { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 1.25rem; align-items: center; margin: 0; min-width: 0; }
.site-home .home-team .portrait { width: 100%; aspect-ratio: 4/5; }
.site-home .home-team .portrait-a { background: #17211d; }
.site-home .home-team .portrait-b { background: #6e211e; }
.site-home .home-team .portrait-c { background: #d5cabb; }
.site-home .home-team .portrait span { color: #e0b8ac; font-size: 2.75rem; }
.site-home .home-team .portrait-c span { color: #17211d; }
.site-home .home-team .portrait-c::before, .site-home .home-team .portrait-c::after { border-color: rgba(23,33,29,.22); }
.site-home .home-team .profile-caption { padding: 0 0 1rem; min-width: 0; }
.site-home .home-team .person h3 { margin: 0 0 .5rem; font-size: 1.6rem; line-height: 1.2; }
.site-home .home-team .person p { color: var(--muted); font-size: .8rem; line-height: 1.6; margin: 0; letter-spacing: .03em; }
.site-home .home-team .person h3 a { display: inline-flex; align-items: center; min-height: 44px; }
.site-home .home-team :focus-visible { outline-color: var(--accent); }
.site-home .home-insights { background: var(--paper-2); }
.site-home .home-insights .featured-story { border-top: 0; padding-top: 0; }
.site-home .featured-story-art { min-height: 220px; }
.site-home .featured-story-art svg { height: 220px; }
.site-home .featured-story h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.9rem,3.1vw,3rem); line-height: 1.15; margin-bottom: 1rem; }
.site-home .featured-story-copy > p:not(.meta) { font-size: 1rem; }
.home-stories { display: grid; gap: 1.5rem; margin-top: 2rem; }
.home-stories > article { padding-block: 1.5rem; border-top: 1px solid var(--line); min-width: 0; }
.home-stories h3 { font: 400 clamp(1.5rem,2vw,1.9rem)/1.2 var(--serif); margin: 0 0 1rem; }
.home-stories h3 a:hover { color: var(--accent); }
.home-stories .meta { margin-bottom: 1rem; }
.site-home .home-resources { display: block; background: var(--paper); color: var(--ink); }
.site-home .home-resources .eyebrow, .site-home .home-resources .section-index { color: var(--accent); }
.site-home .home-resources .resource-catalog { grid-template-columns: 1fr; }
.site-home .resource-card { padding: 1.5rem; }
.site-home .resource-card-top { margin-bottom: 1.25rem; }
.site-home .document-icon { width: 32px; height: 38px; }
.site-home .resource-card h3 { font: 400 clamp(1.5rem,2.3vw,2rem)/1.2 var(--serif); margin-bottom: 1.5rem; }
.site-home .resource-card .meta { font-size: .78rem; }
.site-home .home-resources :focus-visible { outline-color: var(--accent); }
.site-home .home-contact { background: var(--paper-2); border-top: 1px solid var(--line); gap: 2.5rem; }
.home-contact-copy { min-width: 0; }
.site-home .home-contact h2 { max-width: 16ch; margin-bottom: 1.5rem; }
.site-home .home-contact h2 em { display: block; }
.home-contact-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.75; color: var(--muted); max-width: 48ch; }
.site-home .home-contact .contact-panel .email-link { font-size: clamp(1.35rem,2.3vw,2rem); }
.site-home .home-contact .contact-grid { gap: 1.5rem; }
.site-home .home-contact .telephone-link { display: inline-flex; align-items: center; min-height: 44px; }
.site-home .home-contact .contact-grid small { font-size: .7rem; }
.site-home .site-footer { gap: 1.5rem 2rem; }
[data-theme="dark"] .button-primary { color: #17211d; }
[data-theme="dark"] .button-primary:hover { color: var(--paper); }
[data-theme="dark"] .skip-link { color: #17211d; }
@media (min-width: 700px) {
  .site-home .hero { grid-template-columns: minmax(0,1.3fr) minmax(0,.7fr); column-gap: 2rem; }
  .site-home .hero-graphic { display: grid; align-items: center; justify-items: center; }
  .site-home .hero .coordinate { font-size: .6rem; }
  .site-home .home-team .team-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .site-home .home-team .person { display: block; }
  .site-home .home-team .portrait { aspect-ratio: 5/4; }
  .site-home .home-team .portrait span { font-size: clamp(3.5rem,7vw,6rem); }
  .site-home .home-team .profile-caption { padding-top: 1rem; }
  .site-home .home-team .person h3 { font-size: clamp(1.6rem,2.2vw,2rem); }
  .site-home .home-insights .featured-story { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 2rem; }
  .site-home .home-resources .resource-catalog { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .site-home .hero { min-height: calc(100svh - 90px); grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); }
  .site-home .home-about { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); align-items: center; gap: 3rem; }
  .site-home .home-about .proof-points { border-left: 0; }
  .site-home .section-heading { grid-template-columns: minmax(0,.6fr) minmax(0,1.4fr); align-items: end; }
  .site-home .practice-item p { grid-column: 3; grid-row: 1; }
  .site-home .practice-item i { grid-column: 4; }
  .site-home .practice-list .practice-item { grid-template-columns: 2rem minmax(0,1fr) minmax(0,1fr) auto; gap: 1rem 2rem; padding-block: 1.8rem; }
  .home-section-heading { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 4rem; align-items: end; }
  .site-home .home-team .portrait { aspect-ratio: 5/3; }
  .site-home .home-insights .featured-story { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); }
  .site-home .featured-story-art { min-height: 320px; }
  .home-stories { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
  .home-stories > article { display: flex; flex-direction: column; }
  .home-stories .text-link { margin-top: auto; align-self: start; }
  .site-home .home-contact { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 4rem; }
  .site-home .home-contact .contact-panel .contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-home .site-footer { grid-template-columns: auto minmax(170px,.7fr) minmax(0,1.3fr); }
}
@media (prefers-reduced-motion: reduce) {
  .site-home *, .site-home *::before, .site-home *::after { transition: none !important; }
}

/* Privacy: readable legal text within the existing editorial system. */
.page-privacy .privacy-intro { display: grid; gap: 2.5rem; border-bottom: 1px solid var(--line); }
.page-privacy .privacy-intro h1 { font-size: clamp(2.5rem,5.5vw,5.8rem); line-height: 1.08; max-width: 20ch; overflow-wrap: anywhere; }
.page-privacy .privacy-intro h1 em { display: block; }
.privacy-summary { background: var(--paper-2); border: 1px solid var(--line); padding: 1.5rem; min-width: 0; }
.privacy-summary ul { list-style: none; padding: 0; margin: 1.5rem 0 1rem; }
.privacy-summary li { border-top: 1px solid var(--line); padding-block: .9rem; font-size: 1rem; }
.page-privacy .article-contents a { display: flex; gap: .75rem; }
.page-privacy .article-contents a span { color: var(--accent); font-style: italic; }
.privacy-section { padding-bottom: 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--line); }
.page-privacy .privacy-body h2 { margin-top: .6rem; }
.privacy-section .meta { color: var(--accent); margin-bottom: .5rem; }
.privacy-body p { margin-bottom: 1rem; }
.privacy-body p a { text-decoration: underline; text-underline-offset: .2em; }
.privacy-body p a:hover { color: var(--accent); }
.privacy-body code { font-size: .9em; overflow-wrap: anywhere; }
.page-privacy .privacy-cta { display: grid; gap: 1.5rem; }
.privacy-cta h2 { font-size: clamp(1.8rem,3vw,2.6rem); line-height: 1.15; margin-bottom: 1rem; }
.privacy-cta p:not(.eyebrow) { max-width: 55ch; color: var(--muted); margin: 0; }
.privacy-cta .text-link { align-self: end; justify-self: start; }
@media (min-width: 1024px) {
  .page-privacy .privacy-intro { grid-template-columns: minmax(0,1.5fr) minmax(0,.75fr); align-items: center; gap: 4rem; }
  .privacy-summary { padding: 2rem; }
  .page-privacy .privacy-cta { grid-template-columns: minmax(0,1fr) auto; align-items: end; }
}

/* Compact footer labels and a single desktop row. */
.site-footer > div a { white-space: nowrap; }
.site-footer > p { white-space: nowrap; }
@media (min-width: 1024px) {
  .site-home .site-footer, .interior-page .site-footer { grid-template-columns: auto auto minmax(0,1fr); gap: 1.5rem; }
  .site-footer > div { flex-wrap: nowrap; gap: clamp(.65rem,1.2vw,1rem); align-items: center; }
}

/* Touch targets and readability (accessibility pass) */
.lang-button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
.telephone-link { display: inline-flex; align-items: center; min-height: 44px; }
.site-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.theme-toggle, .menu-toggle { min-width: 44px; min-height: 44px; }
