.axpc404,
.axpc404 * {
  box-sizing: border-box;
}

/*
 * Neutraliza borda, contorno e sombra dos containers que envolvem a seção
 * (container do Elementor, wrapper do tema, widget de shortcode). A seção
 * em si nunca é atingida: :has() só casa com elementos ancestrais, e um
 * elemento não é descendente de si mesmo. Ativado pela opção "Remover
 * bordas do container" na aba Erro 404.
 */
:is(
  .e-con,
  .e-con-inner,
  .e-child,
  .elementor-element,
  .elementor-section,
  .elementor-container,
  .elementor-column,
  .elementor-column-wrap,
  .elementor-widget-wrap,
  .elementor-widget,
  .elementor-widget-container,
  .elementor-widget-shortcode,
  main,
  article,
  aside,
  section,
  .site-main,
  .site-content,
  .content-area,
  .entry-content,
  .page-content,
  .error404
):has(.axpc404--clean) {
  border: 0 !important;
  border-width: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.axpc404 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  min-height: var(--axpc404-min-height, 680px);
  padding: var(--axpc404-pt, 72px) 24px var(--axpc404-pb, 72px);
  margin: 0;
  overflow: hidden;
  background: var(--axpc404-bg, transparent);
  color: var(--axpc404-text-color, #718078);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.axpc404__container {
  width: 100%;
  max-width: min(var(--axpc404-max, 1280px), 100%);
  margin: 0 auto;
}

.axpc404__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, var(--axpc404-content-max, 680px));
  margin: 0 auto;
  text-align: center;
}

.axpc404--left .axpc404__content {
  align-items: flex-start;
  margin-left: 0;
  text-align: left;
}

.axpc404--right .axpc404__content {
  align-items: flex-end;
  margin-right: 0;
  text-align: right;
}

.axpc404__logo {
  display: flex;
  align-items: center;
  justify-content: inherit;
  width: min(100%, var(--axpc404-logo-d, 220px));
  max-width: 100%;
  margin: 0 0 var(--axpc404-logo-gap, 30px);
  line-height: 0;
}

