/* Standalone error-page styles: Next's early 404 fallback can omit layout CSS.
   Keep the recovery screen available without CMS or generated chunk URLs. */
@font-face {
  font-family: "Readily Inter";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Readily DM Sans";
  src: url("/assets/fonts/dm-sans-latin.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
.rh-error-shell {
  --font-body: "Readily Inter", sans-serif;
  --font-heading: "Readily DM Sans", sans-serif;
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
.rh-not-found {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 85svh;
  padding: 152px 24px 96px !important;
  overflow: hidden;
  background: #eff3f6;
  color: #1c1917;
  font-family: var(--font-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.rh-not-found *, .rh-not-found *::before, .rh-not-found *::after {
  box-sizing: border-box;
}
.rh-not-found p, .rh-not-found h1 { margin: 0; }
.rh-not-found a { color: inherit; }
.rh-not-found a:focus-visible {
  outline: 3px solid #21416f;
  outline-offset: 5px;
}
.rh-error-grid {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .6;
  pointer-events: none;
}
.rh-error-content {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}
.rh-error-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 28px;
  padding: 8px 16px;
  border: 1px solid #21416f26;
  border-radius: 999px;
  background: #fffef8;
  font-size: 14px;
  font-weight: 500;
}
.rh-error-badge svg { width: 16px; height: 16px; color: #20592f; }
.rh-not-found .rh-error-status {
  margin-bottom: 16px;
  color: #21416f;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .14em;
}
.rh-not-found h1 {
  max-width: 760px;
  margin-inline: auto;
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.04em;
  color: #1c1917;
  text-wrap: balance;
}
.rh-not-found .rh-error-description {
  max-width: 512px;
  margin-top: 24px;
  margin-inline: auto;
  color: #57534e;
  font-size: 18px;
  line-height: 1.625;
  text-wrap: pretty;
  text-align: center;
}
.rh-error-recovery {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 56px;
  margin-top: 36px;
  padding: 14px 28px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #20592f;
  color: #fffef8 !important;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .2s, color .2s, border-color .2s;
}
.rh-error-recovery:hover, .rh-error-recovery:focus-visible {
  background: #21416f;
  border-color: #21416f;
}
.rh-error-recovery svg { width: 20px; height: 20px; flex-shrink: 0; }
@media (min-width: 640px) {
  .rh-not-found h1 { font-size: 60px; }
}
@media (min-width: 768px) {
  .rh-not-found h1 { font-size: 72px; }
}
@media (max-width: 767px) {
  .rh-not-found { min-height: 85svh; padding-block: 128px 64px !important; }
  .rh-error-content { text-align: left; }
  .rh-not-found h1 { font-size: 48px; line-height: 1.1; text-align: left; }
  .rh-not-found .rh-error-description { font-size: 16px; line-height: 1.625; text-align: left; }
  .rh-error-recovery { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .rh-error-recovery { transition: none; }
}
