/*    
Add by Misaki*
2021/09/27
*/
header .pr_banner {
  padding-top: 2rem;
}
header .pr_banner a {
  display: block;
}
header .pr_banner a:hover {
  opacity: 0.7;
}
@media (min-width: 992px) {
  header {
    position: relative;
    display: flex;
    flex-direction: column-reverse;
  }
  header > nav:not(.js-scroll-nav) .container-fluid {
    padding: 0;
  }
  header > nav.navbar:not(.js-scroll-nav) {
    position: static;
  }
  header > nav:not(.js-scroll-nav) h1.navbar-brand {
    position: absolute;
    left: 0;
    right: 0;
    top: 10%;
    display: flex;
    align-items: center;
    width: 70vw;
    max-width: inherit;
    margin: auto;
    justify-content: center;
    z-index: 1;
  }
  header > nav:not(.js-scroll-nav) h1.navbar-brand img {
    max-height: inherit;
  }
  header > nav:not(.js-scroll-nav) .nav-item {
    flex: 1;
    display: flex;
    text-align: center;
  }
  header > nav:not(.js-scroll-nav) .nav-link {
    flex: 1;
    font-size: 0.9rem !important;
    background-color: var(--main);
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 0.3rem !important;
  }
  header > nav:not(.js-scroll-nav) li:not(:last-child) > .nav-link {
    border-right: 1px solid #fff;
  }
  header > nav:not(.js-scroll-nav) .navbar-nav .nav-link:hover {
    color: var(--line) !important;
  }
  header .pr {
    position: relative;
  }
  header .pr_banner {
    position: absolute;
    bottom: 5%;
    left: 0;
    right: 0;
    padding: 0;
    width: 60vw;
  }
}

/* ======
  main
 ====== */
main {
  overflow: hidden;
}
main section {
  position: relative;
}
@media (min-width: 992px) {
  main section:not(:first-of-type) div.container-y {
    padding-top: 7rem;
  }
}

/* ======
  headline
 ====== */
h2.headline {
  text-align: center;
  margin-bottom: 2rem;
  font-weight: 600;
}
h2.headline span {
  display: inline-block;
  padding: 0 3rem 0.3rem;
  position: relative;
}
h2.headline span:before,
h2.headline span:after {
  content: "";
  background-color: var(--main);
  width: 2px;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
}
h2.headline span:before {
  left: 0;
  transform: rotate(-30deg);
  -webkit-transform: rotate(-30deg);
  -o-transform: rotate(-30deg);
}
h2.headline span:after {
  right: 0;
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  -o-transform: rotate(30deg);
}
@media (min-width: 1200px) {
  h2.headline {
    font-size: 2.3rem;
  }
}

.accordion h3 {
  border: none !important;
}

