/* Family hub additions preserve the Goodman maroon, gold and warm-neutral system. */
.family-teaser { padding-block:var(--space-12); background:var(--color-surface-2); }
.family-teaser-layout { display:flex; align-items:center; justify-content:space-between; gap:var(--space-10); }
.family-teaser-layout > div { max-width:760px; }
.family-teaser h2 { font-size:var(--text-xl); margin-block:var(--space-3); }
.family-teaser p { color:var(--color-text-muted); }
.family-teaser .btn { flex-shrink:0; max-width:100%; }
.family-page h2 { font-size:var(--text-2xl); }
.family-page h3 { font-size:var(--text-xl); }
.family-page .footer-heading { font-family:var(--font-body); font-size:var(--text-base); color:inherit; margin-bottom:1rem; }
.family-hero { background:var(--color-maroon-deep); color:var(--color-text-inverse); padding-block:var(--space-6) clamp(3rem,6vw,6rem); }
.family-breadcrumb ol { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:var(--space-3); font-size:var(--text-sm); color:#e3d2c2; }
.family-breadcrumb li+li::before { content:"/"; margin-right:var(--space-3); opacity:.6; }
.family-breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.family-hero-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.85fr); gap:clamp(2rem,6vw,6rem); align-items:center; padding-top:clamp(2.5rem,5vw,4.5rem); }
.family-hero .eyebrow { color:var(--color-gold-soft); font-size:var(--text-xs); }
.family-hero h1 { color:#fff; font-size:clamp(2.4rem,4.5vw,4.15rem); margin-block:var(--space-5); }
.family-region { display:block; font-size:var(--text-xl); font-weight:400; margin-top:var(--space-4); color:var(--color-gold-soft); }
.family-hero p { max-width:60ch; color:#e4d7d0; }
.family-hero .family-deck { font-size:var(--text-lg); color:#fff; margin-bottom:var(--space-4); font-weight:500; }
.family-hero > .wrap > .family-hero-grid > div > .btn { margin-top:var(--space-8); background:var(--color-gold-soft); border-color:var(--color-gold-soft); color:var(--color-maroon-deep); }
.family-start { background:var(--color-bg); color:var(--color-text); padding:clamp(1.5rem,3vw,2.25rem); border-radius:var(--radius-md); }
.family-small { display:block; font:600 var(--text-xs)/1.5 var(--font-body); letter-spacing:.08em; text-transform:uppercase; color:var(--color-text-muted); }
.family-start h2 { color:var(--color-text); font-size:var(--text-xl); margin:var(--space-3) 0 var(--space-6); }
.family-start label { display:block; font-weight:600; font-size:var(--text-sm); margin-bottom:var(--space-2); }
.family-start select { background:#fff; width:100%; max-width:100%; min-height:48px; border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:var(--space-3) var(--space-2); font-size:var(--text-sm); }
.family-start p { color:var(--color-text-muted); margin-block:var(--space-5); font-size:var(--text-sm); min-height:4.5em; }
.family-start .btn { width:100%; min-height:48px; }
.family-services { padding-block:clamp(3rem,6vw,6rem); }
.family-services .section-head { margin-bottom:var(--space-10); }
.family-services .section-head p { font-size:var(--text-base); max-width:65ch; }
.family-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--color-border); }
.family-service { padding:var(--space-10) var(--space-8); border-bottom:1px solid var(--color-border); display:flex; flex-direction:column; align-items:flex-start; }
.family-service:nth-child(odd) { padding-left:0; border-right:1px solid var(--color-border); }
.family-service:nth-child(even) { padding-right:0; }
.family-card-top { min-height:64px; width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-6); margin-bottom:var(--space-4); }
.family-card-top .family-small { max-width:180px; }
.family-card-top img { max-width:132px; max-height:50px; width:auto; object-fit:contain; object-position:right top; }
.family-service h3 { margin-bottom:var(--space-4); }
.family-service p { color:var(--color-text-muted); max-width:65ch; margin-bottom:var(--space-4); }
.family-service .family-note { font-size:var(--text-sm); }
.family-service .family-link { margin-top:auto; }
.family-link { display:inline-flex; align-items:center; gap:var(--space-3); padding-block:var(--space-3); color:var(--color-maroon); font-weight:700; min-height:44px; }
.family-link:hover, .family-secondary:hover { text-decoration:underline; text-underline-offset:4px; }
.family-secondary { display:inline-block; min-height:44px; padding-block:var(--space-3); color:var(--color-text-muted); font-size:var(--text-sm); text-decoration:underline; text-underline-offset:4px; }
.family-status { font-size:var(--text-xs); color:var(--color-maroon); background:var(--color-gold-tint); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); text-align:center; }
.family-explainer,.family-local { background:var(--color-surface-2); padding-block:clamp(3rem,6vw,6rem); }
.family-editorial { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,6vw,6rem); }
.family-editorial h2 { margin-top:var(--space-4); }
.family-prose { max-width:65ch; }
.family-prose p+p { margin-top:var(--space-5); }
.family-leadership { padding-block:clamp(3rem,7vw,7rem); }
.family-leader-layout { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr); gap:clamp(2rem,7vw,7rem); align-items:center; max-width:1080px; }
.family-leadership figure img { width:100%; height:auto; border-radius:var(--radius-sm); }
.family-leadership figcaption { color:var(--color-text-muted); font-size:var(--text-sm); margin-top:var(--space-3); }
.family-leadership h2 { margin-block:var(--space-4) var(--space-6); }
.family-leadership p { margin-bottom:var(--space-5); max-width:65ch; }
.family-page .cta-band h2 { color:#fff; }
.family-page .main-nav a[aria-current="page"] { color:var(--color-maroon); }
.family-page .family-breadcrumb a, .family-page .family-link, .family-page .family-secondary { touch-action:manipulation; }
@media (max-width:800px){
  .family-hero-grid,.family-editorial,.family-leader-layout { grid-template-columns:1fr; }
  .family-teaser-layout { flex-direction:column; align-items:flex-start; gap:var(--space-5); }
  .family-hero h1 { font-size:clamp(2.35rem,8vw,3.5rem); }
  .family-start { max-width:100%; }
  .family-service-grid { grid-template-columns:1fr; }
  .family-service,.family-service:nth-child(odd),.family-service:nth-child(even) { padding:var(--space-8) 0; border-right:0; }
  .family-leadership figure { max-width:350px; }
  .family-card-top { gap:var(--space-4); }
  .family-card-top img { max-width:110px; }
  .family-service h3 { font-size:clamp(1.5rem,5vw,2rem); }
}
@media(prefers-reduced-motion:reduce){.family-page *{scroll-behavior:auto!important;}}

.family-expert-bridge { padding-block:clamp(3rem,6vw,6rem); background:var(--color-surface); border-bottom:1px solid var(--color-divider); }
.family-expert-bridge .btn { margin-top:var(--space-6); }
.expert-hero .family-hero-grid { grid-template-columns:minmax(0,1.55fr) minmax(240px,.65fr); align-items:center; }
.expert-hero h1 { font-size:clamp(2.25rem,4vw,3.8rem); }
.expert-portrait { max-width:340px; justify-self:end; }
.expert-portrait img { width:100%; height:auto; border-radius:var(--radius-sm); }
.expert-portrait figcaption { margin-top:var(--space-3); font-size:var(--text-sm); color:#e4d7d0; }
.expert-hero .hero-ctas .btn-primary { background:var(--color-gold-soft); color:var(--color-maroon-deep); border-color:var(--color-gold-soft); }
.expert-hero .hero-ctas .btn-outline { color:#fff; border-color:#d7c2b8; }
.expert-hero .hero-ctas .btn-outline:hover { background:#fff; color:var(--color-maroon-deep); }
.expert-body { padding-block:clamp(3rem,6vw,6rem); }
.expert-practice-list { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--space-10); }
.expert-practice-list li { padding-block:var(--space-6); border-top:1px solid var(--color-border); }
.expert-practice-list h3 { font-family:var(--font-body); font-size:var(--text-lg); margin-bottom:var(--space-3); }
.expert-practice-list p { color:var(--color-text-muted); }
.expert-page .family-prose a:not(.btn) { text-decoration:underline; text-underline-offset:4px; }
.expert-boundary { background:var(--color-surface-2); }
@media(max-width:800px){.expert-hero .family-hero-grid,.expert-practice-list{grid-template-columns:1fr}.expert-portrait{justify-self:start;max-width:280px}.expert-hero .hero-ctas{margin-top:var(--space-6)}}
