/* ══════════════════════════════════════
   Prime Contact – Kontakt & Kursanmeldung
   Alle Regeln !important (Elementor)
   ══════════════════════════════════════ */

.pccf-wrap, .pccf-wrap *, .pccf-wrap *::before, .pccf-wrap *::after { box-sizing: border-box !important; -webkit-text-fill-color: unset !important; }

/* ── Status ── */
.pccf-msg { max-width: 1200px !important; margin: 0 auto 24px auto !important; padding: 14px 20px !important; border-radius: 10px !important; font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.5 !important; display: flex !important; align-items: center !important; gap: 10px !important; text-decoration: none !important; }
.pccf-msg--success { background-color: #dcfce7 !important; color: #166534 !important; border: 1px solid #86efac !important; }
.pccf-msg--error { background-color: #fee2e2 !important; color: #991b1b !important; border: 1px solid #fca5a5 !important; }

/* ── Layout ── */
.pccf-wrap { max-width: 1200px !important; margin: 0 auto !important; padding: 0 !important; }
.pccf-grid { display: grid !important; grid-template-columns: 1.2fr 0.8fr !important; gap: 32px !important; align-items: start !important; }
.pccf-grid--full { grid-template-columns: 1fr !important; max-width: 720px !important; margin: 0 auto !important; }

/* ── Card ── */
.pccf-form-card { background-color: #ffffff !important; border-radius: 12px !important; padding: 40px 36px !important; border: 1px solid #e5e7eb !important; box-shadow: 0 4px 24px rgba(11,26,62,.06) !important; }

.pccf-overline, span.pccf-overline { display: inline-block !important; font-family: 'Exo', sans-serif !important; font-style: normal !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 2.5px !important; text-transform: uppercase !important; color: #2B4C9B !important; margin: 0 0 10px 0 !important; padding: 0 !important; }

h2.pccf-title, .pccf-title { font-family: 'Exo', sans-serif !important; font-style: italic !important; font-size: 22px !important; font-weight: 700 !important; color: #1b2341 !important; margin: 0 0 6px 0 !important; padding: 0 !important; line-height: 1.3 !important; border: none !important; text-transform: none !important; letter-spacing: normal !important; }
.pccf-subtitle, p.pccf-subtitle { font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 400 !important; color: #9ca3af !important; margin: 0 0 28px 0 !important; padding: 0 !important; line-height: 1.5 !important; }

/* ── Form ── */
.pccf-form { position: relative !important; margin: 0 !important; padding: 0 !important; }
.pccf-row { display: flex !important; gap: 16px !important; margin: 0 0 16px 0 !important; padding: 0 !important; }
.pccf-field { flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 6px !important; margin: 0 !important; padding: 0 !important; }
.pccf-field--full { margin: 0 0 16px 0 !important; }
.pccf-label, label.pccf-label { font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 600 !important; color: #374151 !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; display: block !important; }

/* ── Inputs ── */
.pccf-input, .pccf-textarea, .pccf-select,
input.pccf-input, textarea.pccf-textarea, select.pccf-select,
.pccf-form input[type="text"], .pccf-form input[type="email"], .pccf-form input[type="tel"], .pccf-form input[type="date"],
.pccf-form textarea, .pccf-form select {
  font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 400 !important; color: #1b2341 !important;
  background-color: #f7f8fa !important; border: 1px solid #e5e7eb !important; border-radius: 8px !important; padding: 12px 16px !important;
  width: 100% !important; max-width: 100% !important; outline: none !important; -webkit-appearance: none !important; appearance: none !important;
  transition: border-color .2s ease !important; box-sizing: border-box !important; box-shadow: none !important;
  height: auto !important; min-height: 0 !important; line-height: 1.4 !important; margin: 0 !important;
  text-transform: none !important; letter-spacing: normal !important;
}
.pccf-input:focus, .pccf-textarea:focus, .pccf-select:focus,
.pccf-form input:focus, .pccf-form textarea:focus, .pccf-form select:focus {
  border-color: #113286 !important; background-color: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(17,50,134,.08) !important; outline: none !important;
}
.pccf-input::placeholder, .pccf-textarea::placeholder,
.pccf-form input::placeholder, .pccf-form textarea::placeholder { color: #9ca3af !important; opacity: 1 !important; }
textarea.pccf-textarea, .pccf-form textarea { resize: vertical !important; min-height: 120px !important; }
select.pccf-select, .pccf-form select {
  cursor: pointer !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 12px center !important; padding-right: 36px !important;
}

/* ── Checkbox ── */
.pccf-check { display: flex !important; align-items: flex-start !important; gap: 10px !important; margin: 18px 0 24px 0 !important; padding: 0 !important; }
.pccf-check input[type="checkbox"] { width: 18px !important; height: 18px !important; min-width: 18px !important; margin: 2px 0 0 0 !important; accent-color: #113286 !important; cursor: pointer !important; -webkit-appearance: auto !important; appearance: auto !important; }
.pccf-check__text, label.pccf-check__text { font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 400 !important; color: #6B7280 !important; line-height: 1.5 !important; text-transform: none !important; letter-spacing: normal !important; }
.pccf-check__text a { color: #113286 !important; font-weight: 500 !important; text-decoration: underline !important; text-underline-offset: 2px !important; }

/* ── Button ── */
.pccf-btn, button.pccf-btn, .pccf-form button, .pccf-form button[type="submit"] {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  font-family: 'Inter', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1 !important;
  padding: 15px 44px !important; border-radius: 25px !important; border: none !important; cursor: pointer !important;
  background-color: #113286 !important; color: #ffffff !important; margin: 8px 0 0 0 !important;
  transition: all .3s ease !important; text-decoration: none !important; text-transform: none !important;
  letter-spacing: normal !important; box-shadow: none !important; outline: none !important;
  -webkit-appearance: none !important; appearance: none !important; width: auto !important; height: auto !important;
}
.pccf-btn:hover, button.pccf-btn:hover, .pccf-form button:hover {
  background-color: #0540D6 !important; color: #ffffff !important;
  transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(17,50,134,.25) !important; text-decoration: none !important;
}
.pccf-btn:focus, .pccf-btn:active, .pccf-btn:visited,
button.pccf-btn:focus, button.pccf-btn:active { background-color: #113286 !important; color: #ffffff !important; outline: none !important; }
.pccf-btn svg { width: 16px !important; height: 16px !important; flex-shrink: 0 !important; fill: none !important; stroke: currentColor !important; }

/* ── Sidebar ── */
.pccf-sidebar { display: flex !important; flex-direction: column !important; gap: 20px !important; }
.pccf-info { background-color: #0b1a3e !important; border-radius: 12px !important; padding: 32px 28px !important; }
h3.pccf-info__title, .pccf-info__title { font-family: 'Exo', sans-serif !important; font-style: italic !important; font-size: 18px !important; font-weight: 700 !important; color: #ffffff !important; margin: 0 0 20px 0 !important; padding: 0 !important; line-height: 1.3 !important; border: none !important; text-transform: none !important; }
.pccf-info-item { display: flex !important; gap: 12px !important; align-items: flex-start !important; margin: 0 0 18px 0 !important; padding: 0 !important; }
.pccf-info-item:last-child { margin: 0 !important; }
.pccf-info-item__icon { width: 36px !important; height: 36px !important; min-width: 36px !important; border-radius: 8px !important; background-color: rgba(255,255,255,.07) !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.pccf-info-item__icon svg { width: 16px !important; height: 16px !important; stroke: rgba(255,255,255,.55) !important; fill: none !important; stroke-width: 2 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }
.pccf-info-item__label { font-family: 'Exo', sans-serif !important; font-style: italic !important; font-size: 12px !important; font-weight: 700 !important; color: rgba(255,255,255,.45) !important; text-transform: uppercase !important; letter-spacing: .5px !important; margin: 0 0 2px 0 !important; padding: 0 !important; display: block !important; }
.pccf-info-item__value, span.pccf-info-item__value { font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 500 !important; color: #ffffff !important; line-height: 1.5 !important; }
a.pccf-info-item__link, a.pccf-info-item__link:visited { color: #ffffff !important; text-decoration: underline !important; text-underline-offset: 2px !important; text-decoration-color: rgba(255,255,255,.25) !important; transition: text-decoration-color .2s ease !important; font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 500 !important; }
a.pccf-info-item__link:hover { text-decoration-color: #ffffff !important; color: #ffffff !important; }

/* ── Enrollment Sidebar Links ── */
a.pccf-enroll-link, a.pccf-enroll-link:visited {
  display: flex !important; align-items: center !important; gap: 10px !important;
  font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 500 !important;
  color: #113286 !important; margin: 0 0 10px 0 !important; padding: 0 !important;
  transition: color .2s ease !important; text-decoration: none !important;
}
a.pccf-enroll-link:last-child { margin: 0 !important; }
a.pccf-enroll-link:hover { color: #0540D6 !important; }
a.pccf-enroll-link svg { width: 18px !important; height: 18px !important; stroke: #113286 !important; fill: none !important; stroke-width: 2 !important; stroke-linecap: round !important; min-width: 18px !important; }

/* ── Öffnungszeiten ── */
.pccf-hours { background-color: #ffffff !important; border-radius: 12px !important; padding: 28px 24px !important; border: 1px solid #e5e7eb !important; }
h3.pccf-hours__title, .pccf-hours__title { font-family: 'Exo', sans-serif !important; font-style: italic !important; font-size: 16px !important; font-weight: 700 !important; color: #1b2341 !important; margin: 0 0 14px 0 !important; padding: 0 !important; line-height: 1.3 !important; border: none !important; text-transform: none !important; }
.pccf-hours__row { display: flex !important; justify-content: space-between !important; padding: 8px 0 !important; border-bottom: 1px solid #f1f3f5 !important; margin: 0 !important; }
.pccf-hours__row:last-child { border-bottom: none !important; }
.pccf-hours__day { font-family: 'Inter', sans-serif !important; font-size: 13px !important; font-weight: 500 !important; color: #374151 !important; }
.pccf-hours__time { font-family: 'Exo', sans-serif !important; font-style: italic !important; font-size: 13px !important; font-weight: 600 !important; color: #113286 !important; }

/* ── Responsive ── */
@media (max-width: 960px) { .pccf-grid { grid-template-columns: 1fr !important; } }
@media (max-width: 600px) {
  .pccf-form-card { padding: 28px 22px !important; }
  .pccf-row { flex-direction: column !important; gap: 16px !important; }
  .pccf-btn, button.pccf-btn, .pccf-form button { width: 100% !important; justify-content: center !important; }
}
