/* OPSREVIVE EDITORIAL SYSTEM */

body:has(main.or-editorial),
body:has(main.or-page--agencies) {
    --or-ink: #111315;
    --or-text: #34393c;
    --or-muted: #707679;
    --or-blue: #111315;
    --or-blue-hover: #2a2e30;
    --or-soft: #fafaf7;
    --or-border: #d9dcda;
    --or-dark: #111315;
}

.or-editorial {
    color: #111315;
    background: #fff;
}

.or-editorial > section {
    position: relative;
    background: #fff;
    border-radius: 0;
}

.or-editorial > section:nth-of-type(even) {
    background: #fafaf7;
}

/* HERO */

.or-editorial :is(
    .or-hero,
    .or-vps-hero,
    .services-hero
) {
    background: #f5f5f1 !important;
    background-image: none !important;
    border-radius: 0;
}

.or-editorial :is(
    .or-hero h1,
    .or-vps-hero h1,
    .services-hero h1
) {
    max-width: 1100px;
    color: #111315;
    font-size: clamp(3.5rem, 6.4vw, 6.7rem);
    font-weight: 690;
    line-height: .99;
    letter-spacing: -.052em;
    text-wrap: balance;
}

.or-editorial :is(
    .or-hero__lead,
    .or-vps-hero__lead,
    .services-hero__lead
) {
    max-width: 720px;
    color: #34393c;
    font-size: clamp(1.1rem, 1.6vw, 1.3rem);
    line-height: 1.6;
}

/* SECTIONS */

.or-editorial :is(
    .or-section,
    .or-vps-section,
    .services-scope,
    .services-process
) {
    padding-top: clamp(90px, 9vw, 145px);
    padding-bottom: clamp(90px, 9vw, 145px);
}

.or-editorial :is(
    .or-section-head h2,
    .or-vps-section__heading h2,
    .or-split h2,
    .services-scope h2,
    .services-process h2,
    .or-home-closing h2
) {
    max-width: 960px;
    color: #111315;
    font-size: clamp(2.85rem, 4.7vw, 4.9rem);
    font-weight: 680;
    line-height: 1.04;
    letter-spacing: -.044em;
    text-wrap: balance;
}

/* OPEN GRIDS */

.or-editorial :is(
    .or-card-grid,
    .or-vps-grid,
    .services-grid,
    .services-scope__grid
) {
    column-gap: clamp(35px, 5vw, 80px);
    row-gap: 0;
}

.or-editorial :is(
    .or-card,
    .or-vps-card,
    .services-card
) {
    padding: 28px 0 34px;
    border: 0;
    border-top: 1px solid #d9dcda;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.or-editorial :is(
    .or-card,
    .or-vps-card,
    .services-card
):hover {
    transform: none;
    background: transparent;
    box-shadow: none;
}

.or-editorial :is(
    .or-card,
    .or-vps-card,
    .services-card
)::before {
    display: none !important;
    content: none !important;
}

.or-editorial :is(
    .or-card h3,
    .or-vps-card h2,
    .or-vps-card h3,
    .services-card h3
) {
    color: #111315;
    font-size: clamp(1.25rem, 1.6vw, 1.55rem);
    font-weight: 670;
    line-height: 1.25;
    letter-spacing: -.02em;
}

.or-editorial :is(
    .or-card p,
    .or-vps-card p,
    .services-card p
) {
    color: #62696c;
    font-size: 1.06rem;
    line-height: 1.65;
}

/* BUTTONS */

.or-editorial :is(
    .or-button,
    .home-button
) {
    border-radius: 999px;
    box-shadow: none;
    font-weight: 650;
    transition:
        background-color .18s ease,
        color .18s ease,
        border-color .18s ease;
}

.or-editorial :is(
    .or-button--primary,
    .home-button-primary
) {
    background: #111315;
    border-color: #111315;
    color: #fff;
}

.or-editorial :is(
    .or-button--primary,
    .home-button-primary
):hover {
    background: #2a2e30;
    border-color: #2a2e30;
    color: #fff;
}

.or-editorial :is(
    .or-button--secondary,
    .home-button-secondary
) {
    background: transparent;
    border-color: transparent;
    color: #111315;
    box-shadow: none;
}

/* PROCESS: NO DECORATIVE COUNTERS */

.or-editorial .or-process__item::before,
.or-editorial .or-process__item::after {
    display: none !important;
    content: none !important;
}

/* HOME FINAL */

.or-editorial .or-home-closing {
    background: #111315;
}

.or-editorial .or-home-closing :is(h2, h3) {
    color: #fff;
}

.or-editorial .or-home-closing p {
    color: #c4c8c8;
}

.or-editorial .or-home-closing
:is(.or-button--primary, .home-button-primary) {
    background: #fff;
    border-color: #fff;
    color: #111315;
}

/* DESKTOP STACK */

