@charset "utf-8";
/* ページ全体に関わるCSSの設定 */
html *,
::before,
::after {
	box-sizing: border-box;
}

html {
	font-size: 14px;
	line-height: 2;
	scroll-behavior: smooth;
}
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-style: normal;
	letter-spacing: 0.1em;
	background-color: #FCFCFC;
	margin: 0;
}

p {
	margin: 0;
	padding: 0;
}

.full_bg {
	max-width: 1600px;
	width: 100%;
	margin: 0 auto;
}

.blue_bg {
	background-color: #EEFBFF;
}


/* おもなヘッダータグのフォント設定 */
h1, h2, h3, h4　{
	font-family: 'Noto Serif JP', serif;
	font-weight: normal;
	margin: 0;
	padding: 0;
}

h1 {
	font-size: 40px;
	line-height: 1.2;
	color: #003B71;
	padding-left: 50px;
	font-weight: 500;
}

h2 {
	font-size: 60px;
	line-height: 0.6;
	color: #005AAB;
}

h3 {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	color: #003B71;
	padding-bottom: 36px;
}

h4 {
	font-size: 18px;
	font-weight: 500;
	margin: 0px;
	line-height: 1.3;
	color: #000000;
}

/* ベースのリンクカラー */
a {
	color: #000000;
	text-decoration: none;
	padding: 3px;
}

/* レスポンシブイメージと画像下スペース防止 */
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;/* 画像下のスペースを消す */
	margin: 0;
}

/* リスト設定 */
ol {
	list-style: none;
	margin: 0; 
	padding: 0;
}

ul {
	list-style: none;
	padding-left: 20px;
}

ul li::before {
	position: relative;
	top: -3px;
	left: -15px;
	display: inline-block;
	width: 4px;
	height: 4px;
	content: '';
	border-radius: 100%;
	background: #000000;
}


/*** メイン ***/
/* header  */

.header_inner {
	height: 80px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	z-index: 10;
}

.header_logo {
	max-width: 610px;
	width: 40%;
	margin-top: 6%;
}

.header_nav {
	display: flex;
	height: 40px;
	max-width: 745px;
  width: 100%;
  margin: 0 35px 0 auto;
  justify-content: flex-end;
}

.header_nav_sp {
	display: none;
}

.header_nav_inner {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	border-right: 1px solid #707070;
	margin-right: 2%;
  width: 78%;
  font-size: 16px;
  font-weight: 500;
}

.header_nav_inner li {
	padding-right: 5%;
}

.header_nav img {
	width: 40px;
	margin-left: 20px;
}
/* /header  */

/* main visual */
.main_visual img {
	display: block;
	width: 74%;
	border-radius: 50px 0 0 50px;
	margin: 0 0 0 auto;
}

.main_visual_sp {
	display: none;
}

.main_visual_container {
	max-width: 1600px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	padding-bottom: 98px;
}

.main_visual_container h1 {
	position: absolute;
	top: 50%;
	left: 0%;
	transform: translate(0, -90px);
}

.sp_br {
	display: none;
}

.sub_catch {
	font-size: 22px;
}

/* /main visual */

/* message */
.message_bg {
	background-color: #EEFBFF;
  position: relative;
  z-index: -1;
}

.message_bg::before {
	background-image: url(assets/img/message_bg_top.jpg);
	background-position: top 0px left 0px;
    background-size: contain;
    background-repeat: no-repeat;
    z-index: -10;
    content: '';
    position: absolute;
    width: 100%;
    height: 1100px;
}

section {
	padding-top: 120px;
	max-width: 1080px;
	width: 100%;
}

.section_container {
	text-align: center;
	margin: 0 auto;
}

.sub_h2 {
	font-size: 12px;
	font-weight: bold;
}

.content {
	padding-top: 60px;
	text-align: left;
}

.message_content {
	display: flex;
	justify-content: space-between;
	gap: 70px;
}

.message_img {
	max-width: 407px;
	width: 100%;
}

.message_img img {
	border-radius: 10px;
} 

.message_name {
	display: flex;
	align-items: center;
  justify-content: center;
  gap: 8.5%;
}

