/* =========================================================
   Toggle 2 Spaltig – Frontend Styles
   ========================================================= */

:root {
    --dt2-col-gap:         16px;
    --dt2-row-gap:         16px;
    --dt2-toggle-height:   auto;
    --dt2-toggle-radius:   12px;
    --dt2-toggle-bg:       transparent;
    --dt2-hover-bg:        #f0f0f0;
    --dt2-toggle-padding:  16px;
    --dt2-icon-color:      #1a73e8;
    --dt2-icon-size:       28px;
    --dt2-icon-weight:     300;
    --dt2-icon-stroke:     1.88;
    --dt2-label-color:     #222;
    --dt2-label-size:      1rem;
    --dt2-label-lh:        130%;
    --dt2-label-gap:       10px;
    --dt2-label-weight:    600;
    --dt2-label-font:      inherit;
    --dt2-label-transform: none;
    --dt2-sub-color:       #777;
    --dt2-sub-size:        0.81rem;
    --dt2-sub-weight:      400;
    --dt2-sub-font:        inherit;
    --dt2-sub-transform:   none;
    --dt2-sub-lh:          150%;
    --dt2-prefix-color:    #888;
    --dt2-prefix-size:     0.81rem;
    --dt2-prefix-lh:       130%;
    --dt2-transition:      0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Wrapper: 2-spaltiges Grid ── */
.dt2-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--dt2-row-gap) var(--dt2-col-gap);
    font-family: inherit;
}

@media (max-width: 640px) {
    .dt2-wrapper { grid-template-columns: 1fr; }
}

/* ── Toggle: position:relative für Kreuz oben rechts ── */
.dt2-toggle {
    background:    var(--dt2-toggle-bg, transparent);
    border:        none;
    border-radius: var(--dt2-toggle-radius);
    cursor:        pointer;
    user-select:   none;
    position:      relative;
    min-height:    var(--dt2-toggle-height, auto);
    transition:
        background var(--dt2-transition),
        transform  var(--dt2-transition);
}

.dt2-toggle:hover {
    background: var(--dt2-hover-bg);
    transform:  translateY(-1px);
}

.dt2-toggle.is-active {
    background: var(--dt2-hover-bg);
}

/* ── Hover: Präfix + Hauptzeile färben sich ein ── */
.dt2-toggle:hover .dt2-prefix,
.dt2-toggle.is-active .dt2-prefix,
.dt2-toggle:hover .dt2-label,
.dt2-toggle.is-active .dt2-label {
    color: #004CFF;
}

