/*
Theme Name:rcsp
*/
/* Reset ----- */
html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0
}

article,
aside,
footer,
header,
nav,
section,
figcaption,
figure,
main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

ul {
  list-style: none;
}

button,
input,
select,
textarea {
  margin: 0;
  background-color: transparent;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
  vertical-align: middle;
}

button,
select {
  text-transform: none;
}

input,
button,
select {
  font-family: inherit;
  font-weight: inherit;
}

input[type="submit"],
input[type="button"],
button[type="submit"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}

input[type="submit"]:-webkit-search-decoration,
input[type="button"]:-webkit-search-decoration,
button[type="submit"]:-webkit-search-decoration {
  display: none;
}

input[type="submit"]:focus,
input[type="button"]:focus,
button[type="submit"]:focus {
  outline: none;
}

/* IE 10+ ----- */
:-ms-input-placeholder {
  color: #999;
}

html {
  box-sizing: border-box;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  -webkit-text-size-adjust: 100%;
}

*,
*:before,
*:after {
  background-repeat: no-repeat;
  box-sizing: inherit;
}

:before,
:after {
  text-decoration: inherit;
  vertical-align: inherit;
}

img,
embed,
object,
audio,
video {
  height: auto;
  max-width: 100%;
}

img,
iframe {
  border: 0
}

img {
  vertical-align: bottom;
}

svg {
  fill: currentColor;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
  text-align: left;
  font-weight: normal;
}

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}

/*++++++++++++++++++*/
body {
  position: relative;
  font: 400 20px/1.6 "Noto Sans JP", sans-serif;
  background: #FFF;
  color: #333;
}

.header {
  width: 100%;

  .inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 90px;
    width: 100%;
    max-width: 1920px;
    margin: auto;
    padding: 0 70px 0 30px;
    background: url(img/header_bg.jpg) no-repeat left top;

    .logo img {
      height: 59px;
    }
  }

  .g-nav {
    display: flex;
    gap: 32px;

    img {
      height: 25px;
    }
  }
}

.burger {
  display: none;
  position: relative;
  height: 30px;
  width: 40px;
  cursor: pointer;

  span,
  &::before,
  &::after {
    position: absolute;
    content: "";
    transition: all .5s;
    width: 100%;
    height: 3px;
    border-radius: 10px;
    background: #333;
  }

  &::before {
    top: 0;
  }

  span {
    top: 50%;
  }

  &::after {
    bottom: 0;
  }

}

.burger.active {
  &::before {
    -webkit-transform: translateY(14px) rotate(45deg);
    transform: translateY(14px) rotate(45deg);
  }

  span {
    opacity: 0;
  }

  &::after {
    -webkit-transform: translateY(-14px) rotate(-45deg);
    transform: translateY(-14px) rotate(-45deg);
  }

}

@media (max-width: 800px) {
  .header {
    .inner {
      padding: 0 20px 0 20px;
    }

    .burger {
      display: block;
    }

    .g-nav {
      display: none;
      position: absolute;
      top: 90px;
      left: 0;
      right: 0;
      flex-flow: column;
      gap: 0;
      background: #fff;
      text-align: center;

      li {
        border-top: 1px solid #959595;

        a {
          display: block;
          padding: 20px;
        }
      }
    }

  }


}


@media (max-width: 640px) {}


.mv {
  width: 100%;
  max-width: 1920px;
  margin: auto;

  .mv_sp {
    display: none;
  }
}

@media (max-width: 800px) {
  .mv {
    .mv_pc {
      display: none;
    }

    .mv_sp {
      display: block;
    }
  }
}

.bg_blue {
  overflow: hidden;
  padding-bottom: 120px;
  margin: auto;
  position: relative;
  background: url(img/bg.jpg) top center / cover no-repeat;
  max-width: 1920px;

  .bg {
    position: absolute;
    z-index: 0;
  }

  .bg1 {
    top: -30px;
    left: -220px;
    width: 43%;
  }

  .bg2 {
    top: 950px;
    right: -240px;
    width: 40%;
  }

  .bg3 {
    top: 2200px;
    left: -670px;
    width: 60%;
  }

  .bg4 {
    top: 3520px;
    right: -720px;
    width: 60%;
  }
}

.h2_full {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  padding: 120px 0 80px;
  text-align: center;
  overflow: hidden;

  .en {
    display: block;
    height: 154px;
    max-width: none;
    margin: auto;
  }

  .jp {
    display: block;
    width: 100%;
    margin-top: -65px;
    font-size: 36px;
    letter-spacing: .1em;
  }
}

.recovery {
  .jp {
    margin-top: -40px;
  }

  .sub {
    margin-top: 2px;
    width: 577px;
  }
}

