/* Shared service layout, scoped to the five R11 pages. */
.public-site .ps-service-page { padding-top: 1.5rem; padding-bottom: 3rem; }
.public-site .ps-service-page .service-intro { padding: 1rem 0 2.5rem; border-bottom: 1px solid var(--ps-border); }
.public-site .ps-service-page .service-intro h1 { max-width: 26ch; }
.public-site .ps-service-page .service-intro .lead { margin: 1.25rem 0 1.75rem; }
.public-site .ps-service-page .service-eyebrow { color: var(--ps-primary); font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.public-site .ps-service-page .service-section { padding: 2.25rem 0; }
.public-site .ps-service-page .service-activity-grid, .public-site .ps-service-page .service-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.public-site .ps-service-page h3 { font-size: 1.25rem; font-weight: 650; }
.public-site .ps-service-page .service-process { list-style: none; padding: 0; counter-reset: service-step; }
.public-site .ps-service-page .service-process li { counter-increment: service-step; padding: 1.25rem; background: var(--ps-soft); border-radius: var(--ps-radius-small); }
.public-site .ps-service-page .service-process li::before { content: "0" counter(service-step); display: block; color: var(--ps-primary); font-size: 1.5rem; font-weight: 700; margin-bottom: .5rem; }
.public-site .ps-service-page .service-scope { padding: 1.5rem; border-left: .3rem solid var(--ps-accent); background: var(--ps-soft); }
.public-site .ps-service-page .service-contact { max-width: 48rem; padding: 2rem 0; }
.public-site .ps-service-page .service-contact fieldset { color: var(--ps-ink); box-shadow: var(--ps-shadow) !important; }
.public-site .ps-service-page .service-contact legend { font-weight: 600; }
.public-site .ps-service-page .service-contact .input-group > .service-field { min-width: 0; }
.public-site .ps-service-page .service-contact .input-group > .text-danger { width: 100%; }
.public-site .ps-service-page .service-work-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.public-site .ps-service-page .service-work-grid figure { margin: 0; padding: 1rem; }
.public-site .ps-service-page .service-work-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; margin-bottom: 1rem; }
.public-site .ps-service-page .service-work-grid figcaption { font-size: .9rem; overflow-wrap: anywhere; }
@media (max-width: 991.98px) { .public-site .ps-service-page .service-activity-grid, .public-site .ps-service-page .service-process { grid-template-columns: minmax(0, 1fr); } .public-site .ps-service-page .service-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .public-site .ps-service-page .service-work-grid { grid-template-columns: minmax(0, 1fr); } .public-site .ps-service-page .service-contact fieldset { padding: 1rem !important; } }

.public-site .ps-service-page .service-field label { display: block; margin-bottom: .35rem; font-weight: 500; }
.public-site .ps-service-page .service-contact .input-group { align-items: flex-end; }
.public-site .ps-service-page .service-contact .input-group-text { min-height: 2.75rem; }

/* Secondary surfaces remain inside the shared service container. */
.public-site .ps-service-page .service-activity-grid .ps-accent-panel { background: var(--panel-soft); border-top: .3rem solid var(--panel-color); }
.public-site .ps-service-page .service-process li:nth-child(odd) { background: var(--ps-accent-blue-soft); }
.public-site .ps-service-page .service-process li:nth-child(even) { background: var(--ps-accent-terra-soft); }

/* R12 section links remain visible below the fixed navigation. */
.public-site .ps-software-page section[id] { scroll-margin-top: calc(var(--ps-header-height) + 1rem); }
