@charset "utf-8";

.pdfwrapper {
  background-color: #e7f1fb;
  padding: 15px 10px 30px;
  position: relative;
}

.pdfwrapper .title {
  text-align: center;
  margin-top: -15px;
  margin-left: -10px;
  margin-right: -10px;
  margin-bottom: 30px;
  border-top: 2px solid #E27F7F;

}

.pdfwrapper .title span {
  background-color: #E27F7F;
  color: #fff;
  font-weight: bold;
  display: inline-block;
  font-size: 160%;
  padding: 5px 1em;
}

.pdfwrapper h2 {
  font-size: min(4vw, 2rem);
  margin-bottom: 10px;
  font-weight: bold;
}

.pdfwrapper p a {
  text-decoration: underline;
  font-weight: bold;
}

.blocks {
  max-width: 900px;
  margin: 0px auto;
  width: 100%;
}

.pdfbtn {
  width: 100%;
  margin: 0 auto 1rem;
}

.blue {
  color: #E27F7F;
}

.blue_dark {
  color: #E27F7F;
}


@media screen and (min-width:768px) {
  .pdfwrapper {
    padding: 30px 20px;
  }

  .pdfwrapper .title {
    text-align: center;
    margin-top: -30px;
    margin-left: -20px;
    margin-right: -20px;
    margin-bottom: 30px;
    border-top: 2px solid #E27F7F;
  }

  .pdfwrapper .title span {
    background-color: #E27F7F;
    color: #fff;
    font-weight: bold;
    display: inline-block;
    font-size: 160%;
    padding: 5px 1em;
  }

  .pdfwrapper h2 {
    font-size: 2rem;
    margin-bottom: 10px;
    font-weight: bold;
  }

  .pdfwrapper p a {
    text-decoration: underline;
    font-weight: bold;
  }

  .blocks {
    max-width: 900px;
    margin: 0px auto;
    width: 100%;
  }

  .pdfbtn {
    max-width: 400px;
    margin: 0 unset 30px;
  }
}

header {
  background-color: #fff;
  height: 60px;
  display: flex;
  align-items: center;
}

.header_inner {
  width: 95%;
  margin: 0px auto;
  padding: 10px 0;
}

.header_logo {
  width: 70px;
}

.apply_txt {
  font-size: 1.3rem;
  padding-top: 15px;
  display: block;
  font-weight: bold;
}

@media screen and (min-width:768px) {
  header {
    background-color: #fff;
    height: 80px;
    display: flex;
    align-items: center;
  }

  .header_logo {
    width: 90px;
  }
}


article {
  font-size: 1.3rem;
}

.underline {
  text-decoration: underline;
}

.fv {
  background-color: #fff;
  position: relative;
  text-align: center;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.fv img {
  width: 100%;
  max-width: 2560px;
  margin: 0px auto;
}

.fv .wrapper .flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-top: 50px;
}

.fv .header_logo {
  position: absolute;
  top: 0;
  left: 10px;
  width: 80px;
}



/* btn */
.btn-pdf {
  background-color: #798284;
  text-align: center;
  color: #fff;
  font-size: 120%;
  font-weight: bold;
  border-radius: 6px;
  padding: 15px;
  display: block;
}

.btn-pdf:after {
  content: ""
    url(../images/icon_pdf.svg);
  display: inline-block;
  margin-left: 10px;
  vertical-align: middle;
  position: relative;
  top: -1px;
  width: 28px;
  height: 28px;
}

.btn-pdf:hover,
.btn-pdf:visited {
  color: #fff;
}

.link_text {
  color: #58A0D3;
  border-bottom: #58A0D3 1px solid;
  display: inline-block;
}

.btn-webapply {
  background-color: #58A0D3;
  text-align: center;
  display: block;
  color: #fff !important;
  font-size: 140%;
  font-weight: bold;
  border-radius: 6px;
  padding: 25px;
  box-shadow: 0px 4px 0px 0px #ccc;
}

.btn-webapply.arrow:after {
  content: "";
  width: 12px;
  height: 12px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  margin-left: 5px;
  display: inline-block;
  transform: rotate(45deg) translate(3px, -10px);
}

