@charset "UTF-8";

/* aosでの横スクロール時の余白防止のため */

/* ローディングアニメーション */
.shutter {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #fff;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 1s;
  opacity: 1;
  pointer-events: all;
}

.shutter.hide {
  opacity: 0;
  pointer-events: none;
  transition: opacity 1s;
}

.shutter video {
  width: 100%;
  height: auto;
  background-color: #fff;
  object-fit: contain;
  display: block;
}

.mainvisual {
  margin-top: 76px;
}

.mainvisual video {
  width: 100%;
  height: auto;
  object-fit: cover;
}

[class$="-inner"] {
  margin-left: 18vw;
}

/* リードテキスト */
.lead-box {
  width: 82.14%;
  /* max-width: 1150px; */
  background: #fff;
  border-top-right-radius: 15px;
  border-bottom-right-radius: 15px;
  padding: 40px 40px 40px 0;
  margin: 60px auto 0 0;
  position: relative;
  /* overflow: hidden; */
}

.lead-inner h2 {
  font-size: 2.6vw;
  line-height: 1.6;
  margin-bottom: 20px;
  position: relative;
}

.lead-inner h2 a .viewmore {
  position: absolute;
  bottom: 20px;
  right: 11vw;
}

.lead-inner h2 a:hover .viewmore {
  transform: scale(1.2);
}

/* 事業領域 */
.region-flex a {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  border-top: 1px solid #bababa;
  padding: 25px 0;
  /* padding-top: 30px; */
}

.region-flex a:hover {
  background-color: #dfdcdc;
  /* 好きな色に変更 */
  transition: background-color 0.3s ease;
}

.region-article {
  padding: 20px 0;
}

.business-inner {
  border-radius: 15px;
  background: #fff;
  padding: 40px 0 0 0;
  margin: 60px 0 0 0;
  position: relative;
  /* overflow: hidden; */
}

.business-inner .ttl-flex,
.business-inner .inner-ttl {
  margin-left: 18vw;
}

.busi-ani {
  width: 60px;
  height: 60px;
  margin: 0 30px 0 18vw;
}

.busi-text {
  width: 52%;
  text-align: left;
  padding-right: 8vw;
  position: relative;
}