.job_name {
	font-size: 18x;
}

.name {
	font-size: 20px;
}

.main_message {
	font-size: 16px;
	letter-spacing: 0.05em;
	line-height: 2;

}

/* /message */

/* service */
.service_grid {
	display: grid;
	row-gap: 50px;
	padding-bottom: 80px;
}

.service_item {
	display: flex;
}

.service_text {
	background-color: #fff;
	padding: 40px 0 0 40px;
	width: 60%;

}

.service_img {
	max-width: 640px;
	width: 100%;
}

.service_img img {
	border-radius: 0 10px 10px 0;
}

.service_item:nth-child(2) .service_img img {
	border-radius: 10px 0 0 10px;
}

.service_text h4::before {
	position: relative;
	bottom: -7px;
	left: 0px;
	margin-right: 15px;
	display: inline-block;
	width: 10px;
	height: 30px;
	content: '';
	background: #003B71;
}
/* /service */

/* works */
.works_title {
	font-family: 'Noto Serif JP', serif;
	font-size: 28px;
	font-weight: 700;
	color: #003B71;
	background-color: #F5F5F5;
	border: 2px solid #003B71;
	border-radius: 30px;
	text-align: center;
	height: 60px;
	width: 18%;
}

.works_title::before {
	content: 'CASE';
	position: relative;
	top: 0;
	left: 0;
	display: inline-block;
	font-size: 20px;
	padding-right: 10px;
}

.works_grid {
	display: grid;
	grid-template-columns: 17% 83%;
	margin: 20px 0 40px 0;
}

.label {
	font-size: 16px;
font-weight: 500;
	padding: 7px 0 7px 20px;
	border-bottom: 1px solid #C6C6C6;
}

.label::after {
	content: ' ';
	position: relative;
	top: -5px;
	left: 0;
	display: inline-block;
	width: 24px;
	height: 2px;
	background-color: #003B71;
	padding-right: 10px;
	margin: 0 25px 0 20px;
}

.works_content {
	padding: 7px 5px 7px 0;
	border-bottom: 1px solid #C6C6C6;
}
/* /works */

/* flow */
.flow_lead {
	text-align: center;
	margin: 0 auto 60px;
}

.flow_flex {
	display: flex;
	justify-content: center;
	align-items: center;
}

.flow_card {
	width: 200px;
	height: 234px;
	background-color: #FFFFFF;
	border: 2px solid #B2CDE6;
	position: relative;
	text-align: center;
	padding: 38px 20px 17px;
}

.step {
	background-color: #B2CDE6;
	width: 60px;
	height: 60px;
	border-radius: 100px;
	position: absolute;
	top: -50%;
    left: 50%;
    transform: translate(-50%,135%);
    border: 2px solid #FFFFFF;
    color: #003B71;
    font-weight: 700;
    text-align: center;
    line-height: 1;
    padding-top: 15px;
    font-size: 12px;
}

.step span {
	font-size: 15px;
}

.flow_img {
	margin: 0 auto 5px;
	color: #003B71;
	font-size: 12px;
	font-weight: 700;
}

.flow_img img {
	max-width: 60px;
	width: 100%;
}

.flow_text {
	font-size: 10px;
	line-height: 1.7;
	text-align: left;
}

.arrow {
	color: #003B71;
	font-size: 18px;
	padding: 0 20px;
}

/* /flow */

/* FQA */
.secondary_content {
	max-width: 860px;
	width: 100%;
	margin: 0 auto;
}
/* FQAパーツ */
.pageSubTitle2 {
  font-size: 18px;
  line-height: 1.7;
  font-weight: 500;
  color: #000000;
}
.contentText {
	font-size: 14px;
	line-height: 2;
	color: #000000;
}
.qa {
	padding-top: 180px;
	padding-bottom: 278px;
}
.qa__box {
	max-width: 1100px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}
