/* Reset & Normalize CSS + Custom Reset (Optimized) */
/* ========================================================================== */

/* Box sizing */
*,
::before,
::after {
  box-sizing: border-box;
  background-repeat: repeat;
}

/* Remove default margin */
html,
body {
  margin: 0;
  padding: 0;
}

/* Body */
body {
  margin: 0;
}

/* Typography Reset */
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1.6rem;
  font-weight: unset;
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}

/* Lists */
ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Nested Lists */
dl dl,
dl ol,
dl ul,
ol dl,
ul dl,
ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0;
}

/* List inside nav */
nav ol,
nav ul {
  list-style: none;
  padding: 0;
}

/* Inline Elements */
a {
  background-color: transparent;
  color: inherit;
  cursor: pointer;
  text-decoration: none;
}

abbr[title] {
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sup {
  vertical-align: super;
  font-size: 0.5em;
}

i {
  font-style: normal;
}

/* Media */
img {
  width: 100%;
  height: auto;
  border-style: none;
  vertical-align: top;
}

svg:not([fill]) {
  fill: currentColor;
}

svg:not(:root) {
  overflow: hidden;
}

iframe {
  border-style: none;
}

object,
embed {
  vertical-align: top;
}

/* HR, Legend, Q */
hr,
legend {
  display: none;
}

q:before,
q:after {
  content: '';
}

/* Forms */
button,
input,
select,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  text-transform: none;
  overflow: visible;
}

input,
select {
  text-transform: none;
}

[type='checkbox'],
[type='radio'] {
  padding: 0;
}

[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

:-moz-focusring {
  outline: 1px dotted ButtonText;
}

:-moz-ui-invalid {
  box-shadow: none;
}

/* Table */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Others */
fieldset {
  border: 1px solid #a0a0a0;
  padding: 0.35em 0.75em 0.625em;
}

legend {
  color: inherit;
  display: table;
  max-width: 100%;
  white-space: normal;
}

/* Embedded */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

audio,
video {
  display: inline-block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

main {
  display: block;
}

progress {
  display: inline-block;
  vertical-align: baseline;
}

/* Interactive */
details {
  display: block;
}

dialog {
  background-color: white;
  border: solid;
  color: black;
  display: block;
  height: fit-content;
  margin: auto;
  padding: 1em;
  position: absolute;
  width: fit-content;
  left: 0;
  right: 0;
}

dialog:not([open]) {
  display: none;
}

summary {
  display: list-item;
}

/* Utility */
template {
  display: none;
}

canvas {
  display: inline-block;
}

[hidden] {
  display: none;
}

/* Touch Action */
a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

/* Accessibility */
[aria-busy='true'] {
  cursor: progress;
}

[aria-controls] {
  cursor: pointer;
}

[aria-disabled='true'],
[disabled] {
  cursor: not-allowed;
}

[aria-hidden='false'][hidden] {
  display: initial;
}

[aria-hidden='false'][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

/* Reset address, caption, etc. */
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
}

/* Figures */
figure {
  margin: 0;
  padding: 0;
}
