@charset "UTF-8";

/* footer */
.suggest-box {
    padding: 0 0 0;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1192px;
    .suggest-inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    border-bottom: 1px solid var(--color-white);
    .suggest-item {
        width: 100%;
        margin: 0 auto;
        padding: 0;
        text-align: left;
        &.right {
          padding-top: 1.5rem;
          display: inline-flex;
          & > a {
            display: flex;
            &:hover {
              opacity: 1;
              
            }
          }
        }
      }
    }
    .suggest-text {
    margin: 0 0 .5rem;
    line-height: 2.75rem;
    }
    .suggest-tel {
    margin: 0 0 10px;
    color: #666;
    font-weight: bold;
    font-size: 24px;
    a {
    color: var(--color-white);
    font-size: 2rem;
    line-height: 2.875rem;
    padding-top: .375rem;
  
    }
    }
    .suggest-btn {
    font-size: 1.5rem;
    }
    .wanted-info {
    line-height: 1.5rem;
    padding: 1.375rem;
    margin: 0.75rem 0 3.5rem;
    background-color: #B2C4E1;
    border-radius: 1.25rem 1.25rem 0 1.25rem;
    color: var(--color-blue-base);
    h4 {
        font-weight: 700;
        margin: 0;
    }
    p {
        margin: .625rem 0 0;
    }
    }
}
.footer {
    padding: 3.5rem 0 1rem;
    margin: 0 auto;
    position: relative;
    width: 100%;
    max-width: 1192px;
    .footer-bottom {
        display: flex;
        justify-content: space-between;
        align-items: initial;
        margin-top:5rem;
    }
    .footer-inner {
        padding: 0;
        position: relative;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
        display: grid;
        grid-template-columns: 1fr;
    }
}
li.recruit.footer-area a::after {
content: "";
background: url("../../talkin@site/images/allow-topright-white.svg") no-repeat center;
width: 1rem;
height: 1.3rem;
position: relative;
display: inline-flex;
}
li.recruit a::after {
content: "";
background: url("../../talkin@site/images/allow-topright-black.svg") no-repeat center;
width: 1rem;
height: 1.3rem;
position: relative;
display: inline-flex;
}
.foot-wrapper {
color: var(--color-white);
position: relative;
width: 100%;
padding: 8.5626rem 4rem 2rem;
position: relative;
z-index: 2;

&:before{
    content: "";
    background: url("../../talkin@site/images/bg_footer.png") no-repeat center center;
    background-size: cover;
    background-position: top center;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    
    }
}
/* フッターナビゲーション */
.footer-nav {
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    .footer-nav-item {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 0;
    vertical-align: top;
    width: 100%;
    max-width: 12.75rem;
    text-align: left;
    }
    .footer-nav-title {
    margin: 0 0 15px;
    color: #FFF;
    font-size: 16px;
    }
    .footer-nav-list {
    padding: 0;
    color: #999;
    list-style: none;
    width: 100%;
    max-width: 12.75rem;  
    li {
    line-height: 1.7;
    width: 100%;
    max-width: 12.75rem;
    }
    a {
    display: inline-block;
    margin: 0 0 3px;
    padding-bottom: 1.5rem;
    color: var(--color-white);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.5rem;
    position: relative;
    width: 100%;
    max-width: 100%;
    &:hover {
        color: var(--color-white);
        }
    }
    }
  }
.footer-nav:hover {
  opacity: 1;
}
/* X fixed エリア */
.sns-list-item-fixed {
  opacity: 0;
  transform: rotate(90deg);
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.sns-list-item-fixed.fixed {
  color: var(--color-black);
  position: fixed;
  top: 85%;
  right: 2.5rem;
  transform: translateY(-50%); /* 回転は一切なし、上下中央配置のみ */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  z-index: 999;
  opacity: 1;
  transition: opacity 0.3s ease; /* 回転のtransitionが入っていたら消す、またはopacity等だけに絞る */
  > span {
    writing-mode: vertical-rl;
    line-height: 1;
    letter-spacing: .125rem;
    font-size: 1rem;
    width: 1.5rem;
  }
  > a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    transform: none; /* 余計な変形を一切リセット */
  }
  /* 擬似要素の余白や変形を全リセットして軸を完璧に合わせる */
  .sns-list-twitter::after,
  .sns-list-instagram::after {
    content: "";
    display: block;
    margin: 0;
    transform: none;
  }
  .sns-list-twitter::after {
    background: url("../../talkin@site/images/fixed-sns-x.svg") no-repeat center / contain;
    width: 25px;
    height: 25px;
  }
  .sns-list-instagram::after {
    background: url("../../talkin@site/images/fixed-sns-instagram.svg") no-repeat center / contain;
    width: 27px;
    height: 27px;
  }
    &.hidden {
        opacity: 0;
        pointer-events: none;
    }
  }
