@charset "UTF-8";
/*---------------------------------------------*/
/* 共通パーツ                                   */
/*---------------------------------------------*/
html {
  scroll-behavior: smooth;
}

.container {
  width: calc(100% - 2.4rem);
  margin: 0 auto;
  max-width: 99.4rem;
}
@media screen and (min-width: 768px) {
  .container {
    width: calc(100% - 4.8rem);
  }
}

@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}
@media not screen and (min-width: 768px) {
  .pc {
    display: none !important;
  }
}
/*---------------------------------------------*/
/* ヘッダー                                     */
/*---------------------------------------------*/
.header {
  padding: 1.2rem 0 0;
}
@media screen and (min-width: 768px) {
  .header {
    position: relative;
    overflow: hidden;
  }
}
.header .container {
  position: relative;
}
@media screen and (min-width: 768px) {
  .header .container {
    height: 40.64rem;
  }
}
.header h1 {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #FFFFFF;
  border-bottom-right-radius: 1rem;
  padding: 0 0.8rem 0.8rem 0;
}
.header h1 img {
  width: 9rem;
  height: auto;
  display: block;
}
@media screen and (min-width: 768px) {
  .header h1 img {
    width: 12.8rem;
    padding: 0 1.2rem 1.2rem 0;
  }
}
.header__mv {
  width: 100%;
  height: auto;
  display: block;
}
@media screen and (min-width: 768px) {
  .header__mv {
    position: absolute;
    top: 1.2rem;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    max-width: none;
    height: 40.64rem;
  }
}

/*---------------------------------------------*/
/* topセクション                                */
/*---------------------------------------------*/
.top {
  padding: 4.4rem 0 2rem;
}
@media screen and (min-width: 768px) {
  .top {
    padding: 6.8rem 0 13.2rem;
  }
}
.top .container {
  position: relative;
}
@media screen and (min-width: 768px) {
  .top__text {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .top__text > div {
    width: 41.2rem;
  }
  .top__text > p {
    width: 50rem;
  }
}
.top__text h2 {
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 768px) {
  .top__text h2 {
    font-size: 2.8rem;
    line-height: 2em;
    letter-spacing: 0.12em;
    margin-bottom: 2.4rem;
  }
}
.top__text p {
  margin-bottom: 1.6rem;
  line-height: 2em;
}
@media screen and (min-width: 768px) {
  .top__text p {
    font-size: 1.8rem;
    line-height: 2.6em;
    margin-bottom: 0;
  }
}
.top__text a.line {
  display: none;
  justify-content: center;
  align-items: center;
  width: 37.2rem;
  height: 7.2rem;
  border-radius: 9999rem;
  border: 0.2rem solid #06C755;
  background-color: #06C755;
  color: #FFFFFF;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .top__text a.line {
    display: flex;
  }
}
.top__text a.line:hover {
  transform: scale(0.95);
}
.top__image {
  width: 100%;
  height: auto;
  margin-bottom: 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 12.4rem;
}
@media screen and (min-width: 768px) {
  .top__image {
    display: none;
  }
}
.top__image img {
  width: auto;
  height: 100%;
}

