.nb-booking__languages {
  margin: 1.25rem 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.nb-booking__languages h4 { margin: 0 0 .65rem; }
.nb-booking__language-options {
  display: grid;
  grid-template-columns: repeat(3, 56px);
  gap: .65rem;
}
.nb-booking__language-options label {
  position: relative;
  display: flex;
  box-sizing: border-box;
  width: 56px;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin: 0;
  padding: .55rem;
  border: 1px solid var(--nb-language-border);
  border-radius: 0;
  background: var(--nb-language-bg);
  color: var(--nb-language-text);
  cursor: pointer;
  touch-action: manipulation;
  transition: border-color .2s, background .2s;
}

.nb-booking__language-options label:hover { background: var(--nb-soft); }
.nb-language-choice__flag { font-size: 1.75rem; line-height: 1; }
.nb-language-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.nb-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.nb-language-choice::after { position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 4; padding: .4rem .6rem; background: var(--nb-black); color: var(--nb-white); content: attr(data-tooltip); font-size: .75rem; line-height: 1; white-space: nowrap; opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .15s, transform .15s; }
.nb-language-choice:hover::after,
.nb-language-choice:focus-within::after { opacity: 1; transform: translate(-50%, 0); }

.nb-booking__language-options label:has(input:checked) {
  border: 2px solid var(--nb-language-selected-border);
  background: var(--nb-language-selected-bg);
  box-shadow: none;
  color: var(--nb-language-selected-text);
  font-weight: 700;
}

.nb-booking__language-options label:has(input:focus-visible) { outline: 2px solid var(--nb-accent); outline-offset: 2px; }
