@charset "utf-8";
/* CSS Document */

/*==============================*/
/* mainVisual */
/*==============================*/
div.mainVisual{
	margin-bottom: 120px;
	background: #06BCF0;
	padding-top: 88px;
	padding-left: calc( calc( 100% - 1120px ) / 2 );
    padding-right: calc( calc( 100% - 1120px ) / 2 );
	padding-bottom: 0px;
}
	/* ======= PC：個別設定 =======*/
	@media (max-width: 1120px) {
		div.mainVisual{
			padding-left: 24px;
    		padding-right: 24px;
		}
	}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual{
			margin-bottom: 160px;
			padding-top: 64px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual{
			margin-bottom: 120px;
			padding-top: 48px;
			padding-left: 0px;
    		padding-right: 0px;
		}
	}


/*---------------------------------
   Content
---------------------------------*/
div.mainVisual div.visualContent{
	display: flex;
	margin-bottom: -72px;
	color: #fff;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent{
			position: relative;
			flex-direction: column-reverse;
			margin-bottom: 0px;
			color: #fff;
		}
	}

/*-- 
------------------------- */
div.mainVisual div.visualContent div{
	width: 584px;
}
div.mainVisual div.visualContent div h1{
	margin-bottom: 24px;
	font-size: 64px;
	font-weight: 600;
	line-height: 1.25em;
}

