/* Shared responsive and accessibility refinements.
   This layer intentionally sits after page-specific styles. */

:root {
  --responsive-gutter: clamp(1.25rem, 4vw, 4.75rem);
  --tap-target: 44px;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}

body {
  min-width: 0;
}

img,
video,
svg {
  max-width: 100%;
}

img,
video {
  height: auto;
}

main,
section,
article,
div {
  min-width: 0;
}

:where(h1, h2, h3, p, a, button) {
  overflow-wrap: break-word;
}

:where(a, button, input, select, textarea) {
  touch-action: manipulation;
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #d9b36d;
  outline-offset: 4px;
}

/* Carousel choices remain visually compact while meeting touch guidelines. */
.lx-home-slide-thumbnails button,
.lx-page-slide-thumbnails button {
  min-width: var(--tap-target);
  min-height: var(--tap-target);
}

.lx-confidence-controls > div button {
  position: relative;
  width: var(--tap-target);
  min-width: var(--tap-target);
  height: var(--tap-target);
  min-height: var(--tap-target);
  border: 0;
  background: transparent;
}

.lx-confidence-controls > div button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 5px;
  left: 5px;
  height: 2px;
  background: rgba(255, 255, 255, 0.35);
  transform: translateY(-50%);
  transition: background-color 180ms ease, transform 180ms ease;
}

.lx-confidence-controls > div button:is(:hover, :focus-visible, .is-active)::after {
  background: #d9b36d;
  transform: translateY(-50%) scaleY(2);
}

.lx-prompt-chips button {
  min-height: var(--tap-target);
  padding-block: 0.7rem;
}

.hp-slider-actions button {
  min-width: var(--tap-target);
  min-height: var(--tap-target);
}

.lx-assistant-note a {
  display: inline-flex;
  min-height: var(--tap-target);
  align-items: center;
  margin-block: -0.7rem;
  padding-block: 0.7rem;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

/* Prevent embedded forms from triggering mobile browser zoom. */
@media (max-width: 760px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }

  .lx-section,
  .hp-section {
    scroll-margin-top: 5rem;
  }

  .lx-home-slide-thumbnails,
  .lx-page-slide-thumbnails {
    gap: 0.35rem;
  }

  .lx-home-slide-thumbnails button,
  .lx-page-slide-thumbnails button {
    width: 3rem;
    height: var(--tap-target);
  }

  .lx-confidence-controls > div {
    gap: 0.15rem;
  }

  .lx-footer-domain,
  .lx-footer-studio-bottom nav a,
  .hp-footer a {
    display: inline-flex;
    min-height: var(--tap-target);
    align-items: center;
  }

  .lx-footer-studio-bottom nav {
    flex-wrap: wrap;
  }
}

@media (max-width: 430px) {
  .lx-confidence-controls > div button {
    width: var(--tap-target);
  }

  .lx-prompt-chips {
    gap: 0.55rem;
  }

  /* Keep the assistant available without covering carousel controls or CTAs. */
  .lx-chat-launcher {
    width: 3.6rem;
    min-width: 3.6rem;
    padding: 0.45rem;
    justify-content: center;
  }

  .lx-chat-launcher > span:last-child {
    display: none;
  }

  .lx-chat-launcher-pulse {
    left: 0.68rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .lx-process-ticker-track,
  .hp-process-ticker > div,
  .lx-partner-marquee > div {
    animation: none !important;
    transform: none !important;
  }
}
