.ocf-detail-grid { display:grid;grid-template-columns:minmax(0,760fr) minmax(0,440fr);gap:calc(var(--ocf-grid-gap) * 4);align-items:start; }
.ocf-detail-aside { position:sticky;top: var(--dakota-sticky-top); }
@media(max-width:900px) { .ocf-detail-grid { grid-template-columns:1fr;gap:calc(var(--ocf-grid-gap) * 2); }.ocf-detail-aside { position:static; } }

/* Inquiry panel: forest card (--dakota-band) — gold eyebrow, display heading, intro, gold CTA, phone row, a hairline
 * and the reassurance line. Sticky on desktop. */
.ocf-inquiry-panel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 36px;
    border: 0;
    border-radius: var(--radius-lg);
    background: var(--dakota-band);
    color: color-mix(in srgb, var(--ocf-heading-alt) 86%, transparent);
    --ocf-control-accent: var(--ocf-secondary);
}

.ocf-inquiry-panel .eyebrow,
.ocf-inquiry-panel h3,
.ocf-inquiry-panel p { margin: 0; }

.ocf-inquiry-panel .eyebrow { color: var(--ocf-secondary); }

.ocf-inquiry-panel h3 {
    color: var(--ocf-heading-alt);
    font-size: clamp(1.375rem, 1.8vw, 1.625rem);
    line-height: 1.2;
}

.ocf-inquiry-intro {
    font-size: calc(var(--font-body-size) * 0.94);
    line-height: 1.6;
}

.ocf-inquiry-panel .btn-primary {
    justify-content: center;
    margin-top: 4px;
    text-align: center;
}

.ocf-inquiry-call {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 16px;
    border-top: var(--card-border-width) solid color-mix(in srgb, var(--ocf-heading-alt) 15%, transparent);
    color: var(--ocf-heading-alt);
}

.ocf-inquiry-call > span { display: contents; }

.ocf-inquiry-call__label { color: color-mix(in srgb, var(--ocf-heading-alt) 72%, transparent); font-size: var(--ocf-font-small-size); }

.ocf-inquiry-call strong {
    font-size: calc(var(--font-body-size) * 1.12);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
}

.ocf-inquiry-call:hover strong { color: var(--ocf-secondary); }

/* Long-form lists. Ordered lists: numbered cards (primary badge). Unordered lists: alt-surface rows with a check badge. */
.ocf-longform ol,
.ocf-longform ul {
    display: grid;
    gap: 12px;
    margin: calc(var(--ocf-grid-gap) * 0.75) 0 var(--ocf-grid-gap);
    padding-left: 0;
    list-style: none;
}

.ocf-longform ol { counter-reset: dakota-step; }

.ocf-longform ol > li,
.ocf-longform ul > li {
    position: relative;
    display: block;
    min-height: 72px;
    margin: 0;
    padding: 23px 20px 23px 72px;
    border-radius: var(--card-radius);
    background: var(--dakota-bg-alt);
    color: var(--ocf-heading);
    line-height: 1.5;
}

.ocf-longform li + li { margin-top: 0; }

.ocf-longform ol > li { counter-increment: dakota-step; }

.ocf-longform ol > li::before,
.ocf-longform ul > li::before {
    position: absolute;
    top: 16px;
    left: 16px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    background: var(--ocf-primary);
    color: var(--ocf-primary-contrast);
}

.ocf-longform ol > li::before {
    content: counter(dakota-step, decimal-leading-zero);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: 13px;
    letter-spacing: 0.02em;
}

.ocf-longform ul > li::before {
    content: "";
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center / 18px no-repeat,
        var(--ocf-primary);
}

@media (max-width: 640px) {
    .ocf-inquiry-panel { padding: 28px; }
    .ocf-longform ol > li,
    .ocf-longform ul > li { padding-left: 66px; }
}
