.clearfix::after, .l-case__set::after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

@font-face {
  font-family: 'js';
  font-weight: 300;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/JosefinSans-Regular.ttf") format("opentype");
}

@font-face {
  font-family: 'js';
  font-weight: 500;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/JosefinSans-SemiBold.ttf") format("opentype");
}

@font-face {
  font-family: 'js';
  font-weight: 700;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/JosefinSans-Bold.ttf") format("opentype");
}

@font-face {
  font-family: 'fm';
  font-weight: 100;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/Futura-Boo.ttf") format("opentype");
}

@font-face {
  font-family: 'fm';
  font-weight: 300;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/Futura-Med.ttf") format("opentype");
}

@font-face {
  font-family: 'fm';
  font-weight: 500;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/Futura-Bol.ttf") format("opentype");
}

@font-face {
  font-family: 'ns';
  font-weight: 300;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/NotoSansCJKjp-Medium.otf") format("opentype");
}

@font-face {
  font-family: 'ns';
  font-weight: 500;
  font-style: normal;
  src: url("/spcontent/tomobataraki/font/NotoSansCJKjp-Bold.otf") format("opentype");
}

.l-keyvisual {
  box-sizing: border-box;
  height: 26.38889vw;
  margin: 0 2.77778vw 0;
  padding: 90px 0 0 80px;
  background-color: #dfe3e9;
}

@media (max-width: 1260px) {
  .l-keyvisual {
    height: 332px;
    margin: 0 35px 0;
    padding: 78px 0 0 70px;
  }
}

@media (max-width: 767px) {
  .l-keyvisual {
    height: 90.66667vw;
    margin: 0;
    padding: 10.66667vw 8vw 0 8.66667vw;
  }
}

.l-keyvisual__sub {
  font-family: 'js';
  font-size: 1.11111vw;
  font-weight: 500;
  position: relative;
  display: inline-block;
  padding: 0 1.38889vw 0 0;
  letter-spacing: 1.5px;
}

@media (max-width: 1260px) {
  .l-keyvisual__sub {
    font-size: 14px;
    padding: 0 17px 0 0;
  }
}

@media (max-width: 767px) {
  .l-keyvisual__sub {
    font-size: 3.2vw;
    padding: 0 4vw 0 0;
  }
}

.l-keyvisual__sub::after {
  position: absolute;
  top: 50%;
  right: -1.38889vw;
  display: block;
  width: 1.38889vw;
  height: 1px;
  margin-top: -1px;
  content: '';
  background-color: #101010;
}

@media (max-width: 1260px) {
  .l-keyvisual__sub::after {
    right: -17px;
    width: 17px;
  }
}

@media (max-width: 767px) {
  .l-keyvisual__sub::after {
    right: -4vw;
    width: 4vw;
    height: 0.26667vw;
  }
}

.l-keyvisual h1 {
  width: 35.83333vw;
  height: 2.08333vw;
  margin-top: 1.38889vw;
}

@media (max-width: 1260px) {
  .l-keyvisual h1 {
    width: 451px;
    height: 26px;
    margin: 17px 0 0 0;
  }
}

@media (max-width: 767px) {
  .l-keyvisual h1 {
    width: 76.4vw;
    height: 14.4vw;
    margin: 4vw 0 0 0;
  }
}

.l-keyvisual__lead {
  font-size: 1.11111vw;
  line-height: 2;
  margin-top: 1.38889vw;
}

@media (max-width: 1260px) {
  .l-keyvisual__lead {
    font-size: 14px;
    margin-top: 17px;
  }
}

@media (max-width: 767px) {
  .l-keyvisual__lead {
    font-size: 3.2vw;
    margin-top: 5.33333vw;
  }
  body.android .l-keyvisual__lead {
    font-weight: 300;
  }
}

.l-case {
  margin-top: -3.88889vw;
  padding: 0 7.63889vw;
}

@media (max-width: 1260px) {
  .l-case {
    margin-top: -49px;
    padding: 0 70px;
  }
}

@media (max-width: 767px) {
  .l-case {
    margin-top: 0;
    padding: 0 0 0 8.66667vw;
  }
}

.l-case__set {
  position: relative;
  margin-top: 6.94444vw;
}

.l-case__set:first-child {
  margin-top: 0;
}

@media (max-width: 1260px) {
  .l-case__set {
    margin-top: 80px;
  }
}

@media (max-width: 767px) {
  .l-case__set {
    margin-top: 36vw;
  }
}