@media (min-width: 901px)
and (prefers-reduced-motion: no-preference) {

    .or-editorial.or-stack-enabled {
        position: relative;
        isolation: isolate;
    }

    .or-editorial.or-stack-enabled > .or-stack-panel {
        position: sticky;
        top: 0;
        min-height: 100svh;
        display: flex;
        align-items: center;
        z-index: var(--or-stack-depth, 1);
        transform: none !important;
    }

    .or-editorial.or-stack-enabled > .or-stack-panel {
        justify-content: center;
    }

    .or-editorial.or-stack-enabled > .or-stack-panel > * {
        min-width: 0;
    }
}

/* MOBILE */

@media (max-width: 900px) {

    .or-editorial > section {
        position: relative !important;
        min-height: 0 !important;
        transform: none !important;
    }

    .or-editorial :is(
        .or-card-grid,
        .or-vps-grid,
        .services-grid,
        .services-scope__grid
    ) {
        grid-template-columns: 1fr;
    }

    .or-editorial :is(
        .or-section,
        .or-vps-section,
        .services-scope,
        .services-process
    ) {
        padding-top: 76px;
        padding-bottom: 76px;
    }

    .or-editorial :is(
        .or-hero h1,
        .or-vps-hero h1,
        .services-hero h1
    ) {
        font-size: clamp(2.9rem, 11vw, 4.1rem);
        line-height: 1.02;
    }
}

/* HOMEPAGE LAYOUT CORRECTIONS */

.or-editorial .or-home-closing__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
}

.or-editorial .or-home-closing__copy p {
    max-width: 540px;
    margin: 0;
    line-height: 1.65;
}

.or-editorial .or-home-closing__copy > .or-button {
    display: inline-flex;
    align-self: flex-start;
    margin: 0;
}

@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
    .or-editorial.or-stack-enabled:has(> .or-home-closing)
    > .or-hero.or-stack-panel {
        align-items: flex-start;
        padding-top: clamp(120px, 15vh, 170px);
    }
}

/* Homepage secondary CTA */

.or-editorial .or-hero .or-actions .or-button--secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 24px;
    border: 1px solid #b8beb9;
    border-radius: 999px;
    background: transparent;
    color: #111315;
    font-weight: 650;
    text-decoration: none;
    box-shadow: none;
}

.or-editorial .or-hero .or-actions .or-button--secondary::after {
    content: none !important;
    margin-left: 10px;
}

.or-editorial .or-hero .or-actions .or-button--secondary:hover {
    background: #e6e8e3;
    border-color: #111315;
    color: #111315;
}


/* OPSREVIVE ABOUT + CASE STUDIES ALIGNMENT FIX 2026-10-07 */

/* The generic alternating-section rule must not recolor a dark CTA. */
.or-page--about.or-editorial > .or-home-closing {
    background: #111315 !important;
    color: #ffffff;
}
.or-page--about.or-editorial > .or-home-closing h2 {
    color: #ffffff !important;
}
.or-page--about.or-editorial > .or-home-closing .or-home-closing__copy p {
    color: #d3d6d4 !important;
}
.or-page--about.or-editorial > .or-home-closing .or-button--primary {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #111315 !important;
}
.or-page--about.or-editorial > .or-home-closing .or-button--primary:hover {
    background: #e9ebe8 !important;
    border-color: #e9ebe8 !important;
}

/* Keep the case-study CTA aligned with the other content sections. */
.or-page--case-studies.or-editorial > .or-vps-section > .or-shell {
    width: min(1240px, calc(100% - 64px)) !important;
    margin-inline: auto !important;
    flex: 0 1 auto;
}
.or-page--case-studies.or-editorial .or-vps-section__heading {
    max-width: 980px;
}
.or-page--case-studies.or-editorial .or-vps-section__heading > p {
    max-width: 650px;
    margin: 24px 0 28px;
    line-height: 1.65;
}
.or-page--case-studies.or-editorial .or-vps-section__heading > .or-button {
    display: inline-flex;
    align-items: center;
    margin-top: 4px;
}

@media (max-width: 700px) {
    .or-page--case-studies.or-editorial > .or-vps-section > .or-shell {
        width: calc(100% - 40px) !important;
    }
}


/* CONTACT EDITORIAL DESIGN */

.or-page--contact .or-hero--compact {
    min-height: 0 !important;
    padding-block: clamp(90px, 9vw, 135px);
}

.or-page--contact .or-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 3.5vw, 56px);
    align-items: stretch;
}

.or-page--contact .or-contact-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 0 !important;
    padding: 28px 0 12px;
    border: 0 !important;
    border-top: 1px solid #d9dcda !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.or-page--contact .or-contact-card::before {
    display: none !important;
}

.or-page--contact .or-contact-card h2 {
    margin: 0 0 18px;
    color: #111315 !important;
    font-size: clamp(1.35rem, 1.8vw, 1.65rem);
    font-weight: 680;
    line-height: 1.22;
    letter-spacing: -.025em;
}

.or-page--contact .or-contact-card p {
    margin: 0 0 30px;
    color: #62696c;
    font-size: 1.05rem;
    line-height: 1.65;
}

.or-page--contact .or-contact-card .or-button {
    margin-top: auto;
    text-decoration: none;
    box-shadow: none;
}