.busi-text::after {
  content: "";
  display: block;
  background-image: url(../../common/img/readmore.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 41px;
  height: 41px;
  position: absolute;
  top: 0;
  right: 0;
  transition: transform 0.3s ease;
}

.busi-text:hover::after {
  transform: scale(1.2);
}

.full-width-line {
  width: 100%;
  height: 1px;
  background: #bababa;
  /* margin-bottom: 30px; */
  display: none;
}

/* スライド仕様 */
.date {
  font-size: 12px;
  margin-top: 10px;
}

.title {
  font-size: 14px;
}

/* 事例 */
.work-inner {
  margin-top: 60px;
  position: relative;
  /* overflow: hidden; */
}

.work-list {
  background: #fff;
  border-radius: 15px;
  /* padding: 40px 0; */
  position: relative;
  /* overflow: hidden; */
}

.work-card {
  border-right: 1px solid #bababa;
  padding: 0 40px;
  transition: box-shadow 0.5s ease;
}

.work-card:hover {
  box-shadow: 0 0 rgba(0, 0, 0, 0), 0 0 #000, 0 0 rgba(0, 0, 0, 0), 0 0 #000,
    0 14px 10px rgba(14, 51, 108, 0.06), 40px 30px 40px rgba(14, 51, 108, 0.12);
}

.work-card:last-of-type {
  border-right: none;
}

.work-card .thumb {
  overflow: hidden;
  display: block;
}

.work-card .thumb img {
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}

.work-card .thumb:hover img {
  transform: scale(1.2);
}

.work-card a {
  position: relative;
  padding-bottom: 55px;
}

.work-card a::after {
  content: "";
  display: block;
  background-image: url(../../common/img/readmore.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 31px;
  height: 31px;
  position: absolute;
  /* bottom: 0; */
  bottom: 15px;
  left: 0;
  transition: transform 0.3s ease;
}

.work-card a:hover::after {
  transform: scale(1.2);
}

/* 生活者レポート */
.report-inner {
  background: #fff;
  border-radius: 15px;
  padding: 40px 0 0 0;
  margin: 60px 0 0 0;
  position: relative;
  /* overflow: hidden; */
}

.report-inner .ttl-flex,
.report-inner .inner-ttl {
  margin-left: 18vw;
}

.report-list {
  margin-top: 70px;
}

.report-card {
  border-right: 1px solid #bababa;
  /* padding: 0 40px; */
}

.report-card:last-of-type {
  border-right: none;
}

.report-card .report-item {
  padding: 0 40px;
}

.report-card .thumb {
  overflow: hidden;
  display: block;
}

.report-card .thumb img {
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}

.report-card .thumb:hover img {
  transform: scale(1.2);
}

.report-card a {
  position: relative;
  padding-bottom: 55px;
  transition: box-shadow 0.5s ease;
}

.report-card a:hover {
  box-shadow: 0 0 rgba(0, 0, 0, 0), 0 0 #000, 0 0 rgba(0, 0, 0, 0), 0 0 #000,
    0 14px 10px rgba(14, 51, 108, 0.06), 40px 30px 40px rgba(14, 51, 108, 0.12);
}

.report-card a::after {
  content: "";
  display: block;
  background-image: url(../../common/img/readmore.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 31px;
  height: 31px;
  position: absolute;
  bottom: 15px;
  left: 40px;
  transition: transform 0.3s ease;
}

.report-card a:hover::after {
  transform: scale(1.2);
}

.report-inner .progress {
  margin-top: -2px;
  bottom: -16px;
}

.report-inner .slick-prev,
.report-inner .slick-next {
  top: -30px;
}

/* ニュース */
.news-inner02 {
  background: #fff;
  border-radius: 15px;
  padding: 40px 0 40px 18vw;
  margin: 60px 18vw 0 0;
  position: relative;
  /* overflow: hidden; */
}

.news-list dl a {
  display: flex;
  align-items: flex-start;
  border-top: 1px solid #bababa;
  padding: 20px 0 20px 0;
  margin-right: 5vw;
  position: relative;
}

.news-list dl a::after {
  content: "";
  display: block;
  background-image: url(../../common/img/readmore.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 31px;
  height: 31px;
  position: absolute;
  top: 15px;
  right: 0;
  transition: transform 0.3s ease;
}

.news-list dl a:hover::after {
  transform: scale(1.2);
}

.news-list dl a dt {
  font-size: 14px;
  margin-right: 20px;
}

.news-list dl a dd {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex: 1;
  font-size: 14px;
}

/* 資料ダウンロード */
.download-inner {
  margin-top: 120px;
  position: relative;
}

/* .download-inner .inner-ttl {
  padding-right: 28vw;
} */

.download-list {
  display: flex;
  background: #fff;
  border-radius: 15px;
  /* padding: 40px 0; */
  position: relative;
  /* overflow: hidden; */
}

.download-card {
  border-right: 1px solid #bababa;
  padding: 0 40px;
  transition: box-shadow 0.5s ease;
}

.download-card:hover {
  box-shadow: 0 0 rgba(0, 0, 0, 0), 0 0 #000, 0 0 rgba(0, 0, 0, 0), 0 0 #000,
    0 14px 10px rgba(14, 51, 108, 0.06), 40px 30px 40px rgba(14, 51, 108, 0.12);
}

.download-card:last-of-type {
  border-right: none;
}

.download-card .thumb {
  overflow: hidden;
  display: block;
}

.download-card .thumb img {
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}

.download-card .thumb:hover img {
  transform: scale(1.2);
}

.download-link {
  position: relative;
  padding-bottom: 55px;
}

.download-link::after {
  content: "";
  display: block;
  background-image: url(../../common/img/readmore.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 31px;
  height: 31px;
  position: absolute;
  bottom: 15px;
  left: 0;
  transition: transform 0.3s ease;
}

.download-link:hover::after {
  transform: scale(1.2);
}

/* あしらいjson */
#busi-ani-cart {
  width: 10vw;
  position: absolute;
  right: -12vw;
  bottom: -2vw;
}

#busi-ani-shop-people {
  width: 10vw;
  position: absolute;
  left: -12vw;
  bottom: -2vw;
}

#busi-ani-bag {
  width: 13vw;
  max-width: 170px;
  position: absolute;
  right: 5vw;
  top: 2vw;
}

#busi-ani-salebag {
  width: 11vw;
  position: absolute;
  right: -14vw;
  bottom: -2vw;
}

#busi-ani-gift {
  width: 13vw;
  max-width: 290px;
  position: absolute;
  left: -15vw;
  bottom: -1vw;
}

