@charset "UTF-8";
*,
::before,
::after {
  position: relative;
  z-index: auto;
  min-height: 0%; 
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  font-size: 100%; /* 16px */
  font-size: 5vmin; /* 画面最小幅320px時に16px */ 
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
@media (min-width:601px) {
  html {
    font-size: 1.333vw;
    /* 画面幅601px時:14px 〜 1200px時:16px 
    14px + ( 100vw - 600px ) / ( 1200px / 600px ) * ( 16px - 14px ) */
    font-size: -webkit-calc( 14px + ( 100vw - 600px ) / 300 );
    font-size: calc( 14px + ( 100vw - 600px ) / 300 );
  }
}
@media (min-width:1201px) {
  html {
    font-size: 100%;
  }
}
@media print {
  html {
    font-size: 9pt;
  } 
}

body {
  min-height: 100%;
  background-color: #fff;
  fill: #333;
  color: #333;
  font-size: 1rem;
  font-weight: 400;
}
body, 
.sans-serif {
  font-family:
    Arial, Helvetica, Roboto, "Droid Sans", 
    sans-serif;
}
.serif {
  font-family:
    "Times New Roman",
    serif;
}
html[lang="ja"] body, 
html[lang="ja"] .sans-serif {
  font-family: 
    "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", 
    "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",
    "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Osaka, 
    "Droid Sans Japanese";  
}
html[lang="ja"] .serif {
  font-family: 
    "游明朝", "Yu Mincho", "游明朝体", "YuMincho", 
    "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3",
    "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho";
}
html[lang="ja"] body[data-browser="IE"] {
  font-family:
    "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",
    "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", 
}

a, 
a::before, 
a::after {
  -webkit-transition: all 0.2s 0s;
  -o-transition: all 0.2s 0s;
  transition: all 0.2s 0s;
}
a[href^="http"] {
  -ms-word-break: break-all;
  word-break: break-all;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 1em;
}
em, address {
  font-style: normal;
}

hr {
  clear: both;
  border-style: solid;
  margin: 1.5rem 0;
}

img, svg {
  max-width: 100%;
  vertical-align: bottom;
}
img {
  line-height: 1;
  vertical-align: bottom;
}
svg {
  height: 1em;
}

input, 
textarea, 
select {
  padding: 0.25em 0.5em;
  background-color: #FFF;
  border: solid 1px #ccc;
}
input[type="text"], 
input[type="password"], 
input[type="search"], 
input[type="tel"], 
input[type="url"], 
input[type="email"], 
input[type="datetime"], 
input[type="date"], 
input[type="month"], 
input[type="week"], 
input[type="time"], 
input[type="datetime-local"], 
input[type="number"], 
textarea {
}
input[type="text"], 
input[type="url"], 
textarea {
  width: 100%;
}
textarea {
  height: 5em;
}
@media only screen and (max-width:600px) {
  input, textarea {
    font-size: 100% !important;
  }
}


.-sp, .-tb, .-pc {
  display: none;
}
@media only screen and (max-width:600px) {
  .-sp {
    display: inherit;
  }
}
@media print, (min-width:601px) {
  .-tb {
    display: inherit;
  }
}
@media print, (min-width:1201px) {
  .-pc {
    display: inherit;
  }
}

.switch {
  display: none;
}

button, 
[role="button"] {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  line-height: 1.25;
  -webkit-box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.3 );
  box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.3 );
  -webkit-transition: all 0.2s 0s;
  -o-transition: all 0.2s 0s;
  transition: all 0.2s 0s;
}
button:hover, 
[role="button"]:hover {
  -webkit-transform: translate(0, -1px);
  -ms-transform: translate(0, -1px);
  -o-transform: translate(0, -1px);
  transform: translate(0, -1px);
}

[data-inview] {
  -webkit-transition: all 0.4s 0.4s;
  -o-transition: all 0.4s 0.4s;
  transition: all 0.4s 0.4s;
}
[data-inview="false"] {
  opacity: 0;
}


@media only print {
  [data-print="false"] {
    display: none;
  }
}