body {
  font-family: Arial, Helvetica, "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.container {
  max-width: 750px;
  margin: 0 auto;
}
.container img {
  width: 100%;
  vertical-align: bottom;
}

.inner {
  max-width: 1300px;
  padding: 0 20px;
  box-sizing: content-box;
  margin: 0 auto;
}

header {
  position: relative;
}
header a {
  position: absolute;
  top: 15px;
  right: 17px;
  width: 60px;
  height: 60px;
}
@media (max-width: 700px) {
  header a {
    top: 12px;
    right: 15px;
    width: 50px;
    height: 50px;
  }
}
@media (max-width: 600px) {
  header a {
    top: 12px;
    right: 15px;
    width: 45px;
    height: 45px;
  }
}
@media (max-width: 500px) {
  header a {
    top: 8px;
    right: 11px;
    width: 40px;
    height: 40px;
  }
}
@media (max-width: 400px) {
  header a {
    top: 7px;
    right: 9px;
    width: 30px;
    height: 30px;
  }
}
.cta01 {
  position: relative;
}
.cta01 a img {
  width: 95%;
  margin: 0 auto;
}

.cta01-img {
  position: absolute;
  bottom: 2%;
  left: 50%;
  transform: translateX(-50%);
}

.cta02 {
  position: relative;
  margin-top: 100px;
}
.cta02-img {
  position: absolute;
  bottom: 1%;
  left: 50%;
  transform: translateX(-50%);
}
.cta02 a img {
  width: 95%;
  margin: 0 auto;
}

.cta03 {
  position: relative;
}
.cta03-img {
  position: absolute;
  bottom: 3%;
  left: 50%;
  transform: translateX(-50%);
}
.cta03 a img {
  width: 95%;
  margin: 0 auto;
}

.cta04 {
  display: grid;
  position: relative;
}
.cta04-img {
  position: absolute;
  bottom: 1%;
  left: 50%;
  transform: translateX(-50%);
}
.cta04 a {
  grid-row: 2;
}
.cta04 a img {
  width: 100%;
  margin: 0 auto;
}

.plan {
  position: relative;
  background: #d9fcff;
  padding-bottom: 40px;
}

.plancontainer {
  display: grid;
  gap: 40px;
}

#additional-plans {
  display: grid;
  gap: 40px;
}

/* .plan01 {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
}

.plan02 {
  position: absolute;
  top: 31%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
}
.plan03 {
  position: absolute;
  top: 52%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
}
.plan04 {
  position: absolute;
  top: 73%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
} */
.openbtn {
  /* position: absolute;
  top: 94%;
  left: 50%;
  transform: translateX(-50%); */
  cursor: pointer;
  width: 90% !important;
  margin: 0 auto;
  display: block;
}

.hide {
  position: relative;
}

/* .plan05 {
  position: absolute;
  top: 1%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
}
.plan06 {
  position: absolute;
  top: 33%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
}
.plan07 {
  position: absolute;
  top: 65%;
  left: 50%;
  transform: translateX(-50%);
  width: 95% !important;
} */

.qa-container {
  margin: 0 auto;
  margin-top: 30px;
  width: calc(100% - 20px);
}

.qa-list {
  margin-bottom: 30px;
}

.question-title {
  background: #d9fcff;
  cursor: pointer;
  font-size: 24px;
  padding: 20px 70px;
  position: relative;
  line-height: 1.3em;
  font-weight: 500 !important;
}

.question-title:before {
  position: absolute;
  display: block;
  content: "Q";
  top: 20px;
  left: 12px;
  color: black;
  font-size: 40px;
  font-weight: bold;
}

.question-title:after {
  position: absolute;
  display: block;
  content: "＋";
  top: 27%;
  right: 10px;

  font-size: 40px;
  transition: all 0.3s ease-in-out;
}

.question-title.open:after {
  transform: rotate(-45deg);
}

.answer-text {
  border-left: 3px solid #d9fcff;
  border-right: 3px solid #d9fcff;
  border-bottom: 3px solid #d9fcff;
  display: none;
  padding: 15px 70px;
  font-size: 20px;
  position: relative;
  line-height: 1.8em;
}

.answer-text:before {
  position: absolute;
  display: block;
  content: "A";
  top: 18px;
  left: 12px;
  color: #35bbe0;
  font-size: 40px;
  font-weight: bold;
}

@media (max-width: 500px) {
  .question-title {
    cursor: pointer;
    font-size: 16px;
    padding: 15px 35px 15px 45px;
    position: relative;
    font-weight: 500 !important;
  }

  .question-title:before {
    position: absolute;
    display: block;
    content: "Q";
    top: 25%;
    left: 12px;
    color: black;
    font-size: 30px;
  }

  .question-title:after {
    position: absolute;
    display: block;
    content: "＋";
    top: 25%;
    right: 10px;

    font-size: 25px;
    transition: all 0.3s ease-in-out;
  }

  .question-title.open:after {
    transform: rotate(-45deg);
  }

  .answer-text {
    border-left: 3px solid #d9fcff;
    border-right: 3px solid #d9fcff;
    border-bottom: 3px solid #d9fcff;
    display: none;
    padding: 15px 20px 15px 45px;
    font-size: 16px;
    position: relative;
    line-height: 1.8em;
  }

  .answer-text:before {
    position: absolute;
    display: block;
    content: "A";
    top: 18px;
    left: 12px;
    color: #35bbe0;
    font-size: 30px;
    font-weight: bold;
  }
}

