.nav-link[type="button"] {
  background: transparent;
  border: 0;
  cursor: pointer;
}

.nav-item.is-open .nav-dropdown {
  opacity: 1;
  visibility: visible;
}

.nav-item.is-open .nav-link-icon {
  transform: rotate(180deg);
}

.nav-open {
  overflow: hidden;
}

.modal-open {
  overflow: hidden;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal-backdrop);
  background: rgb(3 11 26 / 56%);
}

.modal {
  position: fixed;
  inset: 50% auto auto 50%;
  z-index: var(--z-modal);
  width: min(560px, calc(100vw - 32px));
  transform: translate(-50%, -50%);
  background: var(--color-white);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-xl);
}

.modal-content {
  padding: var(--spacing-12);
}

.modal-close {
  position: absolute;
  top: var(--spacing-4);
  right: var(--spacing-4);
  border: 0;
  background: transparent;
  color: var(--color-text);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.consent-banner {
  position: fixed;
  right: var(--spacing-4);
  bottom: var(--spacing-4);
  z-index: var(--z-tooltip);
  width: min(440px, calc(100vw - 32px));
  padding: var(--spacing-6);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-xl);
}

.consent-banner__title {
  margin-bottom: var(--spacing-2);
}

.consent-banner__text {
  margin-bottom: var(--spacing-4);
}

.consent-banner__actions {
  display: flex;
  gap: var(--spacing-3);
  justify-content: flex-end;
}

.form-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.form-status {
  min-height: 1.5em;
  margin-top: var(--spacing-3);
  margin-bottom: 0;
  font-size: var(--font-size-sm);
}

.form-status[data-state="success"] {
  color: var(--color-success);
}

.form-status[data-state="error"] {
  color: var(--color-error);
}

.is-submitting {
  opacity: 0.9;
}

.is-submitting button[type="submit"] {
  cursor: wait;
}

.pricing-shell {
  padding-top: var(--spacing-4);
}

.pricing-shell stripe-pricing-table {
  display: block;
}

.redirect-shell {
  min-height: calc(100vh - var(--header-height));
  display: flex;
  align-items: center;
}

@media (width <= 767px) {
  .modal-content {
    padding: var(--spacing-10) var(--spacing-6);
  }

  .consent-banner {
    right: var(--spacing-3);
    bottom: var(--spacing-3);
    width: calc(100vw - 24px);
  }

  .consent-banner__actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
}
