* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}


body {
  margin: 0;
  width: 500px;
}


body ,
input {
  font-size: 1em;
  font-family: "游ゴシック", sans-serif;
  font-weight: 500;
}


ul.nav {
  display: block;
  margin: 0;
  padding: 0;
  background-color: #ddd;
  text-align: center;
}


ul.nav li {
  display: inline-block;
  margin: 0;
  width: calc( 100% / 4 );
  padding: 0;
}


ul.nav a {
  display: block;
  border-bottom: solid 1px #444;
  padding: 10px 0;
  color: #000;
  text-decoration: none;
}
ul.nav a:hover {
  text-decoration: underline;
}


ul.nav a.this {
  border: solid 1px #444;
  border-bottom: solid 1px #fff;
  background-color: #fff;
  font-weight: bold;
}


h1 ,
h2 {
  border-bottom: solid 3px #444;
  color: #444;
  font-size: 1.2em;
  text-align: center;
}


table.form {
  margin: 10px;
  width: 480px;
  border-collapse: collapse;
}


table.form th ,
table.form td {
  border: solid 1px #888;
}


table.form th {
  width: 150px;
}


span.require {
  color: #f00;
  font-weight: bold;
}


input.text {
  border: solid 1px #888;
  border-radius: 2px;
  width: 100%;
  padding: 5px;
  -webkit-appearance: none;
}


div.button {
  margin: 30px 0 50px;
  text-align: center;
}


div.button input {
  display: inline-block;
  border: solid 2px #800;
  border-radius: 3px;
  padding: 10px 50px;
  background-color: #fff;
  color: #800;
  transition: 0.4s;
  -webkit-appearance: none;
}
div.button input:hover {
  background-color: #800;
  color: #fff;
  cursor: pointer;
}


div.pass {
  margin: 30px 10px 50px;
  border: dotted 2px #99b;
  padding: 10px;
  text-align: center;
}


div.pass input {
  display: block;
  margin: 2px;
  border: solid 2px #008;
  border-radius: 3px;
  width: 100%;
  padding: 10px 50px;
  background-color: #ddf;
  color: #008;
  font-family: "游明朝","serif";
  transition: 0.4s;
  -webkit-appearance: none;
}
div.pass input:hover {
  background-color: #008;
  color: #fff;
  cursor: pointer;
}




@media screen and ( max-width:640px )
{
  body {
    width: 100vw;
    background-color: #333;
    color: #ddd;
    font-size: 1em;
  }


  ul.nav {
    background-color: #222;
  }


  ul.nav a {
    border-bottom: solid 1px #999;
    color: #ddd;
  }


  ul.nav a.this {
    border: solid 1px #999;
    border-bottom: solid 1px #333;
    background-color: #333;
  }


  h1 {
    color: #ddd;
    border-bottom: solid 3px #ddd;
  }


  table.form {
    display: block;
    margin: 0;
    width: 100vw;
  }


  table.form th {
    display: block;
    border: none;
    width: 100vw;
    padding: 5px 0;
    background-color: #888;
    color: #eee;
  }


  table.form td {
    display: block;
    border: none;
    width: 100vw;
    padding: 10px;
  }


  input.text {
    border: solid 1px #999;
    padding: 10px;
    background-color: #444;
    color: #ddd;
  }


  div.button input {
    margin: 0 5vw;
    width: 90vw;
    background-color: #800;
    color: #ddd;
  }
  div.button input:hover {
    background-color: #ddd;
    color: #800;
  }


  div.pass {
    padding: 10px;
    text-align: center;
  }


  div.pass input {
    padding: 10px 0;
    background-color: #008;
    color: #ddd;
  }
  div.pass input:hover {
    background-color: #ddd;
    color: #008;
  }

}