.google-maps {
  position: relative;
  padding-bottom: 100%;
  height: 0;
  overflow: hidden;
}

.google-maps iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

.company {
  font-size: 22px;
  text-align: center;
  /* height: 150px; */
  background: #003d96;
  color: white;
}
.company {
  padding: 20px;
}

.company a:first-child {
  display: block;
  color: white;
  text-decoration: none;
}
.company a:nth-child(even) {
  display: block;
  color: white;
  text-decoration: none;
  padding: 40px;
}

@media (max-width: 500px) {
  .company {
    font-size: 14px;
    padding: 20px;
  }

  .company a {
    display: block;
    color: white;
    text-decoration: none;
  }

  .company a:nth-child(even) {
    padding: 20px;
  }
}

.sticky-footer {
  position: sticky;
  bottom: 0;
  text-align: center;
}

/* subページ */
.sub {
  min-height: 100vh; /* ←コンテンツの高さの最小値＝ブラウザの高さに指定 */
  position: relative; /* ←相対位置 */

  box-sizing: border-box;
}
.footerFixed {
  position: absolute; /* ←絶対位置 */
  bottom: 0;
  height: 80px;
  width: 100%;
  line-height: 80px;

  /* 以下 背景色やテキストカラーなどはお好みで指定してください */
  background: black;
  color: #fff;
  text-align: center;
}
@media (max-width: 500px) {
  .footerFixed {
    font-size: 14px;
  }
}

.company-text {
  background: rgb(187, 162, 110);
  height: 150px;
  text-align: center;
  line-height: 150px;
  font-size: 40px;
}
@media (max-width: 500px) {
  .company-text {
    height: 100px;
    text-align: center;
    line-height: 100px;
    font-size: 30px;
  }
}
.company-profile dl {
  display: flex;
  flex-wrap: wrap;
  width: 90%;
  margin: 0 auto;
  font-size: 26px;
  padding: 70px 0 50px;
}
.company-profile dt {
  width: 40%;
  margin-bottom: 20px;
}
.company-profile dd {
  width: 60%;
  margin-bottom: 20px;
}
@media (max-width: 650px) {
  .company-profile dl {
    font-size: 20px;
    padding: 40px 0 20px;
  }
  .company-profile dt {
    margin-bottom: 20px;
  }
  .company-profile dd {
    margin-bottom: 20px;
  }
}
@media (max-width: 500px) {
  .company-profile dl {
    font-size: 16px;
    padding: 40px 0 20px;
  }
  .company-profile dt {
    margin-bottom: 20px;
  }
  .company-profile dd {
    margin-bottom: 20px;
  }
}

/* プライバシーポリシーページ */

.privacy-title {
  background: rgb(187, 162, 110);
  height: 150px;
  position: relative;
}
.privacy-title h2 {
  text-align: center;
  font-size: 40px;
}
.texttitle {
  font-size: 20px;
  text-align: center;
  margin-top: 5px;
}
.frame {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 500px) {
  .privacy-title {
    background: rgb(187, 162, 110);
    height: 100px;
    position: relative;
  }
  .privacy-title h2 {
    text-align: center;
    font-size: 30px;
    width: 300px;
  }
  .texttitle {
    font-size: 16px;
    text-align: center;
    margin-top: 5px;
  }
}
.privacy-container {
  width: calc(100% - 40px);
  margin: 0 auto;
  padding: 70px 0;
  font-size: 26px;
  line-height: 1.5em;
}
@media (max-width: 650px) {
  .privacy-container {
    font-size: 20px;
  }
}

@media (max-width: 500px) {
  .privacy-container {
    font-size: 16px;
    padding: 40px 0;
  }
}

.privacy-container p {
}

.privacy-text dt {
  margin-top: 40px;
  padding-bottom: 5px;
  margin-bottom: 5px;
  border-bottom: 1px solid black;
  color: rgb(187, 162, 110);
}
@media (max-width: 500px) {
  .privacy-text dt {
    margin-top: 20px;
  }
}

.privacy-footer {
  height: 80px;
  background: black;
  color: white;
  text-align: center;
  line-height: 80px;
}
@media (max-width: 500px) {
  .privacy-footer {
    font-size: 14px;
  }
}

@keyframes pulse {
  0% {
    transform: scale(0.9);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.9);
  }
}

.pulse-animation {
  animation: pulse 2s infinite;
}
