.icon {
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.icon.icon--search {
  background-image: url(../../images/icons/icon-search.png);
}

.icon.icon--advance {
  background-image: url(../../images/icons/icon-advance.png);
}

.icon.icon--location {
  background-image: url(../../images/icons/icon-location.png);
}

.icon.icon--image--upload {
  background-image: url(../../images/icons/icon-image-upload.png);
}

.icon.icon--address {
  background-image: url(../../images/icons/icon-address.png);
}

.icon.icon--map {
  background-image: url(../../images/icons/icon-map.png);
}

.icon.icon--time {
  background-image: url(../../images/icons/icon-time.png);
}

.icon.icon--great {
  background-image: url(../../images/icons/icon-great.png);
}

.icon.icon--pin {
  background-image: url(../../images/icons/icon-pin.png);
}

.icon.icon--line {
  background-image: url(../../images/icons/icon-line.png);
}

.icon.icon--message {
  background-image: url(../../images/icons/icon-message.png);
}

.icon.icon--recommand {
  background-image: url(../../images/icons/icon-recommand.png);
}

.icon.icon--user {
  background-image: url(../../images/icons/icon-user.png);
}

.icon.icon--social--fb {
  background-image: url(../../images/icons/icon-social-fb.png);
}

.icon.icon--social--line {
  background-image: url(../../images/icons/icon-social-line.png);
}

.icon.icon--social--google {
  background-image: url(../../images/icons/icon-social-google.png);
}

button.btn, a.btn {
  font-size: inherit;
  outline: none;
  border: none;
  background-color: transparent;
  cursor: pointer;
}

button.btn--hino, a.btn--hino {
  --btn-border-color: #d92028;
  --btn-background-color: #fffae9;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 2.5rem;
}

@media (min-width: 1024px) {

  button.btn--hino, a.btn--hino {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  button.btn--hino, a.btn--hino {
    padding-left: 2rem;
  }

  button.btn--hino, a.btn--hino {
    padding-right: 5rem;
  }
}

button.btn--hino, a.btn--hino {
  border-width: 2px;
  border-color: var(--btn-border-color);
  border-style: solid;
  border-radius: 8px 24px 24px 8px;
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 4px;
  white-space: nowrap;
  background-color: var(--btn-background-color);
  position: relative;
}

@media (min-width: 1024px) {
  button.btn--hino, a.btn--hino {
    font-size: 18px;
    letter-spacing: 8px;
  }
}

button.btn--hino .icon, a.btn--hino .icon {
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  right: 5px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

@media (min-width: 1024px) {
  button.btn--hino .icon, a.btn--hino .icon {
    right: 15px;
  }
}

.flag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 75px;
  height: 80px;
  background-color: var(--bgc);
  padding-top: 10px;
  position: relative;
}

.flag img {
  width: 50px;
  height: 50px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.flag:before {
  content: '';
  width: 100%;
  height: 10px;
  background-color: var(--headcolor);
  position: absolute;
  top: 0;
  left: 0;
}

.flag:after {
  content: '';
  width: 100%;
  height: 20px;
  background-color: var(--bgc);
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 0, 0 100%);
          clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 0, 0 100%);
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
}

@media (min-width: 1024px) {
  .flag {
    width: 112px;
    height: 100px;
  }
  .flag img {
    width: 75px;
    height: 75px;
  }
  .flag:before {
    height: 10px;
  }
  .flag:after {
    height: 33px;
  }
}

.page#page__rule {
  background-image: url(../../images/index/bg.png);
}

.page#page__rule .banner {
  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(1%, #f67b3f), to(#d92028));
  background-image: linear-gradient(0deg, #f67b3f 1%, #d92028 100%);
}

.page#page__rule .banner .title {
  text-align: center;
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

@media (min-width: 1024px) {

  .page#page__rule .banner .title {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

.page#page__rule .banner .title {
  font-size: 28px;
  letter-spacing: 10px;
}

@media (min-width: 1024px) {
  .page#page__rule .banner .title {
    font-size: 40px;
  }
}

.page#page__rule .rule__content {
  margin-left: auto;
  margin-right: auto;
  width: 1000px;
  max-width: 95vw;
  line-height: 1.8;
}
