.mainimg figure {
  position: relative;
}
.mainimg figure::before {
  content: "";
  position: absolute;
  left: 5%;
  top: calc(90px + 5%);
  width: 90%;
  height: calc(90% - 90px);
  display: block;
  background: url("../img/product/jokin/maintext@2x.png") no-repeat center 50% / contain;
}
@media only screen and (max-width: 782px) {
  .mainimg figure::before {
    height: 80%;
    top: 10%;
    background-image: url("../img/product/jokin/maintext-sp.png")
  }
}
.anchors ul {
  display: flex;
  width: 980px;
  max-width: 100%;
  margin: 0 auto;
}
.anchors ul li {
  margin: 40px 20px 0;
  width: calc(50% - 40px);
}
.anchors ul li a {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  background: #fff554;
  text-align: center;
  border-radius: 20px;
  height: 100%;
  position: relative;
  padding-bottom: 30px;
}
.anchors ul li a figure img { margin-top: -80px;}
.anchors ul li a::after {
  content: "";
  width: 18px;
  height: 18px;
  border-bottom: #45bdcf 1px solid;
  border-left: #45bdcf 1px solid;
  transform: rotate(-45deg);
  position: absolute;
  left: calc(50% - 9px);
  bottom: -4px;
  transition: bottom 0.5s ease;
}
.anchors ul li a:hover {
  animation: flash 0.5s ease;
}
.anchors ul li a:hover::after {
  bottom: -14px;
}
.basic section.jokin > h3 { margin-top: 100px;}
@media only screen and (max-width: 782px) {
  .basic section.jokin > h3 { margin-top: 50px;}
  .anchors ul {
    display: block;
  }
  .anchors ul li {
    margin: 30px 0px 0;
    width: auto;
  }
  .anchors ul li a { border-radius: 10px;padding-bottom: 15px;}
  .anchors ul li a figure img { margin-top: -10px;}
}
.basic section.anchor { display: block;}
.imgflex {
  margin-top: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#an02 .imgflex { margin-top: 0;}
.imgflex figure {
  margin: 0 2vw;
}
.basic h3 {text-align: center;margin-top: 30px;font-size: 52px;letter-spacing: -1px; line-height: 1.4; }
.lightblue { color: #00c3de; }
.basic h3 .small { font-size: 60%; }
h4.h401 {text-align: center; font-size: 32px; margin-top: 30px;line-height: 1.5;}
.red { color: #ff0060;}
h5.h501 { text-align: center; font-size: 22px;margin-top: 30px;}
p.desc { text-align: center;}
@media only screen and (max-width: 782px) {
  .imgflex {
    margin-top: 60px;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
  }
  .imgflex figure {
    margin: 2vw;
  }
  .imgflex figure:first-child img { width: 200px;}
  .water .imgflex figure:nth-child(2) img { width: 230px;}
  .basic h3 {margin-top: 15px;font-size: 26px;}
  h4.h401 { font-size: 16px; margin-top: 15px;}
  h5.h501 { font-size: 12px;margin-top: 15px;}
}

.flex01 {
  margin-top: 200px;
  display: flex;
  justify-content: space-between;
}
.flex01 .set {
  width: calc(50% - 25px);
  background: #eefafa;
  border-radius: 20px;
  text-align: center;
  padding: 0 30px;
  box-sizing: border-box;
  padding-bottom: 85px;
  position: relative;
}
.flex01 .set::after {
  content: "";
  width: 83px;
  height: 72px;
  background: url("../img/product/jokin/arrow_01@2x.png") no-repeat left top / contain;
  position: absolute;
  left: calc( 50% - 41px);
  bottom: -33px;
}
.flex01 .set.pink::after {background-image: url("../img/product/jokin/arrow_02@2x.png")}
.flex01 .set img {
  margin-top: -125px;
  border-radius: 50%;
}
.flex01 .set.blue img { border: #7ed1dc 10px solid;}
.flex01 .set.pink img { border: #ffaac0 10px solid;}
.flex01 .set h3 { font-size: 55px; line-height: 1.2; margin-top: 10px;}
.flex01 .set h3 .small { font-size: 90%;}
.flex01 .set.blue h3 { color: #41bdce;}
.flex01 .set.pink h3 { color: #f66188;}
.flex01 .set ul {
  margin-top: 10px;
  display: flex;
  justify-content: center;
}
.flex01 .set ul li {
  padding: 5px 20px;
  border-radius: 50px;
  color: #fff;
  font-size: 30px;
  line-height: 1.2;
  margin: 0 2px;
}
.flex01 .set.blue ul li { background-color: #41bdce;}
.flex01 .set.pink ul li { background-color: #f66188;}
.flex01 .set p { margin-top: 20px; line-height: 1.7;}

@media only screen and (max-width: 782px) {
  .flex01 {
    margin-top: 100px;
    display: block;
  }
  .flex01 .set {
    width: auto;
    border-radius: 10px;
    padding: 0 5vw;
    padding-bottom: 45px;
  }
  .flex01 .set + .set { margin-top: 120px;}
  .flex01 .set::after {
    content: "";
    width: 42px;
    height: 36px;
    left: calc( 50% - 21px);
    bottom: -16px;
  }
  .flex01 .set img {
    margin-top: -62px;
    border-width: 5px;
    width: 125px;
  }
  .flex01 .set h3 { font-size: 27px; line-height: 1.3; margin-top: 7px;}
  .flex01 .set ul {
    margin-top: 7px;
  }
  .flex01 .set ul li {
    padding: 3px 12px;
    font-size: 16px;
  }
  .flex01 .set p { margin-top: 12px; }

}
.comma {
  text-align: center;
  margin-top: 100px;
}
.comma p {
  color: #e53528;
  font-size: 36px;
  text-align: center;
  padding: 0 60px;
  margin-top: 0px;
  position: relative;
  line-height: 1.4;
  display: inline-block;
}
.comma p::before,
.comma p::after {
  content: "";
  background: url("../img/product/jokin/comma_left@2x.png") no-repeat left top / 34px auto;
  position: absolute;
  left: 0;
  top: 0;
  width: 34px;
  height: 100%;
}
.comma p::after {
  background: url("../img/product/jokin/comma_right@2x.png") no-repeat right bottom / 34px auto;
  left: auto;
  right: 0;
}
@media only screen and (max-width: 782px) {
  .comma p {font-size: 20px;padding: 0 40px;}
  .comma p::before,.comma p::after {background-size: 20px auto;}
}
.red02 { color: #e53528;}

.greenbox {
  margin-top: 150px; 
  border: #4aa104 5px solid;
  border-radius: 20px;
  position: relative;
  background: #fff;
  padding-bottom: 70px;
}
.greenbox > * { position: relative; z-index: 2;}
.greenbox::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 15px;
  width: 100%;
  height: 600px;
  z-index: 1;
  background: rgb(255,255,255);
  background: -webkit-linear-gradient(bottom, rgba(255,255,255,0) 0%, rgba(245,253,238,1) 100%);
  background: -o-linear-gradient(bottom, rgba(255,255,255,0) 0%, rgba(245,253,238,1) 100%);
  background: linear-gradient(to top, rgba(255,255,255,0) 0%, rgba(245,253,238,1) 100%);
}
.greenbox .maru {
  position: absolute;
  left: calc(50% - 530px);
  top: -50px;
}
.greenbox .pk {
  text-align: center;
}
.greenbox .pk img { margin-top: -36px;}
.greenbox h3 { font-size: 55px; text-align: center; color: #4aa104; margin-top: 50px; line-height: 1.4;}
.greenbox h4 { font-size: 32px; text-align: center; margin-top: 30px; line-height: 1.5;}
.greenbox h4 strong {
  display: inline-block;
  padding: 5px 40px;
  border-radius: 50px;
  background: #4aa104;
  color: #fcff00;
}
.greenbox h5 {
  margin-top: 30px; 
  text-align: center;
  font-size: 26px;
  letter-spacing: 0.1rem;
}
.greenbox h5 + p { text-align: center;}
.greenbox .note { text-align: center; font-size: 86%;}
.greenbox .graph {
  display: flex;
  margin: 70px;
  justify-content: space-between;
}
.greenbox .graph figure {
  width: calc(50% - 30px);
}
.greenbox .note.left { text-align: left; margin-left: 70px;}

@media only screen and (max-width: 782px) {
  .greenbox {
    margin-top: 70px; 
    border: #4aa104 3px solid;
    border-radius: 10px;
    padding: 0 5vw 5vw;
  }
  .greenbox::before {
    border-radius: 8px;
    height: 400px;
  }
  .greenbox .maru {
    position: relative;
    left: auto;
    top: auto;
    text-align: center;
  }
  .greenbox .maru img { margin-top: -50px; width: 180px;}
  .greenbox .pk {
    margin-top: 20px;
  }
  .greenbox .pk img { margin-top: 0; width: 400px;}
  .greenbox h3 { font-size: 26px; color: #4aa104; margin-top: 30px; line-height: 1.4;}
  .greenbox h4 { font-size: 18px; margin-top: 20px; line-height: 1.5;}
  .greenbox h4 strong {
    padding: 3px 25px;
  }
  .greenbox h5 {
    margin-top: 20px; 
    font-size: 15px;
    letter-spacing: 0.1rem;
  }
  .greenbox .graph {
    display: block;
    margin: 0px 0 0 0;
  }
  .greenbox .graph figure {
    margin-top: 8vw;
    width: auto;
    text-align: center;
  }
  .greenbox .note.left { margin-left: 0px;}
}

#myBanner { margin: 90px 0;}
#myBanner .myBtn { text-align: center;}
#myBanner .myBtn a { 
  text-align: left;
  width: 960px;
  padding-left: 260px;
  background: #fff;
  border-radius: 10px;
  color: #fff;
}
#myBanner .myBtn a:hover {
  background-color: #fff;
  color: #262253;
}
#myBanner .myBtn a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 10px;
  background: url("../img/product/jokin/banner-base@2x.png") no-repeat left center / cover;
  width: 377px;
  height: 100%;
  display: block;
  z-index: 2;
}
/*
#myBanner .myBtn a::after {
  content: "";
  display: block;
  width: 220px;
  height: 143px;
  position: absolute;
  z-index: 3;
  left: 10px;
  bottom: -15px;
  background: url("../img/strength/banner@2x.png") no-repeat left center / 220px auto;
}*/
#myBanner .myBtn a i.bg { width: calc(100% - 260px); border-radius: 0 10px 10px 0px;background-color: #fff554;}
#myBanner .myBtn a i.bg::before {
  background: #38a4b6;
  width: 880px;
  height: 880px;
  top: calc(50% - 440px);
}
@media only screen and (min-width: 783px) {
  #myBanner .myBtn a:hover i.bg::before {
    left: calc(50% + 401px);
  }
}
#myBanner .myBtn a span.jp { padding-top: 25px;padding-left: 150px; font-size: 150%;}
#myBanner .myBtn a span.en { padding-bottom: 25px;padding-left: 150px;}

.myBtn.center { text-align: center; margin-bottom: 200px;}
.myBtn.center a { text-align: left;}
@media only screen and (max-width: 782px) {
  #myBannerSp { text-align: center; margin-top: 5rem;margin-bottom: 5rem;}
  #myBannerSp .myBtn a { width: 280px; text-align: left;}

  .myBtn.center { margin-bottom: 100px;}
}

.basic .gaiyo h3 {
  text-align: center;
  font-size: 100%;
}
.gaiyo h3 strong {
  background: #07b2cf;
  color: #fff;
  padding: 10px 70px;
  border-radius: 60px;
  font-size: 26px;
  font-weight: normal;
  letter-spacing: 0.1rem;
  display: inline-block;
}
.flex02 {
  display: flex;
  justify-content: space-between;
}
.flex02 > figure {
  margin-top: 40px;
  width: 270px;
}
.flex02 > .text {
  margin-top: 75px;
  width: calc(100% - 325px);
}
.jokin .flex02 > .text figure img { width: 430px; }
.flex02 > .text ul {
  margin-top: 40px;
}
.flex02 > .text ul li {
  padding-left: 25px;
  position: relative;
  margin: 3px 0;
}
.flex02 > .text ul li::before {
  content: "■";
  color: #07b2cf;
  position: absolute;
  left: 0;
  top: 0;
}
.flex02 > .text h4 { display: flex; margin-top: 40px; font-size: 114%;}
.flex02 > .text h4 .bg_orange {
  color: #fff;
  background: #ff7e00;
  margin-right: 15px;
  padding: 0 20px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
}
.flex03 {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
.flex03 .text { margin-top: 30px; margin-right: 15px;}
.flex03 figure { margin-top: 20px;}
.flex03 .text .note { color: #ff0000; font-size: 86%;}
@media only screen and (max-width: 782px) {
  .gaiyo h3 strong {
    padding: 5px 40px;
    font-size: 18px;
  }
  .flex02 {
    display: block;
  }
  .flex02 > figure {
    margin-top: 40px;
    width: auto;
  }
  .flex02  figure { text-align: center;}
  .flex02 > figure img { width: 180px;}
  .flex02 > .text {
    margin-top: 35px;
    width: auto;
  }
  .jokin .flex02 > .text figure img { width: 300px; }
  .flex02 > .text ul {
    margin-top: 40px;
  }
  .flex02 > .text ul li {
    padding-left: 20px;
  }

  .flex02 > .text h4 { display: flex; margin-top: 30px; font-size: 114%;}
  .flex02 > .text h4 .bg_orange {
    margin-right: 10px;
    padding: 0 12px;
  }
  .flex03 {
    display: block;
  }
  .flex03 .text { margin-top: 20px;}
  .flex03 figure { margin-top: 20px;}
}
.tbtitle {
  font-size: 114%;
  font-weight: bold;
  margin-top: 80px;
}
.kome { font-size: 90%;}
.gaiyo table {
  margin-top: 30px;
  border-collapse: collapse;
}
.gaiyo table th,
.gaiyo table td { font-size: 90%; text-align: left; padding: 8px 15px; border-bottom: #e3e3e3 1px solid;}
@media only screen and (max-width: 782px) {
  .tbtitle {margin-top: 40px;}
  .gaiyo table {margin-top: 20px;}
  .gaiyo table th { padding: 8px 0px; width: 6rem; letter-spacing: 0;}
  .gaiyo table td { padding: 8px 0 8px 5px;}

}
.cation { font-size: 90%;}
h4.cation { margin-top: 50px;}
ul.cation li {
  padding-left: 25px;
  position: relative;
  margin: 3px 0;
}
ul.cation li::before {
  content: "●";
  color: #07b2cf;
  position: absolute;
  left: 0;
  top: 0;
}

.basic h3.h302 {
  margin-top: 80px;
  text-align: center;
}
.h302 .en {
  font-size: 80px;
  line-height: 1.4;
  display: block;
}
.h302 .mincho { font-size: 22px; display: block;}

@media only screen and (max-width: 782px) {
  .h302 {
    margin-top: 40px;
  }
  .h302 .en {
    font-size: 40px;
  }
  .h302 .mincho { font-size: 12px;}
}

main .articles {
  margin-top: 60px;
  box-sizing: border-box;
  display: flex;
  width: calc(100% + 5vw);
  flex-wrap: wrap;
}
main article {
  margin-top: 130px;
  margin-right: 2vw;
  width: calc(33.333% - 2vw);
}
main article a {
  background: rgba(255,255,255,0.6);
  border-radius: 15px;
  display: block;
  position: relative;
  padding: 20px 20px 100px 20px;
  height: 100%;
  box-sizing: border-box;
}
main article a:hover { background: #fff;}
main article a figure { text-align: center;}
main article a figure img { border-radius: 10px;margin-top: -60px; height: auto;}
main article a .date { font-size: 12px; font-weight: 600;}
main.basic article a h3 { font-size: 18px; font-weight: bold;}
main article a p { font-size: 86%;}
main article a .arrow {
  right: 40px;
  bottom: 50px;
  top: auto;
}
@media only screen and (max-width: 782px) {
  main .articles {
    margin-top: 30px;
    display: block;
    width: auto;
  }
  main article {
    margin-top: 65px;
    margin-right: 0;
    width: auto;
  }
  main article a {
    border-radius: 8px;
    padding: 0 7.5vw 60px 7.5vw;
    height: auto;
  }
  main article a figure { }
  main article a figure img { border-radius: 5px;margin-top: -40px; width: 100%; height: auto;}
  main article a .date { font-size: 8px;}
  main.basic article a h3 { font-size: 13px; }
  main article a .arrow {
    right: calc(7.5vw + 15px);
    bottom: 30px;
  }
}

.myBtn.center { text-align: center; margin-bottom: 200px;}
.myBtn.center a { text-align: left;}
@media only screen and (max-width: 767px) {
  .myBtn.center { margin-bottom: 100px;}
}

.darkblue { color: #00539a;}
h2.imgflex + h3 { margin: 50px 0;}

.hukidashi {
  margin: 80px 0;
  text-align: center;
}
.hukidashi dt strong {
  display: inline-block;
  color: #fff;
  background: #07b2cf;
  font-size: 32px;
  border-radius: 100px;
  position: relative;
  font-weight: normal;
  padding: 12px 40px;
}
.hukidashi dt strong::after {
  content: "";
  width: 44px;
  height: 70px;
  border: transparent 22px solid;
  border-top: #07b2cf 35px solid;
  left: calc(50% - 22px);
  bottom: -69px;
  position: absolute;
  box-sizing: border-box;
}
.hukidashi dt strong span { font-size: 130%;}
.hukidashi dd {
  margin-top: 65px;
}
.hukidashi dd img {
  mix-blend-mode: darken;
}
p.linegraph { text-align: center; margin: 80px 0 50px;}

@media only screen and (max-width: 782px) {
  .hukidashi {margin: 40px 0;}
  .hukidashi dt strong {
    font-size: 18px;
    padding: 10px 30px;
  }
  p.linegraph { margin: 40px 0 30px;}
}

.bg_tshirt {
  position: relative;
  z-index: 2;
  background: #ecf8fe url("../img/product/jokin/bg_tshirt@2x.png") no-repeat left top / 105% auto;
  padding-top: 26.25vw;
  padding-bottom: 1px;
}

.bg_tshirt h3.darkblue { margin-bottom: 50px;}
.bg_tshirt h3.lightblue { margin-top: 80px;}
.bg_tshirt h3.pink { margin-top: 80px; color: #f66188;}
ul.beforeafter {
  margin-top: 80px;
  display: flex;
  justify-content: space-between;
}
ul.beforeafter li {
  width: calc(50% - 20px);
}
ul.beforeafter li img { width: 100%;}
ul.beforeafter li figcaption {
  text-align: center;
  margin-top: 5px;
}
.bg_white {
  margin-top: 50px;
  border-radius: 20px;
  background: #fff;
  padding: 45px;
}
@media only screen and (max-width: 782px) {
  .bg_tshirt {
    padding-bottom: 70px;
  }
  .bg_tshirt h3.darkblue { margin-bottom: 30px;}
  .bg_tshirt h3.lightblue { margin-top: 40px;}
  .bg_tshirt h3.pink { margin-top: 40px;}
  ul.beforeafter {
    margin-top: 40px;
    display: block;
  }
  ul.beforeafter li {
    width: auto;
  }
  .bg_white {
    margin-top: 30px;
    border-radius: 10px;
    padding: 5vw;
  }
}
.bg_tshirt + .basic { position: relative; z-index: 3;}
.bg_tshirt + .basic .gaiyo h3 { margin-top: 0;}
.bg_tshirt + .basic .gaiyo h3 strong {margin-top: -24px;}