/* Shared finishing layer: existing content, Manrope and silver/lime identity. */
:root { --heading-weight: 600; --title-weight: 650; --connection-lime: #c1f46a; }
body .hero h1, body .section-heading, body #title, body .pain-inner>h2,
body.case-page .case-hero h1, body.case-page h2 { font-weight: var(--heading-weight); }
body .content-card h3, body .rules-grid h3, body .case-card h3, body .pain-card h3,
body #solution .stage h2, body .process-grid h3, body.case-page h3 { font-weight: var(--title-weight); }
body .case-card .case-metric, .case-facts dd, .case-record dd { font-weight: 600; }
body.case-page .case-hero-copy>.case-demo-note, body.case-page .case-facts dt { font-size: 13px; }
body .case-result, .case-result-table td { font-variant-numeric: tabular-nums; }
body .case-card h3 { text-wrap: balance; }

/* Lime connections remain visible through width and a distinct moving marker. */
body .process-grid .content-card::before,
body .process-grid .content-card::after,
body .process-grid .content-card:nth-child(n)::after { width: 4px; }
body .process-grid .content-card::after,
body .process-grid .content-card:nth-child(n)::after,
[data-theme="dark"] body .process-grid .content-card.is-connected::after { background: var(--connection-lime); }
body .process-grid .timeline-marker { width: 13px; height: 13px; background: var(--lime); border: 2px solid var(--surface-raised); }
.architecture-route li:not(:last-child)::after { height: 3px; background: var(--connection-lime); }
.architecture-route li:not(:last-child)::before { border-color: var(--connection-lime); }
.case-navigation a[aria-current="location"] { border-color: var(--connection-lime); border-bottom-width: 3px; }
.case-record .record-status, .case-result-table td:last-child { color: var(--text-main); }
:where(a,button,input,summary,[tabindex]):focus-visible,
.contact-dialog :focus-visible { outline-color: var(--text-main); }
/* Anchor destinations receive focus for navigation, without framing the section. */
#landing-copy-wireframes > section[tabindex="-1"]:focus { outline: none; }
.field:focus, dialog input:focus { border-color: var(--text-main); }

/* The shared landing's <=900 rule must not push a case CTA onto a second row. */
body.case-page .case-header>.header-cta { grid-column: 3; grid-row: 1; width: auto; }
.case-header>.header-back { grid-column: 2; grid-row: 1; }
html.case-route { scroll-padding-top: 0; }
body.case-page .case-section { scroll-margin-top: calc(var(--case-header-height) + var(--case-navigation-height,58px) + 24px); }

/* Compact the contact path by spacing, without shrinking legal copy. */
.contact-dialog { padding: 28px; }
.contact-dialog h2 { font-weight: 650; }
.contact-dialog #dialog-description { margin-bottom: 18px; }
.contact-dialog .contact-divider { margin-top: 18px; }
.contact-dialog .field-label { margin-top: 12px; }
.contact-dialog .cta-guidance { margin-top: 16px; }
.contact-dialog .cta { margin-top: 16px; }
form[aria-busy="true"] { cursor: progress; }
form[aria-busy="true"] .cta { opacity: .72; cursor: progress; }
form .feedback[role="alert"], form .form-status[role="alert"] { color: #a72f24; font-weight: 550; }
form .feedback:focus, form .form-status:focus { outline: 2px solid var(--text-main); outline-offset: 4px; }
@media(hover:hover) and (pointer:fine) {
  .case-text-button:hover,.case-all-link:hover,.header-back:hover { color: var(--text-main); text-decoration-thickness: 2px; }
}
@media(max-width:750px) {
  body.case-page .case-header>.header-cta { grid-column: 2; grid-row: 1; }
  .architecture-route li:not(:last-child)::after { width: 3px; height: 24px; }
  body.case-page .case-navigation a { font-weight: 600; }
}
@media(max-width:650px) {
  .contact-dialog { padding: 22px; }
  .contact-dialog #dialog-description { margin-bottom: 16px; }
  .contact-dialog .contact-divider { margin-top: 16px; }
  .contact-dialog .cta-guidance { margin-top: 14px; }
  body.case-page .case-hero h1 { letter-spacing: -.035em; }
}
@media(prefers-reduced-motion:reduce) { body .process-grid .timeline-marker { display: none; } }
