/* base.css: reset, element defaults, focus ring.
   Ported from the source theme (RECON/assets/pretty/style.css), selectors and values kept 1:1. */
@layer base {
  body.dark {
    background: var(--clr-dark);
  }
  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  main,
  menu,
  nav,
  section {
    display: block;
  }
  sub,
  sup {
    position: relative;
  }
  progress,
  sub,
  sup {
    vertical-align: baseline;
  }
  h1,
  h2 {
    letter-spacing: 0;
  }
  body.loading {
    pointer-events: none;
  }
  a,
  abbr,
  acronym,
  address,
  applet,
  article,
  aside,
  audio,
  b,
  big,
  blockquote,
  body,
  canvas,
  caption,
  center,
  cite,
  code,
  dd,
  del,
  details,
  dfn,
  div,
  dl,
  dt,
  em,
  embed,
  fieldset,
  figcaption,
  figure,
  footer,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  header,
  hgroup,
  html,
  i,
  iframe,
  img,
  ins,
  kbd,
  label,
  legend,
  li,
  mark,
  menu,
  nav,
  object,
  ol,
  output,
  p,
  pre,
  q,
  ruby,
  s,
  samp,
  section,
  small,
  span,
  strike,
  strong,
  sub,
  summary,
  sup,
  table,
  tbody,
  td,
  tfoot,
  th,
  thead,
  time,
  tr,
  tt,
  u,
  ul,
  var,
  video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
  }
  h3,
  h4,
  h5 {
    margin-left: -1px;
  }
  body {
    font-family: var(--font-sans);
  }
  h1,
  h2,
  h3,
  h4,
  h5 {
    margin-bottom: 1em;
  }
  body {
    line-height: 1;
    margin: 0;
    color: var(--clr-white);
  }
  ul {
    list-style: disc;
    padding-left: 1.3em;
  }
  ol {
    list-style: decimal;
    padding-left: 1.3em;
  }
  ol li,
  ul li {
    padding-bottom: 1em;
  }
  blockquote,
  q {
    quotes: none;
  }
  blockquote:after,
  blockquote:before,
  q:after,
  q:before {
    content: "";
    content: none;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
  }
  body,
  html {
    font-size: 14px;
    overflow-x: hidden;
  }
  button,
  hr,
  input {
    overflow: visible;
  }
  hr {
    box-sizing: content-box;
    height: 0;
  }
  legend {
    box-sizing: border-box;
  }
  code,
  kbd,
  pre,
  samp {
    font-family: var(--font-mono);
    font-size: 1em;
  }
  a {
    background-color: transparent;
  }
  abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  b,
  strong {
    font-weight: bolder;
  }
  h1,
  h2 {
    font-weight: 700;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  img {
    border-style: none;
  }
  button,
  input {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    margin: 0;
  }
  button {
    text-transform: none;
  }
  .button:hover:before {
    width: 0;
  }
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner,
  button::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring,
  button:-moz-focusring {
    outline: ButtonText dotted 1px;
  }
  ::-moz-placeholder {
    color: var(--clr-muted);
  }
  fieldset {
    padding: 0.35em 0.75em 0.625em;
  }
  legend {
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal;
  }
  ::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
  }
  h4,
  h5 {
    line-height: 35px;
  }
  summary {
    display: list-item;
  }
  [hidden],
  template {
    display: none;
  }
  body.dark h5 {
    letter-spacing: 0;
  }
  h1 {
    font-size: 48px;
    line-height: 1.388888888888889;
  }
  h2 {
    font-size: 36px;
    line-height: 50px;
  }
  h3,
  h4 {
    letter-spacing: 0;
    font-weight: 700;
  }
  h3 {
    font-size: 30px;
    line-height: 40px;
  }
  h4 {
    font-size: 24px;
  }
  h5 {
    font-size: 18px;
    font-weight: 400;
  }
  h6 {
    font-size: 12px;
    line-height: 18px;
    margin: 0;
  }
  p {
    line-height: 28px;
    margin-bottom: 15px;
  }
  section:after {
    display: table;
    clear: both;
    content: "";
  }
  @media (max-width: 767px) {
  h2 {
    font-size: 28px;
  }
  }
  @media (max-width: 767px) {
  h3 {
    font-size: 22px;
  }
  }
  @media only screen and (max-width: 450px) {
  body,
  html {
    overflow-x: hidden;
  }
  }
  @media (min-width: 450px) and (max-width: 900px) {
  body,
  html {
    width: 100%;
  }
  }
  @media (min-width: 450px) and (max-width: 900px) {
  body,
  html {
    overflow-x: hidden;
  }
  }
  .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  @media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation-duration: 1ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
  }
  }
  @media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  }
  :focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
    box-shadow: 0 0 0 4px #00000059;
    border-radius: 2px;
  }
  :focus:not(:focus-visible) {
    outline: 0;
  }
  @media (prefers-contrast: more) {
  :focus-visible {
    outline-width: 3px;
  }
  }
  /* typographic hygiene (hard rule): no orphan last-line words; component rules (balance) still win by order */
  /* text-wrap-style only: the text-wrap shorthand would reset an inherited white-space: nowrap (marquees, scroll line) */
  p, dd, figcaption, blockquote {
    text-wrap-style: pretty;
  }
  h1, h2, h3, h4, h5, h6, li {
    text-wrap-style: balance;
  }
  :where(p, li, figcaption, blockquote):has(br) {
    text-wrap-style: auto;
  }
}
