.field--name-field-component-links {
  --component-links-display: flex;
  --component-links-align-items: flex-start;
  --component-links-justify-content: space-between;

  display: var(--component-links-display);
  flex-flow: column;
  gap: 0 20px;
  align-items: var(--component-links-align-items);
  justify-content: var(--component-links-justify-content);
}

@media screen and (min-width: 768px) {
  .field--name-field-component-links {
    --component-links-align-items: center;
    --component-links-justify-content: flex-start;
    flex-flow: row;
  }
}

.button {
  --button-display: inline-block;
  --button-min-width: initial;
  --button-max-width: initial;
  --button-width: initial;
  --button-height: initial;
  --button-min-height: initial;
  --button-margin: initial;
  --button-padding: initial;
  --button-transition: var(--animation-easing) var(--animation-duration--fast);
  --button-background: unset;
  --button-background-position: center;
  --button-background-size: cover;
  --button-outline: initial;
  --button-box-shadow: none;
  --button-border: none;
  --button-border-top: initial;
  --button-border-right: initial;
  --button-border-bottom: initial;
  --button-border-left: initial;
  --button-border-radius: initial;
  --button-color: inherit;
  --button-font-family: var(--font-primary);
  --button-font-size: inherit;
  --button-font-weight: inherit;
  --button-text-align: center;
  --button-text-decoration: none;
  --button-text-transform: initial;
  --button-letter-spacing: initial;
  --button-line-height: normal;

  display: var(--button-display);
  position: relative;
  min-width: var(--button-min-width);
  max-width: var(--button-max-width);
  width: var(--button-width);
  height: var(--button-height);
  min-height: var(--button-min-height);
  margin: var(--button-margin);
  padding: var(--button-padding);
  transition: var(--button-transition);
  background: var(--button-background);
  background-position: var(--button-background-position);
  background-size: var(--button-background-size);
  outline: var(--button-outline);
  box-shadow: var(--button-box-shadow);
  border: var(--button-border);
  border-top: var(--button-border-top);
  border-right: var(--button-border-right);
  border-bottom: var(--button-border-bottom);
  border-left: var(--button-border-left);
  border-radius: var(--button-border-radius);
  color: var(--button-color);
  font-size: var(--button-font-size);
  font-family: var(--button-font-family);
  font-weight: var(--button-font-weight);
  text-align: var(--button-text-align);
  text-decoration: var(--button-text-decoration);
  text-transform: var(--button-text-transform);
  letter-spacing: var(--button-letter-spacing);
  line-height: var(--button-line-height);
  cursor: pointer;
}

.button[disabled] {
  cursor: not-allowed;
}

.button::after,
.button::before {
  --button-pseudo-content: none;
  --button-pseudo-position: relative;
  --button-pseudo-top: unset;
  --button-pseudo-right: unset;
  --button-pseudo-bottom: unset;
  --button-pseudo-left: unset;
  --button-pseudo-width: initial;
  --button-pseudo-height: initial;
  --button-pseudo-margin: initial;
  --button-pseudo-padding: initial;
  --button-pseudo-transform: unset;
  --button-pseudo-transition: unset;
  --button-pseudo-border-top: none;
  --button-pseudo-border-right: none;
  --button-pseudo-border-bottom: none;
  --button-pseudo-border-left: none;
  --button-pseudo-background-color: none;
  --button-pseudo-mask: initial;

  content: var(--button-pseudo-content);
  display: inline-block;
  position: var(--button-pseudo-position);
  top: var(--button-pseudo-top);
  right: var(--button-pseudo-right);
  bottom: var(--button-pseudo-bottom);
  left: var(--button-pseudo-left);
  margin: var(--button-pseudo-margin);
  padding: var(--button-pseudo-padding);
  width: var(--button-pseudo-width);
  height: var(--button-pseudo-height);
  transform: var(--button-pseudo-transform);
  transition: var(--button-pseudo-transition);
  border-top: var(--button-pseudo-border-top);
  border-right: var(--button-pseudo-border-right);
  border-bottom: var(--button-pseudo-border-bottom);
  border-left: var(--button-pseudo-border-left);
  background-color: var(--button-pseudo-background-color);
  mask: var(--button-pseudo-mask);
  -webkit-mask: var(--button-pseudo-mask);
  will-change: transform;
}

/* button utilities */
.button--large {
  --button-padding: 14px 18px;
  --button-font-size: 18px;
  --button-line-height: 1.55;
}

.button--medium {
  --button-padding: 12px 9px;
  --button-font-size: 18px;
  --button-line-height: 1.55;
}

.button--small {
  --button-padding: 0 10px;
  --button-font-size: 14px;
  --button-line-height: 2;
}

.button--primary {
  --button-padding: 12px 9px;
  --button-border-radius: 8px;
  --button-background: var(--base-white);
  --button-color: var(--base-grey-5);
  --button-font-family: var(--font-primary);
  --button-font-size: 18px;
  --button-font-weight: var(--font-weight-semibold);
  --button-line-height: 1.55;
}

.button--primary:hover,
.button--primary:focus {
  --button-color: var(--base-white);
  --button-background: var(--base-black);
}

.button--primary:active {
  --button-color: var(--base-white);
  --button-background: var(--base-grey-5);
}

.button--primary:not([disabled]):active::before {
  --button-pseudo-background-color: var(--base-white);
}

