/*
 * VSS Consult editorial text alignment.
 *
 * Keep headings and interface controls readable while justifying the
 * paragraph-like copy across the public theme and CRM frontend pages.
 */
body:not(.wp-admin) :is(
    .vss-hero p,
    .vss-page-hero p,
    .vss-section p,
    .vss-section li,
    .vss-content,
    .vss-content p,
    .vss-content li,
    .vss-content blockquote,
    .vss-card-body p,
    .vss-process-item p,
    .vss-testimonial blockquote,
    .vss-faq-answer,
    .vss-cta p,
    .vss-split p,
    .vss-panel p,
    .vss-panel li,
    .vss-contact-card p,
    .vss-contact-list li,
    .vss-contact-security,
    .vss-footer-brand p,
    .vss-footer-contact li,
    .vss-account-shell p,
    .vss-account-shell li,
    .vss-contracting-service-summary p,
    .vss-contracting-service-summary small,
    .vss-contracting-form p,
    .vss-contracting-form small
) {
    text-align: justify;
}

/* Keep page content and the public VSS catalogue on the site's 1220px grid. */
body:not(.wp-admin) .vss-container.vss-content,
body:not(.wp-admin) .vss-container.vss-content-wide,
body:not(.wp-admin) .vss-catalog-shell {
    width: min(calc(100% - 40px), 1220px);
    max-width: 1220px;
}

body:not(.wp-admin) .vss-catalog-shell {
    margin-left: auto;
    margin-right: auto;
}

body:not(.wp-admin) .vss-split > * {
    min-width: 0;
}

/* Align the first left-column heading with the top of the companion panel. */
body:not(.wp-admin) .vss-split > .vss-content > :first-child:is(h1, h2, h3, h4, p) {
    margin-top: 0;
}

/* Give catalogue cards the same visual language as the public service cards. */
body:not(.wp-admin) .vss-catalog-shell .vss-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dbe5ed;
    border-radius: 22px;
    box-shadow: 0 10px 28px rgba(7, 61, 118, 0.09);
}

body:not(.wp-admin) .vss-catalog-shell .vss-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, #2eaa55, #0b63b5);
}

body:not(.wp-admin) .vss-catalog-shell .vss-card-body {
    padding: 30px;
}

body:not(.wp-admin) .vss-catalog-shell .vss-card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
}

body:not(.wp-admin) .vss-catalog-shell .vss-catalog-order {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 40px;
}

body:not(.wp-admin) .vss-catalog-shell .vss-catalog-order > .vss-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    text-align: center;
}

body:not(.wp-admin) .vss-catalog-shell > .vss-cta-actions {
    display: none;
}

/* The catalogue markup has vss-grid-2 without the theme's vss-grid helper. */
body:not(.wp-admin) .vss-catalog-shell .vss-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

/* Compact the text stack so the only deliberate separation is before the action. */
body:not(.wp-admin) .vss-catalog-shell .vss-card h2 {
    margin: 8px 0 10px;
}

body:not(.wp-admin) .vss-catalog-shell .vss-card h3 {
    margin: 14px 0 4px;
}

body:not(.wp-admin) .vss-catalog-shell .vss-card p + p {
    margin-top: 4px;
}

/* Short copy should wrap naturally; full justification is reserved for prose. */
body:not(.wp-admin) :is(
    .vss-hero p,
    .vss-page-hero p,
    .vss-card-body p,
    .vss-process-item p,
    .vss-trust-item span,
    .vss-testimonial footer,
    .vss-footer-contact li,
    .vss-account-shell p,
    .vss-account-shell li,
    .vss-contracting-service-summary p,
    .vss-contracting-service-summary small,
    .vss-contracting-form p,
    .vss-contracting-form small
) {
    text-align: left;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: pretty;
}

body:not(.wp-admin) .vss-section-heading:not(.center) .vss-lead {
    text-align: left;
}

/* Deliberately keep interface text aligned for scanning and accessibility. */
body:not(.wp-admin) :is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .vss-eyebrow,
    .vss-badge,
    .vss-pill,
    .vss-button,
    .vss-card-link,
    .vss-hero-actions,
    .vss-cta-actions,
    .vss-section-heading.center,
    .vss-faq-question,
    .vss-field label,
    .vss-consent,
    .vss-account-form label,
    .vss-contracting-form label,
    .vss-account-status,
    .vss-request-card-meta,
    .vss-footer-menu,
    .vss-footer-legal
) {
    text-align: left;
}

@media (max-width: 700px) {
    body:not(.wp-admin) .vss-container.vss-content,
    body:not(.wp-admin) .vss-container.vss-content-wide,
    body:not(.wp-admin) .vss-catalog-shell {
        width: calc(100% - 28px);
    }

    body:not(.wp-admin) .vss-catalog-shell .vss-grid-2 {
        grid-template-columns: 1fr;
    }
}

body:not(.wp-admin) :is(
    .vss-section-heading.center,
    .vss-section-heading.center .vss-lead
) {
    text-align: center;
}

body:not(.wp-admin) :is(
    .primary-navigation,
    .primary-navigation ul,
    .primary-navigation li,
    .primary-navigation a,
    .vss-footer-menu,
    .vss-footer-menu li,
    .vss-footer-menu a,
    .vss-footer-legal,
    .vss-footer-legal li,
    .vss-footer-legal a
) {
    text-align: left;
}
