/*
 * TEN IT Divi Child – Sektionen (Karten, Reihen, CTA, Schritte, Karte).
 * Struktur nachgebaut aus assets/css/visual-builder-front.css,
 * Farb-/Feinschliff aus assets/css/tenit.css des TEN-IT-Master-Themes.
 */

.ik-vb-section { padding-block: clamp(56px, 7vw, 96px); }
.ik-vb-bg-white { background: #fff; }
.ik-vb-bg-light { background: #f5f5f2; }
.ik-vb-bg-dark { color: rgba(255,255,255,.86); background: #111315; }
.ik-vb-bg-dark h1, .ik-vb-bg-dark h2, .ik-vb-bg-dark h3 { color: #fff; }
.ik-vb-bg-dark a:not(.ik-button) { color: #fff; }

.ik-vb-heading { max-width: 800px; margin-bottom: clamp(30px, 4vw, 48px); }
.ik-vb-heading .ik-vb-title { }
.tenit-facts .ik-vb-heading .ik-vb-title,
.tenit-cta .ik-vb-title { }
.ik-vb-intro { }
.ik-vb-richtext { }
.ik-vb-richtext p:last-child { margin-bottom: 0; }
.ik-text-link { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; margin-top: 12px; }


/* Karten */
.ik-vb-card-grid { display: grid; gap: 22px; }
.ik-vb-columns-1 { grid-template-columns: 1fr; }
.ik-vb-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ik-vb-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ik-vb-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ik-vb-card { overflow: hidden; background: #fff; border: 1px solid #e4e1dc; border-radius: 10px; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.ik-vb-card:hover { transform: translateY(-5px); border-color: #d5b581; box-shadow: 0 16px 42px rgba(20,20,20,.08); }
.ik-vb-card__media { height: 210px; margin: 0; overflow: hidden; background: #f3f3f1; border-bottom: 1px solid #e4e1dc; }
.ik-vb-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ik-vb-card:hover .ik-vb-card__media img { transform: scale(1.03); }
.ik-vb-card__body { padding: 28px; }
.ik-vb-card__label { display: inline-flex; min-height: 26px; align-items: center; margin-bottom: 14px; padding: 5px 10px; border-radius: 99px; background: #fff4e2; }
.ik-vb-item-title { margin: 0 0 10px; }

/* Reihen (Fakten, Splits, Support/Kontakt/Job-Karten) */
.ik-vb-row-grid { display: grid; grid-template-columns: var(--ik-vb-row-columns, repeat(2, minmax(0, 1fr))); align-items: var(--ik-vb-row-align, start); gap: 28px; }
.ik-vb-row-column { min-width: 0; }
.tenit-facts .ik-vb-row-grid { gap: 0 !important; border-top: 1px solid #e4e1dc; border-bottom: 1px solid #e4e1dc; }
.tenit-facts .ik-vb-row-column { padding: 26px 32px; border-right: 1px solid #e4e1dc; }
.tenit-facts .ik-vb-row-column:last-child { border-right: 0; }
.tenit-facts .ik-vb-item-title { }
.tenit-service-split .ik-vb-row-column { padding: 36px; border: 1px solid #33373b; border-radius: 10px; background: #181b1e; }

.tenit-service-split li::marker { color: #e89a22; }
.tenit-support-cards .ik-vb-row-column, .tenit-contact-grid .ik-vb-row-column, .tenit-job-grid .ik-vb-row-column { background: #fff; border: 1px solid #e4e1dc; border-radius: 10px; padding: 30px; }

@media (max-width: 900px) {
    .tenit-facts .ik-vb-row-column { border-right: 0; border-bottom: 1px solid #e4e1dc; padding: 20px 0; }
    .tenit-facts .ik-vb-row-column:last-child { border-bottom: 0; }
    .ik-vb-row-grid { grid-template-columns: 1fr !important; }
}

/* CTA */
.ik-vb-cta-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(30px, 5vw, 60px); }
.ik-vb-cta .ik-vb-actions { justify-content: flex-end; margin-top: 0; }
.tenit-cta { position: relative; overflow: hidden; }

@media (max-width: 760px) {
    .ik-vb-cta-grid { grid-template-columns: 1fr; text-align: left; }
    .ik-vb-cta .ik-vb-actions { justify-content: flex-start; margin-top: 20px; }
}

/* Schritte */
.ik-vb-step-grid { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; }
.ik-vb-step { position: relative; padding: 28px 24px; background: #fff; border: 1px solid #e4e1dc; border-radius: 10px; }
.ik-vb-step__number { display: inline-grid; width: 40px; height: 40px; place-items: center; margin-bottom: 18px; background: #e89a22; color: #111315; border-radius: 50%; font-weight: 800; font-size: 13px; }
@media (max-width: 900px) { .ik-vb-step-grid.ik-vb-columns-4, .ik-vb-card-grid.ik-vb-columns-4, .ik-vb-card-grid.ik-vb-columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ik-vb-step-grid, .ik-vb-card-grid { grid-template-columns: 1fr !important; } }

/* Karte (Anfahrt) */
.ik-vb-map { height: var(--ik-vb-map-height, 420px); overflow: hidden; border-radius: 12px; background: #e9eef3; }
.ik-vb-map iframe { width: 100% !important; height: 100% !important; border: 0; }
