/* services hero — full-bleed paddings, watermark, heading rhythm */
.capab-hero {
    min-height: 80vh;
    padding: 3rem 1.5rem;
}

@media (min-width: 1024px) {
    .capab-hero {
        padding: 6rem 15%;
    }
}

.capab-hero__decor {
    pointer-events: none;
    user-select: none;
}

.capab-hero__watermark {
    font-size: 20vw;
    opacity: 0.1;
}

.capab-hero__title {
    line-height: 0.9;
    letter-spacing: -0.05em;
}

/* numbered capability block — band paddings, caption type, rule, portrait frame */
.nlp-block {
    padding: 4rem 1.5rem;
}

@media (min-width: 1024px) {
    .nlp-block {
        padding: 8rem 15%;
    }
}

.nlp-block__caption {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.nlp-block__caption--wide {
    letter-spacing: 0.1em;
}

.nlp-block__rule {
    width: 4rem;
    height: 0.5rem;
}

.nlp-block__frame {
    aspect-ratio: 3 / 4;
}

.nlp-block__img {
    object-fit: cover;
}

/* dark capability band — paddings, offset image frame with hover scale, grayscale image */
.vision-band {
    padding: 4rem 1.5rem;
}

@media (min-width: 1024px) {
    .vision-band {
        padding: 8rem 15%;
    }
}

.vision-band__caption {
    font-size: 0.875rem;
    line-height: 1.25rem;
    letter-spacing: 0.1em;
}

.vision-band__frame {
    position: absolute;
    inset: -1rem;
    transition: transform 500ms ease;
}

.vision-band__media:hover .vision-band__frame {
    transform: scale(1.05);
}

.vision-band__img {
    filter: grayscale(1) contrast(1.25);
}

.vision-band__prose {
    max-width: 65ch;
}

.vision-band__item-label {
    max-width: 40%;
}

@media (prefers-reduced-motion: reduce) {
    .vision-band__frame {
        transition: none;
    }
}

/* predictive feature trio — band paddings, max widths, thick top rules, round badge */
.predict-trio {
    padding: 4rem 1.5rem;
}

@media (min-width: 1024px) {
    .predict-trio {
        padding: 8rem 15%;
    }
}

.predict-trio__inner {
    max-width: 64rem;
}

.predict-trio__lead {
    max-width: 48rem;
}

.predict-trio__item {
    border-top-style: solid;
    border-top-width: 6px;
}

.predict-trio__caption {
    font-size: 0.875rem;
    line-height: 1.625;
}

.predict-trio__panel {
    max-width: 56rem;
}

.predict-trio__badge {
    width: 5rem;
    height: 5rem;
}

/* integration protocol band — paddings, column widths, square markers, CTA lift */
.protocol-grid {
    padding: 5rem 1.5rem;
}

@media (min-width: 1024px) {
    .protocol-grid {
        padding: 10rem 15%;
    }
}

.protocol-grid__wrap {
    max-width: 72rem;
}

@media (min-width: 1024px) {
    .protocol-grid__aside {
        width: 33.333333%;
    }

    .protocol-grid__list {
        width: 66.666667%;
    }
}

.protocol-grid__btn {
    letter-spacing: 0.1em;
    transition: all 300ms ease;
}

.protocol-grid__btn:hover {
    transform: translate(4px, -4px);
}

.protocol-grid__dot {
    width: 0.5rem;
    height: 0.5rem;
}

.protocol-grid__caption {
    font-size: 0.875rem;
    line-height: 1.625;
}

@media (prefers-reduced-motion: reduce) {
    .protocol-grid__btn {
        transition: none;
    }

    .protocol-grid__btn:hover {
        transform: none;
    }
}

/* lime audit band — paddings, centered width, button tracking and hover */
.audit-band {
    padding: 5rem 1.5rem;
}

@media (min-width: 1024px) {
    .audit-band {
        padding: 5rem 15%;
    }
}

.audit-band__inner {
    max-width: 64rem;
}

.audit-band__title {
    letter-spacing: -0.025em;
}

.audit-band__btn {
    letter-spacing: 0.1em;
    transition: all 300ms ease;
}

.audit-band__btn:hover {
    transform: scale(1.05);
}

.audit-band__btn--ghost:hover {
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .audit-band__btn {
        transition: none;
    }

    .audit-band__btn:hover {
        transform: none;
    }
}

/* dark headquarters strip — paddings, muted caption type */
.hq-strip {
    padding: 3rem 1.5rem;
}

@media (min-width: 1024px) {
    .hq-strip {
        padding: 3rem 15%;
    }
}

.hq-strip__grid {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
    opacity: 0.6;
}

