:root{
  --emp-primary:#e30511;
  --emp-primary-dark:#b8000d;
  --emp-text:#2f2f2f;
  --emp-muted:#666666;
  --emp-surface:#ffffff;
  --emp-soft:#f5f5f5;
  --emp-border:#e30511;
  --emp-shadow:2px 2px 4px rgba(0,0,0,.06);
  --emp-radius:8px;
}

/* =========================================================
   Event Manager Pro – Frontend Styles
   ---------------------------------------------------------
   Inhalt:
   1. Grundstruktur / Listen / Karten
   2. Buttons / Badges / Leere Zustände
   3. Single-Event
   4. Kalender
   5. Startseiten-Shortcode [emp_home_next_event]
   6. Responsive
   ========================================================= */


/* =========================================================
   1. Grundstruktur / Listen / Karten
   ========================================================= */

.emp-event-list{
  display:grid !important;
  gap:20px !important;
}

.emp-card,
.emp-single-card{
  background:linear-gradient(180deg,#eeeeee 0%,#ffffff 100%) !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:var(--emp-radius) !important;
  box-shadow:var(--emp-shadow) !important;
  overflow:hidden !important;
}

.emp-card{
  display:grid !important;
  grid-template-columns:minmax(220px, 320px) 1fr !important;
}

.emp-card-thumb{
  display:block !important;
  text-decoration:none !important;
}

.emp-card-thumb img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  border:0 !important;
}

.emp-card-content{
  padding:20px !important;
}

.emp-card-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-bottom:14px !important;
}

.emp-card-title,
.emp-single-header h2{
  margin:0 0 10px !important;
  font-size:24px !important;
  line-height:1.25 !important;
  color:var(--emp-primary) !important;
  font-weight:700 !important;
}

.emp-card-title a,
.emp-single-header h2 a{
  color:inherit !important;
  text-decoration:none !important;
}

.emp-card-title a:hover,
.emp-single-header h2 a:hover{
  color:var(--emp-primary-dark) !important;
}

.emp-card-location,
.emp-single-meta{
  color:var(--emp-muted) !important;
  font-size:14px !important;
  line-height:1.5 !important;
}

.emp-card-location{
  margin-bottom:12px !important;
  font-weight:600 !important;
}

.emp-card-excerpt{
  color:var(--emp-text) !important;
  font-size:14px !important;
  line-height:1.65 !important;
}

.emp-card-excerpt p:last-child{
  margin-bottom:0 !important;
}


/* =========================================================
   2. Buttons / Badges / Leere Zustände
   ========================================================= */

.emp-badge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:6px 10px !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:8px !important;
  background:#ffffff !important;
  color:var(--emp-primary) !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
}

.emp-badge--soft{
  background:#f5f5f5 !important;
}

.emp-card-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin-top:18px !important;
}

a.emp-button,
.emp-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:38px !important;
  padding:10px 16px !important;
  border-radius:8px !important;
  border:1.5px solid var(--emp-primary) !important;
  background:#ffffff !important;
  color:var(--emp-primary) !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-decoration:none !important;
  transition:all .18s ease !important;
  box-shadow:1px 1px 2px rgba(0,0,0,.04) !important;
}

a.emp-button:hover,
a.emp-button:focus,
.emp-button:hover,
.emp-button:focus{
  background:var(--emp-primary) !important;
  color:#ffffff !important;
  transform:translateY(-1px) !important;
}

.emp-button--ghost{
  background:#f5f5f5 !important;
}

.emp-empty{
  padding:18px !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:var(--emp-radius) !important;
  background:#ffffff !important;
  color:var(--emp-muted) !important;
}


/* =========================================================
   3. Single-Event
   ========================================================= */

.emp-single-card{
  padding:22px !important;
}

.emp-single-header{
  margin-bottom:18px !important;
}

.emp-single-content{
  color:var(--emp-text) !important;
  line-height:1.7 !important;
}

.emp-single-content > *:first-child{
  margin-top:0 !important;
}

.emp-single-content > *:last-child{
  margin-bottom:0 !important;
}

.emp-single-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  gap:18px !important;
  margin-top:20px !important;
}

.emp-info-box{
  background:#ffffff !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:var(--emp-radius) !important;
  box-shadow:var(--emp-shadow) !important;
  padding:16px !important;
}

.emp-info-box h4{
  margin:0 0 10px !important;
  color:var(--emp-primary) !important;
  font-size:18px !important;
  line-height:1.3 !important;
  font-weight:700 !important;
}

.emp-info-box p{
  margin:10px 0 0 !important;
}

.emp-info-box a{
  color:var(--emp-primary) !important;
  font-weight:700 !important;
  text-decoration:none !important;
}

.emp-info-box a:hover{
  color:var(--emp-primary-dark) !important;
}


/* =========================================================
   4. Kalender
   ========================================================= */

.emp-calendar-wrap{
  background:linear-gradient(180deg,#eeeeee 0%,#ffffff 100%) !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:var(--emp-radius) !important;
  box-shadow:var(--emp-shadow) !important;
  padding:20px !important;
}

.emp-calendar-header h3{
  margin:0 0 16px !important;
  color:var(--emp-primary) !important;
  font-size:24px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
}

.emp-calendar-grid{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0,1fr)) !important;
  gap:10px !important;
}

