@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Roboto:ital,wght@0,500;0,700;1,500;1,700&display=swap");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

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

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

.clearfix:after {
  clear: both;
  content: "";
  display: block; }

.red {
  color: #e7372f; }

@media (min-width: 769px) {
  .fl {
    float: left; } }

@media (min-width: 769px) {
  .fr {
    float: right; } }

.clearfix:after {
  clear: both;
  content: "";
  display: block; }

.red {
  color: #e7372f; }

@media (min-width: 769px) {
  .fl {
    float: left; } }

@media (min-width: 769px) {
  .fr {
    float: right; } }

html {
  width: 100%; }

body {
  width: 100%;
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: normal;
  font-size: 16px;
  line-height: 1.6;
  box-sizing: border-box;
  color: #282828; }
  @media (max-width: 768px) {
    body {
      -webkit-text-size-adjust: 100%;
      font-size: 3.8vw;
      line-height: 1.8; } }

@media (max-width: 768px) {
  .pc {
    display: none; } }
@media (min-width: 769px) {
  .sp {
    display: none; } }
a {
  transition: all 0.3s ease;
  display: block; }
  a:hover {
    opacity: 0.8; }
    @media (max-width: 768px) {
      a:hover {
        opacity: 1; } }

.en {
  font-family: 'Roboto', serif;
  letter-spacing: 1px; }


body {
  box-sizing: border-box;
  position: relative; }

a {
  text-decoration: none;
  color: #009260; }

img {
  width: 100%;
  vertical-align: bottom; }

header {
  height: 70px;
  width: 100%;
  background-color: #009260;
  text-align: center; }
  @media (max-width: 768px) {
    header {
      height: 11vw; } }
  header .logo {
    padding: 15px 0 0;
    width: 100px;
    margin: 0 auto; }
    @media (max-width: 768px) {
      header .logo {
        padding-top: 2vw;
        width: 18vw;
        margin: 0 auto; } }

#kvArea {
  background-image: -moz-linear-gradient(90deg, white 0%, #e1f6ef 59%);
  background-image: -webkit-linear-gradient(90deg, white 0%, #e1f6ef 59%);
  background-image: -ms-linear-gradient(90deg, white 0%, #e1f6ef 59%);
  height: 730px;
  position: relative; }
  @media (max-width: 768px) {
    #kvArea {
      height: 152vw; } }
  #kvArea .content {
    width: 1050px;
    height: 732px;
    margin: 0 auto;
    position: relative; }
    @media (max-width: 768px) {
      #kvArea .content {
        width: 100%;
        height: 152vw; } }
    #kvArea .content:after {
      content: "";
      background: url("../images/bg_kv.png") no-repeat 0 0;
      background-size: 820px;
      position: absolute;
      display: block;
      width: 820px;
      height: 538px;
      top: 132px;
      left: -240px;
      z-index: 1; }
      @media (max-width: 768px) {
        #kvArea .content:after {
          display: none; } }
  #kvArea .imgArea {
    position: absolute;
    left: -45px;
    bottom: 0;
    width: 521px;
    z-index: 3; }
    @media (max-width: 768px) {
      #kvArea .imgArea {
        left: 0;
        right: 0;
        margin: auto;
        width: 100%; } }
  #kvArea .txtArea {
    position: absolute;
    right: 0;
    width: 610px;
    z-index: 2;
    text-align: center;
    top: 84px; }
    @media (max-width: 768px) {
      #kvArea .txtArea {
        position: relative;
        width: 100%;
        top: 7vw; } }
    #kvArea .txtArea p {
      font-size: 38px;
      font-weight: 600;
      margin-bottom: 25px; }
      @media (max-width: 768px) {
        #kvArea .txtArea p {
          font-size: 5.2vw;
          margin-bottom: 0.5em; } }
    #kvArea .txtArea h2 {
      font-size: 34px;
      font-weight: 600;
      margin-bottom: 10px; }
      @media (max-width: 768px) {
        #kvArea .txtArea h2 {
          font-size: 5vw;
          margin-bottom: 0.5em; } }
    #kvArea .txtArea h1 {
      font-size: 55px;
      letter-spacing: -4px;
      line-height: 1em;
      color: #009260; }
      @media (max-width: 768px) {
        #kvArea .txtArea h1 {
          font-size: 7.5vw;
          letter-spacing: 0px; } }
      #kvArea .txtArea h1 span {
        font-weight: bold;
        letter-spacing: 0; }
      #kvArea .txtArea h1 .en {
        font-size: 80px;
        letter-spacing: 0; }
        @media (max-width: 768px) {
          #kvArea .txtArea h1 .en {
            font-size: 10vw; } }
    #kvArea .txtArea .app {
      width: 150px;
      margin: 60px auto 80px; }
      @media (max-width: 768px) {
        #kvArea .txtArea .app {
          width: 23vw;
          margin: 1.8em auto; } }
      #kvArea .txtArea .app img {
        border-radius: 45px; }
        @media (max-width: 768px) {
          #kvArea .txtArea .app img {
            border-radius: 6.6vw; } }
    #kvArea .txtArea .btnArea ul {
      display: flex;
      justify-content: space-between;
      align-items: center;
      width: 460px;
      margin: 0 auto; }
      #kvArea .txtArea .btnArea ul li a {
        display: block;
        height: 70px; }
        #kvArea .txtArea .btnArea ul li a img {
          width: auto;
          height: 100%; }

