html {
  font-size: 13px;
  line-height: 1.3;
  font-family: "Times New Roman", Times, serif;
}

body {
  margin: 0;
  -webkit-text-size-adjust: 100%;
}

div {
  max-width: 100%;
  text-align: center;
}

p {
  margin: 0;
}

a {
  text-decoration: none;
  color: inherit;
}

.hidden {
  display: none;
}

/*共通部品*/
.container {
  display: flex;
}

.justify-center {
  justify-content: center;
}

.column {
  flex-direction: column;
}

.row {
  flex-direction: row;
}

/*個別style*/
main {
  display: flex;
  height: 100vh;
  flex-direction: column;
  background-color: #f7f7f7;
}

.member-info {
  padding: 32px 0;
  background-color: #7fca86;
  color: #dbffde;
  border-bottom: 1px solid #dadada;
}

.member-info .store-name {
  font-size: 22px;
}

div.disclaimer {
  font-size: 1em;
  color: #fa514b;
  margin: 4px 8px;
  padding: 0px 4px;
  text-align: left;
  line-height: 1.4;
}

div.disclaimer.demo {
  margin-top: 8px;
}

div.disclaimer.security {
  color: #7c7c7c;
}

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

.barcode {
  background-color: #ffffff;
  border-top: 1px solid #dadada;
  border-bottom: 1px solid #dadada;
  margin-top: 4px;
}

.barcode #barcode-img {
  margin: 8px auto 0;
}

.point-info {
  background-color: #ffffff;
  margin-bottom: 2px;
  font-weight: bold;
  color: #c1c1c1;
  border-top: 1px solid #dadada;
}

.point-info div {
  margin-top: 8px;
  margin-bottom: 8px;
}

.point-info .point {
  color: #49b052;
  font-weight: bold;
}

.point-info .point .point-num {
  font-size: 32px;
}

.point-info .point .point-title {
  font-size: 18px;
  vertical-align: super;
}

.point-info .expiration .expiration-title {
  color: #49b052;
  font-size: 16px;
  font-weight: bold;
}

.point-info .expiration .expiration-date {
  color: #49b052;
  font-size: 20px;
}

.other-info {
  background-color: #ffffff;
  height: 100%;
  margin-bottom: 4px;
  border-bottom: 1px solid #dadada;
}

/*footer部*/
footer {
  width: 100%;
  height: 120px;
  position: fixed;
  bottom: 0;
  left: 0;
  text-align: center;
  background-color: #f7f7f7;
  border-top: 3px solid #f7f7f7;
}

footer a {
  font-weight: bold;
}

.store-link {
  height: 50%;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.store .m-text {
  font-size: 18px;
}

.store .s-text {
  font-size: 13px;
  font-weight: normal;
}

.register {
  height: 50%;
}

.register .border-right {
  border-right: thin solid #01e031;
}

.register a {
  width: 100%;
}

.register div {
  width: 100%;
  height: 100%;
  background-color: #00b927;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.register .m-text {
  font-size: 14px;
}

.register .s-text {
  font-size: 11px;
}

/*横向き対応*/
@media (orientation: landscape) {
  .other-info {
    padding-bottom: 120px;
  }
}

/* 縦を縮めたときの対応 */
@media screen and (max-height: 330px) {
  footer.container {
    display: none;
  }
}
