/*
 * Search bar — SD-61
 * Figma: content modules / searchbar (node 6417-57617)
 * Form: text input with floating label + inline reset (X, shown when filled)
 * + search submit button (search-button component).
 */

.dk-searchbar {
  display: flex;
  align-items: stretch;
  gap: var(--dk-space-03); /* 12px */
}

.dk-searchbar-field {
  position: relative;
  flex: 1 1 auto;
  min-inline-size: 0;
  display: flex;
  align-items: center;
}

.dk-searchbar-input {
  inline-size: 100%;
  min-block-size: 2.75rem;            /* 44px */
  padding-block: var(--dk-space-03);  /* 12px */
  padding-inline: var(--dk-space-06) var(--dk-space-10); /* room for reset on the right */
  border: 1px solid var(--dk-color-black);
  border-radius: 999px;
  background-color: var(--dk-color-white);
  color: var(--dk-color-black);
  line-height: 1.2;
}

.dk-searchbar-input::-webkit-search-cancel-button { display: none; }

/* iOS Safari auto-zooms on focus if the input font-size computes below 16px
   — force it explicitly here rather than relying on the dk-text-ui-s token
   cascade (Feedback: Suchfeld zoomt beim Antippen auf Mobile). */
@media (max-width: 48rem) {
  .dk-searchbar-input {
    font-size: 16px;
  }
}

/* Floating label */
.dk-searchbar-label {
  position: absolute;
  inset-inline-start: var(--dk-space-06); /* aligns with input padding */
  color: var(--dk-color-black-50);
  pointer-events: none;
  transition: transform 0.15s ease, color 0.15s ease;
  transform-origin: left center;
}

.dk-searchbar-input:focus ~ .dk-searchbar-label,
.dk-searchbar-input:not(:placeholder-shown) ~ .dk-searchbar-label {
  transform: translateY(-1.4rem) scale(0.8);
  color: var(--dk-color-black);
}

/* Reset button — hidden until the field has content */
.dk-searchbar-reset {
  position: absolute;
  inset-inline-end: var(--dk-space-03);
  display: none;
  align-items: center;
  justify-content: center;
  inline-size: 1.75rem;
  block-size: 1.75rem;
  border-radius: 50%;
  background-color: var(--dk-color-brand-secondary-01);
  color: var(--dk-color-black);
  cursor: pointer;
}

.dk-searchbar-reset span {
  display: inline-flex;
  inline-size: 1rem;
  block-size: 1rem;
}

.dk-searchbar-reset span svg {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}

.dk-searchbar-input:not(:placeholder-shown) ~ .dk-searchbar-reset {
  display: inline-flex;
}

.dk-searchbar-input:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px var(--dk-color-black),
    0 0 0 4px var(--dk-color-white),
    0 0 0 8px var(--dk-color-focus);
}

.dk-searchbar-reset:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px var(--dk-color-black),
    0 0 0 4px var(--dk-color-white),
    0 0 0 8px var(--dk-color-focus);
}

@media (prefers-reduced-motion: reduce) {
  .dk-searchbar-label {
    transition: none;
  }
}