.btnArea.sp ul {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin: 2em auto 0;
  padding: 0 6%; }
  .btnArea.sp ul li a {
    display: block;
    height: 14vw; }
    .btnArea.sp ul li a img {
      width: auto;
      height: 100%; }

main .content {
  width: 1000px;
  margin: 0 auto; }
  @media (max-width: 768px) {
    main .content {
      width: 100%; } }

#section01 {
  padding: 80px 0 0;
  text-align: center; }
  @media (max-width: 768px) {
    #section01 {
      padding: 3em 6% 0; } }
  #section01 .ttl {
    width: 910px;
    height: 210px;
    margin: 0 auto;
    background: url("../images/bg_rbn_pc.svg") no-repeat top center;
    background-size: 100%;
    color: #fefaac;
    font-size: 38px;
    font-weight: bold;
    line-height: 1.4em;
    padding-top: 40px; }
    @media (max-width: 768px) {
      #section01 .ttl {
        background: url("../images/bg_rbn_sp.svg") no-repeat top center;
        width: 100%;
        height: 36vw;
        font-size: 5vw;
        padding-top: 4.8vw; } }
    #section01 .ttl .txt_l {
      font-size: 46px; }
      @media (max-width: 768px) {
        #section01 .ttl .txt_l {
          font-size: 6.1vw; } }
    #section01 .ttl .en {
      font-size: 85px; }
      @media (max-width: 768px) {
        #section01 .ttl .en {
          font-size: 11vw; } }
    #section01 .ttl .txt_s {
      color: #fff;
      font-size: 34px; }
      @media (max-width: 768px) {
        #section01 .ttl .txt_s {
          font-size: 4.5vw; } }
  #section01 .camBox {
    position: relative;
    background-color: #f2f6f9;
    border-radius: 20px;
    margin-top: 80px;
    padding: 70px 0 50px; }
    @media (max-width: 768px) {
      #section01 .camBox {
        margin-top: 3.5em;
        padding: 8% 5% 10%;
        border-radius: 10px; } }
    #section01 .camBox h3 {
      background: url("../images/bg_ttl.png") no-repeat top center;
      background-size: 100%;
      width: 400px;
      height: 70px;
      margin: 0 auto;
      color: #fff;
      font-size: 22px;
      font-weight: bold;
      line-height: 70px;
      position: absolute;
      top: -35px;
      left: 0;
      right: 0; }
      @media (max-width: 768px) {
        #section01 .camBox h3 {
          width: 85%;
          font-size: 4.5vw;
          height: 13vw;
          line-height: 13vw;
          top: -6.5vw; } }
    #section01 .camBox ul li {
      margin-bottom: 40px; }
      @media (max-width: 768px) {
        #section01 .camBox ul li {
          margin: 2em 0 1em; } }
      #section01 .camBox ul li:last-child {
        margin-bottom: 0; }
      #section01 .camBox ul li h4 {
        background-color: #fff;
        border-radius: 50px;
        width: 300px;
        height: 50px;
        line-height: 50px;
        font-size: 20px;
        font-weight: 600;
        margin: 0 auto 20px;
        color: #009260; }
        @media (max-width: 768px) {
          #section01 .camBox ul li h4 {
            font-size: 4vw;
            width: 100%;
            height: 10vw;
            line-height: 10vw; } }
      #section01 .camBox ul li p {
        font-size: 18px;
        font-weight: 500; }
        @media (max-width: 768px) {
          #section01 .camBox ul li p {
            font-size: 3.8vw;
            text-align: left; } }
  #section01 .caution {
    margin-top: 40px;
    font-size: 14px;
    text-align: left;
    list-style: disc;
    margin-left: 20px; }
    @media (max-width: 768px) {
      #section01 .caution {
        margin-top: 1.5em;
        font-size: 3.4vw; } }

