/* Karte */
.tt-card { position: relative; overflow: hidden; }

/* Button */
.tt-video-btn{
  position:absolute; top:8px; right:8px;
  width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:12px; text-decoration:none;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
  transition:transform .15s ease, opacity .15s ease; z-index:9;
}
.tt-video-btn:hover{ transform: scale(1.05); }

.tt-gradient-corner{
  background: linear-gradient(135deg, #ff7a18 0%, #af002d 50%, #319197 100%);
}

.tt-video-btn .tt-play{
  width:0; height:0;
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  border-left:14px solid #fff;
  margin-left:2px;
}

/* Sicherheitsnetz Grid */
.elementor-widget-loop-grid .elementor-loop-item{ max-width:100%; }
.elementor-widget-loop-grid .e-con{ min-width:0; }

/* ===== Modal-Lightbox ===== */
.tt-modal-overlay{
  position: fixed; inset:0;
  background: rgba(0,0,0,.72);
  display: none; align-items: center; justify-content: center;
  z-index: 99999; padding: 24px;
}
.tt-modal-overlay.is-open{ display:flex; }

.tt-modal{
  position: relative;
  width: min(1200px, 92vw);
  aspect-ratio: 16 / 9;
  background: #000; border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
  overflow: hidden;
}

/* WICHTIG: Body füllt die Box absolut */
.tt-modal-body{ position:absolute; inset:0; }

/* Medien IMMER auf volle Größe, andere Regeln überstimmen */
.tt-modal .tt-media{
  position:absolute; inset:0;
  width:100% !important; height:100% !important;
  max-width:none !important; max-height:none !important;
  display:block; border:0; background:#000;
  object-fit: contain; /* Selfhosted-Video */
}