/*---------------------------------------------*/
/* overviewセクション                           */
/*---------------------------------------------*/
@media screen and (min-width: 768px) {
  .overview {
    margin-bottom: 12rem;
  }
}
@media screen and (min-width: 768px) {
  .overview .container {
    background-color: #FFF8E5;
    border-radius: 3.2rem;
    padding: 9.2rem 10.8rem 12rem;
    box-sizing: border-box;
    position: relative;
    text-align: center;
  }
  .overview .container::before {
    content: "";
    display: block;
    width: 2rem;
    height: 9.2rem;
    border-left: 0.2rem solid #6C450B;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-0.4rem, -50%);
  }
  .overview .container::after {
    content: "";
    display: block;
    width: 2.4rem;
    height: 1px;
    border-bottom: 0.2rem solid #6C450B;
    position: absolute;
    top: 4.5rem;
    left: calc(50% + 0.1rem);
    transform: translate(-0.4rem, 0) rotate(-45deg);
    transform-origin: left bottom;
  }
}
.overview h2 {
  padding: 1.2rem 2.4rem;
  margin: 0 0.8rem 1.2rem;
  text-align: center;
  font-size: 2rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .overview h2 {
    display: inline-block;
    min-width: 42rem;
    font-size: 2.4rem;
    padding: 0 4.8rem;
    margin: 0 0 4rem;
  }
}
.overview h2::before, .overview h2::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  height: 7.6rem;
  width: 0.8rem;
  background-image: url(../img/overview-border.svg);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  transform: translateY(-45%) rotate(-20deg);
  transform-origin: center top;
}
.overview h2::after {
  left: auto;
  right: 0;
  transform: translateY(-45%) rotate(20deg);
}
.overview__boxes {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0 1.6rem;
  position: relative;
  margin-bottom: 4.8rem;
}
@media screen and (min-width: 768px) {
  .overview__boxes {
    padding-top: 2rem;
    margin-bottom: 9.2rem;
  }
}
.overview__box {
  width: 15rem;
  position: relative;
  margin-bottom: 4.8rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .overview__box {
    width: 36rem;
  }
}
.overview__box .wrap {
  border: 1px solid #6C450B;
  border-radius: 1rem;
}
.overview__box::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  background-color: #FFF8E5;
  z-index: -1;
  border-radius: 1rem;
}
@media screen and (min-width: 768px) {
  .overview__box::before {
    background-color: #FFFFFF;
    top: 0.8rem;
    left: 1.2rem;
  }
}
.overview__box p.main {
  text-align: center;
  line-height: 1.6em;
  padding: 1.2rem 0;
  letter-spacing: -0.04em;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px) {
  .overview__box p.main {
    padding: 4rem 0;
    font-size: 2rem;
    font-weight: bold;
    line-height: 2em;
    letter-spacing: 0.04em;
  }
}
.overview__box p.main span {
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .overview__box p.main span {
    font-size: 2rem;
  }
}
.overview__box p.note {
  position: absolute;
  top: calc(100% + 0.8rem);
  font-size: 1.2rem;
  letter-spacing: -0.04em;
}
@media screen and (min-width: 768px) {
  .overview__box p.note {
    text-align: left;
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    top: calc(100% + 1.6rem);
  }
}
.overview__images {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 0 -0.6rem 1.6rem;
}
@media screen and (min-width: 768px) {
  .overview__images {
    margin: 0 -1.2rem -3.6rem;
  }
}
.overview__image {
  width: 50%;
  padding: 0 0.6rem;
  box-sizing: border-box;
  margin-bottom: 1.6rem;
}
@media screen and (min-width: 768px) {
  .overview__image {
    padding: 0 1.2rem;
    margin-bottom: 3.6rem;
  }
}
.overview__image img {
  margin-bottom: 0.8rem;
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .overview__image img {
    margin-bottom: 1.6rem;
    border-radius: 1.6rem;
  }
}
.overview__image p {
  text-align: center;
  font-size: 1.6rem;
  letter-spacing: -0.04em;
}
@media screen and (min-width: 768px) {
  .overview__image p {
    font-size: 2rem;
    letter-spacing: 0.04em;
  }
}