.axpc404__logo > a,
.axpc404__logo .axionpass-logo-box {
  display: flex !important;
  align-items: center !important;
  justify-content: inherit !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.axpc404__logo img,
.axpc404__logo svg,
.axpc404__logo .axionpass-logo-box img,
.axpc404__logo .axionpass-logo-box svg,
.axpc404__logo-image {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain !important;
  filter: none !important;
}

.axpc404__logo-text {
  display: inline-flex;
  color: var(--axpc404-title-color, #26312a);
  font: inherit;
  line-height: 1.1;
}

.axpc404__code {
  margin: 0 0 var(--axpc404-title-gap, 10px);
  padding: 0;
  color: var(--axpc404-code-color, rgba(23, 107, 53, 0.1));
  font-family: var(--axpc404-code-font-family, inherit);
  font-size: var(--axpc404-code-font-size, 112px);
  font-style: var(--axpc404-code-font-style, normal);
  font-weight: var(--axpc404-code-font-weight, 700);
  line-height: var(--axpc404-code-line-height, .95);
  letter-spacing: var(--axpc404-code-letter-spacing, -5px);
  text-transform: var(--axpc404-code-text-transform, none);
  user-select: none;
}

.axpc404__title {
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--axpc404-title-color, #26312a) !important;
  font-family: var(--axpc404-title-font-family, inherit) !important;
  font-size: var(--axpc404-title-font-size, 40px) !important;
  font-style: var(--axpc404-title-font-style, normal) !important;
  font-weight: var(--axpc404-title-font-weight, 700) !important;
  line-height: var(--axpc404-title-line-height, 1.15) !important;
  letter-spacing: var(--axpc404-title-letter-spacing, 0) !important;
  text-transform: var(--axpc404-title-text-transform, none) !important;
  text-shadow: none !important;
}

.axpc404__text {
  width: 100%;
  max-width: 100%;
  margin: var(--axpc404-text-gap, 18px) 0 0 !important;
  padding: 0 !important;
  color: var(--axpc404-text-color, #718078) !important;
  font-family: var(--axpc404-body-font-family, inherit) !important;
  font-size: var(--axpc404-body-font-size, 16px) !important;
  font-style: var(--axpc404-body-font-style, normal) !important;
  font-weight: var(--axpc404-body-font-weight, 400) !important;
  line-height: var(--axpc404-body-line-height, 1.55) !important;
  letter-spacing: var(--axpc404-body-letter-spacing, 0) !important;
  text-transform: var(--axpc404-body-text-transform, none) !important;
  text-shadow: none !important;
}

.axpc404__actions {
  display: flex;
  align-items: center;
  justify-content: inherit;
  width: 100%;
  margin-top: var(--axpc404-button-gap, 32px);
}

.axpc404__button,
.axpc404__button:visited,
.axpc404__button:hover,
.axpc404__button:focus,
.axpc404__button:focus-visible,
.axpc404__button:active {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px;
  padding: var(--axpc404-button-py, 14px) var(--axpc404-button-px, 24px) !important;
  color: var(--axpc404-button-text, #fff) !important;
  background: var(--axpc404-button-bg, #176b35) !important;
  background-image: none !important;
  border: var(--axpc404-button-border-width, 1px) solid var(--axpc404-button-border, #176b35) !important;
  border-radius: var(--axpc404-button-radius, 8px) !important;
  box-shadow: none !important;
  font-family: var(--axpc404-button-font-family, inherit) !important;
  font-size: var(--axpc404-button-font-size, 14px) !important;
  font-style: var(--axpc404-button-font-style, normal) !important;
  font-weight: var(--axpc404-button-font-weight, 600) !important;
  line-height: var(--axpc404-button-line-height, 1.2) !important;
  letter-spacing: var(--axpc404-button-letter-spacing, 0) !important;
  text-transform: var(--axpc404-button-text-transform, none) !important;
  text-decoration: none !important;
  text-shadow: none !important;
  transform: none !important;
  translate: none !important;
  scale: 1 !important;
  rotate: 0deg !important;
  animation: none !important;
  filter: none !important;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease !important;
}

.axpc404__button:hover,
.axpc404__button:focus,
.axpc404__button:focus-visible,
.axpc404__button:active {
  color: var(--axpc404-button-hover-text, #fff) !important;
  background: var(--axpc404-button-hover-bg, #0f5228) !important;
  background-image: none !important;
  border-color: var(--axpc404-button-hover-bg, #0f5228) !important;
}

.axpc404__button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--axpc404-button-bg, #176b35) 28%, transparent) !important;
  outline-offset: 4px !important;
}

.axpc404__button-inner {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  color: inherit !important;
  font: inherit !important;
  transform: none !important;
  scale: 1 !important;
}

.axpc404__button-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px;
  height: 18px;
  color: inherit !important;
  line-height: 0 !important;
  transform: none !important;
  scale: 1 !important;
}

.axpc404__button-icon svg,
.axpc404__button-icon svg * {
  display: block;
  width: 18px;
  height: 18px;
  stroke: currentColor !important;
  transform: none !important;
  scale: 1 !important;
}

.axpc404__button-text {
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  transform: none !important;
  scale: 1 !important;
}

.axpc404 :where(a, a:hover, a:focus, a:active, a:visited),
.axpc404 :where(a, a:hover, a:focus, a:active, a:visited) :where(span, svg, img) {
  text-shadow: none !important;
  box-shadow: none !important;
}

@media (max-width: 1279px) {
  .axpc404__container { max-width: min(var(--axpc404-max, 1280px), 1100px, 100%); }
}

@media (max-width: 1100px) {
  .axpc404__container { max-width: min(var(--axpc404-max, 1280px), 925px, 100%); }
}

@media (max-width: 925px) {
  .axpc404__container { max-width: min(var(--axpc404-max, 1280px), 780px, 100%); }
}

@media (max-width: 781px) {
  .axpc404__container { max-width: min(var(--axpc404-max, 1280px), 728px, 100%); }
}

@media (max-width: 767px) {
  .axpc404 {
    min-height: var(--axpc404-min-height-mobile, 560px);
    padding-right: 20px;
    padding-left: 20px;
  }

  .axpc404__logo {
    width: min(100%, var(--axpc404-logo-m, 180px));
  }

  .axpc404__code {
    font-size: min(var(--axpc404-code-font-size, 92px), 24vw);
    letter-spacing: max(var(--axpc404-code-letter-spacing, -4px), -5vw);
  }
}

@media (max-width: 480px) {
  .axpc404 {
    padding-right: 16px;
    padding-left: 16px;
  }

  .axpc404__container {
    max-width: min(var(--axpc404-max, 1280px), 350px, 100%);
  }

  .axpc404__button {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .axpc404__button {
    transition: none !important;
  }
}

.axpc404--left .axpc404__logo,
.axpc404--left .axpc404__actions { justify-content: flex-start; }
.axpc404--center .axpc404__logo,
.axpc404--center .axpc404__actions { justify-content: center; }
.axpc404--right .axpc404__logo,
.axpc404--right .axpc404__actions { justify-content: flex-end; }
