/* ==========================================================================
   RESET.CSS — Minimal Modern Reset
   toilet-cubicle.co.uk
   Normalises browser defaults without being destructive.
   ========================================================================== */

/* -------------------------------------------------------------------------
   Box-sizing — inherit model so components can override locally
   ------------------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* -------------------------------------------------------------------------
   Root & Document
   ------------------------------------------------------------------------- */

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  tab-size: 4;
}

/* -------------------------------------------------------------------------
   Strip default margins & padding
   ------------------------------------------------------------------------- */

html,
body,
h1, h2, h3, h4, h5, h6,
p,
blockquote,
pre,
figure,
figcaption,
dl, dd,
ol, ul,
fieldset,
legend {
  margin: 0;
  padding: 0;
}

/* -------------------------------------------------------------------------
   Lists
   ------------------------------------------------------------------------- */

ol,
ul {
  list-style: none;
}

/* -------------------------------------------------------------------------
   Media elements
   ------------------------------------------------------------------------- */

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
  /* prevent alt-text overflow on broken images */
  font-style: italic;
}

/* -------------------------------------------------------------------------
   Form elements — inherit font by default
   ------------------------------------------------------------------------- */

input,
button,
textarea,
select,
optgroup {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

textarea {
  resize: vertical;
}

/* Remove inner border and padding in Firefox */
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/* -------------------------------------------------------------------------
   Links
   ------------------------------------------------------------------------- */

a {
  color: inherit;
  text-decoration: inherit;
}

/* -------------------------------------------------------------------------
   Tables
   ------------------------------------------------------------------------- */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* -------------------------------------------------------------------------
   Misc
   ------------------------------------------------------------------------- */

hr {
  border: none;
  border-top: 1px solid var(--color-grey-200, #E5E7EB);
  margin: 0;
}

/* Remove default summary marker */
summary {
  display: list-item;
  cursor: pointer;
}

/* Prevent text overflow */
p,
h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* -------------------------------------------------------------------------
   Accessibility — Screen-reader-only utility
   Content is visually hidden but remains accessible to assistive tech.
   ------------------------------------------------------------------------- */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Allow focus styles to show when sr-only elements receive focus */
.sr-only:focus,
.sr-only:active {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