/* hr */
hr.hr-cp {
  background: url(../images/hr.svg) no-repeat;
  background-position: center top;
  width: 100%;
  height: 10px;
  border: none;
  margin: 5rem 0 0;
  padding: 0 0 20px;
}

hr.hr-cp-line {
  width: 100%;
  height: 10px;
  border: none;
  border-top: #e3dbd3 solid 1px;
  margin: 0;
  padding: 0;
  margin: 40px 0;
}


/* h1 */
article .wrapper h2 {
  text-align: center;
  font-size: 180%;
  color: #E27F7F;
  line-height: 1.2;
}

article .wrapper h2 span {
  font-weight: 600;
  display: inline-block;
}

article .wrapper h2 em {
  width: 100%;
  display: inline-block;
  text-align: center;
  font-size: 50%;
  color: #E27F7F;
}

.small {
  line-height: 1.6;
  display: inline-block;
}

.bold-line {
  text-decoration: underline;
  font-weight: 600;
}

.free-dial {
  font-weight: 600;
  font-size: 120%;
  margin-bottom: 10px;
  display: inline-block;
}




/* schedule */
.wrapper.schedule h3 {
  /*padding: 0;*/
  font-size: 110%;
  border-top: none;
  font-weight: 600;
  /*margin-top: 10px;*/
}

.wrapper.schedule p {
  /*text-align: center;
margin-top: 0;
line-height:2;*/
}

.wrapper.schedule:first-of-type p {
  padding-top: 6rem;
  color: #E27F7F;
  font-size: 120%;
  font-weight: 600;
}

.wrapper.schedule:first-of-type p a {
  color: #E27F7F;
  border-bottom: #E27F7F 1px solid;
  display: inline-block;
}

.wrapper p span.small {
  font-size: 70%;
  /*line-height: 1;*/
}

/*.wrapper.schedule .lead {
margin-top: 25px;
}*/

.schedule dl {
  margin-top: 20px;
}

.schedule dl dt,
.schedule dl dd {
  margin-top: .8rem;
  box-sizing: border-box;
}

.schedule dl dt {
  font-weight: 600;
}

.schedule dl dt,
.schedule dl dd {
  display: block;
  text-align: center;
}

.schedule dl dd b {
  font-weight: bold;
  font-size: 16px;
}

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



/* products */
.wrapper.products p {
  vertical-align: middle;
  margin: 10px 0 20px;
  text-align: center;
}

.wrapper.products p span {
  display: inline-block;
  font-size: 120%;
  margin-bottom: 10px;
  font-weight: 600;
}

.wrapper.products p span small {
  font-size: 80%;
}



/* shop-list */
.wrapper.shop-list p {
  vertical-align: top;
  line-height: 2;
}

.wrapper.shop-list .shop-name span {
  display: inline-block;
  font-feature-settings: "palt";
}


/* banner */
.banner {
  padding-bottom: 5rem;
}

.banner p {
  margin-top: 0;
}



/*footer*/
.footer-sitemap {
  background-color: #f5f5f5;
  padding: .5rem 0;
  text-align: center;
}

.footer-sitemap a {
  display: inline-block;
}

.footer a:hover {
  color: #E27F7F;
}

.wrap_copyright {
  padding: 1rem 0;
  background: #E27F7F;
  font-size: 70%;
  color: #FFF;
  text-align: center;
}

.wrap_copyright p {
  padding: 0;
}






@media screen and (min-width:768px) {


  article {
    font-size: 1.5rem;
  }

  /* text */
  .text-center-pc {
    text-align: center;
  }


  /* fv */
  .fv .header_logo {
    width: 120px;
  }

  .fv .wrapper .flex {
    align-items: center;
    justify-content: space-between;
    padding-top: 80px;
  }


  /* banner */
  .banner p {
    margin-top: 15px;
    margin-bottom: 0;
  }



}

/*min-width:768px*/




@media screen and (min-width:1080px) {}


/* close */
.fv h1 {
  position: relative;
  text-align: center;
}

