@keyframes round-anime-right {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
@keyframes float-up-down {
  0% {
    transform: translate(0, 0); }
  50% {
    transform: translate(0, -8%); }
  100% {
    transform: translate(0, 0); } }
#indexMainvisual {
  min-width: 1160px; }
  #indexMainvisual .img img {
    width: 100%; }

#indexServices {
  overflow: hidden;
  padding-bottom: 104px; }
  #indexServices h2 {
    font-size: 4rem; }
    #indexServices h2 + p {
      margin-top: 48px; }
  #indexServices .imgbox {
    margin-top: 30px;
    position: relative; }
    #indexServices .imgbox:before {
      content: '';
      display: block;
      width: 1004px;
      height: 892px;
      background: url("../img/index/index_services_img_blob_pc.svg") no-repeat center center/contain;
      position: absolute;
      top: -108px;
      right: 58px;
      z-index: -1;
      animation: round-anime-right 40s linear 0s infinite; }
  #indexServices .img {
    width: 929px;
    margin: auto;
    position: relative;
    z-index: -1; }
  #indexServices .round {
    position: absolute; }
    #indexServices .round1 {
      top: -6px;
      left: -30px;
      width: 200px;
      animation: float-up-down 8s ease -3.3s infinite; }
    #indexServices .round2 {
      bottom: 0;
      left: 108px;
      width: 160px;
      animation: float-up-down 8s ease -0.8s infinite; }
    #indexServices .round3 {
      top: 263px;
      right: -52px;
      width: 160px;
      animation: float-up-down 8s ease -1.5s infinite; }
  #indexServices .linkbtn {
    margin-top: -6px; }

#indexProducts {
  padding: 104px 0;
  background: url("../img/index/index_products_bg.png") repeat; }
  #indexProducts .wrap {
    overflow: hidden; }
  #indexProducts h2 {
    margin-top: 0;
    font-size: 2rem; }
  #indexProducts .en {
    font-size: 3.6rem;
    display: block;
    line-height: 1.2;
    margin-bottom: 16px; }
  #indexProducts .productsbox {
    margin: 46px auto 0;
    width: 376px;
    position: relative; }
    #indexProducts .productsbox .productsbox-inner {
      margin: 0 -4px; }
    #indexProducts .productsbox .slick-list {
      overflow: visible !important; }
    #indexProducts .productsbox .products {
      width: 368px;
      margin: 0 4px; }
      #indexProducts .productsbox .products a {
        display: block;
        text-decoration: none; }
        #indexProducts .productsbox .products a:hover {
          color: #f07b35; }
      #indexProducts .productsbox .products .img {
        width: 100%;
        aspect-ratio: 4/3;
        overflow: hidden;
        transform: scale(0.587);
        transition: all 0.6s; }
        #indexProducts .productsbox .products .img img {
          width: 100%;
          height: 100%;
          object-fit: contain; }
      #indexProducts .productsbox .products .ttl {
        opacity: 0;
        text-align: center;
        font-weight: 700;
        margin-top: 24px;
        transition: all 0.3s; }
    #indexProducts .productsbox .slick-current .img,
    #indexProducts .productsbox .is-active-next .img {
      transform: scale(1);
      transition: all 0.8s; }
    #indexProducts .productsbox .slick-current .ttl,
    #indexProducts .productsbox .is-active-next .ttl {
      opacity: 1;
      transition: all 0.3s; }
    #indexProducts .productsbox .slick-arrow {
      width: 48px;
      height: 48px;
      background: no-repeat center center/10px 15px,#fff;
      border-radius: 1000px;
      position: absolute;
      top: 110px;
      transition: all 0.3s;
      z-index: 10;
      cursor: pointer; }
      #indexProducts .productsbox .slick-arrow:hover {
        opacity: 0.8;
        transition: all 0.6s; }
    #indexProducts .productsbox .next {
      background-image: url("../img/index/index_products_productslider_ico_next.svg");
      right: -56px; }
    #indexProducts .productsbox .prev {
      background-image: url("../img/index/index_products_productslider_ico_prev.svg");
      left: -56px; }
  #indexProducts .linkbtn {
    margin-top: 48px; }

