:root{ --kwa-text: rgb(34,30,40); --kwa-teal:#12736e; --kwa-teal-hover:#0d5c58; --kwa-border:#e5e7eb; --kwa-field:#d1d5db; --kwa-bg-soft:#f9fafb; }
.kwa-bewerbung, .kwa-bewerbung h2, .kwa-bewerbung h3, .kwa-bewerbung label, .kwa-bewerbung p, .kwa-bewerbung li, .kwa-result { color: var(--kwa-text); }
.kwa-step{ display:none; } .kwa-step.active{ display:block; } .kwa-step .grid{ display:grid; grid-template-columns: repeat(2, minmax(240px,1fr)); gap:12px; }
@media (max-width:639.98px){ .kwa-step .grid{ grid-template-columns: 1fr; } }
.kwa-step label{ display:flex; flex-direction:column; font-weight:500; gap:6px; }
.kwa-step input[type="text"], .kwa-step input[type="email"], .kwa-step input[type="date"], .kwa-step input[type="file"], .kwa-step textarea, .kwa-step select{ padding:12px 14px; border:1px solid var(--kwa-field); border-radius:10px; color:var(--kwa-text); }
.kwa-step .actions{ margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.kwa-step button, .kwa-btn{ padding:14px 22px; border:0; border-radius:9999px 9999px 9999px 0; background:var(--kwa-teal); color:#fff; font-weight:700; cursor:pointer; transition:background .15s ease, transform .04s ease; }
.kwa-step button.prev{ background:transparent; color:var(--kwa-teal); border:2px solid var(--kwa-teal); border-radius:9999px 9999px 9999px 0; }
.kwa-step button:hover, .kwa-btn:hover{ background:var(--kwa-teal-hover); } .kwa-step button:active, .kwa-btn:active{ transform: translateY(1px); }
.kwa-bewerbung{ border:1px solid var(--kwa-border); padding:1.5rem; border-radius:12px; }
.summary{ background:var(--kwa-bg-soft); padding:12px; border-radius:10px; margin-bottom:12px; }
.consent{ display:flex; align-items:center; gap:10px; margin-top:12px; }
.kwa-result{ margin-top:14px; font-weight:700; }

/* Slider */
.kwa-viewport{ overflow:hidden; } .kwa-track{ display:flex; gap:24px; will-change:transform; align-items:stretch; }
.kwa-slide{ display:flex; }
.kwa-joblist{ display:block; }
.kwa-jobcard{ border:1px solid #c9c9c9 !important; border-radius:20px; padding:18px; background:transparent; box-shadow:0 6px 14px rgba(0,0,0,0.05); display:flex; flex-direction:column; }
.kwa-jobcard-header{ margin-bottom:8px; } .kwa-jobtitle{ margin:0 0 6px 0; font-size:1.25rem; font-weight:800; }
.kwa-jobmeta{ list-style:none; padding:0; margin:0 0 14px 0; display:grid; gap:8px; color:#6b7280; } .kwa-jobmeta li{ display:flex; align-items:center; gap:8px; }
.kwa-jobcard-actions{ margin-top:auto; display:flex; gap:10px; justify-content:flex-end; }

/* Modal */
.kwa-modal{ position:fixed; inset:0; display:none; z-index:99997; }
.kwa-modal[aria-hidden="false"]{ display:block; }
.kwa-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,0.45); z-index:99998; }
.kwa-modal-dialog{ position:relative; max-width:820px; width:92%; margin:5vh auto; background:#fff; border-radius:14px; padding:18px; z-index:99999; }
.kwa-modal-close{ position:absolute; top:8px; right:12px; border:none !important; outline:none !important; background:transparent; font-size:24px; line-height:1; cursor:pointer;     color: #000; }
body.kwa-modal-open{ overflow:hidden; }

/* Dots */
.kwa-dots{ display:flex; gap:8px; justify-content:center; align-items:center; margin-top:14px; }
.kwa-dot{ width:10px; height:10px; border-radius:9999px; border:2px solid #c9c9c9; background:transparent; padding:0; cursor:pointer; }
.kwa-dot.active{ background:#c9c9c9; }

/* more button */
.kwa-btn.kwa-more{ background:transparent; color:var(--kwa-teal); border:2px solid var(--kwa-teal); }
.kwa-btn.kwa-more:hover{ background:rgba(18,115,110,0.06); }

/* Extras */
.kwa-step .sofort{ display:flex; align-items:center; gap:8px; }


/* Frontend Joblist: simple grid 1/2/3 */
.kwa-joblist {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 640px) {
  .kwa-joblist { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .kwa-joblist { grid-template-columns: repeat(3, 1fr); }
}

/* Cards stretch equal height; actions at bottom-right */
.kwa-jobcard { display: flex; flex-direction: column; }
.kwa-jobcard-actions { margin-top: auto; display: flex; gap: 10px; justify-content: flex-end; }

.kwa-dots{ display:none !important; }


/* --- Fix job grid: enforce grid + 1/2/3 columns --- */
.kwa-joblist {
  display: grid !important;
  gap: 24px;
  grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 640px) {
  .kwa-joblist { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px) {
  .kwa-joblist { grid-template-columns: repeat(3, 1fr) !important; }
}


/* --- Buttons equal size --- */
.kwa-btn, .kwa-step button {
  box-sizing: border-box;
}
.kwa-btn.kwa-more {
  /* keep same padding as filled button; border-box ensures equal outer size */
  padding: 14px 22px;
  border: 2px solid var(--kwa-teal);
}


/* --- Job card text color --- */
.kwa-jobcard, .kwa-jobcard * {
  color: rgb(34, 30, 40);
}
/* keep meta icons subtler */
.kwa-jobmeta, .kwa-jobmeta li, .kwa-jobmeta svg { color: #6b7280; }
.kwa-jobtitle {
  color: rgb(34, 30, 40) !important;
}


/* Align "zu sofort" next to "Verfügbar ab" (step 3) */
.kwa-step[data-step="3"] .grid > label.sofort {
  justify-self: start;
  align-self: end;
  margin-top: 0;
}
/* Einheitliche Button-Basis in den Karten */
.kwa-jobcard .kwa-btn {
  /* gleiche Höhe + Innenabstände */
  --kwa-btn-h: 48px;         /* Höhe nach Wunsch anpassen (z.B. 52–60px) */
  --kwa-btn-px: 16px;        /* horizontales Padding */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--kwa-btn-h);
  padding: 0 var(--kwa-btn-px);
  line-height: 1;
  box-sizing: border-box;
  border-radius: 9999px 9999px 9999px 0; /* eure Form */
  font-weight: 700;
  white-space: nowrap;       /* kein Zeilenumbruch */
}

/* Grüner Button (Bewerben) – weißer Text */
.kwa-jobcard .kwa-btn.kwa-bewerben {
  background: var(--kwa-teal);
  border: 2px solid var(--kwa-teal);
  color: #fff !important;
}

/* Outline-Button (Mehr Infos) – exakt gleiche Außenmaße */
.kwa-jobcard .kwa-btn.kwa-more {
  background: transparent;
  border: 2px solid var(--kwa-teal);
  color: var(--kwa-teal);
	margin-bottom:11px;
}

/* (Optional) Buttons optisch auf gleicher Linie rechts unten */
.kwa-jobcard .kwa-jobcard-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  align-items: center;
}
.kwa-bewerben{
	color:#fff;
	font-size:16px;
}



/* ===== Fixes: Grid 1/2/3, Button-Gleichheit, schwarzer Close ===== */

/* 1) Grid: 1 (mobile) / 2 (tablet) / 3 (desktop) */
.kwa-joblist {
  display: grid !important;
  gap: 24px;
  grid-template-columns: 1fr !important;
  align-items: stretch;
}
@media (min-width: 640px){
  .kwa-joblist { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px){
  .kwa-joblist { grid-template-columns: repeat(3, 1fr) !important; }
}

/* 2) Einheitliche Buttons in Karten */
.kwa-jobcard .kwa-btn {
  --kwa-btn-h: 56px;
  --kwa-btn-px: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--kwa-btn-h);
  padding: 0 var(--kwa-btn-px);
  line-height: 1;
  box-sizing: border-box;
  border-radius: 9999px 9999px 9999px 0;
  font-weight: 700;
  white-space: nowrap;
  min-width: 170px; /* gleiche Außenbreite */
}

/* Bewerben = grün, weiße Schrift */
.kwa-jobcard .kwa-btn.kwa-bewerben {
  background: var(--kwa-teal);
  border: 2px solid var(--kwa-teal);
  color: #fff !important;
}

/* Mehr Infos = Outline, gleiche Größe */
.kwa-jobcard .kwa-btn.kwa-more {
  background: transparent;
  border: 2px solid var(--kwa-teal);
  color: var(--kwa-teal);
}

/* 3) Modal Close in Schwarz */
.kwa-modal .kwa-modal-close {
  color: #000 !important;
}
/* === Stellenanzeigen-Grid erzwingen (Elementor scoped) === */
.elementor .kwa-joblist {
  display: grid !important;
  gap: 24px;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch;
}

/* Tablet: 2 Spalten */
@media (max-width: 1023.98px) {
  .elementor .kwa-joblist {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobil: 1 Spalte */
@media (max-width: 639.98px) {
  .elementor .kwa-joblist {
    grid-template-columns: 1fr !important;
  }
}

/* Falls etwas Spalten erzwingt → zurücksetzen */
.kwa-joblist > .kwa-jobcard {
  grid-column: auto !important;
  width: auto !important;
  min-width: 0;
  height: 100%;
}

/* === Buttons in Karten: gleiche Größe & Stil === */
.kwa-jobcard .kwa-jobcard-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  align-items: center;
}

.kwa-jobcard .kwa-btn {
  --kwa-btn-h: 56px;          /* Höhe nach Wunsch */
  --kwa-btn-px: 24px;         /* horizontales Padding */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--kwa-btn-h);
  padding: 0 var(--kwa-btn-px);
  min-width: 170px;           /* identische Außenbreite */
  line-height: 1;
  box-sizing: border-box;
  border-radius: 9999px 9999px 9999px 0;
  font-weight: 700;
  white-space: nowrap;
}

/* „Bewerben“ = grün + weiße Schrift */
.kwa-jobcard .kwa-btn.kwa-bewerben {
  background: var(--kwa-teal);
  border: 2px solid var(--kwa-teal);
  color: #fff !important;
}

/* „Mehr Infos“ = Outline, gleiche Maße */
.kwa-jobcard .kwa-btn.kwa-more {
  background: transparent;
  border: 2px solid var(--kwa-teal);
  color: var(--kwa-teal);
}

/* === Modal Close: schwarz === */
.kwa-modal .kwa-modal-close {
  color: #000 !important;
  border: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