.l-case__set__descript {
  position: relative;
  float: left;
  width: 27.77778vw;
  height: 13.54167vw;
  padding-top: 10.06944vw;
}

@media (max-width: 1260px) {
  .l-case__set__descript {
    width: 350px;
    height: 170px;
    padding-top: 127px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript {
    float: none;
    width: auto;
    height: 53.33333vw;
    padding-top: 30.66667vw;
  }
}

.l-case__set__descript::before {
  position: absolute;
  z-index: 10;
  bottom: 0;
  left: 0;
  display: block;
  width: 33.33333vw;
  height: 0.41667vw;
  content: '';
  background-color: #8190a7;
}

@media (max-width: 1260px) {
  .l-case__set__descript::before {
    width: 420px;
    height: 6px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript::before {
    bottom: 0;
    left: 0;
    width: 91.33333vw;
    height: 1.06667vw;
  }
}

.l-case__set__descript__sub {
  font-family: 'js';
  font-size: 0.97222vw;
  font-weight: 500;
}

@media (max-width: 1260px) {
  .l-case__set__descript__sub {
    font-size: 12px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript__sub {
    font-size: 2.8vw;
  }
}

.l-case__set__descript__sub__num {
  font-family: 'fm';
  font-size: 1.38889vw;
  font-weight: 300;
  padding-left: 0.69444vw;
}

@media (max-width: 1260px) {
  .l-case__set__descript__sub__num {
    font-size: 17px;
    padding-left: 8px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript__sub__num {
    font-size: 4vw;
    padding-left: 2.4vw;
  }
}

.l-case__set__descript__title {
  font-size: 1.38889vw;
  font-weight: bold;
}

@media (max-width: 1260px) {
  .l-case__set__descript__title {
    font-size: 17px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript__title {
    font-size: 4vw;
  }
}

body.android .l-case__set__descript__title {
  font-weight: 500;
}

.l-case__set__descript__family {
  font-size: 0.83333vw;
  font-weight: bold;
  margin-top: 1.38889vw;
  color: #333;
}

@media (max-width: 1260px) {
  .l-case__set__descript__family {
    font-size: 10px;
    margin-top: 17px;
  }
}

@media (max-width: 767px) {
  .l-case__set__descript__family {
    font-size: 3.2vw;
    margin-top: 2.66667vw;
  }
}

body.android .l-case__set__descript__family {
  font-weight: 300;
}

.l-case__set__pic, .l-case__set__pic--1, .l-case__set__pic--2, .l-case__set__pic--3, .l-case__set__pic--4 {
  position: relative;
  display: block;
  float: left;
  width: 55.55556vw;
  height: 23.61111vw;
  background-repeat: no-repeat;
  background-size: contain;
}

@media (max-width: 1260px) {
  .l-case__set__pic, .l-case__set__pic--1, .l-case__set__pic--2, .l-case__set__pic--3, .l-case__set__pic--4 {
    width: 700px;
    height: 297px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic, .l-case__set__pic--1, .l-case__set__pic--2, .l-case__set__pic--3, .l-case__set__pic--4 {
    position: absolute;
    top: -22.66667vw;
    float: none;
    width: 91.33333vw;
    height: 45.33333vw;
  }
}

.l-case__set__pic--1 {
  background-image: url(/spcontent/tomobataraki/images/case/pic_case01.jpg);
}

@media (max-width: 767px) {
  .l-case__set__pic--1 {
    background-image: url(/spcontent/tomobataraki/images/case/pic_case01_sp.jpg);
  }
}

.l-case__set__pic--1::before {
  position: absolute;
  top: -1.38889vw;
  display: block;
  width: 48.61111vw;
  height: 1.38889vw;
  content: '';
  background-color: #8190a7;
}

@media (max-width: 1260px) {
  .l-case__set__pic--1::before {
    top: -17px;
    width: 612px;
    height: 17px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic--1::before {
    top: -2.66667vw;
    width: 91.33333vw;
    height: 2.66667vw;
  }
}

.l-case__set__pic--1::after {
  position: absolute;
  top: -1.38889vw;
  left: -1.38889vw;
  display: block;
  width: 1.38889vw;
  height: 18.05556vw;
  content: '';
  background-color: #8190a7;
}

@media (max-width: 1260px) {
  .l-case__set__pic--1::after {
    top: -17px;
    left: -17px;
    width: 17px;
    height: 227px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic--1::after {
    top: -2.66667vw;
    left: -2.66667vw;
    width: 2.66667vw;
    height: 34.66667vw;
  }
}

.l-case__set__pic--2 {
  background-image: url(/spcontent/tomobataraki/images/case/pic_case02.jpg);
}

@media (max-width: 767px) {
  .l-case__set__pic--2 {
    background-image: url(/spcontent/tomobataraki/images/case/pic_case02_sp.jpg);
  }
}

.l-case__set__pic--3 {
  background-image: url(/spcontent/tomobataraki/images/case/pic_case03.jpg);
}

@media (max-width: 767px) {
  .l-case__set__pic--3 {
    background-image: url(/spcontent/tomobataraki/images/case/pic_case03_sp.jpg);
  }
}

.l-case__set__pic--3::before {
  position: absolute;
  top: -1.38889vw;
  display: block;
  width: 48.61111vw;
  height: 1.38889vw;
  content: '';
  background-color: #8190a7;
}

@media (max-width: 1260px) {
  .l-case__set__pic--3::before {
    top: -17px;
    width: 612px;
    height: 17px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic--3::before {
    top: -2.66667vw;
    width: 91.33333vw;
    height: 2.66667vw;
  }
}

.l-case__set__pic--3::after {
  position: absolute;
  top: -1.38889vw;
  left: -1.38889vw;
  display: block;
  width: 1.38889vw;
  height: 18.05556vw;
  content: '';
  background-color: #8190a7;
}

@media (max-width: 1260px) {
  .l-case__set__pic--3::after {
    top: -17px;
    left: -17px;
    width: 17px;
    height: 227px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic--3::after {
    top: -2.66667vw;
    left: -2.66667vw;
    width: 2.66667vw;
    height: 34.66667vw;
  }
}

.l-case__set__pic--4 {
  background-image: url(/spcontent/tomobataraki/images/case/pic_case04.jpg);
}

@media (max-width: 767px) {
  .l-case__set__pic--4 {
    background-image: url(/spcontent/tomobataraki/images/case/pic_case04_sp.jpg);
  }
}

.l-case__set__pic__btn {
  position: absolute;
  right: 0;
  bottom: 0;
}

@media (max-width: 767px) {
  .l-case__set__pic__btn {
    bottom: -52vw;
    left: 0;
  }
}

.l-case__set__pic__btn > span {
  width: 220px;
  height: 50px;
  padding-top: 14px;
  color: #fff;
  background-color: #000;
}

@media (max-width: 1260px) {
  .l-case__set__pic__btn > span {
    width: 192px;
    height: 44px;
    padding-top: 12px;
  }
}

@media (max-width: 767px) {
  .l-case__set__pic__btn > span {
    width: 44vw;
    height: 10vw;
    padding-top: 2.13333vw;
  }
}

body.pc .l-case__set:hover .l-case__set__pic__btn .btnWindow {
  padding-left: 0.69444vw;
}

@media (max-width: 767px) {
  body.pc .l-case__set:hover .l-case__set__pic__btn .btnWindow {
    padding-left: 0;
  }
}

body.pc .l-case__set:hover .l-case__set__pic__btn .btnWindow::before {
  right: 1.73611vw;
  opacity: 1;
}

@media (max-width: 767px) {
  body.pc .l-case__set:hover .l-case__set__pic__btn .btnWindow::before {
    right: 4vw;
  }
}

.l-case .btnWindow {
  font-size: 14px;
  font-weight: bold;
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-transition: padding 0.3s ease-out;
  transition: padding 0.3s ease-out;
  text-align: center;
  text-decoration: none;
}

@media (max-width: 1260px) {
  .l-case .btnWindow {
    font-size: 12px;
  }
}

@media (max-width: 767px) {
  .l-case .btnWindow {
    font-size: 3.46667vw;
  }
}

.l-case .btnWindow::before {
  position: absolute;
  top: 50%;
  right: 2.08333vw;
  display: block;
  width: 0.83333vw;
  height: 0.625vw;
  margin-top: -0.34722vw;
  content: '';
  -webkit-transition: right 0.3s ease-out;
  transition: right 0.3s ease-out;
  opacity: 0;
  background: url(/spcontent/tomobataraki/images/icon_window02.png) no-repeat;
  background-size: contain;
}

@media (max-width: 1260px) {
  .l-case .btnWindow::before {
    right: 26px;
    width: 12px;
    height: 9px;
    margin-top: -5px;
  }
}

@media (max-width: 767px) {
  .l-case .btnWindow::before {
    right: 4vw;
    width: 3.2vw;
    height: 2.4vw;
    margin-top: -1.2vw;
    opacity: 1;
  }
}
