/* Stage 2 candidate templates: one department and one complete service. */
.card-image img {
    filter: brightness(.96) saturate(.9) contrast(1.03);
}

.service-hero-image img {
    filter: brightness(.98) saturate(.92) contrast(1.03);
}

.mini-gallery img {
    filter: brightness(.98) saturate(.92) contrast(1.03);
}

.gallery-open:hover img {
    filter: brightness(1.04) saturate(.98) contrast(1.03);
}

.part-image img,
.gallery-item img {
    filter: brightness(.98) saturate(.92) contrast(1.03);
}

.gallery-item:hover img {
    filter: brightness(1.04) saturate(.98) contrast(1.03);
}

.service-card h3,
.process-item h2,
.prose-block h2,
.note-box h2,
.sticky-aside h2 {
    letter-spacing: 0;
}

.service-card h3,
.service-card p,
.service-intro h1,
.service-intro .lead,
.process-item h2,
.process-item p,
.mini-gallery span {
    overflow-wrap: anywhere;
}

#lightbox {
    width: min(92vw, 1000px);
}

#lightbox > img {
    width: 100%;
}

.parts-empty {
    padding: 24px;
    border: 1px solid var(--line);
    color: var(--muted);
}

.contact-section {
    padding-bottom: clamp(58px, 8vw, 100px);
}

.contact-section .form-frame,
.contact-section form {
    min-width: 0;
}

.contact-section .field-hint,
.contact-section .field-help,
.contact-section .form-note {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.7;
}

.contact-section .field-error,
.file-list__error {
    display: block;
    margin-top: 6px;
    color: #ffb8bf;
    font-size: 11px;
    line-height: 1.6;
}

.contact-section .form-alert {
    margin-bottom: 24px;
    padding: 18px;
    border: 1px solid #5b6b82;
    background: #111d30;
    font-size: 13px;
    line-height: 1.7;
}

.contact-section .form-alert strong,
.contact-section .form-alert span {
    display: block;
}

.contact-section .form-alert--success {
    border-color: #668b7a;
}

.contact-section .form-alert--error {
    border-color: #a17684;
    background: #33202a;
}

.contact-section .honeypot {
    position: absolute;
    left: -10000px;
}

.contact-section .upload-zone.is-dragging {
    border-color: #fff;
    background: #243954;
}

.contact-section .consent-field {
    flex-direction: row;
    align-items: flex-start;
    margin: 26px 0;
}

.contact-section .consent-field input {
    margin-top: 3px;
}

.contact-section .button--submit {
    margin-top: 6px;
}

.file-list__item {
    position: relative;
    min-width: 0;
    padding: 8px;
    border: 1px solid #465874;
    background: #0a1220;
}

.file-list__preview,
.file-list__preview img {
    display: grid;
    width: 100%;
    height: 90px;
    place-items: center;
    object-fit: cover;
    background: #1c2d47;
}

.file-list__copy strong,
.file-list__copy small {
    display: block;
    overflow: hidden;
    margin-top: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-list__copy strong {
    font-size: 10px;
}

.file-list__copy small {
    color: var(--muted);
    font-size: 9px;
}

.file-list__remove {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 29px;
    height: 29px;
    border: 1px solid #8293ad;
    background: #050b14df;
    color: #fff;
    font-size: 20px;
}

.source-list a {
    overflow-wrap: anywhere;
}

.protocol-band-v2 {
    padding: clamp(58px, 6vw, 88px) 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #0d1626;
}

.protocol-band-v2__grid {
    display: grid;
    grid-template-columns: .95fr 1fr 1fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: start;
}

.protocol-band-v2 header h2 {
    max-width: 440px;
    margin: 18px 0 16px;
    font-size: clamp(32px, 3.2vw, 48px);
    line-height: 1.05;
    letter-spacing: 0;
}

.protocol-band-v2 header p,
.protocol-band-v2 article p {
    margin: 0;
    color: var(--muted);
    line-height: 1.75;
}

.protocol-band-v2 article {
    min-height: 190px;
    padding-left: clamp(24px, 3vw, 42px);
    border-left: 1px solid var(--line);
}

.protocol-band-v2 article > span {
    color: var(--accent);
    font-size: 11px;
    font-weight: 700;
}

.protocol-band-v2 article h3 {
    margin: 18px 0 14px;
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.1;
    letter-spacing: 0;
}

@media (max-width: 900px) {
    .protocol-band-v2__grid {
        grid-template-columns: 1fr 1fr;
    }

    .protocol-band-v2 header {
        grid-column: 1 / -1;
    }
}

@media (max-width: 680px) {
    .service-intro .button-row {
        align-items: stretch;
    }

    .service-intro .button {
        justify-content: space-between;
    }

    .protocol-band-v2__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .protocol-band-v2 header {
        grid-column: auto;
    }

    .protocol-band-v2 article {
        min-height: 0;
        padding: 28px 0 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }
}

@media (max-width: 380px) {
    .service-intro .button {
        width: 100%;
    }
}
