/*
 * base.css - modernized from Skeleton V1.2 base
 * Cleaned and updated for modern use (2025)
 * MIT License
 */

/* Table of Contents
==================================================
  #Reset
  #Base Styles
  #Typography
  #Links
  #Lists
  #Buttons
  #Misc
*/

/* #Reset
================================================== */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption,
tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, select {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
  box-sizing: border-box;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1.5;
  font-family: 'Lato', system-ui, sans-serif;
  font-size: 16px;
  color: #606060;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: '';
}

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

/* #Typography
================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: 'NexaBold', sans-serif;
  text-align: center;
  color: #313131;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1rem;
}

h1 { font-size: 2.8rem; letter-spacing: 10px; color: #fff; }
h2 { font-size: 2.4rem; letter-spacing: 7px; }
h3 { font-size: 2rem; letter-spacing: 6px; }
h4 { font-size: 1.6rem; letter-spacing: 4px; }
h5 { font-size: 1.4rem; letter-spacing: 4px; }
h6 { font-size: 1.1rem; letter-spacing: 1px; }

p {
  margin-bottom: 1rem;
}

p.lead {
  font-size: 1.3rem;
  color: #777;
}

em { font-style: italic; }
strong { font-weight: 600; }
small { font-size: 80%; }

blockquote, blockquote p {
  font-size: 1rem;
  color: #777;
  padding-left: 1rem;
  border-left: 3px solid #eee;
  margin: 1rem 0;
}

blockquote cite {
  display: block;
  font-size: 0.875rem;
  color: #555;
  margin-top: 0.5rem;
}

blockquote cite::before {
  content: "— ";
}

hr {
  border: 0;
  border-top: 1px solid #323a3d;
  margin: 2rem 0;
}

/* #Links
================================================== */
a {
  text-decoration: none;
  color: inherit;
}

a:hover,
a:focus {
  color: #e74c3c;
  text-decoration: underline;
}

a:focus {
  outline: none;
}

/* #Lists
================================================== */
ul {
  list-style: disc;
  padding-left: 2rem;
}

ol {
  list-style: decimal;
  padding-left: 2rem;
}

ul ul, ul ol,
ol ol, ol ul {
  font-size: 0.95rem;
}

li {
  line-height: 1.5;
}

/* #Buttons
================================================== */
.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  border: none;
  color: #dfdfdf;
  background: #333;
  padding: 15px 25px;
  cursor: pointer;
  font-size: 1rem;
  width: 100%;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover {
  color: #e74c3c;
  background: #444;
}

.button.full-width,
input[type="submit"].full-width,
input[type="reset"].full-width,
input[type="button"].full-width {
  width: 100%;
  text-align: center;
}

/* #Misc
================================================== */
.remove-bottom { margin-bottom: 0 !important; }
.half-bottom { margin-bottom: 10px !important; }
.add-bottom { margin-bottom: 20px !important; }

.clear {
  clear: both;
  display: block;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

::selection {
  background: rgba(100, 100, 100, 0.2);
}

::-moz-selection {
  background: rgba(100, 100, 100, 0.2);
}
