/* Scss Document */
:root {
  --pc: 1000px;
  --sp: 999px;
  --fs48: 4.8rem;
  --fs40: 4rem;
  --fs36: 3.6rem;
  --fs28: 2.8rem;
  --fs22: 2.2rem;
  --fs20: 2.0rem;
  --fs18: 1.8rem;
  --fs16: 1.6rem;
  --fs14:1.4rem;
  --fs12:1.2rem; }

@media (max-width: 999px) {
  :root {
    --fs48: 2.6rem;
    --fs40: 2.2rem;
    --fs36: 2.4rem;
    --fs28: 2.2rem;
    --fs22: 2.0rem;
    --fs20: 1.8rem;
    --fs18: 1.4rem;
    --fs16: 1.4rem;
    --fs14: 1.2rem;
    --fs12: 1.0rem; } }
/* 
---------------------------------------
reason01
---------------------------------------
*/
#reason01 {
  padding-bottom: 14rem;
  overflow: hidden; }
  @media (max-width: 999px) {
    #reason01 {
      padding-bottom: 6rem; } }
  #reason01 .boxs {
    position: relative;
    min-height: 66rem; }
    @media (max-width: 999px) {
      #reason01 .boxs {
        min-height: initial; } }
  #reason01 .box {
    position: relative;
    z-index: 2; }
    @media (max-width: 999px) {
      #reason01 .box {
        width: 100%; } }
  #reason01 .ttl {
    font-size: 4rem;
    line-height: 1.5;
    color: #21A934;
    margin-bottom: 4rem; }
    @media (max-width: 999px) {
      #reason01 .ttl {
        font-size: 2.2rem;
        margin-bottom: 2rem; } }
  #reason01 .illust {
    display: block;
    width: 34rem;
    height: auto;
    margin-left: 30%; }
    @media (max-width: 999px) {
      #reason01 .illust {
        width: 70%;
        max-width: 28rem; } }
  #reason01 .pic {
    position: absolute;
    right: 0;
    top: 4rem;
    z-index: 1;
    width: 64%; }
    @media (max-width: 999px) {
      #reason01 .pic {
        right: -2rem;
        bottom: 8rem;
        width: 100%;
        margin-top: 3rem;
        opacity: 0.7;
        top: inherit; } }
    #reason01 .pic img {
      display: block;
      width: 100%;
      height: auto; }

/* 
---------------------------------------
reason02
---------------------------------------
*/
#reason02 {
  padding: 0 0 4rem; }
  @media (max-width: 999px) {
    #reason02 {
      padding: 0 0 2rem; } }
  #reason02 .ttlBox {
    position: relative;
    text-align: center;
    margin-bottom: 10rem; }
    @media (max-width: 999px) {
      #reason02 .ttlBox {
        margin-bottom: 3rem; } }
    #reason02 .ttlBox::before {
      content: '';
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 100%;
      height: 0.8rem;
      background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.8rem, transparent 0.8rem, transparent 1.8rem);
      z-index: 0; }
      @media (max-width: 999px) {
        #reason02 .ttlBox::before {
          display: none;
          height: 0.5rem;
          background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.5rem, transparent 0.5rem, transparent 1.3rem); } }
  #reason02 .ttl {
    display: inline-block;
    position: relative;
    z-index: 1;
    background: #FDFBF2;
    padding: 1rem 5rem;
    font-size: 4rem;
    line-height: 1.5;
    color: #6FCC35; }
    @media (max-width: 999px) {
      #reason02 .ttl {
        padding: 1rem 2rem;
        font-size: 2.2rem; } }
    #reason02 .ttl span {
      color: #FE869B; }
  #reason02 .boxs {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(95 / 1660 * 100%);
    width: clamp(calc(1660 / 1920 * 100vw), calc(78.2609vw + 157.4px), 94vw);
    margin: 0 0 10rem auto; }
    @media (max-width: 999px) {
      #reason02 .boxs {
        flex-direction: column;
        width: 100%;
        margin: 0 auto 4rem;
        gap: 2rem; } }
  #reason02 .boxs.reverse {
    margin: 0;
    margin-bottom: 10rem; }
    @media (max-width: 999px) {
      #reason02 .boxs.reverse {
        flex-direction: column-reverse;
        margin-bottom: 6rem; } }
    @media (max-width: 999px) {
      #reason02 .boxs.reverse .pic {
        margin: 0 auto 0 0; } }
  #reason02 .box {
    flex: 0 0 clamp(calc(665 / 1660 * 100%), calc(20.11vw + 263.9px), 50%);
    position: relative; }
    @media (max-width: 999px) {
      #reason02 .box {
        flex: auto;
        width: 90%; } }
  #reason02 .pic {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    height: auto;
    display: block; }
    @media (max-width: 999px) {
      #reason02 .pic {
        width: 95%;
        flex: auto;
        margin: 0 0 0 auto;
        border-radius: 2rem 0 0 2rem; } }
  #reason02 .box .num {
    color: #FE869B;
    font-size: 8rem;
    line-height: 1;
    margin-bottom: 3rem; }
    @media (max-width: 999px) {
      #reason02 .box .num {
        font-size: 4rem;
        margin-bottom: 2rem; } }
    #reason02 .box .num span {
      display: inline-block;
      font-size: 1.8rem;
      margin-right: 2rem;
      vertical-align: middle; }
      @media (max-width: 999px) {
        #reason02 .box .num span {
          font-size: 1rem;
          margin-right: 1rem; } }
  #reason02 .box .sttl {
    position: relative;
    font-size: 3.4rem;
    margin-bottom: 6rem; }
    @media (max-width: 999px) {
      #reason02 .box .sttl {
        font-size: 2rem;
        margin-bottom: 3rem; } }
    #reason02 .box .sttl::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: -3rem;
      width: 8rem;
      height: 0.4rem;
      background: repeating-linear-gradient(to right, #FE869B 0, #FE869B 0.8rem, transparent 0.8rem, transparent 1.4rem);
      border-radius: 999px; }
      @media (max-width: 999px) {
        #reason02 .box .sttl::after {
          bottom: -1.5rem;
          width: 6rem;
          height: 0.3rem; } }

