/* Shared public composition: QA-PR-21B-R1. Uses the established 48rem / 64rem contexts. */
.public-site main p a:not(.button), .public-site .article-content a {
    font-weight: 700; border: 1px solid currentColor; border-radius: .2em; padding-inline: .15em;
}
.public-site main p a:not(.button):hover, .public-site .article-content a:hover { background: #187ffa18; }
.public-site .site-nav [aria-current="page"] { box-shadow: inset 0 -2px var(--mk-blue); }
.public-site .footer-links a { padding-block: var(--mk-2); }
.public-site .footer-grid { gap: var(--mk-8); }
.public-site .footer-grid .contact-channels a { overflow-wrap: normal; }
.factual-case-card .case-media { margin: 0; }
.factual-case-card .case-media img { display: block; border-radius: var(--mk-radius); }
.factual-case-card figcaption { font-size: var(--mk-meta); color: var(--mk-muted); margin-top: var(--mk-2); }
.about-service-count > span { white-space: nowrap; }
.express-offer-actions { display: flex; flex-wrap: wrap; gap: var(--mk-3); align-items: center; }
.public-site .button-express-quote { background: var(--mk-green); color: var(--mk-white); }
.public-site .button-express-quote:is(:hover,:focus-visible) { background: var(--mk-blue); color: #fff; }
.express-advantages h3 { overflow-wrap: normal; word-break: normal; hyphens: none; }
@media (min-width: 64rem) {
    .public-site .footer-grid { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr) minmax(0,.65fr) minmax(17rem,1.25fr); }
    .public-site .contact-channel-cards { grid-template-columns: minmax(16.5rem,1.3fr) repeat(3,minmax(0,1fr)); }
    .contact-channel-value { overflow-wrap: normal; }
}
@media (min-width: 48rem) and (max-width: 63.999rem) {
    .quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .public-site .service-template .service-outcomes .narrative-split { grid-template-columns: minmax(0,1fr); }
    .service-outcomes .check-list { columns: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .express-intro-grid { grid-template-columns: minmax(0,1fr); }
    .express-advantages { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .express-section-heading { text-align: left; }
    .public-site :is(.cta-panel,.banner-layout,.service-cta,.express-project,.article-final,.about-final,.news-project,.news-final,.cases-index-final,.case-final,.contact-page-final) { text-align: center; }
    .public-site :is(.cta-panel,.banner-layout,.service-cta,.express-project,.article-final,.about-final,.news-project,.news-final,.cases-index-final,.case-final,.contact-page-final) :is(p,h2,.stack) { margin-inline: auto; }
    .public-site :is(.cta-panel,.banner-layout,.service-cta,.express-project,.article-final,.about-final,.news-project,.news-final,.cases-index-final,.case-final,.contact-page-final) .button { align-self: center; justify-self: center; margin-inline: auto; }
}
@media (max-width: 47.999rem) {
    .public-site main, .public-site .site-footer { text-align: center; }
    .public-site main :is(h1,h2,h3,h4,h5,h6,p,.eyebrow,.news-signature,.about-signature,.express-signature) { text-align: center; margin-inline: auto; }
    .public-site main :is(.button,.text-link,.quick-link) { align-self: center; justify-self: center; margin-inline: auto; }
    .public-site main :is(.actions,.cluster,.about-actions,.express-offer-actions,.case-tags,.hero-topics,.section-line,.banner-layout,.cta-panel) { justify-content: center; }
    .public-site main :is(.card,.capability-card,.news-topic) { margin-inline: auto; width: 100%; }
    .public-site main :is(.detail-icon,.commercial-icon,.pillar-icon), .public-site main .card > svg { margin-inline: auto; }
    .public-site main :is(.hero-benefits li,.service-benefits li,.news-highlights li,.express-family-heading) { justify-content: center; }
    .public-site main :is(.section-line,.news-section-heading,.about-section-heading,.service-cta-layout) { justify-items: center; }
    .public-site main :is(form,fieldset,label,input,select,textarea,table,pre,code,.article-toc,ul,ol,.case-feature-list,.feature-panel,.outcome-panel) { text-align: left; }
    .public-site main :is(form,.feature-panel,.outcome-panel,ul,ol,table,pre) :is(p,h2,h3,h4,legend,label) { text-align: left; margin-inline: 0; }
    .public-site .contact-channel-cards { grid-template-columns: minmax(0,1fr); }
    .public-site .site-footer .brand { align-self: center; }
    .public-site .site-footer .contact-channels li { justify-content: center; }
    .public-site .site-footer .contact-channels { text-align: center; }
    .public-site .footer-bottom { justify-content: center; }
    .public-site .site-footer p { margin-inline: auto; }
}

/* R2: context-specific alignment, preserving desktop/tablet geometry elsewhere. */
@media (min-width: 48rem) {
    .contact-page-help .contact-page-heading { text-align: left; margin-inline: 0; }
}
@media (min-width: 64rem) {
    .case-outcomes-paired { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 47.999rem) {
    .public-site .pillar-card > a:last-child { align-self: center; margin-inline: auto; display: inline-flex; align-items: center; justify-content: center; min-block-size: 44px; }
    .services-index-reason-grid > div { border-inline-start: 0; padding-inline-start: 0; }
    .services-index-reason-grid svg { margin-inline: auto; }
    .public-site main :is(.hero-benefits,.service-benefits,.news-highlights,.cases-highlights,.contact-page-benefits) { display: grid; grid-template-columns: minmax(0,1fr); }
    .public-site main :is(.hero-benefits li,.service-benefits li,.news-highlights li,.cases-highlights li,.contact-page-benefits li,.capability-title) {
        display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center;
        gap: var(--mk-4); inline-size: fit-content; max-inline-size: 100%; margin-inline: auto; text-align: left;
    }
    .public-site main :is(.hero-benefits li,.service-benefits li,.news-highlights li,.cases-highlights li,.contact-page-benefits li,.capability-title) > :is(svg,span,h3) { margin-inline: 0; min-inline-size: 0; text-align: left; }
    .public-site main .case-outcomes-paired { grid-template-columns: minmax(0,1fr); }
    .public-site .express-modal-facts { display: grid; justify-items: center; }
    .public-site .express-modal-facts > div { inline-size: fit-content; max-inline-size: 100%; text-align: left; }
    .public-site .express-modal-summary, .public-site .express-modal-section { text-align: left; }
    .public-site .express-modal-summary :is(h3,h4,p), .public-site .express-modal-section :is(h3,p) { text-align: left; margin-inline: 0; }
    .public-site main .case-outcomes-paired .card { text-align: left; }
    .public-site main .case-outcomes-paired .card :is(svg,h3,p) { margin-inline: 0; text-align: left; }
}

/* R3: keep each CTA within the same commercial summary width. */
.public-site .express-modal-summary > .button { display: flex; inline-size: 100%; margin-inline: auto; }
.contact-field-error { font-weight: 700; border-inline-start: 3px solid currentColor; padding-inline-start: var(--mk-2); }
.public-site .pillar-2 .capability-title[data-capability-icon="warning"] {
    display: flex; justify-content: center; align-items: center; gap: var(--mk-3);
    inline-size: fit-content; max-inline-size: 100%; margin-inline: auto;
}
.public-site .pillar-2 .capability-title[data-capability-icon="warning"] > svg { flex: 0 0 40px; margin: 0; }
.public-site .pillar-2 .capability-title[data-capability-icon="warning"] > h3 { max-inline-size: 19ch; margin: 0; text-align: left; }
@media (max-width: 47.999rem) {
    .public-site .service-case-card { grid-template-columns: minmax(0,1fr); }
    /* R5: share the largest mobile ratio (3:2); retain the approved subject framing. */
    .service-case-card .service-case-art { aspect-ratio: 3 / 2; min-block-size: 0; }
    .service-case-card .service-case-art img { position: absolute; inset: 0; display: block; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: 75% center; }
    .public-site .featured-case-overview :is(dt,dd) { text-align: left; margin-inline: 0; }
    .public-site .featured-case-overview dt { justify-content: flex-start; }
    .public-site .featured-case-overview svg { margin-inline: 0; }
    .public-site main .cases-process-steps li { align-items: center; text-align: center; }
    .public-site main .cases-process-steps li > :is(svg,span,h3,p) { margin-inline: auto; text-align: center; }
}