/*---------------------------------------------*/
/* aboutセクション                              */
/*---------------------------------------------*/
.about {
  background-color: #EAB18E;
  border-radius: 3.2rem;
  padding: 5.2rem 0 6rem;
  margin-bottom: 6rem;
}
@media screen and (min-width: 768px) {
  .about {
    background-color: transparent;
    border-radius: 0;
    padding: 0;
    margin-bottom: 12rem;
  }
}
@media screen and (min-width: 768px) {
  .about .container {
    background-color: #EAB18E;
    border-radius: 3.2rem;
    padding: 10rem 14rem;
    box-sizing: border-box;
  }
}
.about h2 {
  font-size: 2rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .about h2 {
    width: 50rem;
    margin-left: auto;
    margin-right: auto;
    font-size: 2.4rem;
    letter-spacing: 0.04em;
  }
}
.about h2 span {
  font-size: 2.6rem;
}
@media screen and (min-width: 768px) {
  .about h2 span {
    font-size: 3.6rem;
  }
}
.about h3 {
  width: 100%;
  font-size: 2rem;
  margin-bottom: 1.6rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .about h3 {
    width: auto;
    font-size: 2.4rem;
    margin-bottom: 1.2rem;
    text-align: left;
    width: 36rem;
    white-space: nowrap;
  }
}
.about__balloon {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .about__balloon {
    width: 50rem;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}
.about__set {
  width: calc(100% + 2.4rem);
  max-width: none;
  margin-left: -1.2rem;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .about__set {
    width: 68rem;
    margin: 0 auto;
    display: block;
  }
}
.about__price {
  background-color: #FFFFFF;
  border-radius: 0.4rem;
  width: 26rem;
  margin: -2.8rem auto 1.2rem;
  padding: 1.2rem 0;
  border: 0.1rem solid #6C450B;
}
@media screen and (min-width: 768px) {
  .about__price {
    width: 34.4rem;
    margin: -8rem auto 2.8rem;
    padding: 2.4rem 0;
  }
}
.about__price.camp {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .about__price.camp {
    width: 38rem;
  }
}
.about__price .price-box {
  margin-right: 1.2rem;
  text-align: center;
  font-size: 1.6rem;
}
.about__price .breakdown {
  background-color: #EAB18E;
  letter-spacing: -0.04em;
  margin-bottom: 1.2rem;
  border-radius: 9999rem;
  color: #FFFFFF;
}
@media screen and (min-width: 768px) {
  .about__price .breakdown {
    margin-bottom: 2rem;
    font-size: 2rem;
  }
}
.about__price .per {
  letter-spacing: -0.04em;
  font-size: 1.6rem;
  line-height: 1em;
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .about__price .per {
    font-size: 2.4rem;
    letter-spacing: -0.12rem;
  }
}
.about__price .per span {
  font-size: 3.2rem;
  padding-right: 0.4rem;
}
@media screen and (min-width: 768px) {
  .about__price .per span {
    font-size: 3.6rem;
    padding-right: 0.8rem;
    letter-spacing: 0;
  }
}
.about__price .tax {
  border: 0.1rem solid #6C450B;
  border-radius: 9999rem;
  text-align: center;
  font-size: 1rem;
  letter-spacing: -0.04em;
  line-height: 1.2em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.2rem;
  height: 4.2rem;
}
@media screen and (min-width: 768px) {
  .about__price .tax {
    width: 6rem;
    height: 6rem;
    font-size: 1.2rem;
    border-width: 0.2rem;
    line-height: 1.6em;
  }
}
.about__flex {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
.about__notes {
  margin-bottom: 3.2rem;
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .about__notes {
    margin: 0 auto 8rem;
    font-size: 1.6rem;
    width: 42rem;
  }
}
@media screen and (min-width: 768px) {
  .about__notes.camp {
    width: 62rem;
  }
}
.about__step {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  margin: 2rem 0 4.8rem;
}
@media screen and (min-width: 768px) {
  .about__step {
    margin: 2.8rem 0 7.2rem;
  }
}
.about__step::before, .about__step::after {
  content: "";
  display: block;
  position: absolute;
  width: 0.8rem;
  height: 0.8rem;
  top: 50%;
  left: 31.5%;
  border-top: 0.2rem solid #6C450B;
  border-right: 0.2rem solid #6C450B;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}
@media screen and (min-width: 768px) {
  .about__step::before, .about__step::after {
    width: 1.6rem;
    height: 1.6rem;
    border-width: 0.3rem;
    left: 31.2%;
  }
}
.about__step::after {
  left: auto;
  right: 31.5%;
  transform: translate(0, -50%) rotate(45deg);
}
@media screen and (min-width: 768px) {
  .about__step::after {
    right: 30.8%;
  }
}
.about__step li {
  width: 10rem;
  height: 10rem;
  background-color: transparent;
  flex-wrap: wrap;
  font-size: 1.4rem;
  line-height: 1.6em;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .about__step li {
    width: 19.2rem;
    height: 19.2rem;
    font-size: 2.2rem;
    font-weight: bold;
  }
}
.about__step li::before {
  content: "";
  position: absolute;
  top: 0.4rem;
  left: 0.28rem;
  width: 100%;
  height: 100%;
  border-radius: 9999rem;
  z-index: -1;
  background-color: #FFF8E5;
}
@media screen and (min-width: 768px) {
  .about__step li::before {
    top: 0.72rem;
    left: 0.48rem;
  }
}
.about__step li .wrap {
  border: 0.1rem solid #6C450B;
  width: 100%;
  height: 100%;
  border-radius: 9999rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0.32rem;
  padding-left: 0.2rem;
  box-sizing: border-box;
}
@media screen and (min-width: 768px) {
  .about__step li .wrap {
    padding-top: 0.52rem;
    padding-left: 0.28rem;
  }
}
.about__step li p {
  font-size: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.about__step li span {
  font-size: 1.2rem;
  line-height: 1.2em;
  display: block;
  padding-top: 0.4rem;
}
@media screen and (min-width: 768px) {
  .about__step li span {
    font-size: 1.6rem;
    line-height: 1.6em;
    padding-top: 0.8rem;
    font-weight: normal;
  }
}
.about__line {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 27.2rem;
  height: 5.6rem;
  border-radius: 9999rem;
  background-color: #06C755;
  box-shadow: 0 0.2rem 1rem #987E59;
  margin: 0 auto 4.8rem;
  color: #FFFFFF;
  font-size: 2rem;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .about__line {
    width: 40rem;
    height: 7.2rem;
    margin-bottom: 7.2rem;
    font-size: 2.4rem;
  }
}
.about__line:hover {
  background-color: #06C755;
  transform: scale(0.95);
}
.about__skep {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .about__skep {
    display: block;
    position: relative;
    padding-top: 0.4rem;
    height: 21.2rem;
  }
}
.about__skep p {
  width: 21.2rem;
}
@media screen and (min-width: 768px) {
  .about__skep p {
    line-height: 2.2em;
    width: 36rem;
  }
}
.about__skep img {
  width: 12rem;
}
@media screen and (min-width: 768px) {
  .about__skep img {
    width: 31rem;
    height: auto;
    position: absolute;
    top: 0;
    right: 0;
  }
}
.about__camp-title {
  width: 100% !important;
  font-size: 2rem !important;
  margin-bottom: 1.6rem;
  padding: 0 0.8rem;
  box-sizing: border-box;
}
.about__camp-subtitle {
  line-height: 2.4rem;
  text-align: center;
  margin-bottom: 1.6rem;
  font-weight: bold;
}
.about__camp-term {
  font-size: 1.2rem;
  text-align: center;
  padding: 0 0.8rem;
  margin: -0.8rem 0 1.2rem;
}
@media screen and (min-width: 768px) {
  .about__camp-term {
    font-size: 1.6rem;
  }
}
.about__regular-price {
  margin-top: -0.4rem;
  line-height: 1em;
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 768px) {
  .about__regular-price {
    font-size: 2rem;
  }
}
.about__regular-price .del {
  text-decoration: line-through;
}
.about__camp-about {
  line-height: 2em;
  margin-bottom: 2.4rem;
  text-align: center;
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .about__camp-about {
    font-size: 1.8rem;
    margin: 0 auto 2.8rem;
    letter-spacing: 0.08em;
    width: 71.4rem;
  }
}
.about__before-line {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  margin: 0 auto 2rem;
}
@media screen and (min-width: 768px) {
  .about__before-line {
    font-size: 2.4rem;
    margin-bottom: 3.2rem;
  }
}

/*---------------------------------------------*/
/* exampleセクション                            */
/*---------------------------------------------*/
.example {
  margin-bottom: 6rem;
}
@media screen and (min-width: 768px) {
  .example {
    margin-bottom: 12rem;
  }
}
.example .container {
  padding-bottom: 4.4rem;
  border-bottom: 0.2rem solid #EAB18E;
}
@media screen and (min-width: 768px) {
  .example .container {
    padding-bottom: 7.2rem;
  }
}
.example h2 {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 1.2rem;
}
@media screen and (min-width: 768px) {
  .example h2 {
    font-size: 2.4rem;
    margin-bottom: 4rem;
  }
}
.example ul {
  margin: 0 -1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .example ul {
    margin: 0 auto;
    max-width: 91.6rem;
  }
}
.example ul li {
  width: 33.3333%;
  margin-bottom: 1.6rem;
}
@media screen and (min-width: 768px) {
  .example ul li {
    width: 25%;
    padding: 0 1rem;
    box-sizing: border-box;
    margin-bottom: 4.8rem;
  }
}
.example ul li img {
  width: 100%;
  height: 12.5rem;
}
@media screen and (min-width: 768px) {
  .example ul li img {
    height: auto;
    border-radius: 1.6rem;
    margin-bottom: 1.2rem;
  }
}
.example ul li p {
  text-align: center;
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .example ul li p {
    font-size: 1.6rem;
    font-weight: bold;
  }
}
.example ul li p.name {
  margin-bottom: 0.4rem;
}
@media screen and (min-width: 768px) {
  .example ul li p.name {
    margin-bottom: 0.8rem;
  }
}
.example ul li p.volume {
  line-height: 1.2em;
  /* 一旦非表示 */
  display: none;
}
.example ul li p.volume span {
  background-color: #FFF8E5;
  padding: 0.4rem;
}
@media screen and (min-width: 768px) {
  .example ul li p.volume span {
    padding: 0.4rem 0.8rem;
  }
}

/*---------------------------------------------*/
/* featureセクション                             */
/*---------------------------------------------*/
.feature {
  margin-bottom: 2.4rem;
}
@media screen and (min-width: 768px) {
  .feature {
    margin-bottom: 20rem;
  }
}
.feature h2 {
  font-size: 2rem;
  margin-bottom: 1.2rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .feature h2 {
    font-size: 2.4rem;
    margin-bottom: 3.2rem;
  }
}
.feature .container > p {
  margin-bottom: 2.4rem;
}
.feature .container > p:first-of-type {
  margin-bottom: 1.2rem;
}
.feature ul {
  text-align: center;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .feature ul {
    margin: 0 -1.8rem;
  }
}
.feature ul li {
  width: calc(100% - 4.8rem);
  margin: 0 auto 2.8rem;
}
@media screen and (min-width: 768px) {
  .feature ul li {
    width: 33.3333%;
    padding: 0 1.8rem;
    box-sizing: border-box;
    margin: 0;
  }
}
.feature ul li img {
  width: 9rem;
  height: 9rem;
  margin-bottom: 1.2rem;
}
@media screen and (min-width: 768px) {
  .feature ul li img {
    width: 14rem;
    height: 14rem;
    margin-bottom: 2rem;
  }
}
.feature ul li h3 {
  font-size: 1.6rem;
  margin-bottom: 0.6rem;
}
@media screen and (min-width: 768px) {
  .feature ul li h3 {
    font-size: 2rem;
    margin-bottom: 1.2rem;
  }
}
.feature .col {
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .feature .col {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 8rem;
  }
}
.feature .col p {
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .feature .col p {
    width: 47.6rem;
    margin-bottom: 0;
  }
}

/*---------------------------------------------*/
/* faqセクション                                 */
/*---------------------------------------------*/
.faq {
  background-color: #FFF8E5;
  padding: 3.2rem 0;
}
@media screen and (min-width: 768px) {
  .faq {
    padding: 12rem 0;
  }
}
.faq .container {
  max-width: 83.4rem;
}
.faq h2 {
  font-size: 2rem;
  text-align: center;
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 768px) {
  .faq h2 {
    font-size: 2.4rem;
    margin-bottom: 3.2rem;
  }
}
.faq dl {
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .faq dl {
    margin-bottom: 5rem;
  }
}
.faq dl dt {
  padding: 1.6rem 4.2rem 1.6rem 3.2rem;
  margin: 0;
  font-size: 1.6rem;
  position: relative;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .faq dl dt {
    font-size: 2rem;
    padding: 3rem 8.8rem 3rem 7.2rem;
  }
}
.faq dl dt:not(:first-of-type) {
  border-top: 0.1rem solid #6C450B;
}
.faq dl dt::before {
  content: "";
  display: block;
  position: absolute;
  width: 2.2rem;
  height: 2.8rem;
  background-image: url(../img/faq-Q.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  top: 1.6rem;
  left: 0;
}
@media screen and (min-width: 768px) {
  .faq dl dt::before {
    width: 4.9rem;
    height: 3.5rem;
    top: 2.8rem;
    left: 1.6rem;
  }
}
.faq dl dt::after {
  content: "";
  display: block;
  position: absolute;
  width: 0.8rem;
  height: 0.8rem;
  top: calc(1rem + 1em);
  right: 0.8rem;
  border-bottom: 0.2rem solid #6C450B;
  border-right: 0.2rem solid #6C450B;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}
@media screen and (min-width: 768px) {
  .faq dl dt::after {
    width: 1.2rem;
    height: 1.2rem;
    top: calc(2rem + 1em);
    right: 2rem;
  }
}
.faq dl dt.open::after {
  top: calc(1rem + 1em + 0.4rem);
  transform: translate(-50%, -50%) rotate(45deg) scale(-1, -1);
}
@media screen and (min-width: 768px) {
  .faq dl dt.open::after {
    top: calc(2rem + 1em + 0.6rem);
  }
}
.faq dl dd {
  padding-bottom: 1.6rem;
  padding-left: 3.2rem;
  font-size: 1.4rem;
  display: none;
}
@media screen and (min-width: 768px) {
  .faq dl dd {
    font-size: 1.6rem;
    padding: 0 2rem 2rem 7.2rem;
  }
}

.faq__more {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  width: 20rem;
  height: 5.2rem;
  border: 0.1rem solid #6C450B;
  border-radius: 9999rem;
  position: relative;
  padding-right: 1.2rem;
  box-sizing: border-box;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .faq__more {
    width: 24rem;
    height: 7rem;
    font-size: 2rem;
    padding-right: 2.4rem;
  }
}
.faq__more:hover {
  background-color: #6C450B;
  color: #FFFFFF;
  transform: scale(0.95);
}
.faq__more:hover::after {
  border-color: #FFFFFF;
}
.faq__more::after {
  content: "";
  display: block;
  position: absolute;
  width: 0.8rem;
  height: 0.8rem;
  top: 50%;
  right: 2.4rem;
  border-top: 0.2rem solid #6C450B;
  border-right: 0.2rem solid #6C450B;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .faq__more::after {
    width: 1.2rem;
    height: 1.2rem;
    right: 3.2rem;
  }
}

/*---------------------------------------------*/
/* floatセクション                              */
/*---------------------------------------------*/
.float {
  position: fixed;
  z-index: 999;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 8rem;
  background-color: rgba(108, 69, 11, 0.25);
  display: none;
}
@media screen and (min-width: 768px) {
  .float {
    width: 8rem;
    height: 41.8rem;
    top: 36%;
    right: 0;
    left: auto;
    background-color: transparent;
    transform: translateY(-50%);
  }
}
.float a {
  width: 30rem;
  position: relative;
  border: 1px solid #06C755;
  border-radius: 9999rem;
  padding: 1.2rem 1.2rem 1.2rem 0;
  text-align: center;
  box-sizing: border-box;
  color: #FFF8E5;
  transition: 0.3s;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 768px) {
  .float a {
    position: static;
    border: none;
    border-radius: 1rem 0 0 1rem;
    background-color: #06C755;
    padding: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    transform-origin: right;
    font-size: 2.8rem;
    font-weight: bold;
    line-height: 1.2em;
    transform: none;
  }
  .float a:hover {
    background-color: #06C755;
  }
}
.float a:hover {
  transform: translate(-50%, -50%) scale(0.95);
}
@media screen and (min-width: 768px) {
  .float a:hover {
    transform: scale(0.95);
  }
}
.float a::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0.2rem;
  left: 0.2rem;
  background-color: #06C755;
  z-index: -1;
  border-radius: 9999rem;
}
@media screen and (min-width: 768px) {
  .float a::before {
    content: none;
  }
}
.float a::after {
  content: "";
  display: block;
  position: absolute;
  width: 0.8rem;
  height: 0.8rem;
  top: 50%;
  right: 1.6rem;
  border-top: 0.2rem solid #FFF8E5;
  border-right: 0.2rem solid #FFF8E5;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}
@media screen and (min-width: 768px) {
  .float a::after {
    content: none;
  }
}
@media screen and (min-width: 768px) {
  .float a span {
    width: 1em;
    overflow-wrap: break-word;
    word-break: break-word;
  }
}

/*---------------------------------------------*/
/* フッター                                     */
/*---------------------------------------------*/
footer {
  background-color: #EAB18E;
  border-top-left-radius: 3.2rem;
  border-top-right-radius: 3.2rem;
  padding: 6rem 0 12rem;
  margin-top: 4.8rem;
  text-align: center;
  position: relative;
}
@media screen and (min-width: 768px) {
  footer {
    text-align: left;
    padding: 6.5rem 0 8rem;
    margin: 0;
  }
  footer::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #FFF8E5;
  }
}
@media screen and (min-width: 768px) {
  footer .container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
}
footer img {
  width: 22rem;
  margin-bottom: 3.2rem;
}
@media screen and (min-width: 768px) {
  footer img {
    width: 32rem;
  }
}
footer p {
  margin-bottom: 2rem;
  padding-bottom: 2.2rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  footer p {
    width: 30.5rem;
    margin-bottom: 2.4rem;
    padding-bottom: 2.6rem;
  }
}
footer p::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 4.8rem;
  height: 0.2rem;
  background-color: #6C450B;
}
@media screen and (min-width: 768px) {
  footer p::after {
    left: 0;
    transform: none;
  }
}
@media screen and (min-width: 768px) {
  footer ul {
    width: 22.8rem;
  }
}
footer ul li {
  margin-bottom: 1.6rem;
}
@media screen and (min-width: 768px) {
  footer ul li {
    margin-bottom: 2.4rem;
  }
}
footer ul li:last-child {
  margin-bottom: 0;
}
footer ul li a {
  font-size: 1.4rem;
  text-decoration: underline;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  footer ul li a {
    font-size: 1.6rem;
  }
}
footer ul li a:hover {
  opacity: 0.5;
}

/*---------------------------------------------*/
/* 特商・規約ページ                               */
/*---------------------------------------------*/
.terms {
  background-color: #e5e5e5;
}
@media screen and (min-width: 768px) {
  .terms {
    background-color: transparent;
  }
}
.terms main {
  padding: 1.6rem 0 0;
  margin-bottom: -0.4rem;
}
@media screen and (min-width: 768px) {
  .terms main {
    padding: 8rem 0 6rem;
    margin-bottom: 0;
  }
}
.terms h1, .terms h2, .terms h3, .terms h4, .terms h5, .terms h6, .terms p, .terms li {
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 2rem;
  letter-spacing: 0.015em;
}
.terms ol.parentheses li {
  list-style-type: none;
  counter-increment: cnt;
}
.terms ol.parentheses li::before {
  content: "(" counter(cnt) ") ";
}
.terms ul.dot li {
  list-style-type: none;
}
.terms ul.dot li::before {
  content: "・";
}
.terms li {
  list-style-position: inside;
}
.terms h1, .terms p {
  margin-bottom: 2rem;
}
.terms__block {
  margin-bottom: 2rem;
}
.terms__block p {
  margin-bottom: 0;
}

/*---------------------------------------------*/
/* 年末年始お知らせ                               */
/*---------------------------------------------*/
.notice-btn {
  margin: 3.2rem 0 -1.2rem;
}
@media screen and (min-width: 768px) {
  .notice-btn {
    margin: 4rem 0 -2.8rem;
  }
}
.notice-btn a {
  display: block;
  border-radius: 999.9rem;
  color: #fff;
  background-color: #EA7D2D;
  padding: 1.2rem 4rem 1.2rem 0;
  text-align: center;
  font-size: 1.6rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  position: relative;
  box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .notice-btn a {
    font-size: 2rem;
    padding: 1.2rem 0;
  }
}
.notice-btn a:hover {
  transform: scale(0.95);
}
.notice-btn a::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 0.2rem);
  right: 3.6rem;
  width: 0.8rem;
  height: 0.8rem;
  border-right: 0.2rem solid #fff;
  border-bottom: 0.2rem solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
@media screen and (min-width: 768px) {
  .notice-btn a::after {
    right: 8rem;
    width: 1.2rem;
    height: 1.2rem;
    border-right: 0.4rem solid #fff;
    border-bottom: 0.4rem solid #fff;
    top: calc(50% - 0.3rem);
  }
}

.notice {
  margin-top: -2rem;
  padding: 4rem 0 6rem;
}
@media screen and (min-width: 768px) {
  .notice {
    margin-top: -14rem;
    padding: 4rem 0 10rem;
  }
}
.notice__box {
  text-align: center;
  color: #222;
  font-weight: bold;
  letter-spacing: 0.1em;
}
.notice__head {
  background-color: #EA7D2D;
  border-top-left-radius: 2rem;
  border-top-right-radius: 2rem;
  padding: 2rem 1.2rem;
  color: #fff;
  font-size: 2rem;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .notice__head {
    padding: 2.4rem 1.2rem;
    font-size: 2.4rem;
  }
}
.notice__body {
  padding: 2.4rem 1.6rem 0.8rem;
  border: 0.4rem solid #EA7D2D;
  border-top: none;
  border-bottom-left-radius: 2rem;
  border-bottom-right-radius: 2rem;
}
@media screen and (min-width: 768px) {
  .notice__body {
    padding: 4rem 1.6rem 1.6rem;
  }
}
.notice__body > * {
  margin-bottom: 2.4rem;
  font-size: 1.6rem;
  line-height: 1.6em;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .notice__body > * {
    font-size: 2rem;
  }
}
.notice__term {
  color: #EA7D2D;
  font-size: 2rem;
}
@media screen and (min-width: 768px) {
  .notice__term {
    font-size: 2.4rem;
  }
}
.notice__small {
  font-size: 1.4rem;
  font-weight: normal;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .notice__small {
    text-align: center;
  }
}
.notice h3 {
  font-size: 1.6rem;
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 768px) {
  .notice h3 {
    font-size: 2rem;
  }
}