/* 
---------------------------------------
reason03
---------------------------------------
*/
#reason03 {
  padding: 12rem 0 0;
  background: #fff; }
  @media (max-width: 999px) {
    #reason03 {
      padding: 4rem 0 0; } }
  #reason03 .ttlBox {
    position: relative;
    text-align: center;
    margin-bottom: 8rem; }
    @media (max-width: 999px) {
      #reason03 .ttlBox {
        margin-bottom: 4rem; } }
    #reason03 .ttlBox::before {
      content: '';
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 100%;
      height: 0.8rem;
      background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.8rem, transparent 0.8rem, transparent 1.8rem);
      z-index: 0; }
      @media (max-width: 999px) {
        #reason03 .ttlBox::before {
          display: none;
          height: 0.5rem;
          background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.5rem, transparent 0.5rem, transparent 1.3rem); } }
  #reason03 .ttl {
    display: inline-block;
    position: relative;
    z-index: 1;
    background: #fff;
    padding: 1rem 5rem;
    font-size: 4rem;
    line-height: 1.5;
    color: #6FCC35; }
    @media (max-width: 999px) {
      #reason03 .ttl {
        padding: 1rem 2rem;
        font-size: 2.2rem; } }
    #reason03 .ttl span {
      color: #FE869B; }
  #reason03 .cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.4rem; }
    @media (max-width: 999px) {
      #reason03 .cards {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem; } }
  #reason03 .card {
    position: relative;
    width: calc((100% - 6rem) / 4);
    background: #fff;
    border: 1rem solid #F9F3D9;
    border-radius: 2rem;
    padding: 3rem 1.5vw 3rem;
    min-height: 40rem; }
    @media (max-width: 999px) {
      #reason03 .card {
        width: 100%;
        min-height: initial;
        padding: 2rem;
        border-width: 0.5rem; } }
  #reason03 .num {
    position: absolute;
    left: 2rem;
    top: 2rem;
    width: 6rem;
    height: 6rem;
    background: #FE869B;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 2.8rem;
    line-height: 1; }
    @media (max-width: 999px) {
      #reason03 .num {
        width: 5.6rem;
        height: 5.6rem;
        font-size: 2.4rem;
        left: 1.5rem;
        top: 1.5rem; } }
  #reason03 .ico {
    display: block;
    width: 16rem;
    height: auto;
    margin: 1.2vw auto 1rem; }
    @media (max-width: 999px) {
      #reason03 .ico {
        width: 13rem;
        margin: 1rem auto 1rem; } }
  #reason03 .sttl {
    position: relative;
    font-size: 1.8rem;
    line-height: 1.6;
    text-align: center;
    margin-bottom: 5rem; }
    @media (max-width: 999px) {
      #reason03 .sttl {
        font-size: 1.8rem;
        margin-bottom: 3.5rem; } }
    #reason03 .sttl::after {
      content: '';
      position: absolute;
      left: 50%;
      bottom: -2.2rem;
      width: 8rem;
      height: 0.4rem;
      background: repeating-linear-gradient(to right, #6FCC35 0, #6FCC35 0.8rem, transparent 0.8rem, transparent 1.4rem);
      border-radius: 999px;
      transform: translateX(-50%); }
      @media (max-width: 999px) {
        #reason03 .sttl::after {
          bottom: -1.6rem;
          width: 6rem;
          height: 0.3rem; } }
  #reason03 .txt {
    font-size: 1.6rem;
    line-height: 2; }
    @media (max-width: 999px) {
      #reason03 .txt {
        font-size: 1.4rem; } }

.bnrBox {
  background: #fff;
  padding: 12rem 0 0; }
  @media (max-width: 999px) {
    .bnrBox {
      padding: 4rem 0 0; } }
  .bnrBox .bnr {
    position: relative;
    z-index: 1; }