@media (max-width: 1000px) {
  .bg_blue {
    padding-bottom: 12vw;
  }

  .h2_full {
    padding: 10vw 0 8vw;
  }
}

@media (max-width: 800px) {
  .h2_full {
    .en {
      height: 130px;
    }

    .jp {
      margin-top: -60px;
      font-size: 30px;
    }
  }
}

@media (max-width: 400px) {
  .h2_full {
    .en {
      height: 100px;
    }

    .jp {
      margin-top: -50px;
      font-size: 23px;
    }
  }
}

.inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1300px;
  padding: 0 50px;
  margin: auto;
}

@media (max-width: 1000px) {
  .inner {
    padding: 0 5vw;
  }
}

.topics_img {
  display: flex;
  justify-content: center;
  gap: 2.8%;

  img {
    width: 377px;
  }
}

.movie_wrap {
  position: relative;
  border: 1px solid #333;
  max-width: 354px;
  padding: 33px 28px 28px 33px;
  margin: 98px auto 0;
  text-align: center;

  &::before {
    position: absolute;
    content: "";
    border: 1px solid #333;
    top: 5px;
    bottom: -6px;
    right: -6px;
    left: 5px;

  }

  p {
    margin-top: 24px;
    font-size: 22px;
  }

  video {
    position: relative;
    width: 276px;
    border: 10px solid #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
  }
}

@media (max-width: 700px) {
  .movie_wrap {
    /* padding: 30px; */
    margin: 10vw auto 0;
    max-width: 400px;

  }
}

.concept {
  text-align: center;
  font-size: 24px;

  .p1 {
    margin-bottom: 100px;
  }
}

@media (max-width: 1000px) {
  .concept {
    .p1 {
      margin-bottom: 10vw;
    }
  }
}

@media (max-width: 700px) {
  .concept {
    font-size: 20px;
  }
}

.recovery_wrap {
  position: relative;
  padding-top: 24px;
  padding-left: 257px;

  .num {
    position: absolute;
    top: 0;
    left: 0;
  }

  .img {
    position: absolute;
    top: 75px;
    left: 81px;
    width: 350px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
  }

  &::before {
    display: block;
    content: "";
    position: absolute;
    top: 285px;
    left: 125px;
    height: 335px;
    width: 327px;
    background: #D4D4D4;
    opacity: 0.4;
  }
}

.recovery_wrap+.recovery_wrap {
  margin-top: 100px;
}

.recovery_box {
  min-height: 560px;
  width: 100%;
  max-width: 940px;
  padding: 40px 40px 80px 235px;
  background: rgba(255, 255, 255, .6);
  box-shadow: 0 3px 6px rgba(0, 0, 0, .16);

  .tag {
    display: inline-block;
    border: 1px solid #07516A;
    border-radius: 100px;
    padding: 1px 30px;
    font-size: 24px;
    color: #07516A;
  }

  .note {
    margin-top: 5px;
    font-size: 14px;
    color: #07516A;
  }

  .c {
    margin-top: 15px;
    font-size: 24px;
    font-weight: 500;
  }

  h2 {
    display: inline-block;
    padding: 0 0 10px 50px;
    margin-left: -50px;
    font-size: 32px;
    font-weight: 500;
    border-bottom: 3px solid #333;
  }

  .txt {
    margin-top: 30px;
    font-size: 18px;
    line-height: 1.9;

    p+p {
      margin-top: 1em;
    }
  }

  .txt_box {
    padding: 18px 10px;
    margin-top: 25px;
    border: 1px solid #333;
    font-weight: 500;
    text-align: center;
  }

  .recovery_list {
    display: flex;
    gap: 16px;
    margin-top: 40px;

    li {
      flex-grow: 1;
      background: #333;
      color: #fff;
      text-align: center;
      line-height: 50px;
    }
  }

  .btn {
    position: absolute;
    right: 30px;
    bottom: -30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 350px;
    height: 60px;
    border-radius: 100px;
    padding: 10px 34px 10px 87px;
    background: #07516A;
    font-size: 24px;
    color: #fff;
    letter-spacing: .1em;
    text-decoration: none;

    &::after {
      content: "";
      width: 12px;
      height: 10px;
      background: url(img/btn.png) no-repeat center center;

    }
  }
}

@media (max-width: 1100px) {
  .recovery_wrap {
    padding-top: 450px;
    padding-left: 40px;

    &::after {
      display: block;
      content: "";
      clear: both;
    }
  }

  .recovery_box {
    float: right;
    padding: 200px 40px 80px 70px;
    min-height: auto;
    max-width: 700px;
  }
}

