body,
html {
  height: 100%;
}

html {
  scroll-behavior: smooth;
}

html * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  color: var(--text-color);
  font-size: var(--base-size-lg);
  line-height: var(--base-lh-lg);
  margin: 0;
  padding: 0;
  background-color: var(--bg-primary, #ffffff);
  transition:
    background-color var(--animation-duration),
    color var(--animation-duration);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--text-color);
  font-family: var(--font-family-display);
}

h1,
h1.elementor-heading-title {
  color: var(--text-color);
  font-size: var(--display-size-2xl);
  line-height: var(--display-lh-2xl);
  font-weight: var(--font-weight-700);
}

h2 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-800);
}

h3 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-700);
}

h4,
h5 {
  font-size: var(--font-size-md);
}

h4 {
  font-weight: var(--font-weight-600);
}

h5,
h6 {
  font-weight: var(--font-weight-500);
}

h6 {
  font-size: var(--font-size-sm);
}

p,
p.elementor-heading-title {
  color: var(--text-color);
  font-size: var(--base-size-lg);
  line-height: var(--base-lh-lg);
  font-family: var(--font-family-base, "Roboto");
  font-weight: var(--font-weight-400, 400);
  margin: 0;
}

.elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: var(--radius-8);
  font-size: var(--base-size-md);
  font-weight: var(--fw-600);
  line-height: 1 !important;
  padding: 12px 24px !important;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  z-index: 1;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size 0.5s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease;
  box-shadow: 0 9px 22px 2px rgba(69, 62, 62, 0.1);
  background-color: var(--base-purple, #521C78);
  background-image: linear-gradient(var(--brand-500), var(--brand-500));
  color: var(--white, #fff) !important;
  min-height: 44px;
}

.pb-btn__transparent .elementor-button {
  background-color: var(--white, #fff);
  background-image: linear-gradient(#f4f4f4, #f4f4f4);
  color: var(--brand-500) !important;
}

.elementor-button:hover {
  background-size: 100% 100%;
}

.pb-btn__transparent .elementor-button:hover {
  color: var(--brand-500) !important;
}

.elementor-button .elementor-button-content-wrapper,
.elementor-button .elementor-button-text {
  display: flex !important;
  align-items: center !important;
  position: relative;
  z-index: 2;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.elementor-icon svg,
.elementor-widget-icon svg {
  width: auto;
  height: auto;
}

.elementor-shortcode {
  line-height: 0;
}