.qa__box > dl > dt {
	background-color: #F5F5F5;
	display: flex;
	align-items: center;
	padding: 5px 30px;
	position: relative;
	border-left: 10px solid #003B71;
}
.qa__box > dl > dt .crossBar {
	width: 21px;
	height: 21px;
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
  cursor: pointer;
}
.qa__box > dl > dt .crossBar::before {
	content: "";
	display: inline-block;
	width: 4px;
	border-radius: 2px;
	height: 100%;
	background-color: #003B71;
	position: absolute;
	top: 0;
	left: 50%;
	transform-origin: center center; /* 中心を基準にtransform */
	transform: translateX(-50%) rotate(0deg);
	transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1);
}
.qa__box > dl > dt .crossBar::after {
	content: "";
	display: inline-block;
	width: 100%;
	height: 4px;
	border-radius: 2px;
	background-color: #003B71;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.qa__box > dl > dt > span {
	font-size: 30px;
	font-weight: 700;
	font-style: normal;
	color: #003B71;
	margin-right: 23px;
}

.qa__box > dl > dd {
	margin: 0;
	background-color: #fff;
	display: flex;
	align-items: flex-start;
	margin-bottom: 16px;
	padding: 0px 30px; /* paddingの上下を0にする */
	max-height: 0; /* max-heightを0にする、レスポンシブ対応 */
	overflow: hidden;  /* overflow: hidden;を付けるのがポイント */
	transition: all 0.8s cubic-bezier(0.19, 1, 0.22, 1);
}
.qa__box > dl > dd > span {
	font-size: 24px;
	font-weight: 700;
	color: #003B71;
	margin-right: 16px;
}


/* アニメーション後のスタイル */
.qa__box > dl > dd.is-open { /* heightとpaddingをアニメーション */
	max-height: 133px;
	padding: 30px 30px;
}
/* ＋ボタンのアニメーション */
.qa__box > dl > dt.is-open .crossBar::before {
	transform: translateX(-50%) rotate(90deg);  /* 90度回転 */
}

/* /FQA */

/* MEDIA */

.media_label {
	text-align: left;
	margin: 0 auto 30px;
}

.media_content iframe {
	width: 100%;
	height: calc(1080px*1.35);
}

/* /MEDIA */

/* contact */
.form {
  margin: 0 auto 80px;
  max-width: 860px;
}

.Form-Item {
  border-bottom: 1px solid #ddd;
  padding: 20px 0 20px 0;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 50px;
}

.Form-Item-Label {
  width: 100%;
  max-width: 300px;
  font-size: 16px;
  font-weight: 500;
  display: flex;
  justify-content: space-between;
}

.Form-Item-Label.isMsg {
  margin-top: 8px;
  margin-bottom: auto;
}

.Form-Item-Label-Required {
  border-radius: 5px;
  width: 52px;
  display: inline-block;
  text-align: center;
  background: #D43E47;
  color: #fff;
  font-size: 14px;
}
.Form-Item-Input {
  border: 1px solid #B5B5B5;
  padding-left: 1em;
  padding-right: 1em;
  height: 50px;
  flex: 1;
  width: 100%;
  background: #FFF;
  font-size: 14px;
}

.Form-Item-Textarea {
  border: 1px solid #B5B5B5;
  padding-left: 1em;
  padding-right: 1em;
  height: 160px;
  flex: 1;
  width: 100%;
  background: #FFF;
  font-size: 14px;
}

.Form-Btn {
  border-radius: 10px;
  margin: 50px auto 0;
  padding-top: 30px;
  padding-bottom: 30px;
  width: 400px;
  display: block;
  letter-spacing: 1.2em;
  background: #003B71;
  color: #fff;
  font-size: 18px;
  position: relative;
  cursor: pointer;
  border: 2px solid #003B71;
}
.Form-Btn:hover {
	opacity: 0.8;
	transition: 0.3s;
}
.Form-Btn:active {
	transform: translate(1px,1px);
	transition: 0.2s;
}

.Form-Btn[disabled] {
  background-color: #FCFCFC;
  border: 2px solid #003B71;
  color: #003B71;
  cursor: not-allowed; /* クリック不可のカーソルを表示 */
}

.Form-Btn i {
	text-align: right;
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 10%;
  transform: translate(0,-10px);
}

