.human-figure circle,.human-figure path { fill:#745a44; stroke:none; transition:fill .35s; }
.family-person.is-active .human-figure circle,.family-person.is-active .human-figure path { fill:#174c3f; }
.family-label { font-size:12px; }
.family-connections path { stroke:#745a44; }
.family-trace { stroke:#174c3f; }
.family-arrow { stroke:#174c3f; }
.inner-page .site-header { position:relative; top:auto; left:auto; transform:none; margin:24px auto 0; }
.desktop-nav a[aria-current=page] { border-bottom:1px solid var(--green); }
.page-heading { padding:100px 0 70px; }
.page-heading h1 { font-size:clamp(2.8rem,5.5vw,5rem); max-width:1050px; line-height:1.06; }
.page-intro { max-width:650px; margin-top:30px; color:var(--muted); font:14px/1.85 var(--mono); }
.article-layout { display:grid; grid-template-columns:240px minmax(0,750px); gap:80px; padding-bottom:90px; align-items:start; }
.contents { display:flex; flex-direction:column; gap:18px; border-top:1px solid var(--line); padding-top:24px; font:12px/1.65 var(--mono); }
.contents a { text-decoration:none; }
.contents span { color:var(--muted); }
.contents button { text-align:left; background:none; border:0; border-bottom:1px solid var(--line); padding:14px 0; cursor:pointer; font:inherit; }
.prose { font-size:16px; line-height:1.9; color:#322318; }
.prose h2 { margin:0 0 20px; font-size:2rem; color:var(--ink); }
.prose section { margin-bottom:48px; }
.prose p { margin:0 0 24px; }
.prose ul { padding-left:22px; margin-bottom:32px; }
.prose li+li { margin-top:12px; }
.prose a { text-underline-offset:4px; }
.prose .button { margin:12px 0 30px; }
.source-list { border-top:1px solid var(--line); padding-top:30px; margin-top:50px; font:12px/1.85 var(--mono); }
.source-list h2 { font-size:1.5rem; }
.source-list p { color:var(--muted); }
.related-reading { margin-top:50px; }
.reading-index { padding-bottom:90px; }
.reading-row { display:grid; grid-template-columns:155px 1fr 36px; gap:32px; padding:34px 0; border-top:1px solid var(--line); align-items:start; }
.reading-row[hidden] { display:none; }
.reading-category { font:11px/1.7 var(--mono); color:var(--green); padding-top:6px; }
.reading-row h2 { font-size:1.85rem; margin-bottom:12px; max-width:800px; }
.reading-row h2 a { text-decoration:none; }
.reading-row h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.reading-row p { font:13px/1.85 var(--mono); color:var(--muted); max-width:700px; }
.row-arrow { font-size:22px; text-decoration:none; padding:6px; }
.library-tools { display:flex; gap:32px; margin-bottom:20px; }
.library-tools label { display:grid; gap:10px; flex:1; font:12px/1.6 var(--mono); }
.library-tools input,.library-tools select { width:100%; min-height:48px; padding:12px; border:1px solid var(--line); border-radius:0; background:transparent; }
.library-count { font:12px/1.7 var(--mono); margin-bottom:30px; color:var(--muted); }
.library-section { margin:50px 0 30px; font-size:2rem; }
.page-cta { display:flex; justify-content:space-between; align-items:center; gap:40px; padding:55px 0 80px; border-top:1px solid var(--line); }
.page-cta h2 { font-size:2.5rem; }
.page-cta .button { flex-shrink:0; }
.home-intro .intro-grid p+p { margin-top:25px; font:13px/1.85 var(--mono); color:var(--muted); }
.home-services { background:var(--cream); }
.index-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:45px; }
.index-heading a { font:12px/1.6 var(--mono); text-underline-offset:5px; }
.publication-band { padding:80px 0; margin-bottom:80px; background:#eee7dc; }
.publication-band p:not(.eyebrow) { font:14px/1.9 var(--mono); margin:20px 0 30px; max-width:500px; }
.checklist label { display:flex; gap:16px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line); cursor:pointer; }
.checklist input { width:17px; height:17px; flex-shrink:0; accent-color:var(--green); }
.contact-page { display:grid; grid-template-columns:1fr 1fr; gap:100px; padding-bottom:100px; }
.contact-page address { font-style:normal; margin:30px 0; }
.contact-direct { display:block; width:fit-content; margin:15px 0; font-size:1.3rem; text-underline-offset:5px; }
.small-note { font:11px/1.8 var(--mono); margin-top:30px; color:var(--muted); }
.legal-prose { max-width:760px; padding-bottom:90px; }
.legal-prose h2 { margin-top:40px; }
.footer-brand-wrap .brand { color:#f5ecdf; }
.footer-brand-wrap .brand-eagle { filter:invert(1); mix-blend-mode:screen; }
.footer-brand-wrap .brand-copy small { color:#745a44; }
.footer-brand-wrap p { margin-top:25px; }
[hidden] { display:none!important; }
@media(max-width:900px) { .article-layout { grid-template-columns:170px 1fr; gap:35px; } .contact-page { gap:40px; } .footer-grid { gap:32px; } }
@media(max-width:650px) { .page-heading { padding:65px 0 45px; } .article-layout { grid-template-columns:1fr; gap:35px; } .contents { position:static; } .reading-row { grid-template-columns:1fr 30px; gap:12px; } .reading-category { grid-column:1/-1; } .reading-row h2 { font-size:1.6rem; } .reading-row p { font-size:12px; } .library-tools { flex-direction:column; gap:20px; } .page-cta,.index-heading { align-items:start; flex-direction:column; } .contact-page { grid-template-columns:1fr; } .family-label { font-size:13px; } .hero-content { padding-bottom:35px; } .tree-controls { flex-wrap:wrap; } }
@media print { .site-header,.site-footer,.contents,.page-cta,.skip-link { display:none!important; } body { background:white; color:black; } .page-heading { padding:0 0 25px; } .page-heading h1 { font-size:30px; } .page-intro { font-size:12px; } .shell { width:100%; } .article-layout { display:block; padding:0; } .prose { max-width:none; font-size:12px; line-height:1.6; } .prose section { break-inside:avoid; margin-bottom:22px; } .prose h2 { font-size:20px; } .checklist label { padding:8px 0; } }
[hidden] { display: none !important; }
.contact-widget { position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); z-index: 90; }
.contact-launcher { display: grid; place-items: center; width: 72px; height: 72px; margin-left: auto; border: 3px solid #fffaf2; outline: 1px solid var(--green); border-radius: 50%; background: var(--green); color: #fffaf2; cursor: pointer; box-shadow: 0 5px 22px #32231820; }
.contact-launcher svg { width: 32px; height: 32px; }
.contact-launcher:hover { background: var(--green-deep); }
.contact-launcher:focus-visible, .contact-panel a:focus-visible, .contact-panel button:focus-visible { outline: 3px solid #745a44; outline-offset: 5px; }
.contact-panel { width: min(350px, calc(100vw - 40px)); max-height: calc(100dvh - 132px); overflow-y: auto; margin-bottom: 18px; padding: 26px; border: 1px solid #cfc1b0; border-radius: 5px; color: #322318; background: #fffaf2; box-shadow: 0 10px 40px #32231816; }
.contact-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.contact-panel-heading h2 { margin: 12px 0 14px; font-size: 29px; line-height: 1.15; }
.contact-panel-heading .eyebrow { font-size: 10px; }
.contact-panel-heading button { flex-shrink: 0; width: 32px; height: 32px; border: 0; background: transparent; color: inherit; font-size: 28px; cursor: pointer; }
.contact-panel p { font-size: 14px; line-height: 1.65; }
.contact-panel-link { display: flex; justify-content: space-between; gap: 12px; padding: 16px 0; border-bottom: 1px solid #dfd3c4; font-size: 14px; }
.contact-panel-details { display: block; margin: 20px 0; font-size: 12px; }
.contact-panel .contact-panel-note { margin-bottom: 0; font-size: 11px; color: #745a44; }
@media (max-width: 650px) { .contact-widget { right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); } .contact-launcher { width: 62px; height: 62px; } }
@media print { .contact-widget { display: none !important; } }
.office-contacts { display: grid; grid-template-columns: 100px 1fr; gap: 14px 20px; margin: 25px 0; }
.office-contacts dt { font-size: 13px; color: #745a44; }
.office-contacts dd { margin: 0; }
.office-map { padding-bottom: 100px; }
.office-map iframe { display: block; width: 100%; height: 450px; border: 1px solid #cfc1b0; }
@media (max-width: 650px) { .office-map iframe { height: 340px; } .office-contacts { grid-template-columns: 80px 1fr; gap: 12px; } }
.case-library { padding-bottom: 100px; }
.case-note { display: grid; grid-template-columns: minmax(230px, .8fr) minmax(0, 1.5fr); gap: 8vw; padding: 42px 0; border-top: 1px solid #cfc1b0; }
.case-note h2 { margin: 12px 0 8px; font-size: clamp(30px, 3vw, 48px); font-weight: 400; }
.case-note p { line-height: 1.7; }
.case-citation { font-family: var(--mono); font-size: 11px; color: #745a44; }
.case-review-note { max-width: 760px; margin: 60px 0 0 auto; padding: 32px; border: 1px solid #cfc1b0; }
@media (max-width: 750px) { .case-note { grid-template-columns: 1fr; gap: 16px; } }

/* Readability and interaction pass for the inheritance audience. */
body { font-size: 16px; }
.brand-copy small { font-size: .7rem; line-height: 1.35; }
.desktop-nav a { min-height: 44px; font-size: .875rem; }
.header-phone { display: inline-flex; min-height: 44px; align-items: center; color: #745a44; font-size: .82rem; text-decoration: none; white-space: nowrap; }
.header-contact { display: inline-flex; min-height: 46px; align-items: center; font-size: .82rem; white-space: nowrap; }
.button { min-height: 48px; font-size: .9rem; }
.text-link { min-height: 44px; align-items: center; padding-block: 10px; font-size: .9rem; }
.eyebrow { color: #745a44; font-size: .78rem; }
.hero-lede { max-width: 520px; font-family: var(--sans); font-size: clamp(1rem,1.4vw,1.15rem); line-height: 1.75; }
.hero-foot { font-size: .82rem; }
.hero .text-link { min-height: 44px; padding: 10px 0; font-size: .9rem; }
.tree-controls { color: #322318; font: 14px/1.5 var(--sans); }
.tree-controls button { min-height: 44px; padding: 10px 2px; border-bottom-color: #745a44; }
.page-intro { font: 1rem/1.75 var(--sans); }
.contents { font: .875rem/1.65 var(--sans); }
.contents a,.contents button { display: flex; min-height: 44px; align-items: center; }
.contents button { width: 100%; padding: 10px 0; }
.source-list { font: .875rem/1.75 var(--sans); }
.source-list a { display: inline-flex; min-height: 44px; align-items: center; }
.reading-row { position: relative; color: inherit; text-decoration: none; transition: background .2s,padding .2s; }
.reading-row:hover { padding-inline: 14px; background: #f4ede3; }
.reading-row:focus-visible { border-radius: 2px; }
.reading-row h2 { color: var(--ink); }
.reading-row h2 a { text-decoration: none; }
.reading-row p { font: 1rem/1.7 var(--sans); }
.reading-category { font: .75rem/1.7 var(--sans); font-weight: 700; letter-spacing: .04em; }
.row-arrow { display: grid; width: 44px; min-height: 44px; place-items: center; padding: 0; }
.index-heading a { display: inline-flex; min-height: 44px; align-items: center; font: .9rem/1.6 var(--sans); }
.home-intro .intro-grid p+p,.publication-band p:not(.eyebrow) { font: 1rem/1.75 var(--sans); }
.library-tools label,.library-count { font: .875rem/1.6 var(--sans); }
.library-tools input,.library-tools select { min-height: 48px; font-size: 1rem; }
.article-byline { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 42px; padding: 16px 0; border-block: 1px solid var(--line); color: #745a44; font-size: .875rem; }
.service-groups { display: grid; gap: 62px; }
.service-group > .eyebrow { margin-bottom: 8px; }
.faq-block details { border-top: 1px solid var(--line); }
.faq-block details:last-of-type { border-bottom: 1px solid var(--line); }
.faq-block summary { min-height: 54px; padding: 15px 0; color: var(--ink); font-weight: 700; cursor: pointer; }
.faq-block details p { padding: 0 0 20px; }
.profile-layout { display: grid; grid-template-columns: minmax(260px,.75fr) minmax(0,1.25fr); gap: clamp(48px,8vw,120px); align-items: start; padding-bottom: 100px; }
.profile-portrait { margin: 0; }
.profile-portrait img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; background: var(--sand); }
.profile-portrait figcaption { padding-top: 14px; color: var(--muted); font-size: .875rem; }
.profile-copy h3 { margin: 36px 0 16px; font-size: 1.45rem; }
.team-section { padding-bottom: 100px; }
.team-heading { display: grid; grid-template-columns: minmax(0,.9fr) minmax(280px,.55fr); gap: 40px 90px; align-items: end; margin-bottom: 48px; }
.team-heading .eyebrow { grid-column: 1/-1; margin: 0; }
.team-heading p:last-child { color: var(--muted); line-height: 1.75; }
.team-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.team-card { background: var(--paper); }
.team-initials { display: grid; aspect-ratio: 4/5; place-items: center; background: #eee7dc; color: #745a44; font-family: var(--serif); font-size: clamp(3rem,7vw,6.5rem); letter-spacing: -.06em; }
.team-card > div:last-child { min-height: 140px; padding: 24px; }
.team-card h3 { margin-bottom: 10px; font-size: 1.65rem; }
.team-card p { color: var(--muted); line-height: 1.6; }
.about-details { padding-top: 90px; border-top: 1px solid var(--line); }
.small-note,.case-citation { font-size: .875rem; }
.enquiry-section { display: grid; grid-template-columns: minmax(250px,.75fr) minmax(0,1.25fr); gap: clamp(45px,8vw,110px); padding: 76px 0; border-block: 1px solid var(--line); }
.enquiry-intro p:not(.eyebrow) { margin-top: 24px; color: var(--muted); }
.enquiry-section .enquiry-form { padding: 0; background: transparent; color: var(--ink); }
.enquiry-section .enquiry-form label { color: var(--ink-soft); font-size: .9rem; }
.enquiry-section .enquiry-form input:not([type='checkbox']),.enquiry-section .enquiry-form select,.enquiry-section .enquiry-form textarea { border: 1px solid #745a44; background: #fffefb; color: var(--ink); font-size: 1rem; }
.enquiry-section .enquiry-form textarea { min-height: 150px; }
.enquiry-section .enquiry-form .button { background: var(--green); color: #fff; }
.enquiry-section .form-status { min-height: 1.5em; color: #745a44; font-size: .9rem; }
.enquiry-section .form-disclaimer { color: var(--muted); font-size: .82rem; }
.not-found-actions { display: flex; flex-wrap: wrap; gap: 16px; padding-bottom: 100px; }
.button-outline { border-color: var(--ink); color: var(--ink); background: transparent; }
.scenario-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; padding-bottom: 100px; background: var(--line); border: 1px solid var(--line); }
.scenario-card { display: flex; min-height: 360px; flex-direction: column; padding: clamp(28px,4vw,48px); background: var(--paper); }
.scenario-card > span { color: #745a44; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.scenario-card h2 { margin: 26px 0 18px; font-size: clamp(1.8rem,3vw,2.8rem); }
.scenario-card p { color: var(--muted); line-height: 1.75; }
.scenario-card a { display: inline-flex; min-height: 44px; align-items: center; margin-top: auto; padding-top: 28px; color: var(--brown); font-weight: 700; text-decoration: none; }
.footer-grid > div:first-child p,.footer-grid > div:not(:first-child) a { font-size: .9rem; }
.footer-grid h2,.footer-bottom { font-size: .78rem; }
.footer-grid > div:not(:first-child) a,.footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; }
.footer-brand-wrap p a { text-underline-offset: 4px; }
.contact-panel-heading .eyebrow { font-size: .75rem; }
.contact-panel p,.contact-panel-link,.contact-panel-details { font-size: .95rem; }
.contact-panel-link,.contact-panel-details { min-height: 44px; }
.contact-panel .contact-panel-note { font-size: .82rem; }

@media(max-width:1150px) {
  .header-phone { display:none; }
}
@media(max-width:760px) {
  .brand-copy small { font-size: .7rem; }
  .header-contact,.header-phone { display:none; }
  .hero-lede,.reading-row p,.page-intro,.home-intro .intro-grid p+p,.publication-band p:not(.eyebrow) { font-size: 1rem; }
  .tree-controls { font-size: .875rem; }
  .reading-row { grid-template-columns: 1fr 44px; }
  .profile-layout,.enquiry-section { grid-template-columns: 1fr; }
  .team-heading { grid-template-columns: 1fr; gap: 18px; }
  .team-grid { grid-template-columns: 1fr; }
  .team-initials { aspect-ratio: 16/9; }
  .scenario-grid { grid-template-columns: 1fr; }
  .profile-portrait { max-width: 520px; }
  .contact-widget { right:auto; left:max(16px,env(safe-area-inset-left)); bottom:max(16px,env(safe-area-inset-bottom)); }
  .contact-panel { width:min(350px,calc(100vw - 32px)); }
  .contact-launcher { width:58px; height:58px; margin:0; }
}