.button--primary:not([disabled]):active::after {
  --button-pseudo-background-color: var(--base-white);
}

.button--primary::before {
  --button-pseudo-content: none;
  --button-pseudo-top: 1px;
  --button-pseudo-width: 15px;
  --button-pseudo-height: 15px;
  --button-pseudo-margin: 0 8px 0 0;
  --button-pseudo-padding: 0;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/globe.svg') no-repeat center;
}

.button--primary:not([disabled]):focus-visible::before,
.button--primary:not([disabled]):hover::before {
  --button-pseudo-background-color: var(--base-white);
}

.button--primary::after {
  --button-pseudo-content: none;
  --button-pseudo-width: 16px;
  --button-pseudo-height: 12px;
  --button-pseudo-margin: 0 0 0 9px;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/right-arrow.svg') no-repeat center;
}

.button--primary:not([disabled]):focus-visible::after,
.button--primary:not([disabled]):hover::after {
  --button-pseudo-background-color: var(--base-white);
}

@media all and (min-width: 1024px) {
  .button--primary {
    --button-padding: 14px 18px;
    --button-font-size: 18px;
    --button-line-height: 1.55;
  }
}

.button--secondary {
  --button-padding: 12px 16px;
  --button-border-top: 2px solid var(--base-grey-5);
  --button-border-right: 2px solid var(--base-grey-5);
  --button-border-bottom: 2px solid var(--base-grey-5);
  --button-border-left: 2px solid var(--base-grey-5);
  --button-border-radius: 8px;
  --button-color: var(--base-grey-5);
  --button-font-family: var(--font-primary);
  --button-font-size: 18px;
  --button-font-weight: var(--font-weight-semibold);
  --button-line-height: 1.55;
}

.button--secondary:hover,
.button--secondary:focus {
  --button-color: var(--base-black);
  --button-border-top: 2px solid var(--base-black);
  --button-border-right: 2px solid var(--base-black);
  --button-border-bottom: 2px solid var(--base-black);
  --button-border-left: 2px solid var(--base-black);
}

.button--secondary:active {
  --button-color: var(--base-grey-4);
  --button-border-top: 2px solid var(--base-grey-4);
  --button-border-right: 2px solid var(--base-grey-4);
  --button-border-bottom: 2px solid var(--base-grey-4);
  --button-border-left: 2px solid var(--base-grey-4);
}

.button--secondary::before {
  --button-pseudo-content: '';
  --button-pseudo-top: 1px;
  --button-pseudo-width: 15px;
  --button-pseudo-height: 15px;
  --button-pseudo-margin: 0 8px 0 0;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/globe.svg') no-repeat center;
}

.button--secondary:focus::before,
.button--secondary:hover::before {
  --button-pseudo-background-color: var(--base-black);
}

.button--secondary::after {
  --button-pseudo-content: '';
  --button-pseudo-top: 1px;
  --button-pseudo-width: 18px;
  --button-pseudo-height: 14px;
  --button-pseudo-margin: 0 0 0 8px;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/right-arrow.svg') no-repeat center;
}

.button--secondary:focus::after,
.button--secondary:hover::after {
  --button-pseudo-background-color: var(--base-black);
}

.button--secondary:active:focus::before,
.button--secondary:active:hover::before,
.button--secondary:active::before {
  --button-pseudo-background-color: var(--base-grey-4);
}

.button--secondary:active:focus::after,
.button--secondary:active:hover::after,
.button--secondary:active::after {
  --button-pseudo-background-color: var(--base-grey-4);
}

@media all and (min-width: 1024px) {
  .button--secondary {
    --button-padding: 14px 18px;
    --button-font-size: 18px;
    --button-line-height: 1.55;
  }
}

.button--tertiary {
  --button-color: var(--base-grey-5);
  --button-font-family: var(--font-primary);
  --button-font-size: 18px;
  --button-font-weight: var(--font-weight-semibold);
  --button-line-height: 1.55;
}

.button--tertiary:hover,
.button--tertiary:focus {
  --button-color: var(--base-black);
}

.button--tertiary:active {
  --button-color: var(--base-grey-4);
}

.button--tertiary::before {
  --button-pseudo-content: '';
  --button-pseudo-top: 1px;
  --button-pseudo-width: 15px;
  --button-pseudo-height: 15px;
  --button-pseudo-margin: 0 8px 0 0;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/globe.svg') no-repeat center;
}

.button--tertiary:focus::before,
.button--tertiary:hover::before {
  --button-pseudo-background-color: var(--base-black);
}

.button--tertiary::after {
  --button-pseudo-content: '';
  --button-pseudo-top: 1px;
  --button-pseudo-width: 16px;
  --button-pseudo-height: 12px;
  --button-pseudo-margin: 0 0 0 8px;
  --button-pseudo-background-color: var(--base-grey-5);
  --button-pseudo-mask: url('../../images/icons/right-arrow.svg') no-repeat center;
}

.button--tertiary:focus::after,
.button--tertiary:hover::after {
  --button-pseudo-background-color: var(--base-black);
}

.button--tertiary:active:focus::before,
.button--tertiary:active:hover::before,
.button--tertiary:active::before {
  --button-pseudo-background-color: var(--base-grey-4);
}

.button--tertiary:active:focus::after,
.button--tertiary:active:hover::after,
.button--tertiary:active::after {
  --button-pseudo-background-color: var(--base-grey-4);
}