#section02 {
  padding: 80px 0 0; }
  @media (max-width: 768px) {
    #section02 {
      padding: 4em 0 0 0; } }
  #section02 h2 {
    border-style: solid;
    border-width: 10px;
    border-color: #e7f5f5;
    background-color: #009260;
    width: 910px;
    height: 140px;
    line-height: 120px;
    border-radius: 140px;
    margin: 0 auto;
    color: #fff;
    font-size: 24px;
    font-weight: bold;
    text-align: center; }
    @media (max-width: 768px) {
      #section02 h2 {
        width: 88%;
        font-size: 4.26vw;
        line-height: 2em;
        height: auto;
        padding: 5% 0;
        border-width: 6px; } }
    #section02 h2 .en {
      font-size: 46px;
      padding-right: 10px; }
      @media (max-width: 768px) {
        #section02 h2 .en {
          display: block;
          font-size: 10vw; } }
  #section02 .boxFunction {
    padding-top: 40px; }
    @media (max-width: 768px) {
      #section02 .boxFunction {
        padding-top: 2em; } }
    #section02 .boxFunction .content {
      display: flex;
      justify-content: space-between;
      width: 1000px;
      margin: 0 auto; }
      @media (max-width: 768px) {
        #section02 .boxFunction .content {
          display: block;
          width: 100%; } }
    #section02 .boxFunction .imgArea {
      width: 400px; }
      @media (max-width: 768px) {
        #section02 .boxFunction .imgArea {
          width: 82%;
          margin: 1em 0 0 auto; } }
    #section02 .boxFunction .txtArea {
      width: 500px; }
      @media (max-width: 768px) {
        #section02 .boxFunction .txtArea {
          width: 100%;
          padding: 0 6%; } }
      #section02 .boxFunction .txtArea .ttl {
        display: flex;
        align-items: center;
        margin-bottom: 45px; }
        @media (max-width: 768px) {
          #section02 .boxFunction .txtArea .ttl {
            margin-bottom: 1em; } }
        #section02 .boxFunction .txtArea .ttl i {
          display: block;
          width: 140px;
          height: 140px;
          border-radius: 50%;
          border: 8px solid #d9ece9;
          color: #009260;
          text-align: center;
          padding-top: 25px;
          letter-spacing: 0;
          background-color: #fff; }
          @media (max-width: 768px) {
            #section02 .boxFunction .txtArea .ttl i {
              width: 23vw;
              height: 23vw;
              border: 5px solid #d9ece9;
              padding-top: 5vw; } }
          #section02 .boxFunction .txtArea .ttl i span {
            display: block;
            line-height: 1em; }
          #section02 .boxFunction .txtArea .ttl i span:first-child {
            font-weight: bold;
            padding-bottom: 8px; }
            @media (max-width: 768px) {
              #section02 .boxFunction .txtArea .ttl i span:first-child {
                font-size: 3.2vw;
                padding-bottom: 1vw; } }
          #section02 .boxFunction .txtArea .ttl i span:last-child {
            font-size: 64px; }
            @media (max-width: 768px) {
              #section02 .boxFunction .txtArea .ttl i span:last-child {
                font-size: 10vw; } }
        #section02 .boxFunction .txtArea .ttl h3 {
          font-size: 24px;
          font-weight: 600;
          color: #009260;
          margin-left: 20px; }
          @media (max-width: 768px) {
            #section02 .boxFunction .txtArea .ttl h3 {
              font-size: 5vw;
              margin-left: 0.5em; } }
      #section02 .boxFunction .txtArea p {
        font-size: 18px;
        line-height: 1.8em; }
        @media (max-width: 768px) {
          #section02 .boxFunction .txtArea p {
            font-size: 3.7vw; } }
    #section02 .boxFunction.box02 {
      background-color: #f2f6f9; }
      #section02 .boxFunction.box02 .content {
        flex-direction: row-reverse; }
      #section02 .boxFunction.box02 .ttl {
        flex-direction: row-reverse; }
        #section02 .boxFunction.box02 .ttl h3 {
          padding: 0 20px 0 0; }
          @media (max-width: 768px) {
            #section02 .boxFunction.box02 .ttl h3 {
              padding-right: 0.5em; } }
      #section02 .boxFunction.box02 .txt_s {
        font-size: 14px; }
        @media (max-width: 768px) {
          #section02 .boxFunction.box02 .txt_s {
            font-size: 3.4vw; } }
      #section02 .boxFunction.box02 .imgArea {
        width: 460px; }
        @media (max-width: 768px) {
          #section02 .boxFunction.box02 .imgArea {
            width: 94%; } }
  #section02 .boxOther {
    background-color: #f2f6f9;
    padding: 80px 0; }
    @media (max-width: 768px) {
      #section02 .boxOther {
        padding: 3em 6%; } }
    #section02 .boxOther h3 {
      font-size: 24px;
      font-weight: 600;
      color: #009260;
      text-align: center; }
      @media (max-width: 768px) {
        #section02 .boxOther h3 {
          font-size: 4.5vw; } }
    #section02 .boxOther .iconList {
      display: flex;
      justify-content: center;
      margin: 40px 0; }
      @media (max-width: 768px) {
        #section02 .boxOther .iconList {
          margin: 2em 0; } }
      #section02 .boxOther .iconList li {
        width: 108px;
        margin: 0 15px; }
        @media (max-width: 768px) {
          #section02 .boxOther .iconList li {
            width: 25%;
            margin: 0 0 0 4%; }
            #section02 .boxOther .iconList li:nth-child(1) {
              margin: 0; } }
    #section02 .boxOther dl {
      font-size: 18px; }
      @media (max-width: 768px) {
        #section02 .boxOther dl {
          font-size: 3.7vw; } }
      #section02 .boxOther dl dt {
        font-weight: 500;
        margin-top: 40px;
        margin-bottom: 8px; }
        @media (max-width: 768px) {
          #section02 .boxOther dl dt {
            margin-top: 1.5em;
            margin-bottom: 0; } }
      #section02 .boxOther dl dd .txt_s {
        font-size: 14px;
        display: block;
        padding-top: 8px; }
        @media (max-width: 768px) {
          #section02 .boxOther dl dd .txt_s {
            font-size: 3.4vw;
            padding-top: 0.2em; } }

