.container {
  width: min(
    calc(100% - (var(--gutter-inline) * 2)),
    var(--container-content)
  );
  margin-inline: auto;
}

.container--wide {
  max-width: var(--container-wide);
}

.container--cinema {
  max-width: var(--container-cinema);
}

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

.eyebrow {
  color: var(--color-accent);
  font-family: var(--font-brand);
  font-size: var(--text-micro);
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
}

.text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-bottom: 0.45rem;
  color: var(--color-ivory-100);
  font-family: var(--font-brand);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.text-link::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  content: "";
  background: linear-gradient(
    90deg,
    var(--color-champagne-500),
    rgb(213 179 106 / 18%)
  );
  transform: scaleX(0.35);
  transform-origin: left center;
  transition: transform var(--duration-base) var(--ease-luxury);
}

.text-link:hover::after,
.text-link:focus-visible::after {
  transform: scaleX(1);
}

.button {
  --magnetic-x: 0px;
  --magnetic-y: 0px;

  position: relative;
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: 0.85rem 1.45rem;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: var(--radius-xs);
  font-family: var(--font-brand);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  transform: translate3d(var(--magnetic-x), var(--magnetic-y), 0);
  transition:
    color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.button::before {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    105deg,
    transparent 25%,
    rgb(255 255 255 / 24%) 48%,
    transparent 70%
  );
  transform: translateX(-145%);
  transition: transform 720ms var(--ease-luxury);
}

.button > span {
  position: relative;
  z-index: 1;
}

.button:hover::before,
.button:focus-visible::before {
  transform: translateX(145%);
}

.button--primary {
  color: var(--color-obsidian-950);
  background: var(--color-champagne-500);
  border-color: var(--color-champagne-500);
  box-shadow: 0 10px 36px rgb(213 179 106 / 15%);
}

.button--primary:hover,
.button--primary:focus-visible {
  background: var(--color-champagne-400);
  border-color: var(--color-champagne-400);
  box-shadow: 0 14px 44px rgb(213 179 106 / 26%);
}

.button--secondary {
  color: var(--color-ivory-100);
  background: rgb(8 11 11 / 20%);
  border-color: rgb(213 179 106 / 55%);
  backdrop-filter: blur(12px);
}

.button--secondary:hover,
.button--secondary:focus-visible {
  color: var(--color-champagne-400);
  background: rgb(7 58 55 / 42%);
  border-color: var(--color-champagne-500);
}

@media (max-width: 479px) {
  .button {
    width: 100%;
    min-height: 3.35rem;
  }
}
