/* Shared finishing rules for public pages. Page-specific content layouts remain local. */
body .unified-header, body .unified-footer { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
:root { --font-ui: "Helvetica Neue", Helvetica, Arial, sans-serif; }

/* Guidance and state pages share the catalog's quieter headline treatment. */
body.seo-page .seo-intro h1,
body.seo-page .seo-intro h1.regional-headline-fit,
body.seo-page .resource-hub-head h1,
body[data-page="detail"] #detail > h1 {
  font: 400 clamp(32px, 3.2vw, 44px)/1.18 var(--font-ui);
  letter-spacing: -.02em;
  color: #0a2945;
  max-width: 25ch;
  margin: 0 0 20px;
}
body.seo-page .seo-content h2 { font: 500 clamp(26px, 2.4vw, 32px)/1.25 var(--font-ui); }
body.seo-page .seo-contact h2 { font: 500 clamp(26px, 2.4vw, 32px)/1.25 var(--font-ui); margin: 0 0 16px; }
body.seo-page .seo-contact h3 { font: 500 20px/1.3 var(--font-ui); }
body.seo-page .seo-contact-people { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
body.seo-page .seo-contact-people a { min-height: 44px; display: flex; align-items: center; overflow-wrap: anywhere; }

body .resource-hub-head nav { justify-content: flex-start; gap: 8px 24px; font: 500 14px/1.4 var(--font-ui); }
body .resource-hub-head nav a { min-height: 44px; display: inline-flex; align-items: center; }

/* State-page cards use the same typography and controls as the main catalog. */
body.seo-page .practice-card { font-family: var(--font-ui); }
body.seo-page .practice-card h2 { font: 500 21px/1.35 var(--font-ui); margin: 0; }
body.seo-page .practice-card h2 a,
body.seo-page .practice-card .view-practice { color: #0a2945; text-decoration: none; }
body.seo-page .practice-card .view-practice { color: #0b5fa9; }
.view-practice svg { width: 18px; height: 18px; flex: 0 0 18px; }
.view-practice { min-height: 44px; }
.save-button { min-width: 44px; min-height: 44px; }
.detail-actions button { min-height: 44px; }
body.seo-page main .button,
body[data-page="detail"] main .button { font-family: var(--font-ui); font-weight: 500; border-radius: 8px; min-height: 48px; }
.button.button-accent { background: #936d2f; border-color: #936d2f; color: #fff; }
.button.button-accent:hover { background: #725423; border-color: #725423; }
.button-primary:focus-visible { outline: 3px solid #0b5fa9; outline-offset: 4px; }

/* Keep linked sections clear of the 75px sticky header. */
body main [id] { scroll-margin-top: 96px; }
body .resource-category-group,
body .resource-body > section,
body .seo-faq-group { scroll-margin-top: 96px; }

/* No delayed or partially transparent headlines; below-fold reveals stay brief. */
body .motion-home-intro { animation: none; }
body .motion-reveal { transition-duration: 240ms; transition-delay: 0ms; }
.regional-headline .rh-word,
.valuation-headline .vh-word,
.faq-headline .fh-word { opacity: 1 !important; transform: none !important; }

@media (max-width: 900px) {
  body .valuation-hero .seo-intro .wrap { width: calc(100% - 40px); margin-inline: auto; }
}
@media (max-width: 700px) {
  body.seo-page .seo-contact-people { grid-template-columns: 1fr; }
}

/* One footer, with the same logo, navigation, and three contacts on every page. */
body footer.unified-footer {
  box-sizing: border-box;
  margin: 0;
  padding: 48px 0 20px;
  background: #061c33;
  color: #d4e1eb;
  border: 0;
  font: 400 14px/1.6 var(--font-ui);
}
.unified-footer-inner { width: min(1280px,calc(100% - 48px)); margin-inline: auto; }
.unified-footer-top { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 64px; align-items: start; }
.unified-footer-brand img { display: block; width: 156px; height: auto; box-sizing: content-box; padding: 10px; border-radius: 8px; background: white; }
body .unified-footer-brand p { margin: 16px 0 0; color: #b9cbd9; max-width: 34ch; font: inherit; }
.unified-footer-navigation nav { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 0 28px; width: auto; margin: 0; padding: 0; }
body.seller-v2.js .unified-footer nav { display: flex; }
.unified-footer-navigation .unified-footer-states { border-top: 1px solid #ffffff30; margin-top: 16px; padding-top: 16px; }
body .unified-footer a { color: #d4e1eb; text-decoration: none; font: inherit; }
.unified-footer-navigation a, .unified-footer-contacts a, .unified-footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
body .unified-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
body .unified-footer a:focus-visible { outline: 2px solid #72b9ed; outline-offset: 4px; }
.unified-footer-contacts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; border-block: 1px solid #ffffff30; margin-top: 28px; padding-block: 24px; }
body .unified-footer-contacts h2 { margin: 0 0 4px; color: white; font: 500 17px/1.4 var(--font-ui); letter-spacing: 0; }
.unified-footer-contacts a { display: flex; width: fit-content; max-width: 100%; overflow-wrap: anywhere; }
.unified-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; padding-top: 12px; }
body .unified-footer-bottom p { margin: 0; color: #b9cbd9; font: 400 13px/1.6 var(--font-ui); }
@media (max-width: 800px) {
  .unified-footer-top { grid-template-columns: 1fr; gap: 28px; }
  .unified-footer-contacts { gap: 24px; }
}
@media (max-width: 600px) {
  .unified-footer-inner { width: calc(100% - 40px); }
  .unified-footer-navigation nav { gap: 0 24px; }
  .unified-footer-contacts { grid-template-columns: 1fr; }
  .unified-footer-contacts > div { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 12px; }
  body .unified-footer-contacts h2 { align-self: center; margin: 0; }
  .unified-footer-contacts a[href^="mailto:"] { grid-column: 1 / -1; }
  .unified-footer-contacts > div + div { padding-top: 20px; border-top: 1px solid #ffffff20; }
}
@media print { .unified-footer { display: none; } }
