/* CSS reset */

*, *::before, *::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body, div, header, footer, aside, main, section, article, p, ul, ol, li, dl, dt, dd, form, hr, table, h1, h2, h3, h4, h5, h6, td, th, button, b, iframe {
  margin: 0;
  padding: 0;
}

ul, ol {
  list-style: none;
}

em, i {
  font-style: normal;
}

strong, b {
  font-weight: normal;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button, a, input[type="button"], input[type="submit"] {
  cursor: pointer;
  border: none;
}

a {
  text-decoration: none;
}

img {
  display: block;
}

/* position */

.fl {
  float: left;
}

.fr {
  float: right;
}

.clear {
  clear: both;
}

.hide {
  display: none;
}

.vhide {
  visibility: hidden;
}

.tr {
  text-align: right;
}

.tl {
  text-align: left;
}

.tc {
  text-align: center;
}

.clearfix:after {
  content: ".";
  display: block;
  visibility: hidden;
  height: 0;
  clear: both;
}

.clearfix {
  zoom: 1;
}

.vm {
  vertical-align: middle;
}

.vt {
  vertical-align: top;
}

.vb {
  vertical-align: bottom;
}