@charset "utf-8";

/* home slider */

.hero-slider {
  position: relative;
  width: 100%;
  height: min(72vw, 760px);
  min-height: 600px;
  overflow: hidden;
}

.hero-slider__swiper,
.hero-slider__swiper .swiper-wrapper,
.hero-slider__swiper .swiper-slide {
  width: 100%;
  height: 100%;
}

.hero-slider__swiper .swiper-wrapper {
  transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
}

.hero-slider__swiper .swiper-slide {
  position: relative;
  overflow: hidden;
}

.hero-slider__swiper .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* 画像を少し暗くする場合 */
.hero-slider__swiper .swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

/* 固定テキスト */
.hero-slider__content {
  position: absolute;
  z-index: 5;
  top: 50%;
  left: clamp(2rem, 9vw, 12rem);
  transform: translateY(-50%);
  color: #fff;
  pointer-events: none;
}

.hero-slider__sub {
  margin: 0 0 1.5rem;
  font-size: clamp(1.1rem, 1.6vw, 1.8rem);
  letter-spacing: 0.1em;
  font-weight: 600;
}

.hero-slider__title {
  margin: 0 0 1rem;
  font-size: clamp(3.2rem, 7vw, 7rem);
  line-height: 1.15;
  letter-spacing: 0.04em;
  font-family: var(--ff-en);
}

@media screen and (max-width: 768px) {
  .hero-slider {
    height: 75vh;
    min-height: 580px;
  }

  .hero-slider__content {
    top: auto;
    right: auto;
    bottom: 4rem;
    left: 2rem;
    transform: none;
  }

  .hero-slider__title {
    font-size: clamp(3.5rem, 10vw, 4.8rem);
  }
}

/* home about */

.home-about {
	background: var(--color-blue);
	color: #fff;
	overflow: hidden;
}
.home-about .inner {
	padding: 7rem 0 5rem;
}
.home-about h2 {
	letter-spacing: 0.1em;
	margin-bottom: 5rem;
}
.home-about h2 > span{
	display: block;
	margin-bottom: 1.8rem;
}
.home-about h3 {
    font-family: var(--ff-en);
    font-size: 1.5rem;
    margin: 0 0 1rem;
    line-height: 1;
    letter-spacing: 0.1em;
}
.home-about h3 + p {
    font-size: 1.2rem;
    line-height: 2;
    margin: 0 0 2rem;
    letter-spacing: 0.1em;
}
.home-about__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.home-about__content .about-ttl {
	flex-basis: 16%;
	white-space: nowrap;
}
.home-about__content .about-ttl img {
	width: 60%;
	display: block;
	margin-bottom: 0.5rem;
}
.home-about__content .about-pic {
	flex-basis: 80%;
}

@media screen and (max-width: 768px) {

	.home-about .inner {
		padding: 4rem 0 2rem;
	}
	.home-about h2 {
		font-size: 1.3rem;
		line-height: 1.6;
	}
	.home-about__content {
		flex-direction: column;
		margin: 3rem 0;
	}
	.home-about__content .about-ttl {
		text-align: center;
	}
	.home-about__content .about-ttl img {
	    width: 20%;
		margin: 0 auto 0.5rem;
	}
	.home-about__content .about-ttl strong {
		font-size: 1.8rem;
	}	
	.home-about h3 + p {
		font-size: 1rem;
	}
	
}


/* home service */

.home-service {
	position: relative;
}
.home-service:before {
	content: "";
	display: block;
	width: 80%;
	height: 100%;
	background: var(--color-gray);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}
.home-service .inner {
	padding: 8rem 0 0;
}

.home-service__content {
	display: flex;
	justify-content: space-between;
}
.home-service__txt {
	flex-basis: 30%;
	padding: 0 0 6rem 0;
}
.home-service__txt .txt {
	margin-bottom: 3rem;
}
.home-service .home-page__menu {
	flex-basis: 60%;
	background: #fff;
	padding: 5rem 0 5rem 4rem;
}
.home-page__menu ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.home-page__menu ul li {
	flex-basis: 47%;
	padding: 2rem 0;
	border-bottom: 1px solid #ddd;
	
}
.home-page__menu ul li a {
	text-decoration: none;
	color: var(--color-main) !important;
	font-weight: 600;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 0.5rem;
	position: relative;
	transition: 0.5s;
}
.home-page__menu ul li a:after {
	content: "";
	display: block;
	width: 0.7rem;
	height: 0.7rem;
	background: url(../images/arrow-blue.svg) no-repeat center center / contain;
	margin-left: 0.5rem;
	transition: 0.5s;
}
.home-page__menu ul li a:hover {
	color: var(--color-blue) !important;
}
.home-page__menu ul li a:hover:after {
	transform: translateX(8px);
}

@media screen and (max-width: 768px) {
	.home-service:before {
		width: 100%;
	}
	.home-service .inner {
    	padding: 4rem 0;
	}
	.home-service__content {
		flex-direction: column;
		margin: 0 0 3rem;
	}
	.home-service .home-page__menu {
	    padding: 3rem 2rem;
	}
	.home-page__menu ul {
		flex-direction: column;
	}
	.home-service__txt {
	    padding: 0;
	}
	
}