#section03 {
  padding: 80px 0; }
  @media (max-width: 768px) {
    #section03 {
      padding: 4em 6%; } }
  #section03 h3 {
    border-style: solid;
    border-width: 10px;
    border-color: #e7f5f5;
    background-color: #009260;
    width: 920px;
    height: 100px;
    border-radius: 80px;
    margin: 0 auto;
    color: #fff;
    font-size: 22px;
    font-weight: 600;
    line-height: 80px;
    text-align: center; }
    @media (max-width: 768px) {
      #section03 h3 {
        width: 100%;
        height: auto;
        padding: 6% 0;
        line-height: 1em;
        font-size: 4.5vw;
        border-width: 6px;
        margin-bottom: 3em; } }
  #section03 .boxFlow {
    position: relative;
    background-color: #f2f6f9;
    padding: 40px;
    border-radius: 20px;
    position: relative;
    width: 920px;
    margin: 60px auto 0; }
    @media (max-width: 768px) {
      #section03 .boxFlow {
        width: 100%;
        margin-top: 0;
        margin-bottom: 6em;
        border-radius: 10px;
        padding: 3em 6% 2em; } }
    #section03 .boxFlow:after {
      content: "";
      width: 80px;
      height: 52px;
      background: url("../images/icon_arrow.svg") no-repeat top center;
      background-size: 100%;
      display: block;
      position: absolute;
      bottom: -42px;
      left: 0;
      right: 0;
      margin: auto; }
    @media (max-width: 768px) {
      #section03 .boxFlow.flow05 {
        margin-bottom: 0; } }
    #section03 .boxFlow.flow05:after {
      display: none; }
    #section03 .boxFlow i {
      display: block;
      width: 100px;
      height: 100px;
      border-radius: 50%;
      background-color: #fff;
      position: absolute;
      left: -50px;
      top: 0;
      bottom: 0;
      margin: auto;
      text-align: center;
      font-weight: 600;
      font-family: 'Roboto', serif;
      letter-spacing: 1px;
      padding-top: 20px; }
      @media (max-width: 768px) {
        #section03 .boxFlow i {
          width: 16vw;
          height: 16vw;
          left: 0;
          right: 0;
          top: -8vw;
          bottom: auto;
          padding-top: 3vw; } }
      #section03 .boxFlow i span {
        display: block;
        line-height: 1em;
        letter-spacing: 0; }
        @media (max-width: 768px) {
          #section03 .boxFlow i span {
            font-size: 3vw; } }
      #section03 .boxFlow i span:last-child {
        font-size: 40px;
        margin-top: 8px; }
        @media (max-width: 768px) {
          #section03 .boxFlow i span:last-child {
            font-size: 6.6vw; } }
    #section03 .boxFlow .item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 60px; }
      @media (max-width: 768px) {
        #section03 .boxFlow .item {
          display: block;
          padding: 0; } }
      #section03 .boxFlow .item .imgArea {
        width: 120px; }
        @media (max-width: 768px) {
          #section03 .boxFlow .item .imgArea {
            width: 24vw;
            margin: 0 auto 1em; } }
      #section03 .boxFlow .item .txtArea {
        width: 550px; }
        @media (max-width: 768px) {
          #section03 .boxFlow .item .txtArea {
            width: 100%; } }
        #section03 .boxFlow .item .txtArea h4 {
          font-size: 20px;
          font-weight: 600;
          margin-bottom: 10px; }
          @media (max-width: 768px) {
            #section03 .boxFlow .item .txtArea h4 {
              text-align: center;
              font-size: 4.3vw;
              margin-bottom: 1em; } }
        #section03 .boxFlow .item .txtArea p {
          line-height: 1.8em; }
          #section03 .boxFlow .item .txtArea p .txt_s {
            font-size: 14px; }
            @media (max-width: 768px) {
              #section03 .boxFlow .item .txtArea p .txt_s {
                font-size: 3.4vw; } }
        #section03 .boxFlow .item .txtArea ul {
          display: flex;
          margin-top: 30px; }
          @media (max-width: 768px) {
            #section03 .boxFlow .item .txtArea ul {
              margin-top: 1em;
              justify-content: space-between; } }
          #section03 .boxFlow .item .txtArea ul li {
            width: 160px;
            margin-right: 0px; }
            #section03 .boxFlow .item .txtArea ul li a {
              width: auto;
              height: 52px; }
              @media (max-width: 768px) {
                #section03 .boxFlow .item .txtArea ul li a {
                  height: 12vw; } }
              #section03 .boxFlow .item .txtArea ul li a img {
                width: auto;
                height: 100%; }