body.is-locked .sns-list-item-fixed {
  opacity: 0 !important;
  pointer-events: none;
}
  @media (max-width:767.98px) {
    .sns-list-item-fixed.fixed{
      top: 88%;
      right: 0.5rem;

      > span {
        font-size: .75rem;
        width: 1rem;
      }

    }
  }
/* ページの上に戻るボタン */
.page-top {
    position: absolute;
    display: inline-block;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 5.625rem;
    .page-top-btn  {
        z-index: 1;
        
        & > div {
            width: 5.625rem;
            height: 5.625rem;
            box-sizing: border-box;
            background-color: #fff;
            padding: 2rem;
            border-radius: 3rem;
      
            display: block;
            overflow-x: hidden;
            overflow-y: hidden;
            transition-duration: 400ms;
            transition-timing-function: ease-out;
      
            .top-arrow {
              stroke: var(--color-blue-base);
              transform: translate(0rem, 0rem);
              transition-timing-function: ease-out;
              transition-duration: 0ms;
      
            }
            .top-arrow-hover {
              stroke: var(--color-white);
              transform: translate(0rem, 6rem);
              transition-duration: 0ms;
              transition-timing-function: ease-out;
            }
            .top-arrow-hover-base {
              stroke: var(--color-blue-base);
              transform: translate(0rem, -3.9rem);
      
            }
        }
        & > span {
          display: inline-flex;
          transform: rotate(90deg);
          position: relative;
          top:3rem;
          right: -.8rem;
          font-size: 1rem;
          font-weight: 700;
        }
        &:hover  {
          opacity: 1;
            & > div {
              background: #EFCA8D;
          
                .top-arrow {
                  stroke: var(--color-white);
                  transform: translate(0rem, -6rem);
                  transition-duration: 400ms;
                  transition-timing-function: ease-out;
                  
                }
                .top-arrow-hover {
                  stroke: var(--color-white);
                  transform: translate(0rem, -2rem);
                  transition-delay: 200ms;
                  transition-duration: 400ms;
                  transition-timing-function: ease-out;
                }
                .top-arrow-hover-base {
                  opacity: 0;
                }
            }
            & > span {
              color: var(--color-yellow);
            }
          }
    }
  }
   