/* home client */

.home-client .inner {
	padding: 5rem 0;
}
.home-client h2 {
	text-align: center;
}
.home-client .txt-lead {
	text-align: center;
	margin-bottom: 3rem;
}
.home-client h3 {
	text-align: center;
	font-size: 1.35rem;
	width: 40%;
	margin: 0 auto 1rem;
	padding: 0.5rem;
	background: var(--color-blue_u);
	color: var(--color-blue);
}
.home-client .txt-num {
	text-align: center;	
	margin: 0 0 3rem;
	font-weight: 600;
	font-size: 1.35rem;
	color: var(--color-blue);
}
.home-client .txt-num strong {
	font-size: 9rem;
	line-height: 1;
	font-weight: 600;
}
.home-client .txt-num .txt-time {
	font-size: 0.9rem;
}
.home-client__content {
	margin-bottom: 4rem;
}
.home-client__content ul {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}
.home-client__content ul li {
	flex-basis: 17%;
	margin: 0 0 1.5rem;
}
.home-client__content ul li a {
	display: block;
	text-align: center;
}
.home-client__content ul li a img {
	width: 100%;
	height: 70px;
	object-fit: contain;
}

@media screen and (max-width: 768px) {
	
	.home-client h2,
	.home-client .txt-lead {
		text-align: left;
	}
	.home-client h3 {
		width: fit-content;
		font-size: 1.15rem;
	}
	.home-client__content ul {
		justify-content: flex-start;
		gap: 0 5%;
	}
	.home-client__content ul li {
		flex-basis: 30%;
	}
}



/*  home product  */
.home-product {
	background: var(--color-blue_u);
}
.home-product .inner {
	padding: 7rem 0;
}
.home-product .product-lead {
	margin-bottom: 3rem;
}
.home-product__content {
	margin-bottom: 3rem;
}

@media screen and (max-width: 768px) {

	.home-product .inner {
    	padding: 4rem 0;
	}
	
}




/* home case */
/* home seminar */

.home-case .inner {
	padding: 5rem 0;
}
.home-seminar .inner {
	padding: 0 0 5rem;
}

.home-list__title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 3rem;
}
.home-list__title h2 {
	margin: 0;
}
.home-list__title p {
	margin: 0;
}
.home-list__content ul {
	display: flex;
	gap: 0 4%;
}
.home-list__content ul li {
	flex-basis: 22%;
}
.home-list__content ul li a {
	text-decoration: none;
}
.home-list__content p {
	margin: 0;
}
.home-list__content .list-pic {
	margin-bottom: 1rem;
}
.home-list__content .list-pic img {
	border-radius: 0.5rem;
}
.home-list__content .list-txt {
	font-size: 0.8rem;
	color: var(--color-main);
}
.home-list__content a:hover .list-txt {
	color: var(--color-blue);
}

@media screen and (max-width: 768px) {
	
	.home-list__content ul	{
		flex-direction: column;
	}
	.home-list__content ul li {
		margin-bottom: 2rem;
	}
	
}


/*  home news  */

.home-news {
	background: var(--color-gray);
}
.home-news .inner {
	padding: 5rem 0;
}
.page-news__content {
	display: flex;
	justify-content: space-between;
	margin: 0 0 4rem;
	gap: 0 10%;
}
@media screen and (max-width: 768px) {
	
	.page-news__content {
		flex-direction: column;
	}
	
}



/*  home company  */

.home-company .inner {
	padding: 7rem 0 10rem;
}
.home-company__content {
	display: flex;
	justify-content: space-between;
}
.home-company__content .company-pic {
	flex-basis: 40%;
}
.home-company__content .company-pic img {
	aspect-ratio: 3 / 2;
	width: 100%;
	object-fit: cover;
	border-radius: 1rem;
}
.home-company__content .company-txt {
	flex-basis: 50%;
}
.home-company__content .home-page__menu a:before {
	content: "";
    display: block;
    width: 1.3rem;
    height: 1.3rem;
    border: 1.5px solid var(--color-blue);
    border-radius: 50%;
    position: absolute;
    right: 0;
	transition: 0.5s;
}	
.home-company__content .home-page__menu a:after {
    width: 0.5rem;
    height: 0.5rem;
}
.home-company__content .home-page__menu a:hover:before {
	background: var(--color-blue);
}
.home-company__content .home-page__menu a:hover:after {
	transform: translatex(0);
	background: url(../images/arrow-white.svg) no-repeat center center / contain;
}

@media screen and (max-width: 768px) {

	.home-company .inner {
		padding: 4rem 0 7rem;
	}	
	.home-company__content {
		flex-direction: column-reverse;
	}
	.home-company__content .company-txt {
		margin: 0 0 3rem;
	}
	.home-company .home-page__menu ul {
		flex-direction: row;
	}

}