@media (max-width: 800px) {
  .recovery_wrap {
    padding-left: 0;
  }

  .recovery_box {
    padding: 200px 30px 80px 60px;

    .tag {
      padding: 1px 20px;
      font-size: 20px;
    }

    .c {
      font-size: 20px;
    }

    h2 {
      padding-left: 40px;
      margin-left: -40px;
      font-size: 24px;
    }

    .txt {
      margin-top: 20px;
      font-size: 17px;
    }

    .txt_box {
      font-size: 18px;
    }

    .recovery_list {
      gap: 1.2vw;
      margin-top: 8vw;
      font-size: 3vw;

      li {
        line-height: 2.2;
      }
    }

    .btn {
      width: 290px;
      padding: 8px 30px 8px 80px;
      font-size: 20px;
    }
  }
}

@media (max-width: 500px) {
  .recovery_wrap {
    padding-top: 100vw;

    .num {
      width: 120px;
    }

    .img {
      left: 10vw;
      top: 13vw;
      width: 72vw;
    }

    &::before {
      top: 65vw;
      left: auto;
      right: 5vw;
      height: 60vw;
      width: 60vw;
    }
  }

  .recovery_box {
    padding: 35vw 5vw 13vw 15vw;

    .txt_box {
      font-size: 16px;
    }

    .btn {
      width: 220px;
      padding: 5px 20px 5px 40px;
      margin: auto;
      font-size: 18px;
    }
  }

}


.bg_gray {
  background: #F1F1F1;
  padding-bottom: 140px;

  .faq_wrap {
    background: #fff;
    padding: 30px 50px;

    .tag {
      width: 270px;
      margin: 80px auto 50px;
      line-height: 53px;
      background: #07516A;
      font-size: 26px;
      color: #fff;
      text-align: center;
    }

    .faq {
      font-size: 20px;
      line-height: 1.9;

      .q,
      .a {
        padding: 12px 0 15px 50px;
      }

      .q {
        background: url(img/Q.png) no-repeat left top;
        margin-top: 35px;
      }

      .a {
        background: url(img/A.png) no-repeat left top;
        margin-bottom: 35px;
      }
    }

    .faq+.faq {
      border-top: 1px solid #959595;
    }
  }
}

@media (max-width: 800px) {
  .bg_gray {
    padding-bottom: 15vw;

    .faq_wrap {
      padding: 10vw 5vw 5vw;

      .tag {
        width: 12em;
        margin: 8vw auto 5vw;
        line-height: 2.2;
        font-size: 22px;
      }

      .faq {
        font-size: 18px;

        .q,
        .a {
          padding: 10px 0 15px 45px;
          background-size: 30px;
        }

        .q {
          margin-top: 30px;
        }

        .a {
          margin-bottom: 30px;
        }
      }

    }
  }
}


.footer {
  background: #333;
  color: #fff;

  .inner {
    display: flex;
    flex-flow: column;
    align-items: center;
    width: 100%;
    max-width: 1920px;
    margin: auto;
    padding: 70px 50px 30px;
  }

  .logo {
    img {
      height: 71px;
    }
  }

  .sns_list {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 40px;

    img {
      height: 40px;
    }
  }

  .f-nav {
    width: 100%;
    max-width: 630px;
    display: flex;
    justify-content: center;
    margin-top: 30px;


    img {
      height: 28px;
      width: auto;
    }
  }

  small {
    margin-top: 50px;
    font-size: 16px;
  }
}

@media (max-width: 600px) {
  .footer {
    .inner {
      padding: 10vw 10vw 10vw;
    }

    .sns_list {
      gap: 9vw;
    }

    .f-nav {
      flex-flow: column;
      text-align: center;
      gap: 1vw;
    }

    small {
      font-size: 14px;
    }
  }
}

.pp {
  height: 600px;
  overflow-y: scroll;
  scrollbar-color: #333 #959595;
  background: #fff;
  padding: 50px;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .1em;

  hr {
    margin: 60px 0;
    background: #959595;
  }

  h2 {
    margin-bottom: 40px;
    font-size: 20px;
  }

  a {
    color: #333333;
    text-decoration: underline;
  }

  dl {
    display: flex;
    flex-wrap: wrap;
    padding-left: 70px;
    margin-top: 2em;
  }

  dt {
    width: 65px;
  }

  dd {
    width: calc(100% - 65px);
  }
}

@media (max-width: 600px) {
  .pp {
    height: 100vw;
    padding: 7vw;

    hr {
      margin: 10vw 0;
    }

    h2 {
      margin-bottom: 5vw;
    }

    dl {
      padding-left: 5vw;
    }

    dt {
      width: 65px;
    }

    dd {
      width: calc(100% - 65px);
    }
  }
}