@charset "UTF-8";
/*
  INIT ELEMENTS
*/
* {
  -webkit-text-size-adjust: none !important;
}

p, div, ul, ol, li,
h1, h2, h3, h4, h5, h6, hr, a {
  margin: 0;
  padding: 0;
  height: auto;
  width: auto;
  border: none;
  position: relative; 
}

header, footer, nav, section, aside,
body, html {
  margin: 0;
  padding: 0;
  position: relative; 
}

h1, h2, h3, h4, h5, h6 {
}

dt {
  font-weight: bold;
}

p, dd {
  margin-bottom: 1em;
}

div {
  vertical-align: baseline;
}

blockquote {
  font-style: oblique;
  font-family: sans-serif;
}

img {
  vertical-align: baseline;
  border: none;
  margin: 0;
  padding: 0;
}

a {
  outline: none;
  text-decoration: none;
}

ul, li {
  list-style-position: inside;
}

ul ul,
ul ol,
ol ol,
ol ul {
  margin-left: 1em;
}

ul,
ol {
  margin-left: 2em;
}

ul li,
ol li {
  list-style-position: outside;
  margin: 0;
}


hr {
  height: 1px;
  line-height: 1px;
  margin: 1em 0;
  display: inline-block;
  vertical-align: middle;
  width: 100%;
  color: #ccc;
  background-color: #ccc;
  border-width: 0;
  font-family: '';
}


/*
  GLOBAL CLASSES
*/
/* 余白など */
.truncate {
  font-size: 0;
  line-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.no-text {
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

.no-spaces {
  margin: 0 !important;
  padding: 0 !important;
}

.no-margin {
  margin: 0 !important;
}

.no-bottom-margin {
  margin-bottom: 0 !important;
}

.no-padding {
  padding: 0 !important;
}

.no-bottom-padding {
  padding-bottom: 0 !important;
}

.no-mark {
  list-style-type: none !important;
}

.no-mark li {
  list-style-position: outside !important;
}

.no-border {
  border: none !important;
}

/* 配置 */
.al-l {
  text-align: left;
}

.al-r {
  text-align: right;
}

.al-c {
  text-align: center;
}

.fl-l {
  float: left;
}
.fl-r {
  float: right;
}

/* その他 */
.il-b {
  display: inline-block;
}

.wmax {
  width: 100%;
}

/* フォント */
.font-serif {
  font-family: 'ヒラギノ明朝 Pro W6', 'HiraMinProN-W6', serif;
}

/*
  UTILS
*/
/* UL: 水平に並べる */
ul.horizontally {
  display: inline-block;
  width: 100%;
}

ul.horizontally li {
  float: left;
  display: inline;
}

/* UL: アイテムを均等割付 */
ul.spacing-justify {
  list-style-type: none;
  display: inline-block;
  width: 100%;
  height: auto;
  text-align: justify;
  text-justify: distribute-all-lines;
  position: relative;
  overflow: hidden;
 
  font-size: 0;
  line-height: 0;
  
  font-size: 0; /* 実験 */
}

ul.spacing-justify:after {
  content: "";
  display: inline-block;
  width: 100%;
  overflow: hidden;
  visibility: hidden;
  font-size: 0;
  line-height: 0;
  height: 0;
  vertical-align: top;
  
  /* For IEs */
  display: none\0/;
}

ul.spacing-justify li.blank {
  display: inline-block;
}

ul.spacing-justify li {
  float: none;
  text-align: left;
  text-justify: distribute;
  position: relative;
  display: inline-block;
  
  vertical-align: top;
  
  font-size: 12px;
  line-height: 1em;
  
  /* For IEs */
  *display: inline;
  *zoom: 1;
}

/* UL: 擬似イメージマップ */
ul.pseudo-imgmap {
  position: absolute;
  display: inline-block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 10;
}

ul.pseudo-imgmap li {
  position: absolute;
  display: inline-block;
  height: auto;
  width: auto;
  z-index: 100;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

ul.pseudo-imgmap * {
  line-height: normal !important;
}

ul.pseudo-imgmap li img {
  margin: 0 !important;
  padding: 0 !important;
}

ul.pseudo-imgmap.show {
  background-color: rgba(0,0,0,0.25);
}

ul.pseudo-imgmap.show li {
  background-color: rgba(255,0,0,0.25);
}

/*
  Others
*/
body > header .wfx *:last-child,
body > footer .wfx *:last-child,
#content .wfx *:last-child,
body > aside *:last-child {
  margin-bottom: 0;
}