/* ============================================================= VITEC Backend Preview Styles Wird über in den Content Blocks eingebunden ============================================================= */ .vitec-preview { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; padding: 0.75rem; border-left: 4px solid var(--vitec-accent, #F47937); background: var(--typo3-state-default-bg, #f8f9fa); border-radius: 4px; align-items: start; font-size: 0.875rem; line-height: 1.4; } .vitec-preview--orange { border-left-color: #F47937; } .vitec-preview--blue { border-left-color: #26358C; } .vitec-preview--graphite { border-left-color: #313131; } .vitec-preview--midnight { border-left-color: #0D0D0D; } .vitec-preview--light { border-left-color: #cccccc; } /* Thumbnail-Slot */ .vitec-preview__thumb { width: 120px; height: 80px; object-fit: cover; border-radius: 3px; background: #e5e5e5; flex-shrink: 0; } .vitec-preview__thumb-placeholder { width: 120px; height: 80px; display: flex; align-items: center; justify-content: center; background: repeating-linear-gradient( 45deg, #e5e5e5, #e5e5e5 8px, #f0f0f0 8px, #f0f0f0 16px ); color: #999; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 3px; flex-shrink: 0; } /* Content-Slot */ .vitec-preview__body { min-width: 0; overflow-wrap: anywhere; word-break: break-word; } .vitec-preview__label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: #666; font-weight: 600; margin-bottom: 0.35rem; } .vitec-preview__eyebrow { font-size: 0.7rem; color: #F47937; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.15rem; } .vitec-preview__headline { font-size: 1rem; font-weight: 600; margin: 0 0 0.2rem 0; color: var(--typo3-text-color, #333); } .vitec-preview__subline { font-size: 0.85rem; color: #666; margin-bottom: 0.35rem; } .vitec-preview__body-text { font-size: 0.8rem; color: #555; margin-bottom: 0.5rem; max-height: 2.6em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } /* Settings-Slot (Badges) */ .vitec-preview__settings { display: flex; flex-direction: column; gap: 0.25rem; align-items: flex-end; min-width: 80px; } .vitec-badge { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.5rem; font-size: 0.7rem; background: rgba(0,0,0,0.06); border-radius: 3px; color: #444; white-space: nowrap; } .vitec-badge--primary { background: #F47937; color: white; } .vitec-badge--secondary { background: transparent; border: 1px solid #F47937; color: #F47937; } .vitec-badge--warning { background: #fef3c7; color: #92400e; } .vitec-badge__dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; } .vitec-badge__dot--orange { background: #F47937; } .vitec-badge__dot--blue { background: #26358C; } .vitec-badge__dot--graphite { background: #313131; } .vitec-badge__dot--midnight { background: #0D0D0D; } .vitec-badge__dot--light { background: #cccccc; border: 1px solid #999; } /* CTA-Leiste */ .vitec-preview__ctas { display: flex; gap: 0.4rem; margin-top: 0.4rem; flex-wrap: wrap; } .vitec-preview__cta-btn { display: inline-block; padding: 0.15rem 0.6rem; background: #F47937; color: white !important; font-size: 0.75rem; border-radius: 3px; text-decoration: none; } .vitec-preview__cta-btn--secondary { background: transparent; color: #F47937 !important; border: 1px solid #F47937; } /* Dark Mode Support */ @media (prefers-color-scheme: dark) { .vitec-preview { background: rgba(255,255,255,0.04); } .vitec-preview__headline { color: #eee; } .vitec-preview__subline, .vitec-preview__body-text { color: #bbb; } .vitec-badge { background: rgba(255,255,255,0.08); color: #ddd; } } /* Responsive Fallback */ @media (max-width: 900px) { .vitec-preview { grid-template-columns: 1fr; } .vitec-preview__settings { flex-direction: row; align-items: flex-start; flex-wrap: wrap; } } /* Small monitors: drop the body text — label, headline and badges stay. */ @media (max-width: 1400px) { .vitec-preview__body-text { display: none; } } /* Real fix: react to the PREVIEW COLUMN width, not the monitor width. The page-module body of a CE containing a vitec preview becomes a size container (e.g. inside narrow b13 container columns). */ .t3-page-ce-body:has(.vitec-preview) { container-type: inline-size; } /* Narrow column: stack the grid, drop the body text, badges in a row. */ @container (max-width: 700px) { .vitec-preview { grid-template-columns: 1fr; } .vitec-preview__body-text { display: none; } .vitec-preview__settings { flex-direction: row; align-items: flex-start; flex-wrap: wrap; } .vitec-preview__thumb, .vitec-preview__thumb-placeholder { max-width: 100%; height: auto; } } /* Very narrow column: only label, headline and badges survive. */ @container (max-width: 420px) { .vitec-preview__subline { display: none; } } /* ============================================================= Collapsible section previews (sub-market template, 2026-10-02) Same practical effect as the container collapse on Two Columns, built with
so it works for ANY element preview. ============================================================= */ details.vitec-collapse { border-left: 4px solid #26358C; background: var(--typo3-state-default-bg, #f8f9fa); border-radius: 4px; } details.vitec-collapse > summary { cursor: pointer; padding: 0.6rem 0.75rem; display: flex; gap: 0.75rem; align-items: center; list-style: none; font-size: 0.875rem; } details.vitec-collapse > summary::-webkit-details-marker { display: none; } details.vitec-collapse > summary::before { content: '▸'; color: #F47937; transition: transform 0.15s ease; flex: 0 0 auto; } details.vitec-collapse[open] > summary::before { transform: rotate(90deg); } .vitec-collapse__label { font-weight: 700; color: #26358C; white-space: nowrap; } .vitec-collapse__hint { color: #666; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .vitec-collapse__thumb { width: 72px; height: 44px; object-fit: cover; border-radius: 3px; flex: 0 0 auto; } .vitec-collapse__body { padding: 0 0.75rem 0.75rem 2.1rem; font-size: 0.875rem; } .vitec-collapse__body p { margin: 0.25rem 0; } .vitec-collapse__body img { max-width: 280px; border-radius: 3px; margin-top: 0.4rem; } /* The page module disables pointer events on preview content so clicks hit the element row - re-enable them inside our collapsible previews, or the summary can never be toggled (found 2026-10-02). */ details.vitec-collapse, details.vitec-collapse * { pointer-events: auto; } details.vitec-collapse > summary { user-select: none; } /* ============================================================= Collapsible page-module COLUMNS (sub-market sections etc.), container-style: chevron button at the right of the column header, state kept per page+column in localStorage. ============================================================= */ .t3-page-column-header { position: relative; } button.vitec-col-toggle { position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%); border: 0; background: transparent; cursor: pointer; font-size: 1rem; line-height: 1; color: #F47937; padding: 0.25rem 0.4rem; } button.vitec-col-toggle:hover { color: #26358C; } td.t3-page-column.vitec-col-collapsed > :not(:first-child) { display: none; }