/* 
---------------------------------------
reason04
---------------------------------------
*/
#reason04 {
  padding: 30rem 0 14rem;
  background: url(../img/reason/04_bg.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  margin-top: -18rem; }
  @media (max-width: 999px) {
    #reason04 {
      padding: 10rem 0 6rem;
      margin-top: -5rem; } }
  #reason04 .bnr {
    display: block;
    margin-bottom: 16rem; }
    @media (max-width: 999px) {
      #reason04 .bnr {
        margin-bottom: 8rem; } }
    #reason04 .bnr img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 2rem; }
      @media (max-width: 999px) {
        #reason04 .bnr img {
          border-radius: 1.5rem; } }
  #reason04 .boxs {
    margin-bottom: 12rem;
    background: #fff;
    padding: 6rem 4vw 0;
    border-radius: 2rem; }
    @media (max-width: 999px) {
      #reason04 .boxs {
        margin-bottom: 6rem;
        padding: 2rem 2rem 0; } }
  #reason04 .ttlBox {
    position: relative;
    text-align: center; }
    @media (max-width: 999px) {
      #reason04 .ttlBox {
        margin-bottom: 1rem; } }
    #reason04 .ttlBox::before {
      content: '';
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 100%;
      height: 0.8rem;
      background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.8rem, transparent 0.8rem, transparent 1.8rem);
      z-index: 0; }
      @media (max-width: 999px) {
        #reason04 .ttlBox::before {
          height: 0.5rem;
          background: repeating-linear-gradient(to right, #C4E9A7 0, #C4E9A7 0.5rem, transparent 0.5rem, transparent 1.3rem); } }
  #reason04 .ttlBox .ttl {
    display: inline-block;
    position: relative;
    z-index: 1;
    background: #fff;
    padding: 1rem 5rem;
    font-size: 4rem;
    line-height: 1.5;
    color: #6FCC35; }
    @media (max-width: 999px) {
      #reason04 .ttlBox .ttl {
        padding: 1rem 2rem;
        font-size: 2.2rem; } }
  #reason04 .survey {
    display: grid;
    grid-template-columns: repeat(2, 1fr); }
    @media (max-width: 999px) {
      #reason04 .survey {
        grid-template-columns: 1fr; } }
  #reason04 .survey .box {
    position: relative;
    text-align: center;
    padding: 0 0 6rem; }
    @media (max-width: 999px) {
      #reason04 .survey .box {
        padding: 0 0 4rem;
        margin-bottom: 4rem;
        border-bottom: 1px solid #DDD; } }
    #reason04 .survey .box::before, #reason04 .survey .box::after {
      content: '';
      position: absolute;
      background: #DDD; }
      @media (max-width: 999px) {
        #reason04 .survey .box::before, #reason04 .survey .box::after {
          display: none; } }
    #reason04 .survey .box:nth-child(odd)::before {
      right: 0;
      top: 0;
      width: 1px;
      height: 38rem; }
    #reason04 .survey .box:nth-child(-n + 2)::after {
      left: 6rem;
      right: 6rem;
      bottom: 0;
      height: 1px; }
    #reason04 .survey .box:nth-child(n + 3) {
      padding-top: 6rem; }
      @media (max-width: 999px) {
        #reason04 .survey .box:nth-child(n + 3) {
          padding-top: 0; } }
    #reason04 .survey .box:nth-child(n + 3)::before {
      top: 6rem; }
    @media (max-width: 999px) {
      #reason04 .survey .box:last-child {
        margin-bottom: 0;
        border-bottom: none; } }
  #reason04 .survey .sttl {
    font-size: 2rem;
    line-height: 1.5;
    margin-bottom: 3rem; }
    @media (max-width: 999px) {
      #reason04 .survey .sttl {
        font-size: 1.6rem;
        margin-bottom: 2rem; } }
  #reason04 .circle {
    width: 28rem;
    margin: 0 auto; }
    @media (max-width: 999px) {
      #reason04 .circle {
        width: 18rem; } }
    #reason04 .circle img {
      display: block;
      width: 100%;
      height: auto; }
  #reason04 .message {
    text-align: center; }
    #reason04 .message .ttl {
      font-size: 3.6rem;
      line-height: 1.5;
      color: #21A934;
      margin-bottom: 4rem; }
      @media (max-width: 999px) {
        #reason04 .message .ttl {
          font-size: 2.2rem;
          margin-bottom: 2rem; } }
    #reason04 .message .txt {
      line-height: 2;
      margin-bottom: 5rem; }
      @media (max-width: 999px) {
        #reason04 .message .txt {
          text-align: left;
          margin-bottom: 3rem; } }
    #reason04 .message .illust {
      display: block;
      width: 58rem;
      height: auto;
      margin: 0 auto; }
      @media (max-width: 999px) {
        #reason04 .message .illust {
          width: 80%;
          max-width: 30rem; } }

#home08 {
  position: relative; }
  #home08::after {
    content: '';
    width: 100%;
    height: 100%;
    background: url("../img/reason/04_bg.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    position: absolute;
    top: -2rem;
    left: 0;
    z-index: -2; }