.emp-calendar-weekdays{
  margin-bottom:10px !important;
}

.emp-calendar-weekdays > div{
  text-align:center !important;
  font-size:13px !important;
  font-weight:700 !important;
  color:var(--emp-primary) !important;
}

.emp-day{
  min-height:120px !important;
  border:1.5px solid rgba(227,5,17,.18) !important;
  border-radius:8px !important;
  background:#ffffff !important;
  padding:10px !important;
}

.emp-day-empty{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

.emp-day-number{
  font-size:14px !important;
  font-weight:800 !important;
  color:var(--emp-primary) !important;
  margin-bottom:8px !important;
}

.emp-day-events{
  display:grid !important;
  gap:6px !important;
}

.emp-day-event{
  display:block !important;
  padding:6px 8px !important;
  border-radius:8px !important;
  background:#f5f5f5 !important;
  color:var(--emp-text) !important;
  font-size:12px !important;
  font-weight:700 !important;
  text-decoration:none !important;
  line-height:1.35 !important;
}

.emp-day-event:hover{
  color:var(--emp-primary) !important;
  background:#ffffff !important;
}


/* =========================================================
   5. Startseiten-Shortcode [emp_home_next_event]
   ---------------------------------------------------------
   Besonders robust gegen Theme-/Elementor-Heading-Styles
   ========================================================= */

.emp-home-next-event{
  width:100% !important;

  --emp-home-box-bg:#ffffff;
  --emp-home-box-border:#e30511;
  --emp-home-title-color:#e30511;
  --emp-home-event-title-color:#2f2f2f;
  --emp-home-time-value-color:#e30511;
  --emp-home-time-label-color:#e30511;
  --emp-home-time-box-bg:#ffffff;
  --emp-home-time-box-border:#e30511;
  --emp-home-info-color:#666666;
  --emp-home-radius:8px;
}

.emp-home-next-event .emp-home-next-event-box{
  background:var(--emp-home-box-bg) !important;
  border-radius:var(--emp-home-radius) !important;
  box-shadow:var(--emp-shadow) !important;
  border:1.5px solid var(--emp-home-box-border) !important;
  padding:22px 20px 20px !important;
  position:relative !important;
  overflow:hidden !important;
}

.emp-home-next-event .emp-home-next-event-box::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg,#eeeeee 0%,#ffffff 100%) !important;
  pointer-events:none !important;
}

.emp-home-next-event .emp-home-next-event-header,
.emp-home-next-event .emp-home-next-event-footer,
.emp-home-next-event .emp-home-next-event-timers{
  position:relative !important;
  z-index:1 !important;
}

.emp-home-next-event .emp-home-next-event-title{
  margin:0 0 5px !important;
  font-size:23px !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  line-height:1.25 !important;
  color:var(--emp-home-title-color) !important;
}

.emp-home-next-event .emp-home-next-event-subtitle{
  margin:0 !important;
  color:var(--emp-home-event-title-color) !important;
  font-size:15px !important;
  font-weight:500 !important;
  line-height:1.45 !important;
}

.emp-home-next-event .emp-home-next-event-timers{
  margin-top:18px !important;
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:14px !important;
}

.emp-home-next-event .emp-home-next-event-timebox{
  background:var(--emp-home-time-box-bg) !important;
  border-radius:var(--emp-home-radius) !important;
  box-shadow:2px 2px 4px rgba(227,5,17,.18) !important;
  padding:12px 6px !important;
  text-align:center !important;
  border:1.5px solid var(--emp-home-time-box-border) !important;
}

.emp-home-next-event .emp-home-next-event-value{
  display:block !important;
  font-size:23px !important;
  font-weight:700 !important;
  color:var(--emp-home-time-value-color) !important;
  font-variant-numeric:tabular-nums !important;
  line-height:1 !important;
}

.emp-home-next-event .emp-home-next-event-label{
  display:block !important;
  margin-top:6px !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  color:var(--emp-home-time-label-color) !important;
  line-height:1.2 !important;
}

.emp-home-next-event .emp-home-next-event-footer{
  margin-top:14px !important;
  display:flex !important;
  justify-content:space-between !important;
  gap:12px !important;
  flex-wrap:wrap !important;
}

.emp-home-next-event .emp-home-next-event-info{
  margin:0 !important;
  color:var(--emp-home-info-color) !important;
  font-size:12px !important;
  line-height:1.5 !important;
}

.emp-home-next-event .emp-home-next-event-seconds.is-hidden{
  display:none !important;
}


/* =========================================================
   6. Responsive
   ========================================================= */

@media (max-width: 980px){
  .emp-card{
    grid-template-columns:1fr !important;
  }

  .emp-single-grid{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 640px){
  .emp-calendar-grid,
  .emp-home-next-event .emp-home-next-event-timers{
    grid-template-columns:1fr !important;
  }

  .emp-card-content,
  .emp-single-card,
  .emp-calendar-wrap{
    padding:18px !important;
  }

  .emp-card-actions{
    flex-direction:column !important;
    align-items:stretch !important;
  }

  a.emp-button,
  .emp-button{
    width:100% !important;
  }
}