@charset "UTF-8";
/*! ==============================================
※※※※※※※※※※※※※※※※※※※※※
このcssファイルはSassから生成されています。
編集する際はSassファイルを編集してください。
※※※※※※※※※※※※※※※※※※※※※
=============================================== */
/* ----- reset-css ----- */
input[type=text],
input[type=email],
input[type=tel],
input[type=number],
input[type=password] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 0;
  border: none;
  border-radius: 0;
  outline: none;
  background: none;
}

button,
input[type=submit],
input[type=button] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  border-radius: 0;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 0;
  border: none;
  outline: none;
  background: transparent;
  background: none;
}

input[type=radio],
input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
}

textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  resize: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: none;
  background: transparent;
}

ol,
ul {
  list-style: none;
}

/* ----- common-css ----- */
body {
  font-family: "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
  color: #1e1e1e;
}

.hidden {
  overflow: hidden;
}

.sp {
  display: none;
}

.tb {
  display: none;
}

.pc {
  display: block;
}

img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.16);
}

/* ----- app ----- */
.app {
  width: 69rem;
  height: 10rem;
  font-size: 3.4rem;
  font-weight: 600;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 3.5rem auto 0;
  border-radius: 5rem;
  background: -moz-linear-gradient(top left, #2e83d9, #8fd8ff);
  background: -webkit-linear-gradient(top left, #2e83d9, #8fd8ff);
  background: linear-gradient(to bottom right, #2e83d9, #8fd8ff);
  transition: all 0.3s;
}
@media (min-width: 1280px) {
  .app:hover {
    opacity: 0.7;
    transition: all 0.3s;
  }
}
.app .yellow {
  color: #e6ce00;
}
.app.app--sml {
  width: 35rem;
  height: 4rem;
  font-size: 1.8rem;
  margin: 0;
}

/* ----- yellow-line ----- */
.yellow-line {
  line-height: 1.2;
  background: linear-gradient(transparent 77%, #CBB600 77%);
}

/* ----- ttl ----- */
.ttl {
  text-align: center;
  font-size: 3.8rem;
  font-weight: 600;
}
.ttl span {
  font-size: 4.8rem;
  color: #0E5092;
}

/* ----- sub-ttl ----- */
.sub-ttl {
  font-size: 2.8rem;
  color: #0E5092;
  font-weight: 600;
  margin: 0 auto;
  position: relative;
}
.sub-ttl::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: rotate(-20deg);
  width: 1px;
  height: 2.7rem;
  background-color: #0E5092;
}
.sub-ttl::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  transform: rotate(20deg);
  width: 1px;
  height: 2.7rem;
  background-color: #0E5092;
}
.sub-ttl span {
  position: relative;
}
.sub-ttl span::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -1.4rem;
  transform: rotate(-30deg);
  width: 1px;
  height: 1.7rem;
  background-color: #0E5092;
}
.sub-ttl span::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: -1.4rem;
  transform: rotate(30deg);
  width: 1px;
  height: 1.7rem;
  background-color: #0E5092;
}

/* ----- circle ----- */
.circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 12rem;
  height: 12rem;
  margin: 0 auto;
  border-radius: 50%;
  background-color: #2e83d9;
  color: #fff;
  font-size: 2.8rem;
  position: relative;
}
.circle span {
  position: absolute;
  bottom: -4rem;
  left: 50%;
  transform: translateX(-50%) rotate(90deg);
  font-size: 2.2rem;
  color: #2e83d9;
}

/* ------------------------------------------
/* tablet
/* ------------------------------------------ */
@media (max-width: 1279px) {
  .pc {
    display: none;
  }
  .tb {
    display: block;
  }
  /* ----- ttl ----- */
  .ttl {
    text-align: center;
    font-size: 3.8rem;
    font-weight: 600;
    line-height: 1.4;
  }
  .ttl span {
    font-size: 4.8rem;
    color: #0E5092;
  }
}
/* ------------------------------------------
/* sp
/* ------------------------------------------ */
@media (max-width: 767px) {
  html,
  body {
    font-size: 2.6666666667vw;
  }
  .tb {
    display: none;
  }
  .sp {
    display: block;
  }
  .common-inner {
    padding: 0 2rem;
  }
  /* ----- app ----- */
  .app {
    width: 34.5rem;
    height: 75px;
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 2.2rem auto 0;
    border-radius: 5rem;
    background: -moz-linear-gradient(top left, #2e83d9, #8fd8ff);
    background: -webkit-linear-gradient(top left, #2e83d9, #8fd8ff);
    background: linear-gradient(to bottom right, #2e83d9, #8fd8ff);
    transition: all 0.3s;
  }
  .app .yellow {
    color: #e6ce00;
  }
  .app.app--sml {
    width: 230px;
    height: 3rem;
    font-size: 16px;
    margin: 0;
  }
  /* ----- ttl ----- */
  /* ----- sub-ttl ----- */
  /* ----- circle ----- */
}
@media (max-width: 767px) and (max-width: 360px) {
  .app.app--sml {
    width: 200px;
    font-size: 14px;
  }
}
@media (max-width: 767px) {
  .ttl {
    text-align: center;
    font-size: 32px;
    font-weight: 600;
    line-height: 1.4;
  }
  .ttl span {
    font-size: 38px;
    color: #0E5092;
  }
  .sub-ttl {
    font-size: 22px;
    color: #0E5092;
    font-weight: 600;
    margin: 0 auto;
    position: relative;
  }
  .sub-ttl::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    transform: rotate(-20deg);
    width: 1.5px;
    height: 35px;
    background-color: #0E5092;
  }
  .sub-ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    transform: rotate(20deg);
    width: 1.5px;
    height: 35px;
    background-color: #0E5092;
  }
  .sub-ttl span {
    position: relative;
  }
  .sub-ttl span::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: -24px;
    transform: rotate(-30deg);
    width: 1.5px;
    height: 22px;
    background-color: #0E5092;
  }
  .sub-ttl span::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: -24px;
    transform: rotate(30deg);
    width: 1.5px;
    height: 22px;
    background-color: #0E5092;
  }
  .circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
    margin: 0 auto;
    border-radius: 50%;
    background-color: #2e83d9;
    color: #fff;
    font-size: 26px;
    position: relative;
  }
  .circle span {
    position: absolute;
    bottom: -3rem;
    left: 50%;
    transform: translateX(-50%) rotate(90deg);
    font-size: 14px;
    color: #2e83d9;
  }
}