#indexWholesale {
  margin-top: 104px; }
  #indexWholesale .bannerbox {
    background: #392e28;
    border: 4px solid #f07b35;
    color: #fff;
    text-decoration: none;
    position: relative; }
    #indexWholesale .bannerbox .imgbox {
      width: 556px; }
    #indexWholesale .bannerbox .txtbox {
      width: 556px;
      padding: 40px 54px; }
    #indexWholesale .bannerbox h2 {
      text-align: left; }
      #indexWholesale .bannerbox h2 + p {
        margin-top: 8px;
        font-size: 2rem;
        font-weight: 500; }
    #indexWholesale .bannerbox .ttl {
      display: inline-block;
      width: 440px;
      font-size: 4rem;
      position: relative;
      padding-left: 66px;
      border-bottom: 2px solid #f0b97a; }
      #indexWholesale .bannerbox .ttl:before {
        content: '';
        display: block;
        width: 50px;
        height: 40px;
        transition: all 0.3s;
        background: url("../img/index/index_wholesale_bannerbox_ico_shop_wt.svg") no-repeat center center/contain;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 0; }

#indexNews,
#indexBlog {
  position: relative; }
  #indexNews h2,
  #indexBlog h2 {
    text-align: left;
    margin-top: 0;
    font-size: 2rem; }
    #indexNews h2 .en,
    #indexBlog h2 .en {
      font-size: 3.6rem;
      color: #f07b35;
      margin-right: 16px;
      line-height: 1; }
  #indexNews .archive,
  #indexBlog .archive {
    position: absolute;
    top: 5px;
    right: 20px;
    margin-top: 0; }
  #indexNews .newslist a,
  #indexNews .bloglist a,
  #indexBlog .newslist a,
  #indexBlog .bloglist a {
    text-decoration: none; }
    #indexNews .newslist a:hover,
    #indexNews .bloglist a:hover,
    #indexBlog .newslist a:hover,
    #indexBlog .bloglist a:hover {
      color: #f07b35; }
  #indexNews .newslist .date,
  #indexNews .bloglist .date,
  #indexBlog .newslist .date,
  #indexBlog .bloglist .date {
    color: #333; }
  #indexNews .newslist .cat,
  #indexNews .bloglist .cat,
  #indexBlog .newslist .cat,
  #indexBlog .bloglist .cat {
    text-align: center;
    width: 104px;
    color: #f07b35;
    font-size: 1.2rem;
    font-weight: 500;
    background: #f7f7f7;
    padding: 6px 15px;
    margin-left: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  #indexNews .newslist .ttl,
  #indexNews .bloglist .ttl,
  #indexBlog .newslist .ttl,
  #indexBlog .bloglist .ttl {
    font-weight: 500; }

#indexNews {
  margin-top: 146px; }
  #indexNews .newslist {
    margin-top: 48px; }
    #indexNews .newslist li {
      padding-bottom: 24px;
      border-bottom: 1px solid #ccc; }
      #indexNews .newslist li + li {
        margin-top: 24px; }
    #indexNews .newslist .cat {
      display: block; }
    #indexNews .newslist .ttl {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      margin: 0 0 0 16px; }

#indexBlog {
  margin-top: 104px; }
  #indexBlog .bloglist {
    margin: 48px -16px 0; }
    #indexBlog .bloglist .item {
      width: 352px;
      margin: 0 16px; }
    #indexBlog .bloglist a {
      display: block; }
    #indexBlog .bloglist .img {
      aspect-ratio: 44/27;
      overflow: hidden; }
      #indexBlog .bloglist .img img {
        width: 100%;
        height: 100%;
        object-fit: cover; }
    #indexBlog .bloglist .txtbox {
      margin-top: 16px; }
    #indexBlog .bloglist .ttl {
      line-height: 1.7;
      max-height: 3.4em;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      margin: 16px 0 0; }
  #indexBlog .slick-dots {
    margin-top: 32px; }
  #indexBlog .slick-arrow {
    width: 15px;
    height: 26px;
    background: no-repeat center center/contain;
    position: absolute;
    bottom: -8px;
    transition: all 0.3s;
    z-index: 10;
    cursor: pointer; }
    #indexBlog .slick-arrow:hover {
      opacity: 0.8;
      transition: all 0.6s; }
      #indexBlog .slick-arrow:hover.next {
        background-image: url("../img/index/index_blog_blogslider_ico_next_or.svg"); }
      #indexBlog .slick-arrow:hover.prev {
        background-image: url("../img/index/index_blog_blogslider_ico_prev_or.svg"); }
  #indexBlog .next {
    background-image: url("../img/index/index_blog_blogslider_ico_next_gy.svg");
    right: 440px; }
  #indexBlog .prev {
    background-image: url("../img/index/index_blog_blogslider_ico_prev_gy.svg");
    left: 440px; }