h3:not(.sbi_no_bio) {
  padding: 0.5rem 0 0.5rem 1rem;
  border-left: 10px var(--main) solid;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

/* ======
  color
 ====== */

/* 折り畳み */
.accordion *[data-bs-toggle="collapse"] {
  border-bottom: 1px #ffffff solid;
}
*[data-bs-toggle="collapse"] {
  background-color: var(--bg);
  border: 2px solid var(--bg);
  padding: 1rem;
  padding-right: 4rem;
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  text-align: left;
  color: #333;
  font-weight: 600;
}
*[data-bs-toggle="collapse"]:after {
  content: "";
  width: 15px;
  height: 15px;
  border-right: 2px solid var(--sub);
  border-bottom: 2px solid var(--sub);
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  position: absolute;
  right: 1.5rem;
  top: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
*[data-bs-toggle="collapse"]:hover {
  color: #333;
}
*[data-bs-toggle="collapse"][aria-expanded="true"]:after,
*[data-bs-toggle="collapse"]:hover:after {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

*[data-bs-toggle="collapse"] + div > * {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

/* アニメーション前のスタイル */
.js-marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(
    90deg,
    var(--line),
    var(--line)
  ); /* 単色の場合は同じ色、グラデーションさせる場合は別々の色 */
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 30%; /* '30%'の部分にマーカーの太さを記入 */
  transition: all 1s ease-in-out; /* マーカーを引く速度を調整 */
  font-weight: bold; /* ついでに太字にしたい場合 */
}

/* アニメーション発火時 */
.js-marker.inview {
  background-size: 100% 30%; /* '30%'の部分は上で設定した太さに合わせる */
}

#form {
  padding-top: 86px;
  margin-top: -86px;
}

.introduction_flow h2 {
  color: #fff;
  text-align: center;
  padding: 1rem;
  margin-bottom: 1.5rem;
}
.introduction_flow > div:nth-of-type(1) h2 {
  background-color: var(--main);
}
.introduction_flow > div:nth-of-type(2) h2 {
  background-color: var(--sub);
}
.introduction_flow > div > div {
  margin-bottom: 1rem;
}
.introduction_flow ol {
  list-style-type: none;
  padding: 0;
  margin: 0;
  counter-reset: number 0;
}
.introduction_flow ol li {
  padding: 0.8rem 0;
  padding-left: 38px;
  position: relative;
  border-bottom: 1px solid #707070;
}
.introduction_flow ol li:before {
  counter-increment: number 1;
  content: counter(number) " ";
  color: #fff;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
.introduction_flow > div:nth-of-type(1) ol li:before {
  background-color: var(--main);
}
.introduction_flow > div:nth-of-type(2) ol li:before {
  background-color: var(--sub);
}
.introduction_flow > div:nth-of-type(2) ol li {
  font-size: 110%;
  font-weight: 600;
}
@media (min-width: 992px) {
  .introduction_flow > div:nth-of-type(1) > div img {
    height: 130px;
  }
  .introduction_flow > div:nth-of-type(2) > div img {
    height: 94px;
  }
}

table.table {
  border-spacing: 8px;
  border-collapse: separate;
  word-break: break-all;
}
table.table th {
  background-color: var(--main);
  color: #fff;
  text-align: center;
  vertical-align: middle;
}
table.table td p:last-child {
  margin-bottom: 0;
}
table.table th,
table.table td {
  border: none;
}
table.table th h2 {
  font-size: inherit;
  margin: 0;
}
table.table.introduction_time {
  margin-bottom: 2rem;
}
table.table.introduction_time tr th {
  background-color: var(--sub);
}
table.table.introduction_time tr td {
  border-bottom: 2px solid var(--accents) !important;
}
table.introduction_sanka ul {
  list-style-type: none;
  padding: 0;
}
table.introduction_sanka .js-marker img {
  height: 40px;
}
@media (min-width: 768px) {
  table.introduction_sanka ul {
    display: flex;
  }
  table.introduction_sanka ul li {
    margin-right: 1.5rem;
  }
}
@media (max-width: 768px) {
  table.table:not(.xs):not(.table-bordered) th {
    padding: 0.5rem 0.5rem !important;
  }
}

.news-list {
  margin-top: 0;
  margin-bottom: 0;
}
.news .news-list dl,
.news-list dl dd {
  margin-bottom: 0;
}
.news-list dl dt {
  font-weight: normal;
}
.news .news-list a {
  border-bottom: 1px solid #707070;
  text-decoration: none;
  display: block;
  position: relative;
  padding: 1rem;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.news .news-list a:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.news-list .news-label {
  background-color: #ffffff;
  color: #aaaaaa;
  font-weight: 300;
  font-size: 13px;
  padding: 1px 5px;
  display: inline-block;
  width: 90px;
  text-align: center;
  margin-right: 8px;
}
@media (min-width: 992px) {
  .news .news-list dl {
    display: flex;
  }
  .news-list dl dt {
    width: 100px;
  }
  .news .news-list a {
    padding: 2rem 1rem;
  }
}

.mail dl div {
  margin-bottom: 1rem;
}
.mail dl div dd input,
.mail dl div dd textarea {
  width: 100%;
}
@media (min-width: 992px) {
  .mail dl div {
    display: flex;
  }
  .mail dl div dt {
    width: 200px;
    margin: 0;
  }
  .mail dl div dd {
    flex: 1;
    margin: 0;
  }
}

.btn-arrow {
  background-color: var(--accents);
  border-radius: 10px;
  border-color: var(--accents);
  padding: 1rem 2.5rem;
}
.btn-arrow:hover,
.btn-arrow:focus {
  color: var(--accents);
}
.btn-arrow:before {
  display: none;
}
.btn-arrow:after {
  content: "";
  width: 15px;
  height: 15px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  position: absolute;
  right: 2rem;
  top: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.btn-arrow:hover:after {
  width: 15px;
  height: 15px;
  border-right: 2px solid var(--accents);
  border-bottom: 2px solid var(--accents);
  right: 1.8rem;
  top: 0;
  bottom: 0;
  margin: auto;
}
.btn-arrow:hover::after,
.btn-arrow:focus::after {
  border-color: var(--accents);
}
@media (min-width: 992px) {
  .btn-arrow {
    padding: 2rem 3rem !important;
    padding-right: 4rem !important;
  }
}

dl.qa > div dt {
  font-size: 1.15rem;
  margin-bottom: 0.5rem;
}
dl.qa > div dd {
  margin-bottom: 1.5rem;
}
dl.qa > div dt,
dl.qa > div dd {
  position: relative;
  padding-left: 38px;
}
dl.qa > div dt:before,
dl.qa > div dd:before {
  content: "";
  border: 1px solid var(--main);
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 0;
  margin: auto;
}
dl.qa > div dt:before {
  content: "Q";
  color: #fff;
  background-color: var(--main);
}
dl.qa > div dd:before {
  content: "A";
  color: var(--main);
  background-color: #fff;
}

@media (min-width: 768px) {
}
