/* Public web-app focus normalization. Loaded after the main theme CSS. */
input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus,
.form-input:focus,
.rf-menu-search__input:focus,
.cart-coupon .rf-voucher .form-input:focus,
.select2-container--bootstrap.select2-container--focus .select2-selection,
.select2-container--bootstrap.select2-container--open .select2-selection {
  border-color: #d8dfe6 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

input[type="range"]:focus {
  outline: 0 !important;
}

html.a11y-focus-enabled :where(input, textarea, select, .form-control, .form-select, .form-input):focus-visible,
html.a11y-focus-enabled .rf-menu-search__input:focus-visible {
  outline: 0 !important;
  outline-offset: 0 !important;
}

/* Higher-specificity rules from the address, locale and account widgets. */
.navbar .nav-locale-picker .locale-picker-form select.locale-picker:focus,
.nav-locale-picker .locale-picker-form select.form-select.locale-picker:focus,
.locale-picker-form select.form-select.locale-picker:focus,
#deliveryplz-marketplace-address:focus,
.deliveryplz-language-select:focus,
.lb-login-card form .form-control:focus {
  border-color: #d8dfe6 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.deliveryplz-address-single:focus-within,
.lb-register-field:focus-within,
.lb-search:focus-within {
  border-color: #d8dfe6 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.menu-item.menu-item-card .menu-content,
.menu-item.menu-item-card .menu-content:focus,
.menu-item.menu-item-card .menu-content:focus-visible {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Keep the password-save action styled when the account form has no button class. */
.lb-account-password-page form button[type="submit"],
.lb-password-page form button[type="submit"],
.lb-account-page form[action*="password"] button[type="submit"] {
  color: #fff !important;
  background-color: #ff5a1f !important;
  border: 1px solid #ff5a1f !important;
  border-radius: 999px !important;
  padding: .65rem 1.25rem !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(255, 90, 31, .18) !important;
}

.lb-account-password-page form button[type="submit"]:hover,
.lb-password-page form button[type="submit"]:hover,
.lb-account-page form[action*="password"] button[type="submit"]:hover {
  color: #fff !important;
  background-color: #e94d16 !important;
  border-color: #e94d16 !important;
}

/* Password page fallback: target the real fields even when the page wrapper has no class. */
form:has(input[placeholder="Altes Passwort"]) button[type="submit"],
form:has(input[placeholder="Neues Passwort"]) button[type="submit"],
form:has(input[placeholder="Altes Passwort"]) input[type="submit"],
form:has(input[placeholder="Neues Passwort"]) input[type="submit"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  min-width: 220px !important;
  padding: .7rem 1.5rem !important;
  color: #fff !important;
  background: #ff5a1f !important;
  border: 1px solid #ff5a1f !important;
  border-radius: 999px !important;
  font: inherit !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  box-shadow: 0 2px 6px rgba(255, 90, 31, .18) !important;
  cursor: pointer !important;
}

/* Covers the password form when its labels/placeholders are translated or customized. */
form:has(input[type="password"]) button[type="submit"],
form:has(input[type="password"]) button:not([type]),
form:has(input[type="password"]) input[type="submit"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  min-height: 44px !important;
  min-width: 220px !important;
  padding: .7rem 1.5rem !important;
  color: #fff !important;
  background: #ff5a1f !important;
  border: 1px solid #ff5a1f !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  box-shadow: 0 2px 6px rgba(255, 90, 31, .18) !important;
  cursor: pointer !important;
}

form:has(input[type="password"]) button[type="submit"]:hover,
form:has(input[type="password"]) button:not([type]):hover,
form:has(input[type="password"]) input[type="submit"]:hover {
  color: #fff !important;
  background: #e94d16 !important;
  border-color: #e94d16 !important;
}

/* Account address form: clean Lieferando-style card and actions. */
main:has(form input[placeholder="Postleitzahl"]),
main:has(form input[name="address1"]) {
  color: #172033 !important;
}

main:has(form input[placeholder="Postleitzahl"]) form,
main:has(form input[name="address1"]) form {
  max-width: 900px !important;
  margin: 18px auto 42px !important;
  padding: 28px 30px !important;
  background: #fff !important;
  border: 1px solid #edf0f2 !important;
  border-radius: 18px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .08) !important;
}

main:has(form input[placeholder="Postleitzahl"]) form input,
main:has(form input[placeholder="Postleitzahl"]) form select,
main:has(form input[name="address1"]) form input,
main:has(form input[name="address1"]) form select {
  min-height: 44px !important;
  border: 1px solid #d8dfe6 !important;
  border-radius: 10px !important;
  background: #fff !important;
}

main:has(form input[placeholder="Postleitzahl"]) form button[type="submit"],
main:has(form input[placeholder="Postleitzahl"]) form input[type="submit"],
main:has(form input[name="address1"]) form button[type="submit"],
main:has(form input[name="address1"]) form input[type="submit"] {
  min-height: 44px !important;
  padding: .7rem 1.35rem !important;
  color: #fff !important;
  background: #ff5a1f !important;
  border: 1px solid #ff5a1f !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

main:has(form input[placeholder="Postleitzahl"]) form button[type="submit"]:hover,
main:has(form input[name="address1"]) form button[type="submit"]:hover {
  background: #e94d16 !important;
  border-color: #e94d16 !important;
}

@media (max-width: 700px) {
  main:has(form input[placeholder="Postleitzahl"]) form,
  main:has(form input[name="address1"]) form {
    margin: 12px 12px 30px !important;
    padding: 20px 16px !important;
  }
}

/* Address navigation actions. */
main:has(form input[placeholder="Postleitzahl"]) a[href$="/account/address"],
main:has(form input[name="address1"]) a[href$="/account/address"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: .45rem !important;
  margin: 4px 0 10px !important;
  padding: .55rem .9rem !important;
  color: #e84500 !important;
  background: #fff !important;
  border: 1px solid #ffb08f !important;
  border-radius: 999px !important;
  font-size: .86rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: background .18s ease, border-color .18s ease, transform .18s ease !important;
}

main:has(form input[placeholder="Postleitzahl"]) a[href$="/account/address"]:hover,
main:has(form input[name="address1"]) a[href$="/account/address"]:hover {
  color: #c83b00 !important;
  background: #fff1ea !important;
  border-color: #ff5a1f !important;
  transform: translateX(-2px) !important;
}

main:has(form input[placeholder="Postleitzahl"]) form a[href$="/account/address"],
main:has(form input[name="address1"]) form a[href$="/account/address"],
main:has(form input[placeholder="Postleitzahl"]) form button[type="button"],
main:has(form input[name="address1"]) form button[type="button"] {
  min-height: 44px !important;
  padding: .65rem 1.25rem !important;
  color: #172033 !important;
  background: #f1f2f3 !important;
  border: 1px solid #e1e5e9 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: background .18s ease, border-color .18s ease !important;
}

main:has(form input[placeholder="Postleitzahl"]) form a[href$="/account/address"]:hover,
main:has(form input[name="address1"]) form a[href$="/account/address"]:hover,
main:has(form input[placeholder="Postleitzahl"]) form button[type="button"]:hover,
main:has(form input[name="address1"]) form button[type="button"]:hover {
  color: #172033 !important;
  background: #e5e7eb !important;
  border-color: #cfd5dc !important;
}

/* Checkout mobile header: keep the menu control at the top-right. */
@media (max-width: 767.98px) {
  .lb-header__inner {
    display: flex !important;
    align-items: center !important;
    min-height: 64px !important;
  }

  .lb-header__inner > .navbar-brand {
    order: 1 !important;
    min-width: 0 !important;
  }

  .lb-header__inner > .lb-header__center,
  .lb-header__inner > .lb-actions {
    order: 2 !important;
  }

  .lb-header__inner > .lb-burger,
  .lb-header__inner > .lb-burger--desktop {
    order: 3 !important;
    margin-left: auto !important;
    flex: 0 0 auto !important;
  }
}

/* Password action must contain text only, without the leading icon. */
form:has(input[type="password"]) button[type="submit"] > i,
form:has(input[type="password"]) button[type="submit"] > svg,
form:has(input[type="password"]) button[type="submit"] > .fa,
form:has(input[type="password"]) button[type="submit"] > .fas,
form:has(input[type="password"]) button[type="submit"]::before,
form:has(input[type="password"]) button[type="submit"]::after {
  display: none !important;
  content: none !important;
}

form:has(input[placeholder="Altes Passwort"]) button[type="submit"]:hover,
form:has(input[placeholder="Neues Passwort"]) button[type="submit"]:hover,
form:has(input[placeholder="Altes Passwort"]) input[type="submit"]:hover,
form:has(input[placeholder="Neues Passwort"]) input[type="submit"]:hover {
  color: #fff !important;
  background: #e94d16 !important;
  border-color: #e94d16 !important;
}