div.mainVisual div.visualContent div h2{
	margin-bottom: 32px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual div.visualContent div{
			width: 436px;
		}
		div.mainVisual div.visualContent div h1{
			margin-bottom: 24px;
			font-size: 52px;
		}
		div.mainVisual div.visualContent div h2{
			margin-bottom: 32px;
			font-size: 24px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent div{ width: 100%; padding: 0 20px;}
		div.mainVisual div.visualContent div h1{
			text-align: center;
			margin-bottom: 280px;
			font-size: 42px;
		}
		div.mainVisual div.visualContent div h2{
			text-align: center;
			margin-bottom: 20px;
			font-size: 19px;
		}
		div.mainVisual div.visualContent div p{
			font-size: 14px;
		}

	}


/*-- 
------------------------- */
div.mainVisual div.visualContent figure{ flex: 1;}
div.mainVisual div.visualContent figure img{ width: 100%;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual div.visualContent figure{ margin-left: 20px;}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent figure{
			position: absolute; top: 136px; left: 50%;
			width: min(296px,100%);
			margin-left: -148px;
		}
	}



/*---------------------------------
   
---------------------------------*/
div.mainVisual div.topContact{
	position: relative; bottom: -48px;
	padding: 32px 36px 24px 36px;
	background: #01ABDC;
	border-radius: 10px;
}
div.mainVisual div.topContact div{
	display: flex;
	width: 100%;
	gap: 16px;
	margin-bottom: 14px;
}
div.mainVisual div.topContact div dl{
	width: calc(calc(100% - 16px * 1) / 2);
}
div.mainVisual div.topContact div dl a{
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	width: 100%;
	padding: 16px 40px 16px 16px;
	background: #F4FD5B;
	border-radius: 8px;
}
div.mainVisual div.topContact div dl a:hover{ background: #E0EE28;}
div.mainVisual div.topContact div dl a::before{
	position: absolute; top: 50%; right: 16px;
	content: "";
	width: 34px;
	height: 34px;
	background: #D7E23E;
	border-radius: 50%;
	margin-top: -17px;
}
div.mainVisual div.topContact div dl a::after{
	position: absolute; top: 50%; right: 30px;
	content: "";
	width: 10px;
	height: 10px;
	border-top: 2px solid #F3FF4A;
	border-right: 2px solid #F3FF4A;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin-top: -5px;
}

div.mainVisual div.topContact div dl a dt{
	flex: 1;
	margin-left: 14px;
	font-size: 24px;
	font-weight: 600;
	color: #06BCF0;
	line-height: 1.4em;
}
div.mainVisual div.topContact div dl a dt small{
	display: block;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.618em;
}
div.mainVisual div.topContact div dl a dd{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: #03B4E9;
	border-radius: 8px;
}

	/* ======= TB：個別設定 =======*/
	@media screen and (min-width: 1025px) and (max-width: 1120px) {
		div.mainVisual div.topContact{ position: relative; bottom: -96px;}
	}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual div.topContact{
			position: relative; bottom: -96px;
			padding: 20px 20px 16px 20px;
		}
		div.mainVisual div.topContact div{
			gap: 12px;
			margin-bottom: 14px;
		}
		div.mainVisual div.topContact div dl{ width: calc(calc(100% - 12px * 1) / 2); }
		div.mainVisual div.topContact div dl a{
			width: 100%;
			padding: 14px 40px 14px 14px;
		}
		div.mainVisual div.topContact div dl a::before{
			position: absolute; top: 50%; right: 12px;
			width: 30px;
			height: 30px;
			margin-top: -15px;
		}
		div.mainVisual div.topContact div dl a::after{
			position: absolute; top: 50%; right: 25px;
			width: 8px;
			height: 8px;
			margin-top: -4px;
		}

		div.mainVisual div.topContact div dl a dt{
			margin-left: 10px;
			font-size: 20px;
		}
		div.mainVisual div.topContact div dl a dt small{ font-size: 14px;}
		div.mainVisual div.topContact div dl a dd{
			width: 48px;
			height: 48px;
			border-radius: 6px;
		}
		div.mainVisual div.topContact div dl:nth-child(1) a dd img{ width: 32px;}
		div.mainVisual div.topContact div dl:nth-child(2) a dd img{ width: 28px;}
	}
	/* ======= TB：個別設定 =======*/
	@media screen and (min-width: 768px) and (max-width: 880px) {
		div.mainVisual div.topContact div{
			flex-direction: column;
			gap: 10px;
		}
		div.mainVisual div.topContact div dl{ width: 100%;}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.topContact{
			position: relative; bottom: -48px;
			padding: 24px 20px 28px 20px;
			border-radius: 0;
		}
		div.mainVisual div.topContact div{
			flex-direction: column;
			width: 100%;
			gap: 12px;
			margin-bottom: 24px;
		}
		div.mainVisual div.topContact div dl{ width: 100%;}
		
		div.mainVisual div.topContact div dl a{
			display: flex;
			align-items: center;
			flex-direction: row-reverse;
			width: 100%;
			padding: 12px 38px 14px 10px;
		}
		div.mainVisual div.topContact div dl a::before{
			position: absolute; top: 50%; right: 8px;
			width: 28px;
			height: 28px;
			margin-top: -14px;
		}
		div.mainVisual div.topContact div dl a::after{
			position: absolute; top: 50%; right: 20px;
			width: 8px;
			height: 8px;
			margin-top: -4px;
		}

		div.mainVisual div.topContact div dl a dt{
			margin-left: 8px;
			font-size: 18px;
		}
		div.mainVisual div.topContact div dl a dt small{
			margin-top: 2px;
			font-size: 13px;
			line-height: 1.3em;
		}
		div.mainVisual div.topContact div dl a dd{
			width: 44px;
			height: 44px;
		}
		div.mainVisual div.topContact div dl:nth-child(1) a dd img{ width: 28px;}
		div.mainVisual div.topContact div dl:nth-child(2) a dd img{ width: 24px;}
	}


/*-- 
------------------------- */
div.mainVisual div.topContact > dl{
	display: flex;
	justify-content: center;
	align-items: center;
}
div.mainVisual div.topContact > dl dt{
	position: relative;
	margin-right: 20px;
	padding-left: 68px;
	color: #fff!important;
	font-size: 22px;
	line-height: 1.3em;
}
div.mainVisual div.topContact > dl dt::before{
	position: absolute; top: 50%; left: 0;
	content: "";
	width: 56px;
	height: 56px;
	background: url("/common/img/top/tel-image.jpg");
	background-size: 100%;
	border-radius: 50%;
	border: 2px solid #F4FD5B;
	margin-top: -28px;
}
div.mainVisual div.topContact > dl dd a{
	display: flex;
	align-items: center;
	color: #F4FD5B;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.2em;
}
div.mainVisual div.topContact > dl dd a:hover{ opacity: 0.8;}
div.mainVisual div.topContact > dl dd a small{
	display: inline-block;
	margin-top: 2px;
	margin-left: 8px;
	color: #fff;
	font-size: 19px;
	font-weight: 400;
	line-height: 1.2em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual div.topContact > dl dt{
			margin-right: 16px;
			padding-left: 60px;
			font-size: 17px;
		}
		div.mainVisual div.topContact > dl dt::before{
			width: 48px;
			height: 48px;
			margin-top: -24px;
		}
		div.mainVisual div.topContact > dl dd a{ font-size: 40px;}
		div.mainVisual div.topContact > dl dd a small{ font-size: 15px;}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.topContact > dl{
			flex-direction: column;
		}
		div.mainVisual div.topContact > dl dt{
			margin-right: 0px;
			margin-bottom: 8px;
			padding-left: 56px;
			font-size: 20px;
		}
		div.mainVisual div.topContact > dl dt::before{
			position: absolute; top: 50%; left: 0;
			width: 44px;
			height: 44px;
			margin-top: -22px;
		}
		div.mainVisual div.topContact > dl dd a{
			flex-direction: column;
			font-size: 36px;
		}
		div.mainVisual div.topContact > dl dd a small{
			display: block;
			margin-top: 1px;
			margin-left: 0px;
			font-size: 17px;
		}
	}



/*==============================*/
/* title */
/*==============================*/
.topTitle{
	margin-bottom: 40px;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.414em;
	text-align: center;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		.topTitle{
			margin-bottom: 32px;
			font-size: 26px;
		}
	}


/*==============================*/
/* btn */
/*==============================*/
.topBtn a{
	position: relative;
	display: inline-flex;
    align-items: center;
    justify-content: center;
	max-width: 376px;
	width: 100%;
    gap: 8px;
    padding: 14px 8px 14px 0px;
    background: #F3FF4A;
	color: #00abdc;
	font-size: 19px;
    border-radius: 200px;
    box-sizing: border-box;
}
.topBtn a::before{
	position: absolute; top: 50%; right: 10px;
	content: "";
	width: 34px;
	height: 34px;
	background: #D7E23E;
	border-radius: 50%;
	margin-top: -17px;
}
.topBtn a::after{
	position: absolute; top: 50%; right: 24px;
	content: "";
	width: 10px;
	height: 10px;
	border-top: 2px solid #F3FF4A;
	border-right: 2px solid #F3FF4A;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin-top: -5px;
}

.topBtn a:hover{ background: #DFED26;}



/*==============================*/
/* 経理アシスタントとは？ */
/*==============================*/
.marquee {
  overflow: hidden;
  width: 100%;
}

.marquee__track {
  display: flex;
  width: max-content;
  animation: marquee 60s linear infinite;
}

.marquee__track img {
  display: block;
  height: 160px;          /* 好きな高さに */
  width: auto;
  flex-shrink: 0;
}

/* “2枚分のうち1枚分”を移動する */
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ユーザーが「動き苦手」設定なら止める */
@media (prefers-reduced-motion: reduce) {
  .marquee__track { animation: none; }
}




/*==============================*/
/* 経理アシスタントとは？ */
/*==============================*/
div.about{
	display: flex;
	flex-wrap: wrap;
	gap: 36px;
}
div.about dl{
	position: relative;
	display: flex;
	flex-direction: column;
	width: calc((100% - 36px * 2) / 3);
	padding: 152px 28px 32px 28px;
	background: #EFFAFD;
	border-radius: 8px;
}
div.about dl dt{
	margin-bottom: 20px;
	color: #06BCF0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5em;
	text-align: center;
}
div.about dl dd:nth-child(2){
	font-size: 14px;
	text-align: justify;
	text-align-last: left;
}
div.about dl dd:nth-child(3){
	position: absolute; top: -24px; left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 160px;
	height: 160px;
	background: #06BCF0;
	border-radius: 50%;
	margin-left: -80px;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.about{
			gap: 48px 28px;
		}
		div.about dl{
			width: calc((100% - 28px * 1) / 2);
			padding: 144px 28px 32px 28px;
			background: #EFFAFD;
			border-radius: 8px;
		}
		div.about dl dt{
			margin-bottom: 18px;
		}
		div.about dl dd:nth-child(3){
			position: absolute; top: -24px; left: 50%;
			width: 144px;
			height: 144px;
			margin-left: -72px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.about{
			flex-direction: column;
			gap: 36px;
		}
		div.about dl{
			width: 100%;
			padding: 136px 28px 32px 28px;
		}
		div.about dl dt{
			margin-bottom: 16px;
			font-size: 20px;
			text-align: center;
		}
		div.about dl dd:nth-child(3){
			position: absolute; top: -24px; left: 50%;
			width: 136px;
			height: 136px;
			margin-left: -68px;
		}
	}


/*==============================*/
/* 解決すること */
/*==============================*/
div.solutionWrap{
	counter-reset: solution;
	overflow: hidden;
}

div.solution:not(:last-child){ margin-bottom: 64px;}

div.solution{
	display: flex;
	margin-bottom: 40px;
}

div.solution:nth-child(even) { flex-direction: row-reverse; -webkit-flex-direction: row-reverse;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.solution:not(:last-child){ margin-bottom: 48px;}
		div.solution{
			flex-direction: column;
			margin-bottom: 40px;
		}
		div.solution:nth-child(even) { flex-direction: column;}
	}


/*---------------------------------
   
---------------------------------*/
div.solution figure{
	position: relative;
	width: 520px;
	z-index: 998;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.solution figure{
			width: 100%;
			margin-bottom: 20px;
		}
	}


/*---------------------------------
   
---------------------------------*/
div.solution > div{ flex: 1;}

div.solution:nth-child(odd) > div{ margin-left: 56px;}
div.solution:nth-child(even) > div{ margin-right: 56px;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.solution:nth-child(odd) > div{ margin-left: 0px;}
		div.solution:nth-child(even) > div{ margin-right: 0px;}
	}


/*-- 
------------------------- */
div.solution div h3{
	position: relative;
	margin-bottom: 24px;
	padding-top: 40px;
	color: #00ABDC;
	font-size: 29px;
	font-weight: 600;
	line-height: 1.58em;
}
div.solution h3::before{
	position: absolute; top: 0; left: 0;
	counter-increment: solution;
	content: "Point " counter(solution) ;
	color: #8CE3FD;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.01em;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.solution div h3{
			margin-bottom: 16px;
			padding-top: 40px;
			font-size: 24px;
			line-height: 1.414em;
			text-align: center;
		}
		div.solution h3::before{
			position: absolute; top: 0; left: 50%;;
			font-size: 20px;
			margin-left: -32px;
		}
	}


/*-- 
------------------------- */
div.solution div div{
	position: relative;
	padding: 32px 0;
	z-index: 99;
	background: #fff;
}
div.solution div div::before{
	content: "";
	width: calc((100vw - 1120px) / 2);
	height: 100%;
	background: #fff;
	z-index: -1;
}
div.solution:nth-child(odd) div div::before{ position: absolute; top: 0; right: calc(-1 * ((100vw - 1120px) / 2));}
div.solution:nth-child(even) div div::before{ position: absolute; top: 0; left: calc(-1 * ((100vw - 1120px) / 2)); }

div.solution div div::after{
	content: "";
	width: 20%;
	height: 100%;
	background: #fff;
}
div.solution:nth-child(odd) div div::after{ position: absolute; top: 0; left: -20%; }
div.solution:nth-child(even) div div::after{ position: absolute; top: 0; right: -20%;}

div.solution div p{  position: relative; font-size: 15px;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.solution div div{
			padding: 24px;
			border-radius: 5px;
		}
		div.solution div div::before{ display: none;}
		div.solution div div::after{ display: none;}

		div.solution div p{ 
			font-size: 14px;
			text-align: justify;
			text-align-last: left;
		}
	}


/*==============================*/
/* お客様の声 */
/*==============================*/
div.topCasestudy-slide div.topCasestudy{
	position: relative;
	margin: 0 16px;
	padding-bottom: 10px;
	height: auto!important;
}

div.topCasestudy a{
	display: block;
	height: 100%;
	box-shadow: 1px 2px 6px 0px rgba(153,153,153,0.3);
	border-radius: 8px;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}


/*---------------------------------
   tmb
---------------------------------*/
div.topCasestudy figure img{ border-radius: 8px 8px 0 0 ;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}


/*---------------------------------
   Content
---------------------------------*/
div.topCasestudy div{ padding: 22px 24px 24px 24px;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}


/*-- 
------------------------- */
div.topCasestudy div h3{
	margin-bottom: 8px;
	text-align: center;
}
div.topCasestudy div h3 img{
	display: inline-block;
	height: 40px;
}
div.topCasestudy div h3 small{
	display: block;
	margin-top: 4px;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}

/*-- 
------------------------- */
div.topCasestudy div h4{
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	margin-bottom: 16px;
	color: var(--themecolor);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.414em;
	text-align: justify;
	text-align-last: left;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}


/*-- 
------------------------- */
div.topCasestudy div ul li{
	background: #EFF2F4;
	border-radius: 200px;
	color: var(--themecolor);
	font-size: 14px;
	font-weight: 400;
	text-align: center;
}
div.topCasestudy div ul li:not(:last-child){ margin-bottom: 8px;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
	}



/*==============================*/
/* スライド設定 */
/*==============================*/

/*-- 上書き設定
------------------------- */
#slick-slider .slick-track{
	display: flex; display: -webkit-flex;
	margin: 0!important;
}

/*-- ページャー
------------------------- */
#slick-slider .slick-arrow {
	position: absolute; top: 50%;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	outline: none;
	z-index: 1;
	color: #fff;
	font-size: 0;
	transform: translateY(-50%);
	background-color: rgba(0,0,0,0.3);
	cursor: pointer;
}
#slick-slider .slick-arrow::before {
	position: absolute; top: 20px;
	content: '';
	display: block;
	width: 10px;
	height: 10px;
	border: 1px solid #fff;
	border-width: 3px 3px 0 0;
}

/*-- 次へ -- */
#slick-slider .slick-next { right: -12px;}
#slick-slider .slick-next::before {
	left: 14px;
	transform: translateY(-50%) rotate(45deg);
}

/*-- 前へ -- */
#slick-slider .slick-prev { left: -8px;}
#slick-slider .slick-prev::before {
	left: 16px;
	transform: translateY(-50%) rotate(-135deg);
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		#slick-slider .slick-arrow {
			position: absolute; top: 50%;
			width: 36px;
			height: 36px;
		}
		#slick-slider .slick-arrow::before {
			position: absolute; top: 18px;
			width: 9px;
			height: 9px;
			border-width: 2px 2px 0 0;
		}

		/*-- 次へ -- */
		#slick-slider .slick-next { right: -6px;}
		#slick-slider .slick-next::before { left: 12px;}

		/*-- 前へ -- */
		#slick-slider .slick-prev { left: -6px;}
		#slick-slider .slick-prev::before { left: 14px;}
	}