@charset "UTF-8";

#contact {
  background-color: #F2F2F2;
  padding: 100px 0;
}
#contact h3 {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1.2em;
}
#contact p {
  text-align: center;
  line-height: 1.5;
  font-size: 1.6rem;
}
form dl {
  max-width: 800px;
  font-size: 1.6rem;
  background-color: #fff;
  margin: 40px auto;
  padding: 40px;
  box-sizing: border-box;
}
form dl > div {
  display: flex;
}
form dl > div + div {
  margin-top: 1.5em;
}
form dl dt {
  width: 14em;
  font-weight: 700;
  padding-top: .25em;
}
form dl dt.required::after {
  content: "必須";
  display: inline-block;
  font-size: .8em;
  color: #fff;
  background-color: #333;
  margin-left: .4em;
  padding: .3em .5em .3em;
}
form dl dd {
  flex: 1;
}
input,
textarea,
select,
.submit {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  background-color: inherit;
}
input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
  width: 100%;
  max-width: 100%;
  padding: .5em;
  background: #F2F2F2;
  box-sizing: border-box;
}
textarea {
  resize: vertical;
  line-height: 1.5;
}
.submit {
  cursor: pointer;
}
.radio {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  padding: .5em 0;
}
.radio label {
  width: calc(50% - .5em);
}
.radio input[type="radio"] {
  display: none;
}
.radio input[type="radio"] + span {
  display: inline-block;
  position: relative;
  cursor: pointer;
  padding-left: 1.3em;
}
.radio input[type="radio"] + span::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: #fff;
  border: 1px solid #CDCDCD;
  border-radius: 50%;
  width: 1em;
  height: 1em;
  display: block;
  box-sizing: border-box;
}
.radio input[type="radio"]:checked + span::after {
  position: absolute;
  content: "";
  top: 50%;
  left: .2em;
  transform: translateY(-50%);
  background: #FFDF00;
  border-radius: 50%;
  width: .6em;
  height: .6em;
  display: block;
}
.submit {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 14.285714em;
  height: 2.85714em;
  font-size: 1.4rem;
  text-decoration: none;
  color: #333;
  border-color: #333;
  border-style: solid;
  border-width: 1px;
  border-radius: 1.42857em;
  box-sizing: border-box;
  margin: 0 auto;
  transition: all .3s;
}
.submit:hover {
  opacity: .7;
}