@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');

/* ----リセットcss---- */
html {
  overflow-y: scroll;
  height: 100%;
}

body {
  height: 100%;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
  font-family: 'Noto Sans JP', sans-serif;
}

select {
  font-family: 'Noto Sans JP', sans-serif;
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
}

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

caption,
th {
  text-align: left;
}

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

object,
embed {
  vertical-align: top;
}

hr,
legend {
  display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
}

img,
abbr,
acronym,
fieldset {
  border: 0;
}

li {
  list-style-type: none;
}

sup {
  vertical-align: super;
  font-size: 0.5em;
}

img {
  vertical-align: top;
}

i {
  font-style: normal;
}

/* ----リセットcss　ここまで---- */

/* ----デザインcss---- */
header {
  background-color: #404050;
  border-bottom: solid #adadd3 3px;
  user-select: none;

}

header #header_text {
  margin: auto;
  width: 1000px;
  padding: 8px 0;
}

header #header_text h1 {
  font-weight: 500;
  color: white;
  font-size: 26px;
}

header #header_text h1 a {
  color: white;
  text-decoration: none;
}

/* ----ID設定窓---- */
#idform {
  display: block;
  position: relative;
  margin: auto;
  margin-top: 7px;
  margin-right: 0;
  width: 120px;
}

#idform:before,
#idbox {
  position: absolute;
  top: 0;
  right: 0;
  width: 47px;
  height: 24px;
  margin: 0;
}

#idform:before {
  z-index: 100;
  line-height: 22px;
  content: '変更';
  font-size: 14px;
  background: #404050;
  color: #FFF;
  text-align: center;
}

#idbox {
  appearance: none;
  border-radius: 0;
  padding-left: 5px;
  opacity: 0;
  z-index: 200;
  cursor: pointer;
  outline: none;
  border: solid 1.5px #404050;
  transition: all 0.3s ease-in;
}

#idbox:focus {
  opacity: 1;
  width: 100%;
  cursor: text;
}

#idform input[type="submit"] {
  display: none;
}

/* ----ID設定窓　ここまで---- */

main>p {
  margin-top: 25px;
  text-align: right;
}

#message {
  margin: 40px 0;
}

#message_text {
  padding: 30px 0;
}

h4 {
  font-size: 25px;
  border-bottom: 2px solid #404050;
  font-weight: 500;
  color: #404050;
  margin-bottom: 24px;
  line-height: 40px;
}

h4.confirm {
  margin-top: 55px;
}

p,
label,
select {
  color: #4e4e4e;
  font-weight: 500;
}

th {
  color: #404050;
}

#message_text>p {
  padding: 5px 0;
  padding-left: 23px;
  padding-bottom: 20px;
}

#message_text>p.headline {
  padding: 0px 0 20px 0;
}

#message_text>h5 {
  color: #404050;
  font-size: 16px;
  font-weight: 600;
  border-left: 7px solid #404050;
  padding: 3px 15px;
}

h5>a {
  color: #404050;
  border-bottom: dashed 1px black;
  text-decoration: none;
}

main {
  max-width: 900px;
  margin: 0 auto;
}

@media only screen and (max-width: 768px) {
  main {
    width: 95%;
  }
}

main form {
  width: 100%;
}

main form table {
  width: 100%;
}

main form table tr {
  position: relative;
}

main form table tr:after {
  content: "";
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 0;
  height: 1px;
  border-bottom: dotted #cdcdcd 1px;
}

main form table tr th {
  width: 30%;
  font-weight: 500;
  padding: 1em .5em;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

@media only screen and (max-width: 768px) {
  main form table tr th {
    text-align: center;
    width: 100%;
    display: block;
    background: #97ae88;
    padding: .8em .2em;
    color: #fff;
  }
}

main form table tr th span {
  background: #cd6f55;
  padding: 0 .3em;
  color: #fff;
  margin-left: .5em;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

main form table tr td {
  padding: 1em .5em;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

@media only screen and (max-width: 768px) {
  main form table tr td {
    padding: 1.5em .5em;
    display: block;
    width: 100%;
  }
}

main form table tr .radio_box {
  display: block;
}

main form table tr .radio_box>label>label {
  cursor: pointer;
}

main form table tr select {
  cursor: pointer;
}

main form table tr label input {
  cursor: pointer;
  display: none;
  vertical-align: middle;
}

main form table tr .radio+label {
  padding-left: 23px;
  margin-right: 20px;
  position: relative;
}

main form table tr .radio+label:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 16px;
  border: 1px solid #999;
  border-radius: 50%;
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

main form table tr .radio:checked+label:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 8%;
  width: 8px;
  height: 8px;
  background: #404050;
  border-radius: 50%;
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

main form table tr select,
main form table tr input,
main form table tr textarea {
  width: 100%;
  height: 3em;
  padding: .5em;
  color: #4e4e4e;
  border: 1px solid #adadd3;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

main form table tr select:focus-visible,
main form table tr input:focus-visible,
main form table tr textarea:focus-visible {
  border: 1px solid #6a6a8a;
  outline: none;
}

main form table tr textarea {
  height: 10em;
}

/* ----プライバシーポリシー---- */

#privacy {
  margin: 25px auto;
}

@media only screen and (max-width: 768px) {
  #privacy {
    width: 95%;
  }
}

#privacy #privacy_inner {
  height: 300px;
  overflow-y: scroll;
  border: 1px solid #cdcdcd;
  background: #f7f7f7;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  margin-top: 20px;
  padding: 20px 55px;
}

@media only screen and (max-width: 768px) {
  #privacy #privacy_inner {
    margin-top: 4%;
    padding: 3%;
  }
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
  #privacy #privacy_inner {
    padding: 4%;
  }
}

