/* ==============================================================

共通設定

============================================================== */

body {
  background-color: #bfd8e0;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ ProN", sans-serif;
}

.section,
section img {
  width: 750px;
  margin: 0 auto;
  display: block;
}

.center-absolute {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.relative {
  position: relative;
  display: block;
}

.absolute {
  position: absolute;
}

.yellow {
  color: #fbf90c;
}

.marker {
  background: linear-gradient(transparent 60%, #ffff5e 60%);
  padding: 0 2px;
  display: inline;
}

/* ==============================================================

マージン設定

============================================================== */

.wd-40 {
  width: 40%;
}

.wd-80 {
  width: 60%;
}

.mt-3 {
  margin-top: 1%;
}

.mt-5 {
  margin-top: 5%;
}

.mt-10 {
  margin-top: 10%;
}

.mb-3 {
  margin-bottom: 5%;
}

.mb-5 {
  margin-bottom: 5%;
}

.mt-53 {
  margin-top: 44%;
}

.mt-100 {
  margin-top: 114%;
}

.mt-125 {
  margin-top: 128%;
}

/* ==============================================================

スクロールしたら画像が出てくる設定

============================================================== */

/* 最初は透明＆下に 40px ずらす */
[data-reveal] {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease, transform .8s ease;
}

[data-reveal].is-shown {
  opacity: 1;
  transform: none;
}

/* ==============================================================

CTA設定

============================================================== */

.wd-80-cta {
  width: 85%;
  left: 50%;
  transform: translateX(-50%);
  position: absolute;
}

.cta-under {
  text-align: center;
  margin: 40px 0 10px;
}

.cta-under .cta-wrap {
  display: inline-block;
}

.cta-under__canvas {
  position: static !important;
  display: block;
  width: 85%;
  max-width: 750px;
  margin: 0 auto;
  height: auto;
}

.cta-canvas {
  position: absolute;
  z-index: 10;
}

/* ==============================================================

CTAボタン心臓設定

============================================================== */

.pulse {
  animation: heartbeat 1.2s infinite;
  transform-origin: center;
  width: 81%;
  transform: translateX(-50%) scale(1.2);
}

.pulse2 {
  animation: heartbeat 1.2s infinite;
  transform-origin: center;
  width: 50%;
  transform: translateX(-50%) scale(1.2);
}

@keyframes heartbeat {
  0% {
    transform: translateX(-50%) scale(1);
  }
  30% {
    transform: translateX(-50%) scale(1.2);
  }
  60% {
    transform: translateX(-50%) scale(1);
  }
  100% {
    transform: translateX(-50%) scale(1);
  }
}

/* ==============================================================

占い師説明プルダウン設定（acc-item）

============================================================== */

.acc-item {
  max-width: 900px;
  margin: 0 auto;
}

.acc-btn {
  width: 100%;
  padding: 20px 56px 20px 64px;
  border: none;
  border-bottom: 3px solid #219bc8;
  background: transparent;
  color: #219bc8;
  font-size: 32px;
  font-weight: bold;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}

.acc-btn::after {
  content: "";
  width: 14px;
  height: 14px;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  transform: rotate(45deg);
  transition: transform .3s;
}

.acc-btn.active::after {
  transform: rotate(-135deg);
}

.acc-item:first-child .acc-btn {
  border-top: 3px solid #55aee8;
}

.acc-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease;
  background: rgba(255,255,255,0.5);
  padding: 0 64px;
}

.acc-content.is-open {
  max-height: 2000px;
}

.acc-content p {
  padding: 20px 0;
  margin: 0;
  font-size: 18px;
  color: #1990e0;
  line-height: 1.7;
}

hr {
  border: none;
  border-top: 1px solid #1990e0;
  margin: 40px 0;
}

/* ==============================================================

ofa設定

============================================================== */

.fade-in-image {
  opacity: 0;
  transform: scale(0.95);
  filter: blur(10px);
  transition: opacity 1.5s ease-out, transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), filter 1.5s ease-out;
}

.fade-in-image.show {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}

/* ==============================================================

フォント設定

============================================================== */

.fw-b {
  font-weight: bold;
}

/* ==============================================================

Q&A設定

============================================================== */

.qa-6 {
  max-width: 700px;
  margin: 0 auto 5px auto;
  border-bottom: 2px solid #d6dde3;
}

.qa-6 summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 1em 2em 1em 3em;
  color: #ffffff;
  font-weight: 600;
  cursor: pointer;
}

.qa-6 summary::before,
.qa-6 p::before {
  position: absolute;
  left: 1em;
  font-weight: 600;
  font-size: 1.3em;
}

.qa-6 summary::before {
  color: #75bbff;
  content: "Q";
}

.qa-6 summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #ffffff;
  border-right: 3px solid #ffffff;
  content: '';
  transition: transform .5s;
}

.qa-6[open] summary::after {
  transform: rotate(225deg);
}

.qa-6 p {
  position: relative;
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: .3em 3em 1.5em;
  color: #ffffff;
  transition: transform .5s, opacity .5s;
  line-height: 1.6;
}

.qa-6[open] p {
  transform: none;
  opacity: 1;
}

.qa-6 p::before {
  color: #ff8d8d;
  line-height: 1.2;
  content: "A";
}

/* ==============================================================

占い師紹介設定

============================================================== */

.teacher__imfo {
  background-color: #bfd8e0;
}

.teacher__imfo--img--icon {
  width: 25%;
}

.teacher__imfo--img--icon2 {
  width: 28%;
}

.teacher__imfo--img--icon3 {
  width: 33%;
}

.teacher__imfo--img--icon4 {
  width: 29%;
}

.teacher__imfo--img--icon5 {
  width: 18%;
}

