/* Small, theme-neutral components; namespaced to avoid conflicts with Root Child. */
.dpoifo-catalog-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; width:100%; margin:24px 0; }
.dpoifo-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,220px); align-items:center; gap:24px; padding:20px 24px; border:1px solid #dce4ed; border-radius:10px; background:#fff; box-shadow:0 2px 9px rgba(20,39,61,.035); }
.dpoifo-card__main { min-width:0; }
.dpoifo-card__title { margin:0 0 12px; font-size:1.23em; line-height:1.35; }
.dpoifo-card__title a { text-decoration:none; }
.dpoifo-badges { display:flex; gap:7px; flex-wrap:wrap; }
.dpoifo-badge { display:inline-block; border-radius:6px; padding:4px 9px; color:#344d69; background:#eef3f8; font-size:.8em; line-height:1.45; }
.dpoifo-card__price { min-width:0; display:flex; flex-direction:column; align-items:flex-end; text-align:right; gap:5px; padding-left:20px; border-left:1px solid #e9edf1; }
.dpoifo-card__price-label { color:#506172; font-size:.86em; }
.dpoifo-price { font-size:1.15em; line-height:1.4; }
.dpoifo-catalog-empty { margin:24px 0; }
.dpoifo-education-table-wrap { width:100%; overflow-x:auto; margin:20px 0; }
.dpoifo-education-table { width:100%; border-collapse:collapse; text-align:left; }
.dpoifo-education-table th, .dpoifo-education-table td { border:1px solid #dce4ed; padding:12px; vertical-align:top; }
.dpoifo-education-table th { background:#f2f6fa; }
.dpoifo-education-table td:last-child { white-space:nowrap; }
.dpoifo-education-empty { margin:20px 0; }
#primary.dpoifo-content-area { width:100%; max-width:100%; float:none; }
.dpoifo-product { max-width:900px; padding:16px 0 42px; }
.dpoifo-trail { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 18px; font-size:.9em; }
.dpoifo-product__header { border-bottom:1px solid #e3e8ee; padding-bottom:19px; margin-bottom:25px; }
.dpoifo-product__header h1 { margin:0 0 20px; line-height:1.2; }
.dpoifo-product__price { margin:18px 0 0; font-size:1.15em; }
.dpoifo-product__price span { color:#506172; }
.dpoifo-product__image { margin:0 0 25px; }
.dpoifo-product__image img { width:100%; max-width:100%; height:auto; border-radius:8px; }
.dpoifo-detail-section { margin:0 0 27px; }
.dpoifo-detail-section h2 { font-size:1.35em; margin-bottom:12px; }
.dpoifo-detail-section__body p:last-child { margin-bottom:0; }
.dpoifo-product__pdf { margin:20px 0; }
.dpoifo-product__contact { margin:24px 0 0; }
.dpoifo-product__contact a { display:inline-block; padding:11px 17px; border:1px solid currentColor; border-radius:7px; text-decoration:none; font-weight:600; }
@media(max-width:700px) { .dpoifo-catalog-grid { gap:14px; } .dpoifo-card { grid-template-columns:1fr; gap:12px; padding:17px; } .dpoifo-card__price { align-items:flex-start; text-align:left; border-left:0; border-top:1px solid #e9edf1; padding:12px 0 0; } .dpoifo-product { padding-top:6px; } }

/*
 * Only the catalog listing leaves a theme's narrow centered text column.
 * Do not change Root or Root Child containers: other content stays intact.
 * Root site's maximum content width on this site is ~1170px; leave 20px
 * of space on both sides (1130px), scaling down on smaller screens.
 */
@media (min-width: 768px) {
    body.dpoifo-catalog-page .dpoifo-catalog-grid {
        box-sizing: border-box;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
        width: min(1130px, calc(100vw - 80px)) !important;
        max-width: none !important;
    }
    body.dpoifo-catalog-page .dpoifo-catalog-grid > .dpoifo-card {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}

/* Only the official vacancies shortcode; existing catalog and education styles are unchanged. */
.dpoifo-vacancies-table-wrap { width:100%; overflow-x:auto; margin:20px 0; }
.dpoifo-vacancies-table { width:100%; min-width:780px; border-collapse:collapse; text-align:left; }
.dpoifo-vacancies-table th, .dpoifo-vacancies-table td { border:1px solid #dce4ed; padding:12px; vertical-align:top; }
.dpoifo-vacancies-table th { background:#f2f6fa; }
.dpoifo-vacancies-table th:first-child { min-width:230px; }
.dpoifo-vacancies-table td:not(:first-child) { text-align:center; white-space:nowrap; }
.dpoifo-vacancies-empty { margin:20px 0; }