.scroll-obj {
  position: relative;
  display: inline-block;
  transition: transform 1s ease-out;
  /* アニメーション */
}

/* 事例・生活者レポート・資料ダウンロードのマウススライダーをなめらかに */
/* ドラッグ中に選択が走らないように */
#workSlider,
#workSlider *,
#reportSlider,
#reportSlider *, 
#downloadSlider,
#downloadSlider * {
  user-select: none;
  -webkit-user-select: none;
}

/* 画像のネイティブドラッグを無効化 */
#workSlider img,
#reportSlider img,
#downloadSlider img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
  /* 画像がイベントを奪う場合に有効 */
}

/* ドラッグできる雰囲気（任意） */
#workSlider .slick-track,
#reportSlider .slick-track,
#downloadSlider .slick-track {
  cursor: grab;
}

#workSlider .slick-track:active, 
#reportSlider .slick-track:active,
#downloadSlider .slick-track:active{
  cursor: grabbing;
}




/* tab */
@media (max-width: 1180px) {
  .mainvisual {
    margin-top: 58px;
  }

  .busi-text::after {
    width: 31px;
    height: 31px;
  }
}

@media (max-width: 1024px) {
  /* 事例紹介 */
  /* #workSlider.slick-initialized .slick-list {
    padding-right: 40% !important;
  } */
}

