/* Layout safeguards while preserving the supplied design and breakpoints. */
html,
body,
#root {
  width: 100%;
  min-width: 0;
}
body {
  overflow-x: clip;
}
main,
section,
header,
footer {
  min-width: 0;
}
img {
  max-width: 100%;
}
.flex-1 {
  min-width: 0;
}
button {
  white-space: normal;
  overflow-wrap: anywhere;
}
h1,
h2,
h3,
h4,
p {
  overflow-wrap: break-word;
}
button:focus-visible {
  outline: 3px solid #0284c7;
  outline-offset: 4px;
}
@media (max-width: 639px) {
  #carousel-cta-button {
    padding-inline: 1rem;
    gap: 0.5rem;
  }
  section .flex.gap-4.mt-3\.5 {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }
  [id^="plan-card-"] {
    scroll-margin-block: 1.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
  .animate-marquee-left,
  .animate-marquee-right {
    transform: none;
  }
}
.bonus-art {
  aspect-ratio: 1;
  max-width: 320px;
}
.bonus-art > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}

a:focus-visible,
summary:focus-visible {
  outline: 3px solid #0284c7;
  outline-offset: 4px;
}
summary {
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
details[open] summary {
  color: #0369a1;
}
details[open] summary svg {
  transform: rotate(45deg);
}
#plan-card-premium {
  scroll-margin-block: 24px;
}
#legal-dialog {
  margin: auto;
  max-width: min(90vw, 32rem);
  padding: 2rem;
  border-radius: 1rem;
  color: #334155;
}
#legal-dialog::backdrop {
  background: rgb(0 0 0 / 0.65);
}
#legal-dialog h2 {
  font-size: 1.25rem;
  font-weight: 800;
  margin-bottom: 1rem;
}
#legal-dialog button {
  margin-top: 1rem;
  padding: 0.6rem 1rem;
  background: #0369a1;
  color: white;
  border-radius: 0.5rem;
}