@media screen and (min-width: 1360px) {
  #indexProducts .wrap.ptn1 {
    max-width: 90%;
    width: 100%; }
    #indexProducts .wrap.ptn1 .productsbox {
      width: 34.8%; }
      #indexProducts .wrap.ptn1 .productsbox .productsbox-inner {
        margin: 0 -0.4%; }
      #indexProducts .wrap.ptn1 .productsbox .products {
        margin: 0 0.4%; }
      #indexProducts .wrap.ptn1 .productsbox .slick-arrow {
        top: 9.5vw; }
      #indexProducts .wrap.ptn1 .productsbox .next {
        right: -14%; }
      #indexProducts .wrap.ptn1 .productsbox .prev {
        left: -14%; } }
@media screen and (max-width: 600px) {
  #indexMainvisual {
    min-width: 100%; }

  #indexServices {
    padding-bottom: 80px;
    overflow: hidden; }
    #indexServices h2 {
      font-size: 2.8rem; }
      #indexServices h2 + p {
        margin-top: 40px; }
    #indexServices .imgbox {
      margin-top: 19px; }
      #indexServices .imgbox:before {
        width: 120vw;
        height: 100%;
        background-image: url("../img/index/index_services_img_blob_sp.svg");
        top: 0;
        right: -15.5vw; }
    #indexServices .img {
      width: 100%; }
    #indexServices .round1 {
      top: -3px;
      left: 0;
      width: 20%; }
    #indexServices .round2 {
      bottom: -3px;
      left: 0;
      width: 20%; }
    #indexServices .round3 {
      top: 97vw;
      right: 0;
      width: 17.5%; }
    #indexServices .linkbtn {
      margin-top: 35px; }

  #indexProducts {
    padding: 80px 0; }
    #indexProducts h2 {
      font-size: 1.6rem; }
    #indexProducts .en {
      font-size: 3.2rem; }
    #indexProducts .productsbox {
      margin-top: 40px;
      width: 100%; }
      #indexProducts .productsbox .productsbox-inner {
        margin: 0; }
      #indexProducts .productsbox .products {
        width: 100%;
        margin: 0; }
        #indexProducts .productsbox .products .img {
          width: 71.2%;
          margin: auto;
          transform: scale(1); }
      #indexProducts .productsbox .slick-arrow {
        width: 40px;
        height: 40px;
        background-size: 6px 10px;
        top: 19vw; }
      #indexProducts .productsbox .next {
        right: 0; }
      #indexProducts .productsbox .prev {
        left: 0; }
    #indexProducts .linkbtn {
      margin-top: 40px; }

  #indexWholesale {
    margin-top: 80px; }
    #indexWholesale .bannerbox .imgbox {
      width: 100%; }
    #indexWholesale .bannerbox .txtbox {
      width: 100%;
      padding: 20px 4.5% 16px; }
    #indexWholesale .bannerbox h2 + p {
      margin-top: 12px;
      font-size: 1.6rem; }
    #indexWholesale .bannerbox .ttl {
      width: 100%;
      font-size: 2.8rem;
      padding-left: 44px; }
      #indexWholesale .bannerbox .ttl:before {
        width: 35px;
        height: 28px; }

  #indexNews h2,
  #indexBlog h2 {
    font-size: 1.6rem; }
    #indexNews h2 .en,
    #indexBlog h2 .en {
      font-size: 3.2rem; }
  #indexNews .archive,
  #indexBlog .archive {
    position: static;
    text-align: right; }
  #indexNews .newslist a,
  #indexNews .bloglist a,
  #indexBlog .newslist a,
  #indexBlog .bloglist a {
    display: block; }

  #indexNews {
    margin-top: 80px; }
    #indexNews .archive {
      margin-top: 24px; }
    #indexNews .newslist {
      margin-top: 40px; }
      #indexNews .newslist .ttl {
        margin: 12px 0 0; }

  #indexBlog {
    margin-top: 80px; }
    #indexBlog .archive {
      margin-top: 48px; }
    #indexBlog .bloglist {
      margin-top: 40px; }
      #indexBlog .bloglist .item {
        width: 100%; }
    #indexBlog .next {
      right: 70px; }
    #indexBlog .prev {
      left: 70px; } }