/*---------------------------
sp
---------------------------*/
@media only screen and (max-width: 820px) {

  /* 余白防止のため */
  html,
  body {
    overflow-x: hidden;
  }

  /* オープニングアニメーション */
  .shutter video {
    width: 100%;
    height: 100%;
  }

  .mainvisual {
    margin-top: 60px;
  }

  [class$="-inner"] {
    margin: 0;
  }

  [class$="-inner02"] {
    margin: 0;
  }

  /* アニメーションロゴ */
  #busi-ani-cart {
    width: 22vw;
    max-width: 120px;
    right: 2vw;
    bottom: -8vw;
  }

  #busi-ani-shop-people {
    width: 19vw;
    max-width: 90px;
    left: 2vw;
    bottom: -19vw;
  }

  #busi-ani-bag {
    width: 24vw;
    max-width: 120px;
    right: 5vw;
    top: -21vw;
  }

  #busi-ani-gift {
    width: 30vw;
    max-width: 100px;
    left: 4vw;
    bottom: -16vw;
  }

  #busi-ani-salebag {
    width: 18vw;
    max-width: 90px;
    right: 1vw;
    bottom: -20vw;
  }

  .busi-ani {
    width: 30px;
    height: 30px;
    margin: 0 20px 0 22px;
  }

  /* リードテキスト */
  .lead-box {
    width: 95%;
    padding: 22px 22px 30px 22px;
  }

  .lead-inner h2 {
    font-size: 18px;
    margin-bottom: 10px;
  }

  .lead-inner h2 a .viewmore {
    top: initial;
    bottom: -20px;
    right: initial;
    left: 0;
  }

  /* 事業領域 */
  .lower-box02 {
    margin: 120px auto 160px auto;
  }

  .business-inner .ttl-flex,
  .business-inner .inner-ttl {
    margin: 0 22px 0;
  }

  .region-list {
    margin-top: 20px;
  }

  .region-flex a {
    padding: 25px 0 15px 0;
    position: relative;
  }

  .region-flex a .readmore {
    position: absolute;
    bottom: 30px;
    right: 30px;
  }

  .busi-text {
    width: 100%;
    padding-right: 0;
  }

  .busi-text p {
    margin: 0 22px;
    position: relative;
    top: -30px;
  }

  .busi-text::after {
    width: 21px;
    height: 21px;
    top: initial;
    bottom: 15px;
    right: 22px;
  }

  /* 事例紹介 */
  .work-inner {
    width: calc(100% - 44px);
    margin: 60px auto 0;
  }

  .work-inner .inner-ttl {
    margin-bottom: 70px;
  }

  .work-list {
    padding: 0 0;
  }

  .work-list::before {
    border-radius: 15px;
  }

  .work-list .slick-slider {
    margin-top: 40px;
  }

  .work-card {
    border-right: none;
    padding: 20px 20px;
    position: relative;
  }

  .work-card .thumb:hover img {
    transform: scale(1);
  }

  .work-card a::after {
    width: 21px;
    height: 21px;
    left: initial;
    right: 0;
  }

  .work-card:hover {
    box-shadow: none;
  }

  #workSlider.slick-initialized .slick-list {
    /* padding-right: 50% !important; */
    padding: 0 !important;
  }

  /* 生活者レポート */
  .report-inner {
    width: 90%;
    padding: 20px 20px;
    margin: 180px auto 0;
  }

  .report-inner .ttl-flex,
  .report-inner .inner-ttl {
    margin-left: 0;
  }

  .report-inner .inner-ttl {
    margin-bottom: 20px;
  }

  .report-list {
    margin-top: 50px;
  }

  .report-card {
    border-right: none;
  }

  .report-card .report-item {
    padding: 0 0;
  }

  .report-card .thumb:hover img {
    transform: scale(1);
  }

  .report-card a::after {
    width: 21px;
    height: 21px;
    left: 0;
  }

  .report-card a:hover {
    box-shadow: none;
  }

  .report-inner .progress {
    margin-top: 0;
    bottom: -40px;
  }

  .report-inner .slick-slider .slick-list {
    padding: 20px 0 0 0;
  }

  .report-list .slick-initialized .slick-slide {
    box-shadow: none;
  }

  /* ニュース */
  .news-inner02 {
    width: 90%;
    padding: 20px 20px;
    margin: 60px auto 0;
  }

  .news-inner02::before {
    border-radius: 15px;
  }

  .news-list dl a {
    flex-wrap: wrap;
    margin-right: 0;
  }

  .news-list dl a::after {
    width: 21px;
    height: 21px;
  }

  .news-list dl a dt {
    width: 100%;
    margin-right: 0;
  }

  .news-list dl a dd {
    width: 100%;
    flex: auto;
    margin-top: 5px;
  }

  .news-list dl a {
    padding: 20px 0 12px 0;
  }

  .news-list dl:last-of-type a {
    padding-bottom: 0;
  }

  /* 資料ダウンロード */
  .download-inner {
    width: 90%;
    margin: 140px auto 100px;
  }

  .download-inner .inner-ttl {
    padding-right: 0;
    margin-bottom: 60px;
  }

  .download-inner .slick-slider .slick-list {
    padding: 20px 0 20px 0;
    margin-top: 30px;
  }

  .download-list::before {
    border-radius: 15px;
  }

  .download-card {
    border-right: none;
    padding: 0 20px;
  }

  .download-card .thumb:hover img {
    transform: scale(1);
  }

  .download-card:hover {
    box-shadow: none;
  }

  .download-link::after {
    width: 21px;
    height: 21px;
  }
}

@media (max-width: 499px) {
  #busi-ani-cart {
    right: 2vw;
    bottom: -23vw;
  }

  #busi-ani-shop-people {
    left: 2vw;
    bottom: -40vw;
  }

  #busi-ani-bag {
    right: 5vw;
    top: -33vw;
  }

  #busi-ani-gift {
    left: 4vw;
    bottom: -32vw;
  }

  #busi-ani-salebag {
    right: 1vw;
    bottom: -30vw;
  }

  /* 事例紹介 */
  .work-list .slick-slider {
    margin-top: 400px;
  }
}