.fv h1 .close {
  position: absolute;
  bottom: 34px;
  left: 0;
  display: block;
  width: 100%;
  height: 16%;
  background: rgba(220, 225, 231, .9);
  color: #E04153;
  text-align: center;
}

.fv h1 .close>strong {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.fv .apply {
  width: 100%;
  display: block;
  padding: 10px 5px;
  background: #e1d9c2;
  text-align: center;
  font-weight: 600;
  line-height: 1;
  box-sizing: border-box;
  color: #595757;
  margin-top: 5px;
}

.fv .apply strong {
  font-size: 146%;
}

.schedule h3>span.caution {
  display: block;
  text-align: center;
  color: #E04153;
  font-size: 80%;
  font-weight: 600;
}

.line-through {
  text-decoration: line-through;
  text-decoration-color: #E04153;
}




@media screen and (min-width:768px) {
  .fv h1 {}

  .fv h1 .close {
    height: 14%;
    bottom: 39px;
  }

}


/* howto */
.howto_box {
  position: relative;
  box-sizing: border-box;
}

.howto_num {
  position: absolute;
  top: min(1vw, 1.5rem);
  left: min(2vw, 2rem);
  width: 20px;
  font-size: 160%;
  font-weight: 600;
  color: #E27F7F;
}

.howto_text {
  position: relative;
  left: min(7vw, 4rem);
  font-weight: 600;
  width: calc(100% - min(8vw, 4rem));
  font-size: 1.7rem;
}

.howto_text span {
  font-size: 110%;
  color: #E27F7F;
}

.howto h3 {
  font-size: 1.8rem;
  margin-bottom: 10px;
}



/* FV animation */
.hero-image-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0 auto;
  line-height: 0;
  z-index: 1;
}

.hero-image {
  width: 100%;
  height: auto;
  opacity: 1;
  /* filter: saturate(1.5) contrast(1.8) brightness(0.7); */
  transform: scale(1.02);
  animation: slowRichIn 3.5s cubic-bezier(0.2, 0, 0.2, 1) forwards;
}

@keyframes slowRichIn {
  0% {
    opacity: 0;
    transform: scale(1.04);
  }

  30% {
    opacity: 1;
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.hero-image-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 40%;
  height: 100%;

  background: linear-gradient(to right,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.7) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-20deg);
  pointer-events: none;
}







.rules {
  max-width: 960px;
  margin: 0 auto;
}

.rules-wrapper {
  position: relative;
  max-height: 400px;
  overflow: hidden;
  transition: max-height 0.5s ease;
}

/* 閉じている時だけ下端を少しぼかす */
.rules-wrapper::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 60px;
  background: linear-gradient(to bottom,
      rgba(255, 255, 255, 0),
      #fff);
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.rules-wrapper.is-open::after {
  opacity: 0;
}

.rules-title {
  margin: 0 0 30px;
  font-size: 1.6rem;
  text-align: center;
}

.rules-heading {
  margin: 2em 0 0.6em;
  font-size: 18px;
}

.rules-subheading {
  margin: 1.5em 0 0.5em;
  font-size: 16px;
}

.rules-wrapper p {
  margin: 0 0 0.4em;
  line-height: 1.6;
}

.rules-item {
  padding-left: 1em;
  text-indent: -1em;
}

.rules-item::before {
  content: "・";
}

.rules-number {
  padding-left: 2em;
  text-indent: -2em;
}

.rules-subitem {
  padding-left: 1em;
  text-indent: -1em;
}

.rules-subitem::before {
  content: "ー";
}

.rules-note {
  font-size: 0.8em;
}

.rules-toggle {
  display: block;
  margin: 25px auto 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}

.rules-toggle__icon {
  display: inline-block;
  margin-left: 0.4em;
}

.rules-toggle {
  background-color: #E27F7F;
  border-radius: 9999px;
  color: #fff;
  height: 40px;
  padding: 0 1.5em;
  display: flex;
  align-items: center;
}



.recept {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  gap: 10px;
}

.recept li {
  width: calc((100% - 40px) / 4);
}

.recept img {
  border-radius: 10px;
  box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.2);
}


@media screen and (max-width:768px) {
  .recept li {
    width: calc((100% - 10px) / 2);
  }
}