/* ESM editorial services. All rules stay inside this page family.
   Shared site-scale.css owns the final type scale and focus treatment. */
.services-page { background: var(--paper); color: var(--ink); }
.services-page > header { background: var(--ink); color: var(--paper); margin: 0; padding-inline: var(--edge); border-color: #527160; }
.services-page .brand-dot { color: #eac57c; }
.services-page header .nav-links { display: flex; align-items: center; gap: 24px; }
.services-page header .nav-assess { border-color: #eac57c; color: #eac57c; }
.services-page header a:hover { text-decoration: underline; }
.services-page .services-wrap { max-width: 1160px; margin-inline: auto; padding: 32px var(--edge) 64px; }
.services-page .service-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 12px; color: var(--muted); line-height: 1.6; }
.services-page .service-breadcrumb a { text-decoration: underline; display: inline-flex; align-items: center; min-height: 44px; }
.services-page .service-breadcrumb span { display: inline-flex; align-items: center; }
.services-page .service-intro { max-width: 780px; padding-block: 40px 48px; }
.services-page h1, .services-page h2, .services-page h3 { font-family: Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
.services-page .service-tagline { color: var(--ink); margin-top: 16px; }
.services-page .service-lead { margin-top: 16px; max-width: 65ch; }
.services-page .service-section { border-top: 1px solid var(--line); padding-block: 32px; }
.services-page .service-section h2 { margin-bottom: 24px; }
.services-page .service-section p + p { margin-top: 16px; }
.services-page .service-link-group { display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin-top: 16px; }
.services-page .service-link-group a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; }
/* Outrank the shared small-footer role without changing other page families. */
:root:root:root:root body.services-page footer :is(p, a) { font-size: 16px !important; }
.services-page .service-article { max-width: 740px; }
.services-page .service-section ul { margin-block: 16px; }
.services-page .service-section li { padding-block: 12px; }
.services-page .service-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.services-page .service-card { display: flex; flex-direction: column; align-items: start; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.services-page .service-card h3 { margin-bottom: 8px; }
.services-page .service-card:last-child { grid-column: 1 / -1; }
.services-page .service-card-tagline { color: var(--ink); }
.services-page .service-card .text-link { margin-top: auto; padding-top: 24px; min-height: 44px; }
.services-page .service-boundary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.services-page .service-fees { margin: 0 0 24px; }
.services-page .service-fees > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 24px; padding-block: 24px; border-bottom: 1px solid var(--line); }
.services-page .service-fees dt { font-weight: 700; }
.services-page .service-fees dd { margin: 0; color: var(--muted); }
.services-page .service-back { padding-block: 16px 32px; }
.services-page .service-back a { display: inline-flex; align-items: center; min-height: 44px; }
.services-page .service-assessment { background: var(--ink); padding: 32px; color: var(--paper); border-radius: 8px; margin-top: 16px; }
.services-page .service-assessment h2 { color: var(--paper); }
.services-page .service-assessment p { color: #d5dfd6; max-width: 66ch; margin-block: 16px 24px; }
.services-page .service-assessment .button { background: #eac57c; border-color: #eac57c; color: var(--ink); }
.services-page .service-assessment .button:hover { background: var(--paper); border-color: var(--paper); }
.services-page .service-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 1000px) {
  .services-page header > nav { display: none; }
  .services-page .mobile-menu { display: block; position: relative; }
  .services-page .mobile-menu summary { border: 1px solid #527160; padding: 10px 13px; }
  .services-page .mobile-menu nav { position: absolute; right: 0; top: 52px; z-index: 5; width: 252px; max-width: calc(100vw - 48px); background: var(--ink); color: var(--paper); padding: 20px; display: flex; flex-direction: column; align-items: stretch; border: 1px solid #527160; }
  .services-page .mobile-menu .nav-links { flex-direction: column; align-items: stretch; gap: 8px; }
}
@media (max-width: 700px) {
  .services-page .services-wrap { padding-top: 16px; padding-bottom: 48px; }
  .services-page .service-intro { padding-block: 24px 32px; }
  .services-page .service-cards, .services-page .service-boundary { grid-template-columns: minmax(0, 1fr); }
  .services-page .service-boundary { gap: 16px; }
  .services-page .service-fees > div { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .services-page .service-card, .services-page .service-assessment { padding: 24px; }
  .services-page .service-assessment .button { justify-content: center; width: 100%; text-align: center; }
}