#privacy #privacy_inner .privacy_headline {
  text-align: left;
  margin-top: 20px;
}

@media only screen and (max-width: 768px) {
  #privacy #privacy_inner .privacy_headline {
    margin-top: 4%;
  }
}

#privacy #privacy_inner .privacy_headline h4 {
  font-size: 20px;
}

@media only screen and (max-width: 768px) {
  #privacy #privacy_inner .privacy_headline h4 {
    margin-bottom: 4%;
  }
}

#privacy #privacy_inner .privacy_headline .txt {
  padding: 0;
}

#privacy #privacy_inner .privacy_contents {
  margin-top: 30px;
}

@media only screen and (max-width: 768px) {
  #privacy #privacy_inner .privacy_contents {
    margin-top: 5%;
  }
}

#privacy #privacy_inner .privacy_contents h4 {
  font-weight: normal;
  font-size: 113%;
}

#privacy #privacy_inner .privacy_contents .txt {
  padding: 0;
}

@media only screen and (max-width: 768px) {
  #privacy #privacy_inner .privacy_contents .txt {
    padding: 3% 0 0 3%;
  }
}

#agreement {
  text-align: center;
  margin: 3em auto;
}

input[type=checkbox] {
  display: none;
}

.checkbox {
  box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  padding: 5px 30px;
  position: relative;
  width: auto;
}

.checkbox::before {
  background: #fff;
  border: 1px solid #404050;
  content: '';
  display: block;
  height: 16px;
  left: 5px;
  margin-top: -8px;
  position: absolute;
  top: 50%;
  width: 16px;
}

.checkbox::after {
  border-right: 3px solid #404050;
  border-bottom: 3px solid #404050;
  content: '';
  display: block;
  height: 9px;
  left: 10px;
  margin-top: -7px;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: rotate(45deg);
  width: 5px;
}

input[type=checkbox]:checked+.checkbox::after {
  opacity: 1;
}

form>div:last-child {
  text-align: center;
  margin: 45px 0px;
}

form>div:last-child input {
  display: inline-block;
  background: #404050;
  font-size: 17px;
  padding: 0.5em 4em;
  font-weight: 500;
  color: white;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.4s;
}

form>div:last-child input:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.5;
}

.btn {
  text-align: center;
  margin: 45px 0px;
}

.btn input {
  display: inline-block;
  background: #404050;
  font-size: 17px;
  padding: 0.5em 4em;
  font-weight: 500;
  color: white;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.4s;
}

.btn input:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.5;
}

footer {
  position: sticky;
  top: 100vh;
  width: 100%;
  background-color: #404050;
  margin-top: 60px;
  border-top: solid #adadd3 3px;
}

footer #footer_text {
  width: 1000px;
  padding: 10px 0px;
  margin: auto;
}

footer>#footer_text>p {
  color: white;
  font-size: 11px;
}

/* ----星---- */

.star,
.god {
  position: relative;
  z-index: 0;
  display: inline-block;
  white-space: nowrap;
  color: #CCCCCC;
  /* グレーカラー 自由に設定化 */
  /*font-size: 30px; フォントサイズ 自由に設定化 */
}

.star:before,
.star:after {
  content: '★★★★★';
}

.star:after {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  overflow: hidden;
  white-space: nowrap;
  color: #ffcf32;
  /* イエローカラー 自由に設定化 */
}

.star[data-rate="5"]:after {
  width: 100%;
}

/* 星5 */
.star[data-rate="4.5"]:after {
  width: 90%;
}

/* 星4.5 */
.star[data-rate="4"]:after {
  width: 80%;
}

/* 星4 */
.star[data-rate="3.5"]:after {
  width: 70%;
}

/* 星3.5 */
.star[data-rate="3"]:after {
  width: 60%;
}

/* 星3 */
.star[data-rate="2.5"]:after {
  width: 50%;
}

/* 星2.5 */
.star[data-rate="2"]:after {
  width: 40%;
}

/* 星2 */
.star[data-rate="1.5"]:after {
  width: 30%;
}

/* 星1.5 */
.star[data-rate="1"]:after {
  width: 20%;
}

/* 星1 */
.star[data-rate="0.5"]:after {
  width: 10%;
}

/* 星0.5 */
.star[data-rate="0"]:after {
  width: 0%;
}

/* 星0 */

.god:after {
  position: absolute;
  z-index: 1;
  top: -20px;
  left: -2px;
  content: "";
  display: inline-block;
  background: url('god.webp') 100% 100% / cover;
  height: 28px;
  width: 54px;
}

/* ----星　ここまで---- */

p.success, p.error{
  margin-top: 35px;
}

p.error{
  color: red;
  font-weight: 700;
}