/* ── Kreuz: absolut oben rechts ── */
.dt2-icon {
    position: absolute;
    top:      var(--dt2-toggle-padding, 16px);
    right:    var(--dt2-toggle-padding, 16px);
    display:  flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.dt2-plus {
    display:   block;
    width:     var(--dt2-icon-size);
    height:    var(--dt2-icon-size);
    color:     var(--dt2-icon-color);
    overflow:  visible;
    transition:
        transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
        color     var(--dt2-transition);
}
.dt2-plus line {
    stroke-width: var(--dt2-icon-stroke);
    transition: stroke-width var(--dt2-transition);
}

.dt2-toggle:hover .dt2-plus,
.dt2-toggle.is-active .dt2-plus {
    transform: rotate(45deg);
}

/* ── Inhalt: Padding, rechts Platz für Kreuz ── */
.dt2-toggle-inner {
    padding:       var(--dt2-toggle-padding);
    /* Rechts Platz für Kreuz */
    padding-right: calc(var(--dt2-toggle-padding) + var(--dt2-icon-size) + 12px);
}

/* ── Textbereich ── */
.dt2-text {
    display:        flex;
    flex-direction: column;
    gap:            2px;
}

/* ── Präfix: auf gleicher Höhe wie Kreuz (absolute) ── */
.dt2-prefix {
    color:       var(--dt2-prefix-color);
    font-size:   var(--dt2-prefix-size);
    font-weight: 600;
    line-height: var(--dt2-prefix-lh);
    /* Gleiche Höhe wie das absolut positionierte Kreuz */
    min-height:  var(--dt2-icon-size);
    display:     flex;
    align-items: center;
    transition:  color var(--dt2-transition);
}

/* ── Hauptzeile ── */
.dt2-label {
    display:        block;
    color:          var(--dt2-label-color);
    font-size:      var(--dt2-label-size);
    font-weight:    var(--dt2-label-weight);
    font-family:    var(--dt2-label-font);
    text-transform: var(--dt2-label-transform);
    line-height:    var(--dt2-label-lh);
    margin-bottom:  var(--dt2-label-gap);
    transition:     color var(--dt2-transition);
}

/* ── Unterzeile (mehrzeilig) ── */
.dt2-sublabel {
    display:        block;
    color:          var(--dt2-sub-color);
    font-size:      var(--dt2-sub-size);
    font-weight:    var(--dt2-sub-weight);
    font-family:    var(--dt2-sub-font);
    text-transform: var(--dt2-sub-transform);
    line-height:    var(--dt2-sub-lh, 1.5);
    white-space:    pre-line;
}

/* =========================================================
   Overlay & Popup
   ========================================================= */

.dt2-overlay {
    display:         none;
    position:        fixed;
    inset:           0;
    background:      transparent;
    z-index:         2147483600;
    align-items:     center;
    justify-content: center;
    padding:         20px;
    animation:       dt2FadeIn 0.22s ease;
}

.dt2-overlay.is-visible { display: flex; }

@keyframes dt2FadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.dt2-popup {
    background:   #ffffff;
    width:        100%;
    max-width:    900px;
    max-height:   85vh;
    overflow:     hidden;
    position:     relative;
    padding:      0;
    border-radius: 16px;
    box-shadow:   0 12px 36px rgba(0,0,0,0.10);
    animation:    dt2SlideUp 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
    display:      flex;
    flex-direction: column;
}

@keyframes dt2SlideUp {
    from { transform: translateY(24px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

/* Schließen-Kreuz: jetzt INNERHALB des weißen Popups, oben rechts */
.dt2-close {
    position:        absolute;
    top:             18px;
    right:           18px;
    background:      #fff;
    border-radius:   50%;
    width:           40px;
    height:          40px;
    border:          none;
    cursor:          pointer;
    padding:         0;
    line-height:     0;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      opacity 0.2s, transform 0.2s, box-shadow 0.2s;
    opacity:         0.9;
    box-shadow:      0 2px 10px rgba(0,0,0,0.12);
    z-index:         20;
}

.dt2-close:hover {
    opacity:   1;
    transform: scale(1.15) rotate(90deg);
}

.dt2-popup-content {
    min-height: 100px;
    padding: 0;
    overflow-y: auto;
    flex: 1;
    position: relative;
}

/* ── Eine "Pane" pro Toggle – nur die aktive ist sichtbar ── */
.dt2-popup-pane {
    display: none;
    padding: 56px 40px 40px;
}
.dt2-popup-pane.is-active {
    display: block;
}

/* Titel: Präfix + Text, wie im Screenshot "01 Engineering & Integration..." */
.dt2-popup-title {
    display: flex;
    align-items: baseline;
    gap: 14px;
    font-family: 'Inter', sans-serif;
    font-size: 1.375rem;
    font-weight: 700;
    font-style: normal;
    line-height: 150%;
    text-decoration: none;
    text-transform: none;
    color: var(--dt2-popup-title-color, #1a5fd4);
    margin-bottom: 20px;
}
.dt2-popup-title-prefix {
    font-weight: 700;
}

.dt2-popup-divider {
    border: none;
    border-top: 1px solid #e2e2e2;
    margin: 0 0 28px;
}

/* Body: Text-Spalte und Bild-Spalte – exakt 50/50 */
.dt2-popup-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

/* Bild-Position umkehrbar (bleibt 50/50, nur Reihenfolge ändert sich) */
.dt2-popup-img-left .dt2-popup-body {
    grid-template-columns: 1fr 1fr;
}
.dt2-popup-img-left .dt2-popup-image-col { order: -1; }

.dt2-popup-text-col {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.dt2-popup-bullets {
    margin: 0;
    padding-left: 20px;
    list-style: disc;
}
.dt2-popup-bullets li {
    font-family: 'Inter', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    font-style: normal;
    line-height: 150%;
    text-decoration: none;
    text-transform: none;
    color: #222;
    margin-bottom: 6px;
}

.dt2-popup-text {
    font-family: 'Inter', sans-serif;
    font-size: 1.125rem;
    font-weight: 400;
    font-style: normal;
    line-height: 190%;
    text-decoration: none;
    text-transform: none;
    color: var(--dt2-popup-text-color, #333333);
}

/* ── Text rutscht links, Pfeil erscheint rechts bei Hover ── */
align-self: flex-start;
    margin-top: 8px;
.dt2-popup-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 260px;
    padding: 12px 0;
    border-radius: 999px;
    background: #004CFF;
    color: #ffffff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 0.95rem;
    text-decoration: none !important;
    overflow: hidden;
    cursor: pointer;
    border: none;
}
.dt2-popup-button .btn-text {
    color: #ffffff !important;
    display: inline-block;
    transition: transform 0.3s ease;
    transform: translateX(0);
    white-space: nowrap;
}
.dt2-popup-button .btn-arrow {
    display: inline-flex;
    align-items: center;
    opacity: 0;
    max-width: 0;
    overflow: hidden;
    transition: opacity 0.3s ease, max-width 0.3s ease, margin-left 0.3s ease;
    margin-left: 0;
    flex-shrink: 0;
}
.dt2-popup-button:hover .btn-text {
    transform: translateX(-8px);
}
.dt2-popup-button:hover .btn-arrow {
    opacity: 1;
    max-width: 32px;
    margin-left: 6px;
}

.dt2-popup-image-col img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
}

/* ── Mobile: Bild unter den Text, Pane-Padding kleiner ── */
@media (max-width: 700px) {
    .dt2-popup-pane { padding: 56px 24px 28px; }
    .dt2-popup-body {
        grid-template-columns: 1fr !important;
    }
    .dt2-popup-image-col { order: 2 !important; }
}