.privacy_policy {
  height: 208px;
  padding: 1.5em;
  border: 1px solid #B5B5B5;
  overflow-y: scroll;
  color: #333;
  margin-top: 35px;
}

.privacy_policy__box {
	margin: 2em 0 ;
}

.privacy_policy__box:first-child {
	margin: 0;
}
.privacy_policy__box ol li{
	list-style: decimal;
	list-style-position: inside;
}

.privacy_policy__checkbox {
	text-align: center;
  padding: 30px 0 0 0;
  font-size: 16px;
  font-weight: 500;
}
/* /contact */

/* footer */
.footer_container {
	margin: 0 auto;
	padding: 100px 0;
	text-align: center;
}

.footer_nav {
	font-size: 16px;
}

.footer_nav_inner {
	display: flex;
  align-items: center;
  gap: 40px;
  justify-content: center;
} 

.footer_logo {
	max-width: 474px;
	width: 100%;
	margin: 60px auto 50px;
}

.footer_sns {
	display: flex;
	gap: 20px;
	justify-content: center;
}

.footer_sns img {
	width: 40px;
}

#company_details {
	padding: 50px 0 0 0;

}

.copy_right {
	background-color: #003B71;
	color: #FFF;
	font-size: 12px;
	padding: 22px 0;
	text-align: center;
}
/* /footer */

/* thanks page */
.thanks_page {
	margin: 0 auto 100px;
	text-align: center;
}

.thanks_page a {
	display: inline-block;
	padding: 10px;
	margin: 20px 0;
}

/* /thanks page */

/*** TABLET ***/
@media(max-width:1080px){
	/*** ページ全体に関わること ***/
	h1 {
		font-size: 3vw;
		line-height: 1.2;
	}

	/*** header ***/
	header {
		border-bottom: 1px solid #003B71;
		position: sticky;
		top: 0;
		background-color: #FCFCFC;
		z-index: 10;
	}

	.header_inner {
		display: none;
	}

	.header_nav_sp {
		max-width: 1080px;
		padding: 0 10px 0 10px;
		height: 80px;
		display: flex;
  	justify-content: space-between;
  	align-items: center;
  	position: relative;
	}

	.header_logo_sp {
		display: block;
		max-width: 220px;
		width: 100%;
	}

	.hamburger-menu {
	  width: 50px;
	  height: 50px;
	  position: relative;
	  border: none;
	  background: transparent;
	  appearance: none;
	  padding: 0;
	  cursor: pointer;
	}
	.hamburger-menu__bar {
	  display: inline-block;
	  width: 50%;
	  height: 2px;
	  background: #003B71;
	  position: absolute;
	  left: 50%;
	  transform: translateX(-50%);
	  transition: .5s;
	}
	.hamburger-menu__bar:first-child {
	  top: 16px;
	}
	.hamburger-menu__bar:nth-child(2) {
	  top: 24px;
	}
	.hamburger-menu__bar:last-child {
	  top: 32px;
	}
	.hamburger-menu--open .hamburger-menu__bar {
	  top: 50%;
	}
	.hamburger-menu--open .hamburger-menu__bar:first-child {
	  transform: translateX(-50%) translateY(-50%) rotate(45deg);
	}
	.hamburger-menu--open .hamburger-menu__bar:last-child {
	  transform: translateX(-50%) translateY(-50%) rotate(-45deg);
	}
	.hamburger-menu--open .hamburger-menu__bar:nth-child(2) {
	  display: none;
	}
	.navigation {
	  display: none;
	  background: rgba(238,251,255,0.9);
	  position: absolute;
	  top: 80px;
	  left: 0px;
	  width: 100%;
	  z-index: 9999;
	  padding: 0 7.5%;
	}
	.navigation__list {
	  text-align: left;
	  list-style: none;
	  padding: 30px 0 0 0;
	  margin: 0;
	}
	.navigation__list-item a p {
		display: block;
	}

	.navigation__list-item {
	  border-bottom: solid 1px #15314D;
	  font-size: 14px;
	}
	.navigation__link {
	  color: #15314D;
	  font-weight: 700;
	  text-decoration: none;
	  display: block;
	  padding: 17px 0;
	  transition: .5s;
	  display: flex;
	  justify-content: space-between;
	  align-items: center;
	}
	@media (hover: hover) and (pointer: fine) {
	  .navigation__link:hover {
	    background:  rgba(252,252,252,0.7);
	  }
	}

	.navigation_sns {
		padding: 30px 0;
	}

	.navigation_sns a {
		display: inline-block;
		width: 40px;
		margin-right: 10px;
	}
	/*** /header ***/


	/*** main visual ***/

	.sub_catch {
    font-size: 1.8vw;
	}

	/*** /main visual ***/

	/*** media ***/

	.media_content iframe {
	width: 100%;
	height: calc(100vw*1.4);
	}

	/*** /media ***/

}


