/* ============================================================
   Kurzfristig lieferbare Geräte - KSF Grillgeräte
   Wird nur auf /kurzfristig-lieferbar/ geladen (functions.php).

   Bewusst hier und nicht als <style> im Seiteninhalt: Der UX Builder
   fügt beim Bearbeiten <br />-Tags in Style-Blöcke ein und macht das
   CSS damit unbrauchbar (siehe Gewinnspielseite, 08/2026).
   ============================================================ */

/* Angeglichen an Startseite und Geräteseiten (09/2026):
   eckig, Seitenblau #07589b, 2-px-Rahmen wie die Datenkästen
   ("Allgemeine Daten"), oranges Etikett wie .ksf-badge,
   Knöpfe als Pillen wie auf den Kategorie-Karten. */

.ksf-kl { color: #636363; }

/* ---------------------------------------------------------- Kopfbereich */
.ksf-kl .hero {
  background: #07589b;
  background-image: linear-gradient(to right, #07589b 55%, #1765a6 100%);
  border-radius: 0;
  color: #fff;
  padding: 132px 28px 58px;
  text-align: center;
}
.ksf-kl .hero .kicker {
  background: rgb(220, 106, 2);
  border-radius: 0;
  color: #fff;
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  margin-bottom: 18px;
  padding: 5px 14px;
  text-transform: uppercase;
}
.ksf-kl .hero h1 {
  color: #fff !important;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.15;
  margin: 0 0 14px;
}
.ksf-kl .hero .sub {
  color: rgba(255, 255, 255, .88);
  font-size: 19px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 680px;
}

/* ---------------------------------------------------------- Abschnitte */
.ksf-kl .abschnitt { padding: 46px 0 8px; }
.ksf-kl h2 {
  color: #07589b;
  font-size: 27px;
  font-weight: 900;
  margin: 0 0 10px;
  text-align: center;
}
.ksf-kl .lead {
  color: #636363;
  font-size: 16px;
  line-height: 1.65;
  margin: 0 auto 34px;
  max-width: 700px;
  text-align: center;
}

/* ---------------------------------------------------------- Erklärung */
.ksf-kl .erklaerung {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
}
.ksf-kl .erklaerung > div {
  background: #fff;
  border: 2px solid #07589b;
  border-radius: 0;
  padding: 24px 22px;
  text-align: left;
}
.ksf-kl .erklaerung h3 {
  color: #07589b;
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 8px;
}
.ksf-kl .erklaerung p {
  color: #636363;
  font-size: 14.5px;
  line-height: 1.6;
  margin: 0;
}
.ksf-kl .erklaerung .icon {
  background: #07589b;
  border-radius: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  height: 40px;
  line-height: 40px;
  margin: 0 0 14px;
  text-align: center;
  width: 40px;
}

/* ---------------------------------------------------------- Gerätekarten */
.ksf-kl .geraete {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.ksf-kl .karte {
  background: #fff;
  border: 2px solid #07589b;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: box-shadow .18s ease;
}
.ksf-kl .karte:hover {
  box-shadow: 0 10px 28px rgba(7, 88, 155, .16);
  transform: none;
}

.ksf-kl .karte .bild {
  background: #fff;
  border-bottom: 2px solid #07589b;
  padding: 26px 22px 20px;
  position: relative;
  text-align: center;
}
.ksf-kl .karte .bild img {
  display: block;
  height: 190px;
  margin: 0 auto;
  max-width: 100%;
  object-fit: contain;
}
.ksf-kl .karte .marke {
  background: rgb(220, 106, 2);
  border-radius: 0;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  left: 0;
  letter-spacing: .14em;
  padding: 5px 12px;
  position: absolute;
  text-transform: uppercase;
  top: 0;
}

.ksf-kl .karte .inhalt {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 20px 22px 24px;
}
.ksf-kl .karte h3 {
  color: #07589b;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 4px;
}
.ksf-kl .karte .untertitel {
  color: #636363;
  font-size: 14px;
  margin: 0 0 16px;
}
/* Artikelnummer nicht am Bindestrich trennen */
.ksf-kl .karte .untertitel .nr { white-space: nowrap; }

/* Technische Daten wie auf den Geräteseiten: fetter Begriff, dann Wert */
.ksf-kl .karte dl {
  border: 0;
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 18px;
  padding: 0;
}
.ksf-kl .karte dl > div {
  border: 0;
  display: block;
  padding: 0;
}
.ksf-kl .karte dt,
.ksf-kl .karte dd {
  display: inline;
  letter-spacing: normal;
  margin: 0;
  text-align: left;
  text-transform: none;
}
.ksf-kl .karte dt {
  color: #555;
  font-weight: 700;
}
.ksf-kl .karte dt::after { content: ": "; }
.ksf-kl .karte dd {
  color: #636363;
  font-weight: 400;
}

.ksf-kl .karte .preis {
  color: #636363;
  font-size: 13.5px;
  margin: 0 0 18px;
}
.ksf-kl .karte .preis strong {
  color: #07589b;
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
}

.ksf-kl .karte .aktionen {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
}
.ksf-kl .karte .aktionen a {
  border-radius: 99px;
  flex: 1 1 140px;          /* passen beide nicht nebeneinander, werden beide gleich breit */
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  padding: 12px 18px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
/* Der UX Builder setzt <br> zwischen die Knoepfe - im Flex-Layout frisst das den Abstand */
.ksf-kl .karte .aktionen br { display: none; }
.ksf-kl .karte .anfragen {
  background: #07589b;
  border: 2px solid #07589b;
  color: #fff !important;
}
.ksf-kl .karte .anfragen:hover { background: #0a4a80; border-color: #0a4a80; }
.ksf-kl .karte .details {
  background: #fff;
  border: 2px solid #07589b;
  color: #07589b !important;
}
.ksf-kl .karte .details:hover { background: #07589b; color: #fff !important; }

/* ---------------------------------------------------------- Formular */
.ksf-kl .formkasten {
  background: #fff;
  border: 2px solid #07589b;
  border-radius: 0;
  padding: 34px 30px;
  max-width: 720px;
  margin: 0 auto;
  box-shadow: 0 2px 14px rgba(18, 49, 79, .06);
}

.ksf-anfrage-form { font-size: 15px; }
.ksf-anfrage-form p.label {
  color: #07589b;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.3;
  margin: 0 0 6px;
}
.ksf-anfrage-form p.label .optional { color: #8496a8; font-weight: 400; }
.ksf-anfrage-form .row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
/* Flatsome setzt ".container .row:not(.row-collapse)" auf -15 px Aussenabstand und
   laedt nach dieser Datei - ohne die hoehere Spezifitaet hier ragten die
   zweispaltigen Zeilen 15 px zu beiden Seiten heraus */
body .ksf-anfrage-form .row:not(.row-collapse) {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: none;
}
.ksf-anfrage-form .full { margin-bottom: 14px; }
.ksf-anfrage-form input[type="text"],
.ksf-anfrage-form input[type="email"],
.ksf-anfrage-form input[type="tel"],
.ksf-anfrage-form select,
.ksf-anfrage-form textarea {
  width: 100%;
  height: auto;
  padding: 9px 11px;
  font-size: 15px;
  line-height: 1.4;
  color: #243b53;
  background: #fff;
  border: 1px solid #b9c9d8;
  box-shadow: none;
  box-sizing: border-box;
  border-radius: 3px !important;
  margin: 0;
}
.ksf-anfrage-form textarea { min-height: 96px; resize: vertical; }
.ksf-anfrage-form input:focus,
.ksf-anfrage-form select:focus,
.ksf-anfrage-form textarea:focus { border-color: #07589b; outline: none; }
.ksf-anfrage-form .zustimmung {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 14px;
  background: #f4f7fa;
  border-left: 3px solid #07589b;
  border-radius: 3px;
}
.ksf-anfrage-form .zustimmung .wpcf7-list-item { margin: 0; }
.ksf-anfrage-form .zustimmung span.txt {
  font-size: 13.5px;
  line-height: 1.5;
  color: #243b53;
}
.ksf-anfrage-form a { color: #07589b; }
.ksf-anfrage-form .cf-turnstile { transform: scale(.92); transform-origin: left top; }
.ksf-anfrage-form .submit-btn {
  width: 100%;
  min-height: 0;
  padding: 13px 22px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .4px;
  color: #fff;
  background: #07589b;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
}
.ksf-anfrage-form .submit-btn:hover { background: #0a4a80; }

/* Hervorhebung, wenn die Auswahl von einer Karte aus gesetzt wurde */
.ksf-anfrage-form select.ksf-vorbelegt {
  border-color: #07589b;
  box-shadow: 0 0 0 3px rgba(7, 88, 155, .12);
}

/* ---------------------------------------------------------- Hinweis unten */
.ksf-kl .hinweis {
  background: #f4f7fa;
  border-left: 3px solid #07589b;
  border-radius: 3px;
  padding: 20px 24px;
  margin-top: 34px;
  font-size: 14.5px;
  line-height: 1.7;
  color: #435a70;
}
.ksf-kl .hinweis strong { color: #12314f; }

/* ---------------------------------------------------------- Mobil */
@media (max-width: 760px) {
  /* Kopfbereich (Oberleiste + Logo) liegt mobil ueber dem Hero - genug Abstand halten */
  .ksf-kl .hero { padding: 128px 20px 40px; }
  .ksf-kl .hero h1 { font-size: 29px; }
  .ksf-kl .hero .sub { font-size: 16px; }
  .ksf-kl .erklaerung { grid-template-columns: 1fr; }
  .ksf-kl .formkasten { padding: 24px 18px; }
  .ksf-anfrage-form .row { grid-template-columns: 1fr; gap: 12px; }
}
