.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;
}

.release-alert {
  padding: 12px max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));
  color: #241c1b;
  background: #f4f1ec;
}

.release-alert[hidden] {
  display: none;
}

.release-alert__inner {
  display: flex;
  width: min(100%, 920px);
  align-items: center;
  justify-content: center;
  gap: 10px 16px;
  margin: 0 auto;
  padding: 12px 16px;
  background: #fffdf9;
  border: 1px solid rgba(226, 27, 35, 0.28);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(36, 28, 27, 0.08);
  font-size: 0.82rem;
}

.release-alert__inner strong,
.release-alert__inner span,
.release-alert__inner a,
.smart-title,
.question-title,
.result-title,
.smart-lead,
.question-help,
.result-lead,
.option-label,
.option-note,
.primary-button,
.secondary-button,
.icon-button,
.result-card h2,
.selected-note,
.no-match-copy {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}

.release-alert__inner a {
  flex: 0 0 auto;
  color: #e21b23;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.result-price,
[data-cart-total],
.cart-total {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 520px) {
  .release-alert__inner {
    align-items: stretch;
    flex-direction: column;
  }

  .release-alert__inner a {
    width: 100%;
    padding: 8px 0;
  }
}

@media (max-width: 360px) {
  .smart-header {
    gap: 8px;
    padding-inline: 12px;
  }

  .brand-copy {
    width: 104px;
  }

  .language-switcher {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .lang-button {
    min-width: 34px;
    padding-inline: 6px;
  }

  .loading-card,
  .smart-card,
  .result-card,
  .selected-card,
  .no-match-card {
    padding: 20px;
  }
}

/* Manual QA: Russian intro copy needs a smaller narrow-phone type scale. */
@media (max-width: 340px) {
  .smart-title {
    font-size: clamp(2.2rem, 12.5vw, 2.65rem);
    line-height: .96;
    letter-spacing: -.035em;
  }

  .smart-lead {
    font-size: .88rem;
    line-height: 1.45;
  }
}

@media (prefers-reduced-motion: reduce) {
  .release-alert,
  .release-alert__inner {
    transition: none !important;
    animation: none !important;
  }
}
