/* Basics */

.btn {
  display: inline-block;
  padding: 0.313rem 1rem 0.125rem;
  border-radius: 0.1875rem;

  text-align: center;
  font-family: "Teko", sans-serif;
  font-size: 1.375rem;
  font-weight: 500;
  text-transform: uppercase;
  text-decoration: none;

  cursor: pointer;
}

.btn.btn-small {
  padding: 0.125rem 1rem 0;
  font-size: 1.25rem;
}

@media screen and (min-width: 768px) {
  .btn {
    padding: 0.25rem 1.5rem 0;
    border-radius: 0.25rem;
    font-size: 1.5rem;
  }
}

.btn.disabled,
.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn:hover:not(.disabled, :disabled) {
  box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.25);
}

.btn:active:not(.disabled, :disabled) {
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25) inset;
}

.btn.btn-outline:hover,
.btn.btn-outline:active {
  box-shadow: none;
}

/* Colors: primary */

.btn.btn-primary {
  background-color: var(--brand-red);
  color: #fff;
}

.btn.btn-primary:hover:not(.disabled, :disabled) {
  background-color: #bf3136;
}

.btn.btn-primary:active:not(.disabled, :disabled) {
  background-color: #96272b;
}

.btn.btn-primary.btn-outline {
  background: transparent;
  color: var(--brand-red);
  outline: 2px solid var(--brand-red);
  outline-offset: -2px;
}

.btn.btn-primary.btn-outline:hover:not(.disabled, :disabled) {
  background: color-mix(in srgb, var(--brand-charcoal) 30%, transparent);
}

.btn.btn-primary.btn-outline:active:not(.disabled, :disabled) {
  background: var(--brand-red);
  color: #fff;
}

/* Colors: secondary (light bg) */

.btn.btn-secondary {
  background-color: var(--brand-charcoal);
  color: var(--brand-parchment);
}

.btn.btn-secondary:hover:not(.disabled, :disabled) {
  background-color: #4c4345;
}

.btn.btn-secondary:active:not(.disabled, :disabled) {
  background-color: #75676a;
}

.btn.btn-secondary.btn-outline {
  background: transparent;
  color: var(--brand-charcoal);
  outline: 2px solid var(--brand-charcoal);
  outline-offset: -2px;
}

.btn.btn-secondary.btn-outline:hover:not(.disabled, :disabled) {
  background: color-mix(in srgb, var(--brand-charcoal) 30%, transparent);
}

.btn.btn-secondary.btn-outline:active:not(.disabled, :disabled) {
  background: var(--brand-charcoal);
  color: var(--brand-parchment);
}

/* Colors: secondary (dark bg) */

.btn.btn-secondary-reverse {
  background-color: var(--brand-parchment);
  color: var(--brand-charcoal);
}

.btn.btn-secondary-reverse:hover:not(.disabled, :disabled) {
  background-color: #eadb9a;
}

.btn.btn-secondary-reverse:active:not(.disabled, :disabled) {
  background-color: #d8c679;
}

.btn.btn-secondary-reverse.btn-outline {
  background: transparent;
  color: var(--brand-parchment);
  outline: 2px solid var(--brand-parchment);
  outline-offset: -2px;
}

.btn.btn-secondary-reverse.btn-outline:hover:not(.disabled, :disabled) {
  background: color-mix(in srgb, var(--brand-parchment) 30%, transparent);
}

.btn.btn-secondary-reverse.btn-outline:active:not(.disabled, :disabled) {
  background: var(--brand-parchment);
  color: var(--brand-charcoal);
}

/* Ghost buttons */

.btn-ghost {
  padding: 0.75rem;
  border-radius: 0.1875rem;

  text-align: center;
  font-family: "Barlow", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--brand-blue);
  line-height: 1;

  cursor: pointer;
}

button.btn-ghost {
  background-color: transparent;
}

.btn-ghost oc-with-icon {
  --icon-vertical-adjustment: 0.1rem;
}

.btn-ghost:active:not(.disabled, :disabled) {
  background-color: color-mix(in srgb, var(--brand-blue) 30%, transparent);
  color: var(--brand-blue);
}

.btn-ghost.disabled {
  color: color-mix(in srgb, var(--brand-blue) 60%, transparent);
  pointer-events: none;
}

/* Share button */

.btn-share {
  padding: 0.75rem 0.75rem 0.5rem;
  border-radius: 0.1875rem;

  text-align: center;
  font-family: "Barlow", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--brand-blue);

  cursor: pointer;
}

.btn-share:hover {
  color: black;
  outline: 1px solid color-mix(in srgb, var(--brand-charcoal) 30%, transparent);
}

.btn-share[data-open] {
  color: black;
  outline: 1px solid color-mix(in srgb, var(--brand-charcoal) 30%, transparent);
  background-color: color-mix(in srgb, var(--brand-charcoal) 15%, transparent);
}

.btn-icon {
  border: none;
  background-color: transparent;
  cursor: pointer;
  margin: 0;
  padding: 0;
  outline: none;
}