.or-page--contact .or-contact-card .or-button--primary {
    background: #111315;
    border-color: #111315;
    color: #fff;
    border-radius: 999px;
}

.or-page--contact .or-contact-card .or-button--secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid #c6cac7;
    border-radius: 999px;
    background: transparent;
    color: #111315;
    font-size: .9rem;
    font-weight: 650;
    white-space: nowrap;
}

.or-page--contact .or-contact-card .or-button--secondary::after {
    content: none !important;
    display: none !important;
}

.or-page--contact .or-contact-card .or-button--secondary:hover {
    background: transparent;
    color: #555b5e;
}

@media (max-width: 900px) {
    .or-page--contact .or-contact-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .or-page--contact .or-contact-card {
        padding-bottom: 22px;
    }
}


/* AGENCY INQUIRY EDITORIAL */

.or-page--agency-inquiry {
    background: #ffffff;
    color: #111315;
}

.or-page--agency-inquiry .or-hero--compact {
    min-height: 0 !important;
    padding: clamp(90px, 9vw, 130px) 0
             clamp(65px, 7vw, 95px) !important;
    background: #f5f5f1 !important;
    background-image: none !important;
}

.or-page--agency-inquiry .or-hero h1 {
    max-width: 1050px;
    color: #111315 !important;
    font-size: clamp(3.4rem, 6vw, 6rem);
    font-weight: 690;
    line-height: 1;
    letter-spacing: -.052em;
    text-wrap: balance;
}

.or-page--agency-inquiry .or-hero__lead {
    color: #34393c !important;
    font-size: 1.18rem;
    line-height: 1.6;
}

.or-page--agency-inquiry > .or-section {
    padding: clamp(70px, 7vw, 105px) 0 !important;
    background: #fff !important;
}

.or-page--agency-inquiry .or-inquiry-layout {
    width: 100%;
    max-width: 1040px !important;
    margin-inline: auto;
}

.or-page--agency-inquiry .or-inquiry-form {
    width: 100%;
    max-width: none !important;
    padding: 42px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid #d9dcda !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.or-page--agency-inquiry .or-inquiry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 34px;
    row-gap: 28px;
}

.or-page--agency-inquiry .or-inquiry-field label {
    color: #111315;
    font-weight: 650;
}

.or-page--agency-inquiry .or-inquiry-field :is(
    input:not([type="checkbox"]),
    select,
    textarea
) {
    width: 100%;
    min-height: 52px;
    border: 1px solid #cfd4d0;
    border-radius: 9px;
    background: #fff;
    color: #111315;
    box-shadow: none;
}

.or-page--agency-inquiry .or-inquiry-field :is(
    input,
    select,
    textarea
):focus-visible {
    border-color: #111315;
    outline: 2px solid #111315;
    outline-offset: 2px;
}

.or-page--agency-inquiry .or-inquiry-form
button[type="submit"] {
    min-height: 52px;
    padding-inline: 26px;
    border-radius: 999px;
    background: #111315;
    border-color: #111315;
    color: #fff;
    box-shadow: none;
}

.or-page--agency-inquiry .or-inquiry-form
button[type="submit"]:hover {
    background: #2a2e30;
    border-color: #2a2e30;
    color: #fff;
}

@media (max-width: 700px) {
    .or-page--agency-inquiry .or-hero h1 {
        font-size: clamp(2.8rem, 11vw, 4rem);
    }

    .or-page--agency-inquiry .or-inquiry-grid {
        grid-template-columns: 1fr;
        gap: 23px;
    }

    .or-page--agency-inquiry .or-inquiry-form {
        padding-top: 28px !important;
    }
}

/* AGENCY INQUIRY TURNSTILE */
.or-page--agency-inquiry .or-inquiry-turnstile {
    width: 100%;
    margin: 30px 0 22px;
    min-height: 65px;
}
.or-page--agency-inquiry .or-inquiry-turnstile .cf-turnstile {
    max-width: 100%;
}

/* AGENCY INQUIRY TYPOGRAPHY */

.or-page--agency-inquiry {
    font-family: inherit;
    color: #111315;
}

.or-page--agency-inquiry :is(
    h1, h2, h3, p, label, span,
    input, select, textarea, button
) {
    font-family: inherit !important;
}

.or-page--agency-inquiry .or-inquiry-field label {
    color: #34393c;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.45;
}

.or-page--agency-inquiry .or-inquiry-field :is(
    input, select, textarea
) {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.45;
    color: #111315;
}

.or-page--agency-inquiry .or-inquiry-footer {
    display: flex;
    justify-content: center !important;
    align-items: center;
}

.or-page--agency-inquiry .or-inquiry-footer button[type="submit"] {
    margin: 0 auto !important;
    min-height: 50px;
    padding: 0 28px;
    font-size: .95rem;
    font-weight: 650;
    border-radius: 999px;
}

@media (max-width: 700px) {
    .or-page--agency-inquiry .or-inquiry-field :is(
        input, select, textarea
    ) {
        font-size: 16px;
    }
}