.lf-29 {
  left: 29%;
}

.lf-30 {
  left: 31%;
}

.lf-40 {
  left: 40%;
}

.lf-46 {
  left: 46%;
}

.lf-50 {
  left: 46%;
}

.lf-52 {
  left: 56%;
}

.lf-80 {
  left: 71%;
}

.tp-5 {
  top: 5%;
}

.tp-26 {
  top: 26%;
}

.tp-30 {
  top: 20%;
}

.tp-33 {
  top: 30%;
}

/* ==============================================================

占い師タイトル設定

============================================================== */

.title {
  width: 80%;
}

.sab-title {
  width: 50%;
  padding-top: 3%;
  padding-bottom: 3%;
}

/* ==============================================================

占い師説明プルダウン設定（accordion）

============================================================== */

.accordion {
  max-width: 750px;
  margin: 0 auto;
}

.accordion__text {
  font-family:
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic", "YuGothic",
    "Noto Sans JP",
    Arial,
    sans-serif;
  color: #201d57;
  font-weight: bold;
  line-height: 1.8;
  background: #e4e4e4;
  padding: 18px 18px;
  border-radius: 12px;
  margin-bottom: 24px;
  font-size: 14px;
}

.accordion__text:last-child {
  margin-bottom: 0;
}

.accordion__item+.accordion__item {
  margin-top: 20px;
}

.accordion__button {
  position: relative;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.accordion__icon {
  position: absolute;
  top: 61%;
  right: 12.5%;
  width: 26px;
  height: 26px;
  pointer-events: none;
  background: #b2893b;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  transform: translateY(-50%) rotate(0deg);
  transition: transform .3s ease;
}

.accordion__button[aria-expanded="true"] .accordion__icon {
  transform: translateY(-50%) rotate(180deg);
}

.accordion__panel {
  padding: 18px 12px;
}

/* ==============================================================

フォーム設定

============================================================== */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.form-container {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  background-color: white;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  background-image: url(../img/7Memberregistration__BG.jpg);
}

.form-group {
  margin-bottom: 20px;
}

label {
  font-weight: bold;
  display: block;
  margin-bottom: 13px;
  margin-top: 43px;
  color: #fff;
  text-align: left;
  margin-left: 8%;
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Arial", sans-serif;
}

.required {
  background-color: #58bb55;
  padding: 2px 4px;
  border-radius: 4px;
  font-size: 12px;
  margin-left: 5px;
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Arial", sans-serif;
}

input[type="email"],
input[type="password"] {
  width: 85%;
  padding: 10px;
  border: 1px solid #fff;
  border-radius: 4px;
  font-size: 16px;
}

.Memberregistration-form__container {
  margin: 0 auto;
  text-align: center;
}

.note {
  font-size: 14px;
  color: #ffff;
  margin-top: 4px;
  margin-right: 55%;
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Sans", "Arial", sans-serif;
}

input[type="checkbox"] {
  margin-right: 5px;
}

.form-group label input[type="checkbox"] {
  display: inline-block;
}

form .form-group:last-child {
  margin-top: 20px;
}

/* ==============================================================

レスポンシブ設定（SP）

============================================================== */

@media only screen and (max-width: 750px) {
  .section,
  section img {
    width: 100%;
  }

  .introduction-text {
    font-size: 15px;
    width: 350px;
  }

  .form-container {
    height: 686px;
  }

  .note {
    margin-right: 27%;
  }

  .btn_canvas {
    width: 100%;
  }

  .wd-40 {
    width: 80%;
  }

  .section .mb-3,
  .mb-3 {
    margin-bottom: 5% !important;
  }

  .mt-3 {
    margin-top: 6%;
  }

  .acc-btn {
    font-size: 20px;
  }

  .acc-content p {
    font-size: 15px;
  }

  .accordion__icon {
    right: 15%;
    width: 15px;
    height: 15px;
  }

  .accordion__panel {
    font-size: 14px;
  }
}

/* ==============================================================

フッターメニュー

============================================================== */

footer {
  font-size: 13px;
  letter-spacing: 0.1rem;
  font-weight: 100;
}

ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #34424d;
}

li {
  float: left;
  width: 50%;
}

li:last-child {
  border-right: none;
}

li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover:not(.active) {
  background-color: #bbb;
}

.li-left {
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
}

.li-right {
  border-bottom: 1px solid #bbb;
}

.copywriter {
  font-size: 10px;
  color: #bbb;
  background-color: #34424d;
  text-align: center;
  padding: 14px 16px;
}

/* ==============================================================

header

============================================================== */

#exHeader {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0;
  clear: both;
  overflow: hidden;
  position: relative;
  border-top: 2px solid #000;
  border-bottom: solid 1px #e5e5e5;
  box-sizing: border-box;
  background: #fbfbfb;
}

#exHeader #exHeaderInner {
  display: flex;
  justify-content: flex-end;
  margin: 3px 3px 0 0;
}

#exHeader #siteLogo {
  position: absolute;
  top: 7px;
  left: 5px;
}

#exHeader .headerBtn {
  margin-left: 2px;
}

#exHeader .exSupportNumber {
  display: flex;
  justify-content: flex-end;
}

#exHeader .exSupportNumber .exPhoneNumber {
  margin: 8px 8px 0 0;
}

#exHeader #exHeaderInner_recruit {
  display: flex;
  justify-content: flex-end;
  margin: 3px 3px 0 0;
}

/* ==============================================================

PC版設定

============================================================== */

@media screen and (min-width: 750px) {
  footer,
  #exHeader {
    width: 750px;
    margin: 0 auto;
  }
}

@media screen and (min-width: 1600px) {
  .mb-3 {
    margin-bottom: 340px;
  }
}