/*** /TABLET ***/

/*** SP ***/
@media(max-width:430px){
	/***  ページ全体に関わること   ****/
	html {
		font-size: 13px;
	}

	h1 {
		font-size: 8vw;
		line-height: 1.2;
	}

	h2 {
		font-size: 28px;
		line-height: 1.1;
	}

	h3 {
		font-size: 22px;
		line-height: 1;
		padding-bottom: 15px;
	}

	h4 {
		font-size: 15px;
	}

	/***  /ページ全体に関わること   ****/


	/*** header ***/
	.header_nav_sp {
		max-width: 430px;
		padding: 0 10px 0 10px;
		height: 56px;
		display: flex;
  	justify-content: space-between;
  	align-items: center;
  	position: relative;
	}

	.header_logo_sp {
		display: block;
		width: 45%;
	}
	.navigation {
	  top: 56px;
	}
	/*** /header ***/

	/*** main visual ***/
	.main_visual_container {
		width: 100%;
		padding-bottom: 70px;
		position: static;
	}

	.main_visual {
		display: none;
	}

	.main_visual_sp {
		display: block;
		border-radius: 20px 0 0 20px;
		max-width: 430px;
		width: 100%;
		margin: 11% 0 0 0;
	}

	.main_visual_container h1 {
		display: none;
		/*font-size: 32px;
		position: absolute;
    top: 352px;
    transform: none;
    padding: 0 0 0 29px;
    line-height: 1.6;*/
	}

	@media(max-width: 375px){
		.main_visual_container h1 {
			font-size: 29px;
			top: 325px;
		}
	}
	@media(max-width: 320px) {
		.main_visual_container h1 {
			font-size: 26px;
			top: 288px;
		}
	}

	.main_visual_container h1 p {
		display: inline; 
    box-decoration-break: clone;
		-webkit-box-decoration-break: clone;
		background-color: #FCFCFC;	
	}

	.sp_br {
		display: block;
	}

	.sub_catch {
		font-size: 3.1vw;
		letter-spacing: 0.07em;
	}
	/*** /main visual ***/

	/*** message ***/
	.content {
		padding-top: 30px;
	}

	.section_container {
		padding: 40px 29px 40px 29px;
	}

	.message_content {
		flex-direction: column;
		gap: 40px;
	}

	.message_img img {
		margin-bottom: 20px;
	}

	.main_message {
		font-size: 13px;
		line-height: 1.9;
		letter-spacing: 0.02em;
	}

	.message_name .job_name {
		font-size: 15px;
		font-weight: 400;
	}

	.message_name .name {
		font-size: 17px;
		font-weight: 500;
	}


	/*** /message ***/

	/*** service ***/
	.service_grid {
		padding-bottom: 0;
		row-gap: 40px ;
	}

	.service_item {
		flex-direction: column-reverse;
	}

	.service_item:nth-child(2) {
		flex-direction: column;

	}

	.service_text {
		width: 100%;
		padding: 10% 0 8% 5%;
	}

	.service_img img {
		border-radius: 20px 20px 0 0;
	}

	.service_item:nth-child(2) .service_img img {
	    border-radius: 20px 20px 0 0;
	}

	/*** /service ***/

	/*** works ***/
	.works_title {
		width: 120px;
		height: 40px;
		font-size: 24px;
		padding-bottom: 14px;
		line-height: 1.4;
		border: 1px solid #003B71;
	}

	.works_title::before {
		font-size: 18px;
	}

	section {
		padding: 40px 29px 0px 29px;
	}

	.works_grid {
		grid-template-columns: none;
		margin-top: 0px;
	}

	.section_container .content .works_grid:last-child {
		margin-bottom: 0;
	}

	.label {
    font-size: 14px;
    margin-top: 18px;
    padding: 7px 0 0 0;
    border: none;
	}

	.label::after {
		display: block;
		margin: 16px 25px 0 0;
	}

	.works_content {
    padding: 3px 0 10px 0;
	}

	.service_text h4::before {
	  bottom: -3px;
    width: 5px;
    height: 20px;
  }
	/*** /works ***/

	/*** flow ***/
	.pageSubTitle2 {
    font-size: 14px;
    line-height: 1.5;
  }

  .flow_lead {
  	margin-bottom: 80px;
  }

  .flow_flex {
  	flex-direction: column;
  	row-gap: 15px;
  }

  .flow_card {
  	width: 285px;
  	height: 220px;
  	padding: 38px 30px 17px;
  }

  .step {
  	top: -53%;
  }

  .flow_img {
  	font-size: 13px;
  }

  .flow_img img {
  	max-width: 55px;
  }

  .flow_text {
  	font-size: 12px;
  	line-height: 1.5;
  }


  .arrow {
  	font-size: 15px;
  	margin: 5px 0 35px 0px;
    transform: rotate(90deg);
  }
	/*** /flow ***/



	/*** /FQA ***/
	.qa__box > dl > dt {
    padding: 6px 40px 6px 10px;
	}

	.contentText {
    line-height: 1.5;
	}

	.qa__box > dl > dd.is-open {
    padding: 15px 40px 15px 23px;
	}
	
	.qa__box > dl > dt .crossBar {
    right: 12px;
	}

	.qa__box > dl > dt > span {
    font-size: 24px;
    margin-right: 15px;
    margin-bottom: 3px;
	}

	.qa__box > dl > dd > span {
    margin-right: 20px;
    line-height: 1;
	}

	.contentText {
    font-size: 12px;
  }
	/*** /FQA ***/

	/*** media ***/

	.media_content iframe {
		width: 100%;
		height: calc((100vw*0.96)*1.33);
	}

	/*** /media ***/


	/***  フォーム   ****/
	.form {
	    margin-top: 0px;
	    margin-bottom: 0px;
	 }
  	.Form-Item {
	    padding-top: 16px;
	    padding-bottom: 16px;
	    flex-wrap: wrap;
	    gap: 0;
	}

	.Form-Item-Label {
	    max-width: inherit;
	    display: flex;
	    align-items: center;
	    font-size: 12px;
	    font-weight: 500;
	}
	.Form-Item-Label.isMsg {
	    margin-top: 0;
	}
	.Form-Item-Label-Required {
	    border-radius: 2px;
	    width: 40px;
	    height: 21px;
	    font-size: 12px;
	    font-weight: 400;
	    display: inline-flex;
	    justify-content: center;
	    align-items: center;
	}
	.Form-Item-Input {
	    margin-left: 0;
	    margin-top: 5px;
	    height: 40px;
	    flex: inherit;
	    font-size: 16px;
	}
	.Form-Item-Textarea {
	    margin-top: 18px;
	    margin-left: 0;
	    height: 200px;
	    flex: inherit;
	    font-size: 16px;
	}
	.Form-Btn {
	    margin-top: 24px;
	    padding-top: 12px;
	    padding-bottom: 12px;
	    width: 80%;
	    font-size: 16px;
    	border: 2px solid #003B71;
	}	

	.Form-Btn i {
	    top: 53%;
	}

	.privacy_policy__checkbox label {
		font-size: 13px;
	}


	/*** footer ***/
	.footer_container {
		padding: 50px 29px;
	}

	.footer_nav {
		font-size: 13px;
	}

	.footer_nav_inner {
		flex-direction: column;
		gap: 8px;
	}
	/*** /footer ***/
}