main .title p {
	font-size: 2.1rem;
}
main .visual {
  margin: 130px 0 20px;
}
main .visual .box,
main .visual .video-box {
  position: relative;
}
main .visual .slide-box {
	overflow: hidden;
}
main .visual .video-box video,
main .visual .title {
  min-width: 100%;
}
main .visual .video-box {
  width: 100%;
  padding: 28.125% 0;
  position: relative;
  z-index: -1;
  overflow: hidden;
}
main .visual .video-box::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
main .visual .video-box video {
  max-width: 100%;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
}
main .visual .swiper-slide-active .video-box {
	opacity: 1;
}
main .visual .title {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
main .visual .title span {
	font-family: "Merriweather", serif;
	font-style: italic;
}
main .visual .title h2 {
	transform: translateX(-10%);
}
main .visual .title h2 span {
	font-weight: 400;
}
main .visual .title h3 {
	transform: translateX(10%);
}
main .visual .title h3 span {
	font-weight: 900;
}
main .firm .title {
	row-gap: 40px;
}
main .firm .title h3 {
	font-weight: 600;
}
main .firm .more {
  justify-content: flex-end;
  margin: 65px 0 40px;
}
main .firm .item-box {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
	column-gap: 20px;
}
main .firm .item {
  text-align: center;
  padding: 80px 20px;
  position: relative;
}
main .firm .item::after {
  content: "";
  display: block;
  border: 1px solid transparent;
  background-image: linear-gradient(180deg, #090909 0%, rgba(9, 9, 9, 0) 100%), linear-gradient(180deg, #191919 0%, rgba(25, 25, 25, 0) 100%);
  background-origin: border-box;
  background-clip: content-box, border-box;
  z-index: -1;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
main .firm .item div * {
  font-family: var(--font-garamond);
}
main .firm .item span {
  font-size: 9.2rem;
}
main .firm .item sub,
main .firm .item sup {
  color: #666;
  margin-left: 20px;
}
main .firm .item sub {
  font-size: 3.2rem;
}
main .firm .item sup {
  display: inline-block;
  font-size: 6.4rem;
  vertical-align: top;
  transform: translateY(-10px);
}
main .firm .item p {
  font-size: 2.3rem;
  margin: 25px 0 0;
}
main .strategy .title {
  margin: 0 0 40px;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
}
main .strategy .item-box {
  margin: 80px 0 0;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
}
main .strategy .item .img {
  overflow: hidden;
}
main .strategy .item h5 {
  color: #111;
  font-size: 2.3rem;
  font-weight: 500;
  text-align: center;
  margin: 40px 0 0;
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s;
}
main .strategy .item.on h5 {
  opacity: 1;
  transform: translateY(0);
}
main .strategy .item.on:nth-child(1) .img::after {
  animation-delay: 0.1s;
}
main .strategy .item.on:nth-child(1) .img img {
  transition-delay: 1s;
}
main .strategy .item.on:nth-child(1) h5 {
  transition-delay: 1.3s;
}
main .strategy .item.on:nth-child(2) .img::after {
  animation-delay: 0.2s;
}
main .strategy .item.on:nth-child(2) .img img {
  transition-delay: 1.1s;
}
main .strategy .item.on:nth-child(2) h5 {
  transition-delay: 1.4s;
}
main .strategy .item.on:nth-child(3) .img::after {
  animation-delay: 0.3s;
}
main .strategy .item.on:nth-child(3) .img img {
  transition-delay: 1.2s;
}
main .strategy .item.on:nth-child(3) h5 {
  transition-delay: 1.5s;
}
main .portfolio .contents {
  align-items: flex-start;
}
main .portfolio .video-box {
  width: 27.907%;
  flex-shrink: 0;
  padding: 17.588% 0;
  position: relative;
  margin-left: auto;
  overflow: hidden;
}
main .portfolio .video-box video {
  height: 100%;
  position: absolute;
  top: 0;
  left: -49%;
  right: 0;
  bottom: auto;
}
main .portfolio .text {
	row-gap: 80px;
  margin: auto 0 60px 90px;
}
main .portfolio .text p {
	font-size: 2.1rem;
}
main .message .box {
  background-image: url("/img/main/bg_message.jpg");
  padding: 13.05% 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
main .message .column {
	row-gap: 60px;
}
main .message p {
  font-size: 2.6rem;
  font-weight: 500;
  text-align: center;
}