/* Service page: concise vertical reading, illustrative comparison and scoped demo. */
.usability-page .service-narrow { max-width: 900px; }
.usability-page [hidden] { display: none !important; }
.obstacle-list { list-style: none; padding: 0; margin: 0; }
.obstacle-list > li { display: flex; gap: 1.25rem; padding: 1.5rem 0; border-bottom: 1px solid #ccd7da; }
.obstacle-list > li > span { color: #24485f; font-size: 1.5rem; font-weight: 700; }
.obstacle-list h3, .usability-page .usability-steps h3 { font-size: 1.25rem; margin-bottom: .5rem; }
.obstacle-list p { margin: 0; }
.usability-page .service-caption { font-size: .95rem; color: #425a6b; margin-top: 1rem; }
.demo-switch { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.demo-switch button { border: 2px solid #24485f; border-radius: 8px; background: #fff; color: #24485f; font: inherit; font-weight: 700; padding: .85rem 1.1rem; cursor: pointer; min-height: 48px; }
.demo-switch button[aria-pressed="true"] { color: #fff; background: #24485f; }
.demo-panel { padding: clamp(1.25rem, 4vw, 2rem); background: #fff; border: 1px solid #b7c7d0; border-radius: 12px; }
.demo-panel + .demo-panel { margin-top: 1rem; }
.mock-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.mock-fields span { display: block; border: 1px solid #aab9c2; border-radius: 4px; padding: .5rem .75rem; font-size: .9rem; color: #425a6b; background: #f3f7f9; }
.demo-defects { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 1.25rem 0; }
.demo-defects > div { display: flex; align-items: center; gap: .75rem; }
.demo-defects p { margin: 0; font-size: .95rem; }
.tiny-target { width: 24px; height: 16px; flex-shrink: 0; background: #24485f; border-radius: 3px; }
.contrast-swatch { color: #c6cbd0; background: #f3f7f9; font-size: 1.5rem; padding: .25rem .5rem; }
.demo-generic-error { border-left: 3px solid #9b2929; padding-left: 1rem; }
.demo-example { max-width: 540px; }
.demo-example label, .service-request label { display: block; font-weight: 700; color: #102033; }
.demo-example input, .service-request input:not([type="hidden"]) { display: block; width: 100%; box-sizing: border-box; min-height: 48px; border: 1px solid #657d8d; border-radius: 6px; background: #fff; color: #102033; font: inherit; padding: .75rem; margin-top: .4rem; }
.demo-example input::placeholder, .service-request input::placeholder { color: #526877; opacity: 1; }
#demo-hint { font-size: .95rem; margin: .5rem 0; }
#demo-error { color: #9b2929; font-weight: 700; margin-top: .5rem; }
.demo-example input[aria-invalid="true"] { border: 2px solid #9b2929; }
.usability-page button:focus-visible, .usability-page input:focus-visible { outline: 3px solid #9a650f; outline-offset: 4px; }
.usability-page .btn { min-height: 48px; white-space: normal; text-align: center; }
.service-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid #ccd7da; padding: 1.5rem 0; gap: 1rem; text-align: center; }
.service-metrics dt { font-size: .95rem; font-weight: 700; color: #425a6b; }
.service-metrics dd { color: #24485f; font-weight: 700; font-size: clamp(2.5rem, 5vw, 3.5rem); margin: .5rem 0 0; line-height: 1.2; }
.service-metrics dd span { font-size: .45em; }
.usability-page .faq-heading { margin-top: 3rem; }
.service-request { max-width: 620px; margin-inline: auto; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #ccd7da; border-radius: 12px; background: #f3f7f9; }
.service-request label { margin-bottom: 1rem; }
.service-request button { margin-top: .5rem; }
@media (max-width: 480px) { .service-metrics { grid-template-columns: 1fr; } .service-metrics > div + div { border-top: 1px solid #ccd7da; padding-top: 1rem; } .demo-switch { flex-direction: column; } .mock-fields { grid-template-columns: 1fr; } }