@media (max-width:767.98px) {
    .footer {
        width: 100%;
        padding: 0;
        margin: 0 auto;
        margin: 2.5rem 0 0 ;
        position: relative;
        z-index: 2;
        padding: 0;
        .footer-bottom {
          display: flex;
          justify-content: space-between;
          align-items: end;
          margin: 7.1rem 0 0.5rem;
        }
    }
    .suggest-box {
        padding: 0;
        margin: 0 auto;
        position: relative;
        z-index: 2;
        .suggest-inner {
            display: grid;
            grid-template-columns: 1fr;
            border-bottom: 1px solid var(--color-white);
            }
        .suggest-text {
        margin: 0 0 .5rem;
        line-height: 2rem;
        font-size: 1.375rem;
        }
        .caption {
            font-size: .75rem;
        }
        .suggest-tel {
            margin: 2.5rem 0 0;
            color: #666;
            font-weight: bold;
            font-size: 24px;
            a {
            color: var(--color-white);
            font-size: 1.625rem;
            line-height: 2.3125rem;
            padding: 0;
            }
        }
        .suggest-teltime {
            font-size: .875rem;
        }
        .suggest-btn {
            font-size: 1.25rem;
        }
        .wanted-info {
            margin: 1rem 0 2.5rem;
            h4 {
                font-weight: 500;
            }
            p {
              line-height: 2rem;
            }
        }
    }
    .foot-wrapper {
        color: var(--color-white);
        position: relative;
        width: 100%;
        
        padding: 6.25rem 1.375rem 2rem;
        position: relative;
        z-index: 2;
        &:before{
            content: "";
            background: url("../../talkin@site/images/bg_footer_sp.png") no-repeat center center;
            background-size: cover;
            background-position: top center;
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            
            }
        .footer-nav {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        width: 100%;
        max-width: 100%;  
        .footer-nav-title {
            margin: 0;

            } 
        .footer-nav-item {
            margin: -.5rem 0 0;
            &:last-child {
              margin: -1rem 0 0;
            }
            } 
        .footer-nav-list {
            li {
                line-height: 1.5rem;
                width: 100%;
                max-width: 12.75rem;
                padding-bottom: 1.5rem;
              }
            a {
              margin: 0;
              font-size: .875rem;
              padding: 0;
            }
        }
        }
    }

    /* ページの上に戻るボタン */
    .page-top {
        position: absolute;
        display: inline-block;
        top: 0;
        right: 0;
        width: 100%;
        max-width: 3.75rem;
        .page-top-btn  {
            z-index: 1;
            & > div {
                width: 1.125rem;
                height: 1.125rem;
                box-sizing: border-box;
                background-color: #fff;
                padding: 1.87rem;
                border-radius: 3rem;
                display: block;
                overflow-x: hidden;
                overflow-y: hidden;
                transition-duration: 400ms;
                transition-timing-function: ease-out;
                .top-arrow {
                    stroke: var(--color-blue-base);
                    transform: translate(0rem, 0rem);
                    transition-timing-function: ease-out;
                    transition-duration: 0ms;
                    display: inline-flex;
                    position: relative;
                    top: -0.7rem;
                    right: 0.7rem;
                    width: 1.5rem;
                    height: 1.5rem;
                }
                .top-arrow-hover {
                  stroke: var(--color-white);
                  transform: translate(0rem, 6rem);
                  transition-duration: 0ms;
                  transition-timing-function: ease-out;
                  display: inline-flex;
                  position: relative;
                  top: -0.7rem;
                  right: 0.7rem;
                  width: 1.5rem;
                  height: 1.5rem;
                }
                .top-arrow-hover-base {
                    stroke: var(--color-blue-base);
                    transform: translate(0rem, -3.6rem);
                    display: inline-flex;
                    position: relative;
                    top: -0.7rem;
                    right: 0.7rem;
                    width: 1.5rem;
                    height: 1.5rem;
                }
            }
            & > span {
                display: inline-flex;
                transform: rotate(90deg);
                position: relative;
                top: 3rem;
                right: 0.4rem;
                font-size: 1rem;
                font-weight: 700;
                width: 4.875rem;
            }
            &:hover  {
                & > div {
                  background: #EFCA8D;
              
                    .top-arrow {
                      stroke: var(--color-white);
                      transform: translate(0rem, -6rem);
                      transition-duration: 400ms;
                      transition-timing-function: ease-out;
                      
                    }
                    .top-arrow-hover {
                      stroke: var(--color-white);
                      transform: translate(0rem, -1.8rem);
                      transition-delay: 200ms;
                      transition-duration: 400ms;
                      transition-timing-function: ease-out;
                    }
                    .top-arrow-hover-base {
                      opacity: 0;
                    }
                }
                & > span {
                  color: var(--color-yellow);
                }
              }
        }
    }
}
@media (min-width:768px) and (max-width:1100px) {
  .suggest-box { 
    margin: 0 auto;
    width: 100%;
    max-width: 583px;
    box-sizing: border-box;
    padding: 0;
    .suggest-text {
      font-size: 1.5rem;
    }
    .suggest-tel {
      a {
      font-size: 1.75rem;
      }
    }
  }
  .footer {
    margin: 0 auto;
    width: 100%;
    max-width: 583px;
    box-sizing: border-box;
    padding: 3.5rem 0 1rem;
  }
}