/* KRP accessible touch targets 1.0.0
   Expands interaction areas without enlarging the visible design elements. */

/* Header: the mobile menu was 42 × 42 px. */
@media (max-width: 61.1875rem) {
  .krp-menu-toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
}

/* Desktop topbar telephone links were 32 px high. */
.krp-topbar__location {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* Footer: preserve typography while making every text link finger-safe. */
.krp-footer-compact__seo a,
.krp-footer-compact__legal a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

/* Fissure slideshow: keep a 15 px visual dot inside a 44 px button. */
.krp-fissure-dots {
  gap: 0;
}

.krp-fissure-dots button {
  position: relative;
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 0;
  background: transparent;
}

.krp-fissure-dots button::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #adadae;
  content: "";
  transform: translate(-50%, -50%);
}

.krp-fissure-dots button.is-active {
  background: transparent;
}

.krp-fissure-dots button.is-active::before {
  background: #0070b7;
}

.krp-fissure-dots button:focus-visible {
  outline: 3px solid #253174;
  outline-offset: -3px;
}

/* Main hero slideshow: retain the 15 px dots inside 44 px controls. */
.krp-hero-classic__dots {
  gap: 0;
}

.krp-hero-classic__dots button {
  position: relative;
  width: 44px;
  height: 44px;
  min-width: 44px;
  margin-block: -14.4px;
  border-radius: 0;
  background: transparent;
}

.krp-hero-classic__dots button::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15.2px;
  height: 15.2px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .82);
  content: "";
  transform: translate(-50%, -50%);
}

.krp-hero-classic__dots button.is-active,
.krp-hero-classic__dots .is-active {
  background: transparent;
}

.krp-hero-classic__dots button.is-active::before,
.krp-hero-classic__dots .is-active::before {
  background: #0070b7;
}

.krp-hero-classic__dots button:focus-visible {
  outline: 3px solid #253174;
  outline-offset: -3px;
  box-shadow: none;
}

/* Tooth timeline: only the control height changes. */
.krp-tooth-timeline__replay,
.krp-tooth-timeline__button {
  min-height: 44px;
}

/* RSForm on full pages. Visual checks/radios stay compact; their label row is the target. */
.krp-rsform .form-check {
  min-height: 44px;
  align-items: center;
}

.krp-rsform .form-check-label {
  display: flex;
  min-height: 44px;
  align-items: center;
  cursor: pointer;
}

.krp-rsform .form-check-label a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}

/* RSForm component view used inside the appointment iframe. */
.krp-component #userForm input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.krp-component #userForm select,
.krp-component #userForm button,
.krp-component #userForm input[type="submit"] {
  min-height: 44px;
}

.krp-component #userForm .form-check {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: .65rem;
}

.krp-component #userForm .form-check-label {
  display: flex;
  min-height: 44px;
  align-items: center;
  cursor: pointer;
}

.krp-component #userForm .form-check-label a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}

/* Neutralize Bootstrap's negative row gutters inside the narrow iframe. */
.krp-component #userForm .row {
  margin-right: 0;
  margin-left: 0;
}

/* Native career forms on legacy routes. */
.route-karriere .krp-jobs-form__reachability label,
.krp-job-detail .krp-jobs-form__reachability label,
.route-karriere .krp-jobs-form__privacy,
.krp-job-detail .krp-jobs-form__privacy {
  min-height: 44px;
}

.route-karriere .krp-jobs-form__privacy a,
.krp-job-detail .krp-jobs-form__privacy a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}
