/* Shared refinements and the practice pages. */
.practice-actions { display:flex; align-items:center; gap:16px 24px; flex-wrap:wrap; }
.practice-page-link { display:inline-flex; align-items:center; gap:12px; font-size:.875rem; min-height:36px; color:#75644c; }
.practice-page-link::after,.direction-link::after {
  content:''; display:inline-block; width:10px; height:10px; flex:0 0 10px;
  border-top:1px solid currentColor; border-right:1px solid currentColor;
  background:linear-gradient(135deg,transparent 46%,currentColor 47%,currentColor 53%,transparent 54%);
}
.practice-page-link:hover,.direction-link:hover { color:var(--ink); }
.situations { background:#eae8e0; border-top:1px solid #d9d8ce; }
.situations-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:70px; align-items:end; }
.situations-heading>p { color:var(--body); max-width:420px; margin:0; }
.situations h2 em { color:#7b6b50; }
.situations-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:48px; }
.situation { position:relative; border-top:1px solid #babeb0; padding:24px 30px 0 0; }
.situation+.situation { padding-left:30px; border-left:1px solid #cdd0c4; }
.situation-number { display:block; font-family:var(--serif); font-size:1.6rem; color:#7b6b50; margin-bottom:26px; }
.situation h3 { font-size:2.25rem; line-height:1.12; max-width:330px; }
.situation p { color:var(--body); font-size:.875rem; line-height:1.85; margin:19px 0 22px; }
.direction-link { display:inline-flex; align-items:center; gap:18px; font-size:.8125rem; color:#685a45; min-height:44px; }
.practice-page .detail-hero { min-height:0; padding-bottom:68px; grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr); gap:80px; }
.detail-hero .hero-copy { padding:42px 0 0; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px 14px; font-size:.75rem; color:#b1b7ad; margin-bottom:34px; }
.breadcrumbs a { border-bottom:1px solid #ffffff35; }
.breadcrumbs a:hover { color:var(--accent); }
.detail-hero h1 { font-size:clamp(3.5rem,6.1vw,6.1rem); margin-top:24px; }
.detail-hero .hero-description { max-width:650px; font-size:1rem; margin-bottom:28px; }
.detail-hero .hero-note { max-width:540px; margin-bottom:0; }
.practice-overview { align-self:center; border-left:1px solid #ffffff2b; padding:24px 0 24px 36px; margin-top:50px; }
.practice-index { display:block; font-family:var(--serif); font-size:9rem; line-height:.85; letter-spacing:-.06em; color:var(--accent); }
.practice-overview .eyebrow { margin-top:27px; font-size:.6875rem; }
.practice-overview ul { list-style:none; padding:0; margin:23px 0 0; color:#c2c8bd; font-size:.875rem; }
.practice-overview li { border-top:1px solid #ffffff20; padding:10px 0; }
.detail-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); gap:100px; }
.detail-grid>div:first-child>p:last-child { color:var(--body); max-width:360px; margin-top:24px; font-size:.9375rem; }
.detail-grid .eyebrow,.detail-preparation .eyebrow,.page-faq .eyebrow { margin-bottom:24px; }
.detail-grid h2 em,.detail-services h2 em,.detail-preparation h2 em,.page-faq h2 em { color:#7b6b50; }
.detail-rows { border-top:1px solid #c5cbbd; }
.scope-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:24px; padding:28px 0; border-bottom:1px solid #d3d8ca; }
.scope-item>span { color:#8a927f; font-size:.75rem; padding-top:7px; }
.scope-item h3 { font-size:2rem; line-height:1.15; }
.scope-item p { color:var(--body); font-size:.875rem; line-height:1.85; margin:13px 0 0; }
.detail-services { background:#eae8e0; }
.detail-services .section-top { margin-bottom:30px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:46px; }
.service-item { border-top:1px solid #babeb0; padding-top:23px; }
.service-item>span { color:#8a7b63; font-family:var(--serif); font-size:1.5rem; }
.service-item h3 { font-size:2rem; line-height:1.15; margin-top:24px; }
.service-item p { color:var(--body); font-size:.875rem; line-height:1.85; margin:16px 0 0; }
.detail-preparation { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:100px; }
.detail-preparation>div>p:last-child { color:var(--body); font-size:.875rem; max-width:420px; margin-top:24px; }
.detail-preparation ul { list-style:none; margin:0; padding:0; border-top:1px solid #c5cbbd; }
.detail-preparation li { display:flex; align-items:flex-start; gap:16px; color:#525b4b; border-bottom:1px solid #d3d8ca; padding:17px 0; font-size:.9375rem; }
.detail-preparation li::before { content:'—'; color:#8b7b62; }
.page-faq { background:#eeefeb; }
.other-practices { border-top:1px solid var(--line); padding-top:36px; padding-bottom:36px; display:flex; gap:24px 60px; align-items:center; flex-wrap:wrap; }
.other-practices .eyebrow { margin-right:auto; }
.detail-contact { background:var(--ink); color:var(--paper); }
.detail-contact-inner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:80px; align-items:center; }
.detail-contact h2 em { color:var(--accent); }
.detail-contact-copy>p { color:#c0c7b8; font-size:.9375rem; line-height:1.85; margin:0 0 26px; max-width:420px; }
.detail-contact-links { display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:24px; font-size:.9375rem; color:var(--accent); }
.detail-contact-links a { min-height:44px; display:flex; align-items:center; }
@media(max-width:1100px) {
  .detail-grid,.detail-preparation { gap:50px; }
  .practice-page .detail-hero { gap:40px; grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr); }
  .practice-overview { padding-left:24px; }
  .situations-heading { gap:45px; }
  .situation h3 { font-size:2rem; }
}
@media(max-width:800px) {
  .situations-heading,.situations-list,.detail-grid,.detail-preparation,.detail-contact-inner { grid-template-columns:minmax(0,1fr); gap:30px; }
  .situations-heading>p { max-width:520px; font-size:.9375rem; }
  .situations-list { margin-top:32px; gap:0; }
  .situation,.situation+.situation { border-left:0; padding:24px 0; }
  .situation:last-child { padding-bottom:0; }
  .situation-number { margin-bottom:14px; }
  .situation h3 { max-width:440px; font-size:2.2rem; }
  .situation p { margin:14px 0 12px; max-width:520px; }
  .practice-page .detail-hero { grid-template-columns:minmax(0,1fr); gap:32px; padding-bottom:44px; }
  .detail-hero .hero-copy { padding-top:28px; padding-bottom:0; }
  .breadcrumbs { margin-bottom:28px; }
  .detail-hero h1 { font-size:clamp(3rem,10vw,4.5rem); }
  .practice-page--administrative .detail-hero h1 { font-size:clamp(2.15rem,8.2vw,3.7rem); }
  .detail-hero .hero-description { font-size:.9375rem; }
  .practice-overview { border-left:0; border-top:1px solid #ffffff2b; margin-top:0; padding:24px 0 0; display:grid; grid-template-columns:68px minmax(0,1fr); column-gap:22px; }
  .practice-index { font-size:4.5rem; grid-row:1/3; align-self:center; }
  .practice-overview .eyebrow { margin-top:0; }
  .practice-overview ul { margin-top:12px; }
  .practice-overview li { padding:7px 0; }
  .scope-item { gap:14px; padding:24px 0; }
  .scope-item h3 { font-size:1.9rem; }
  .service-grid { grid-template-columns:minmax(0,1fr); gap:28px; margin-top:30px; }
  .service-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:0 16px; }
  .service-item h3 { margin-top:3px; font-size:1.9rem; }
  .service-item p { grid-column:2; margin-top:12px; }
  .detail-preparation>div>p:last-child { margin-top:20px; }
  .other-practices { flex-direction:column; align-items:flex-start; gap:12px; padding-top:28px; padding-bottom:28px; }
  .other-practices .eyebrow { margin-bottom:4px; }
  .detail-contact-copy>p { margin-bottom:23px; }
  .detail-contact-links { gap:4px 22px; }
}
@media(max-width:380px) {
  .practice-page--administrative .detail-hero h1 { font-size:2.1rem; }
  .practice-page h2 { font-size:2.4rem; }
}
@media(prefers-reduced-motion:no-preference) {
  .practice-page-link,.direction-link { transition:color .25s ease; }
}

/* Official chamber links, shared by every footer. */
.footer-chambers { border-top:1px solid #ffffff1c; padding:30px 0 32px; }
.footer-chambers-label { color:#aeb5a4; font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 24px; }
.footer-chambers-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.chamber-link { display:grid; grid-template-columns:136px minmax(0,1fr) 18px; gap:22px; align-items:center; min-width:0; padding:6px 0; }
.chamber-image { display:flex; align-items:center; justify-content:center; width:136px; height:88px; }
.chamber-image img { display:block; object-fit:contain; filter:grayscale(1); }
.chamber-image--kem img { width:42px; height:68px; filter:grayscale(1) invert(1); mix-blend-mode:screen; }
.chamber-image--fpa img { width:46px; height:68px; filter:grayscale(1) brightness(1.25); }
.chamber-copy { min-width:0; }
.chamber-name { display:block; color:#d2d7cb; font-size:.875rem; line-height:1.65; }
.chamber-site { display:block; color:#9da694; font-size:.75rem; margin-top:9px; }
.chamber-arrow { color:var(--accent); align-self:center; }
.chamber-link:hover .chamber-name { color:var(--accent); }
@media(max-width:1100px) {
 .footer-chambers-links { gap:26px; }
 .chamber-link { grid-template-columns:108px minmax(0,1fr) 18px; gap:16px; }
 .chamber-image { width:108px; }
}
@media(max-width:800px) {
 .footer-chambers { padding:26px 0 28px; }
 .footer-chambers-label { margin-bottom:18px; }
 .footer-chambers-links { grid-template-columns:minmax(0,1fr); gap:20px; }
 .chamber-link { grid-template-columns:108px minmax(0,1fr) 18px; }
 .chamber-link+.chamber-link { padding-top:22px; border-top:1px solid #ffffff1c; }
}
@media(max-width:380px) {
 .chamber-link { grid-template-columns:80px minmax(0,1fr) 14px; gap:12px; }
 .chamber-image { width:80px; height:80px; }
 .chamber-name { font-size:.75rem; }
 .chamber-site { font-size:.6875rem; }
 .chamber-arrow { width:14px; height:14px; }
}
@media(prefers-reduced-motion:no-preference) {
 .chamber-name { transition:color .25s ease; }
}

/* Keep the full portrait in frame as the hero changes from two columns to one. */
.hero-visual--portrait img { object-fit:cover; object-position:68% center; filter:none; }
.hero-visual--portrait::after { display:none; }
@media(max-width:800px) {
 .hero-visual--portrait { width:100%; aspect-ratio:4 / 5; height:auto; max-height:520px; }
}

/* Descriptive headings remain readable without hiding any SEO text. */
.home-page .hero h1 { font-size:clamp(3rem,5.6vw,5.5rem); line-height:1.08; }
.home-page .situations h2,.home-page .questions h2 { font-size:clamp(2.7rem,4.4vw,4rem); }
.home-page .contact h2 { font-size:clamp(2.65rem,5.2vw,4.9rem); }
.practice-page .detail-hero h1 { font-size:clamp(2.3rem,4.6vw,4.6rem); line-height:1.1; }
.practice-page h2 { font-size:clamp(2.4rem,3.8vw,3.6rem); line-height:1.12; }
.practice-page .service-item h3,.practice-page .scope-item h3 { font-size:clamp(1.55rem,2.5vw,2rem); line-height:1.2; }
.faq-list summary>h3 { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; font:inherit; color:inherit; letter-spacing:inherit; }
.faq-list summary>h3 .plus { flex:0 0 20px; }
@media(max-width:800px) {
 .home-page .hero h1 { font-size:clamp(2.15rem,8.7vw,3.75rem); }
 .home-page .situations h2,.home-page .questions h2 { font-size:clamp(2.4rem,8vw,3.5rem); }
 .home-page .contact h2 { font-size:clamp(2.5rem,8.5vw,3.75rem); }
 .practice-page .detail-hero h1 { font-size:clamp(2.05rem,7.9vw,3.6rem); }
 .practice-page h2 { font-size:clamp(2.05rem,6.7vw,3rem); }
 .faq-list summary>h3 { gap:20px; }
}