footer {
  background-image: -moz-linear-gradient(90deg, #e2f6f0 0%, white 100%);
  background-image: -webkit-linear-gradient(90deg, #e2f6f0 0%, white 100%);
  background-image: -ms-linear-gradient(90deg, #e2f6f0 0%, white 100%);
  height: 430px;
  position: relative;
  margin-bottom: 50px;
  margin-top: 20px; }
  @media (max-width: 768px) {
    footer {
      background-image: -moz-linear-gradient(90deg, #e2f6f0 0%, white 64%);
      background-image: -webkit-linear-gradient(90deg, #e2f6f0 0%, white 64%);
      background-image: -ms-linear-gradient(90deg, #e2f6f0 0%, white 64%);
      height: 90vw;
      margin-bottom: 1em;
      margin-top: 0; } }
  footer .content {
    width: 1000px;
    height: 430px;
    margin: 0 auto;
    position: relative; }
    @media (max-width: 768px) {
      footer .content {
        width: 100%;
        height: 100%; } }
    footer .content:after {
      content: "";
      background: url("../images/bg_footer.png") no-repeat 0 0;
      background-size: 602px;
      position: absolute;
      display: block;
      width: 602px;
      height: 430px;
      top: 0;
      left: -65px;
      z-index: 1; }
      @media (max-width: 768px) {
        footer .content:after {
          display: none; } }
  footer .imgArea {
    position: absolute;
    left: 110px;
    bottom: 0;
    width: 395px;
    z-index: 3; }
    @media (max-width: 768px) {
      footer .imgArea {
        width: 75%;
        left: 0%; } }
  footer .app {
    position: absolute;
    right: 260px;
    width: 180px;
    top: 50px; }
    @media (max-width: 768px) {
      footer .app {
        width: 28vw;
        left: 0;
        right: 0;
        top: 0;
        margin: auto; } }
    footer .app img {
      border-radius: 45px;
      box-shadow: 5px 8.66px 10px 0px rgba(25, 135, 97, 0.1); }
      @media (max-width: 768px) {
        footer .app img {
          border-radius: 6.6vw; } }
  footer .txtArea {
    position: absolute;
    right: 115px;
    width: 455px;
    z-index: 2;
    text-align: center;
    bottom: 60px; }
    @media (max-width: 768px) {
      footer .txtArea {
        width: 45%;
        right: 6%;
        bottom: 6vw;
        z-index: 4; } }
    footer .txtArea .btnArea ul {
      display: flex;
      justify-content: space-between;
      align-items: center;
      width: 460px;
      margin: 0 auto; }
      @media (max-width: 768px) {
        footer .txtArea .btnArea ul {
          width: 94%;
          display: block;
          text-align: left; } }
      footer .txtArea .btnArea ul li {
        height: 70px; }
        footer .txtArea .btnArea ul li a {
          display: block;
          height: 70px; }
          @media (max-width: 768px) {
            footer .txtArea .btnArea ul li a {
              width: auto;
              margin-bottom: 1em;
              height: 15vw; } }
          footer .txtArea .btnArea ul li a img {
            width: auto;
            height: 100%; }
        @media (max-width: 768px) {
          footer .txtArea .btnArea ul li:last-child a {
            height: 12vw; } }

.copyright {
  font-size: 14px;
  color: #aaaaaa;
  text-align: center;
  padding-bottom: 50px;
  font-family: 'Roboto', serif;
  letter-spacing: 1px;
  letter-spacing: 0; }
  @media (max-width: 768px) {
    .copyright {
      font-size: 3vw;
      padding-bottom: 1em; } }
