/* ==========================================================================
   Kajinga Display Conditions — Client-Side Device-Hide (v0.57.0)
   --------------------------------------------------------------------------
   Server-Conditions werfen das Element bereits vor dem Render aus dem
   HTML-Output. Hier wird nur der client-side Device-Filter abgehandelt:
   das Element bleibt im DOM, aber wird per @media ausgeblendet wenn das
   aktuelle Endgerät nicht in der `data-ke-dc-devices`-Liste am Wrapper steht.

   Die Hide-Klassen werden vom JS gesetzt:
     .ke-dc-hide-desktop  → display:none ab Tablet-Breakpoint aufwärts
     .ke-dc-hide-tablet   → display:none im Tablet-Range
     .ke-dc-hide-mobile   → display:none unterhalb Tablet-Breakpoint

   Elementor-Standard-Breakpoints:
     - Mobile:  bis 767 px
     - Tablet:  768–1024 px
     - Desktop: ab 1025 px
   ========================================================================== */

@media (max-width: 767px) {
    .ke-dc-hide-mobile { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .ke-dc-hide-tablet { display: none !important; }
}
@media (min-width: 1025px) {
    .ke-dc-hide-desktop { display: none !important; }
}

/* ==========================================================================
   Zeit-Gates — time_on_page / video_progress (v1.9.16)
   --------------------------------------------------------------------------
   Pre-Hide direkt über die server-gerenderten Data-Attribute: kein FOUC,
   auch ohne/vor JS. Das JS schaltet frei:
     .ke-dc-revealed → Element einblenden (mode=show erreicht)
     .ke-dc-expired  → Element ausblenden (mode=hide erreicht)
     .ke-dc-instant  → Reveal ohne Animation (aus localStorage beim Laden)
   Im Editor werden die Attribute nicht ausgegeben (isEditorPreview-Gate).
   ========================================================================== */

[data-ke-dc-time][data-ke-dc-mode="show"]:not(.ke-dc-revealed),
[data-ke-dc-video][data-ke-dc-mode="show"]:not(.ke-dc-revealed) {
    display: none !important;
}

.ke-dc-expired {
    display: none !important;
}

.ke-dc-revealed:not(.ke-dc-instant) {
    animation: ke-dc-fade-in 0.5s ease-out both;
}

@keyframes ke-dc-fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ke-dc-revealed { animation: none !important; }
}
