/* =============================================
   Theme-eigene Overrides (UK-Mod-Languages)
   ============================================= */
.uk-offcanvas .mod-languages ul{
	width: fit-content;
	margin: 0 auto;
}

.uk-offcanvas .mod-languages li{
	padding-left: 0px;
}

.uk-offcanvas .mod-languages img{
	width: 30px;
}


/* =============================================
   NEUKUNDE — Richter Engineering Corporate Design
   (migriert aus Convert-Forms Custom-CSS-Feld 2026-04-30)
   ============================================= */
.convertforms.cf { max-width: 100% !important; width: 100% !important; padding: 20px 0 !important; }
.cf-form-wrap { max-width: 100% !important; }
.cf-heading h3 { color: #B80007 !important; font-size: 1.35em !important; font-weight: 600 !important; border-bottom: 2px solid #B80007 !important; padding-bottom: 10px !important; margin-bottom: 22px !important; margin-top: 35px !important; letter-spacing: 0.3px !important; }
.cf-control-group:first-child .cf-heading h3 { margin-top: 0 !important; }
.cf-control-group input[type="text"], .cf-control-group input[type="email"], .cf-control-group input[type="tel"], .cf-control-group textarea, .cf-control-group select { border: 1px solid #d1d5db !important; border-radius: 4px !important; padding: 10px 14px !important; font-size: 15px !important; transition: border-color 0.25s, box-shadow 0.25s !important; background: #fff !important; width: 100% !important; box-sizing: border-box !important; }
.cf-control-group input:focus, .cf-control-group textarea:focus, .cf-control-group select:focus { border-color: #B80007 !important; box-shadow: 0 0 0 3px rgba(184,0,7,0.08) !important; outline: none !important; }
.cf-control-label label { font-weight: 500 !important; color: #1a1a2e !important; font-size: 14px !important; margin-bottom: 6px !important; display: block !important; }
.cf-control-label .cf-required-label { color: #B80007 !important; font-weight: 700 !important; }
.cf-control-group input[readonly], .cf-control-group textarea[readonly] { background: #f8f9fa !important; color: #555 !important; border-color: #e5e7eb !important; cursor: default !important; }
.cf-checkbox input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: #B80007 !important; cursor: pointer !important; vertical-align: middle !important; }
.cf-checkbox .cf-control-input label { font-size: 15px !important; cursor: pointer !important; }
.convertforms .cf-btn { background: #B80007 !important; color: #fff !important; border: none !important; border-radius: 4px !important; padding: 14px 40px !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0.5px !important; text-transform: uppercase !important; cursor: pointer !important; transition: background 0.25s, transform 0.05s !important; width: 100% !important; max-width: 400px !important; margin-top: 10px !important; }
.convertforms .cf-btn:hover { background: #960006 !important; }
.convertforms .cf-btn:active { transform: scale(0.98) !important; }
.cf-control-group { margin-bottom: 14px !important; }
.cf-form-hint { font-size: 14px; color: #555; margin-bottom: 20px; padding: 12px 16px; background: #f8f9fa; border-left: 3px solid #B80007; border-radius: 0 4px 4px 0; line-height: 1.5; }
.cf-required-note { font-size: 12px; color: #999; margin-top: 12px; padding-top: 10px; border-top: 1px solid #eee; clear: both; }
.cf-control-group.cf-has-error input, .cf-control-group.cf-has-error textarea { border-color: #B80007 !important; }
.cf-error-message { color: #B80007 !important; font-size: 12px !important; }

/* === Delivery-Section Hide when billing=delivery === */
.convertforms.cf-billing-equals-delivery .cf-delivery-section,
form.cf-billing-equals-delivery .cf-delivery-section { display: none !important; }

/* === Success: Hide hint + required-note (irrelevant after submit) === */
.convertforms.cf-success .cf-form-hint,
.convertforms.cf-success .cf-required-note { display: none !important; }

/* === Success / Error Response === */
/* Keep the success message clear of the fixed UIkit header on any scroll-anchor jump. */
.convertforms .cf-response { scroll-margin-top: 120px !important; }
.convertforms.cf-success .cf-response { background: #f0fdf4 !important; border: 1px solid #86efac !important; color: #166534 !important; padding: 24px !important; border-radius: 8px !important; text-align: center !important; }
.convertforms .cf-response-message { background: transparent !important; }
.convertforms .cf-response h1, .convertforms .cf-response h2, .convertforms .cf-response h3, .convertforms .cf-response h4 { font-size: 1.4em !important; line-height: 1.25 !important; margin: 0 0 12px !important; font-weight: 600 !important; word-break: break-word !important; }
.convertforms .cf-response p, .convertforms .cf-response { font-size: 15px !important; line-height: 1.55 !important; }
.convertforms .cf-response p { margin: 0 0 10px !important; }
.convertforms .cf-response p:last-child { margin-bottom: 0 !important; }

/* === Google Places Custom Dropdown (v11 — AutocompleteSuggestion + smart icon-toggle) === */
.richter-pac-wrapper { position: relative; width: 100% !important; }
/* Lupe is decorative — only shown when field is empty AND not focused. Once user
   focuses or starts typing, the icon disappears so text never overlaps it. This is
   the cleanest cross-browser solution (iOS Safari ignores some padding overrides). */
.richter-pac-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 14px; color: #888; pointer-events: none; line-height: 1; z-index: 1; transition: opacity 0.12s; }
.richter-pac-wrapper.pac-focus .richter-pac-icon, .richter-pac-wrapper.pac-has-value .richter-pac-icon { display: none !important; }
.richter-pac-spinner { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; border: 2px solid #e5e7eb; border-top-color: #B80007; border-radius: 50%; opacity: 0; transition: opacity 0.15s; pointer-events: none; }
.richter-pac-spinner.active { opacity: 1; animation: richter-pac-spin 0.7s linear infinite; }
@keyframes richter-pac-spin { to { transform: translateY(-50%) rotate(360deg); } }
.richter-pac-list { position: absolute; top: calc(100% + 4px); left: 0; right: 0; margin: 0; padding: 4px 0; list-style: none; background: #fff; border: 1px solid #d1d5db; border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,0.12); max-height: min(40vh, 320px); overflow-y: auto; z-index: 10000; }
.richter-pac-list[hidden] { display: none !important; }
.richter-pac-consent { margin-top: 6px; padding: 10px 12px; font-size: 13px; line-height: 1.5; color: #555; background: #fff5f5; border-left: 3px solid #B80007; border-radius: 0 4px 4px 0; }
.richter-pac-consent[hidden] { display: none !important; }
.richter-pac-consent-txt { display: block; }
.richter-pac-consent-de { display: block; margin-top: 2px; color: #777; }
.richter-pac-consent-btn { display: inline-block; margin-top: 8px; background: #B80007; color: #fff; border: 0; border-radius: 4px; padding: 6px 14px; font-size: 13px; font-weight: 600; cursor: pointer; }
.richter-pac-consent-btn:hover { background: #960006; }
.richter-pac-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; cursor: pointer; border-bottom: 1px solid #f1f3f5; transition: background-color 0.12s; line-height: 1.35; }
.richter-pac-item:last-child { border-bottom: none; }
.richter-pac-item:hover, .richter-pac-item.active { background: #fff5f5; }
.richter-pac-pin { font-size: 14px; line-height: 1.4; flex-shrink: 0; opacity: 0.7; }
.richter-pac-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.richter-pac-main { color: #1a1a2e; font-weight: 500; font-size: 14px; word-break: break-word; }
.richter-pac-secondary { color: #6b7280; font-size: 12px; word-break: break-word; }
@media (max-width: 768px) {
  .richter-pac-list { max-height: min(35vh, 260px); }
  .richter-pac-item { padding: 12px 14px; }
  .richter-pac-main { font-size: 15px; }
  .richter-pac-secondary { font-size: 13px; }
  .convertforms .cf-response { padding: 18px !important; }
  .convertforms .cf-response h1, .convertforms .cf-response h2, .convertforms .cf-response h3, .convertforms .cf-response h4 { font-size: 1.15em !important; }
  .convertforms .cf-response p, .convertforms .cf-response { font-size: 14px !important; }
}

/* === Map-Picker (v13) — Pin nach Adress-Auswahl, draggable === */
.richter-map-wrap { margin: 8px 0 18px !important; width: 100% !important; max-width: 100% !important; }
.richter-map-wrap[hidden] { display: none !important; }
.richter-map-hint { font-size: 13px; color: #555; padding: 8px 12px; background: #fff5f5; border-left: 3px solid #B80007; border-radius: 0 4px 4px 0; margin-bottom: 8px; line-height: 1.4; }
.richter-map { width: 100% !important; height: 280px !important; border: 1px solid #d1d5db; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.richter-map .gm-style-iw, .richter-map .gm-ui-hover-effect { font-family: inherit !important; }
.richter-map-wrap.richter-map-busy .richter-map-hint::after { content: " — Adresse wird aktualisiert…"; color: #B80007; font-weight: 500; }
.richter-map-wrap.richter-map-busy .richter-map { opacity: 0.85; }
@media (max-width: 768px) {
  .richter-map { height: 240px !important; }
  .richter-map-hint { font-size: 12px; padding: 8px 10px; }
}

/* === iOS/Mobile Overflow Fix === */
.sppb-section, .sppb-column, .sppb-addon, .sppb-row, .sppb-row-container,
.sppb-col-md-12, .sppb-addon-module, .sppb-column-addons, .sppb-addon-content,
.cf-form-wrap, .convertforms, .cf-fields, .cf-control-group { overflow: visible !important; }
html, body { overflow-x: hidden !important; }

/* === Responsive === */
@media (max-width: 768px) { .cf-control-group { padding: 0 !important; } .cf-control-group.cf-one-half { width: 100% !important; float: none !important; padding: 0 !important; flex: 0 0 100% !important; max-width: 100% !important; } .convertforms .cf-btn { max-width: 100% !important; } .cf-heading h3 { font-size: 1.15em !important; } }
@media (max-width: 480px) { .cf-control-group input[type="text"], .cf-control-group input[type="email"], .cf-control-group input[type="tel"], .cf-control-group textarea { font-size: 16px !important; padding: 12px !important; } }
