@charset "UTF-8";
/* CSS Document */
/*---------------------------------------------  ホーム　　-------*/
#m_box{
	position: relative;
	min-height: 920px;/* 920px */
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(480px, .93fr) minmax(620px, 1.17fr);
	gap: clamp(36px, 4vw, 84px);/* 36px,4vw,84px*/
	padding: 160px var(--pad) 94px;/* 160px var(--pad) 94px */
	background: linear-gradient(90deg, #f7fbfb 0 56%, #e7f3f4 56% 100%);
}
/*---メインイメージ ----*/
#m_img_box{
	position: relative;
	z-index: 2;
	align-self: center;
	min-width: 0;
	margin-top: 14px;/* 14px */
}
.m_img{
	height: min(64vw, 690px);/* min(64vw, 690px )*/
	min-height: 570px;/* 570px */
	border-radius: 8px 8px 126px 8px;/* 8px 8px 126px 8px */
	box-shadow: 0 24px 70px rgba(26,68,86,.13);
	overflow: hidden;
}
.m_img::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(90deg, rgba(226,242,243,.22), transparent 32%);
  pointer-events: none;
}
.image-note {
  position: absolute;
  left: -32px;/* -32px */
  bottom: 42px;/* 42px */
  margin: 0;
  padding: 14px 22px;/* 14px 22px */
  background: var(--paper);
  color: #577482;
  font: 700 12px/1.2 Arial, sans-serif;
  letter-spacing: .12em;
  box-shadow: 0 10px 35px rgba(23,49,73,.12);
}

.image-note span {
  color: var(--ink);
  margin-right: 14px;/* 14px */
}
.shape {
  position: absolute;
  z-index: 3;
  border-radius: 5px;
  box-shadow: 0 12px 30px rgba(25,75,88,.1);
}

.shape-mint {
  width: 88px;/* 88px */
  height: 88px;/* 88px */
  left: -52px;
  top: 72px;/* 72px */
  background: rgba(112,215,202,.88);
}

.shape-blue {
  width: 50px;/* 50px */
  height: 50px;/* 50px */
  right: 32px;/* 32px */
  bottom: -20px;/* -20px */
  background: var(--ink);
}
/*---メインメッセージ --*/
.hero_msg{
  position: relative;
  z-index: 4;
  align-self: center;
  max-width: 680px;/* 680px */
  justify-self: end;
  padding-left: 12px;/* 12px */
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;/* 16px */
  margin: 0 0 34px;/* 0 0 34px */
  font: 700 12px/1.2 Arial, sans-serif;
  letter-spacing: .19em;
  color: #6a838f;
}

.eyebrow span {
  padding: 8px 11px;/* 8px 11px */
  background: var(--mint);
  color: var(--ink);
}

#m_box h1 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(42px, 4.05vw, 63px);/* 63px -> 42px*/
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .04em;
}

#m_box h1 em {
  position: relative;
  z-index: 1;
  font-style: normal;
}

#m_box h1 em::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -2px;/* -2px */
  right: -3px;/* -3px */
  bottom: .12em;/* .12em*/
  height: .28em;/* .28em */
  background: var(--mint-soft);
  transform: skewX(-8deg);
}

.hero-lead {
  max-width: 610px;/* 610px */
  margin: 38px 0 0;/* 38px 0 0*/
  font-size: 16px;/* 16px */
  line-height: 2.05;
  color: #4a687a;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 36px;/* 36px */
  margin-top: 40px;/* 40px */
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 42px;/* 42px */
  min-height: 60px;/* 60px */
  padding: 0 18px 0 26px;/* 0 18px 0 26px */
  font-size: 14px;/* 14px */
  font-weight: 700;
  transition: transform .25s ease, box-shadow .25s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-primary {
  min-width: 232px;/* 232px */
  background: var(--ink);
  color: #fff;
  box-shadow: 0 14px 34px rgba(18,47,70,.15);
}

.button-primary span {
  display: grid;
  place-items: center;
  width: 32px;/* 32px */
  height: 32px;/* 32px */
  background: var(--mint);
  color: var(--ink);
  border-radius: 50%;
}

.text-link {
  display: inline-flex;
  gap: 20px;/* 20px */
  align-items: center;
  border-bottom: 1px solid rgba(23,49,73,.3);
  padding: 5px 0;/* 5px 0*/
  font-size: 13px;/* 13px */
  font-weight: 700;
}

.hero-facts {
  display: flex;
  gap: 0;
  margin: 58px 0 0;/* 50px 0 0*/
  padding: 24px 0 0;/* 24px 0 0*/
  border-top: 1px solid var(--line);
}

.hero-facts > div {
  min-width: 142px;/* 142px */
  padding-right: 28px;/* 28px */
  margin-right: 28px;/* 28px */
  border-right: 1px solid var(--line);
}

.hero-facts > div:last-child {
  border-right: 0;
  margin-right: 0;
}

.hero-facts dt {
  color: var(--ink);
  font: 500 24px/1.1 Arial, sans-serif;
  letter-spacing: .01em;
}

.hero-facts dt span {
  margin-left: 3px;/* 3px */
  font: 700 12px/1.1 sans-serif;
}

.hero-facts dd {
  margin: 9px 0 0;/* 9px 0 0*/
  font-size: 12px;/* 12px */
  font-weight: 700;
  color: #6c8491;
  letter-spacing: .06em;
}
/*--------*/
.hero-route {
  position: absolute;
  right: calc(var(--pad) + 60px);
  top: 132px;/* 132px */
  z-index: 5;
  display: flex;
  align-items: center;
  opacity: .78;
}

.hero-route span {
  width: 7px;/* 7px */
  height: 7px;/* 7px */
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--paper);
}

.hero-route i {
  display: block;
  width: 44px;/* 44px */
  height: 1px;/* 1px */
  background: rgba(23,49,73,.35);
}

.scroll-cue {
  position: absolute;
  left: 28px;/* 28px */
  bottom: 48px;/* 40px */
  margin: 0;
  writing-mode: vertical-rl;
  font: 700 12px/1 Arial, sans-serif;
  letter-spacing: .2em;
  color: #6b8490;
  transform: scale(.82);
  transform-origin: bottom center;
}

.scroll-cue span {
  display: inline-block;
  width: 1px;
  height: 52px;/* 52px */
  margin-top: 12px;/* 12px */
  background: #76909d;
}
/*----共有部品----*/
.kicker {
  margin: 0 0 44px;/* 0 0 44px */
  color: #69838f;
  font: 700 12px/1.2 Arial, sans-serif;
  letter-spacing: .21em;
}

.kicker span {
  display: inline-grid;
  place-items: center;
  width: 28px;/* 28px */
  height: 28px;/* 28px */
  margin-left: 14px;/* 14px */
  border: 1px solid #aac4cb;
  border-radius: 50%;
  color: var(--ink);
}
/*------------------------------------------ section ------*/
.home_box1{
	position: relative;
	padding: 130px 90px;/* 130px 90px */
	overflow-y: hidden; /* 縦方向のはみ出しを隠す */
}
.home_box1::before{
	content: "";
  position: absolute;
  z-index: 0;
  right: -150px;/* -150px */
  top: 100px;
  width: 380px;/* 380px */
  height: 380px;/* 380px */
  border-radius: 50%;
  border: 1px solid rgba(112,215,202,.22);
  box-shadow: 0 0 0 58px rgba(112,215,202,.035);
}
.section_msg1{
	display: grid;
	grid-template-columns: 1fr 2fr;
	align-items: start;
	margin-bottom: 90px;/* 90px */
}
.section_msg1 .kicker{
	margin-top: 80px;/* 80px */
}
.home_grid1{
	display: grid;
  	grid-template-columns: minmax(360px, .92fr) minmax(520px, 1.08fr);
  	gap: clamp(70px, 8vw, 148px);
}
.home_img1_media{
	position: relative;
	min-height: 620px;/* 620px */
	order: 2;
}
.home_img1{
	position: absolute;
	inset: 0 0 44px 12%;/* 0 0 44px 12%*/
	overflow: hidden;
	border-radius: 4px 4px 86px 4px;
}
.home_img1 img{
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.home_mark1{
	padding: 0 30px;/* 0 30px */
	order: 1;
}
.line-link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;/* 40px */
	min-width: 290px;/* 290px */
	margin-top: 22px;/* 22px */
	padding: 13px 0;/* 13px 0 */
	border-bottom: 1px solid var(--ink);
	color: var(--ink);
	font-size: 14px;/* 14px */
	font-weight: 700;
}
.home_mark1-2{
	position: absolute;
	  z-index: 2;
	  left: 0;
	  bottom: 0;
	  margin: 0;
	  padding: 30px 40px;/* 30px 40px */
	  background: var(--cream);
	  color: var(--ink);
	  font: 600 25px/1.7 "Yu Mincho", "Hiragino Mincho ProN", serif;/* 25px/1.7 */
	  box-shadow: 0 18px 42px rgba(23,49,73,.1);
}
.message-square{
	position: absolute;
  	right: -18px;/* -18px */
  	top: 38px;/* 38px */
	width: 76px;/* 76px */
	height: 76px;/* 76px */
	background: var(--sky);
	opacity: .88;
	border-radius: 5px;
}
/*----------------------*/
.home_box2{
	display: grid;
	grid-template-columns: 1fr 2.7fr;
	gap: 80px;/* 80px */
	padding-bottom: 140px;/* 140px */
}
.home_img2{
	position: relative;
  	height: 350px;/* 350px */
  	margin: 0 0 0 7vw;/* 0 0 0 7vw*/
  	overflow: hidden;
  	border-radius: 4px 4px 64px 4px;/* 4px 4px 64px 4px */
  	box-shadow: 0 20px 46px rgba(23,49,73,.11);/* 0 20px 46px */
}
.home_img2 img{
	width: 100%;
  	height: 100%;
  	object-fit: cover;
  	object-position: 45% center;
}
.home_qa{
	overflow: hidden;
}
.home_qa > p{
	margin: 0 0 24px;/* 0 0 24px */
  	color: #78909a;
  	font-size: 16px;/* 16px */
  	font-weight: 700;
}
.home_qa_list{
	margin: 0;/* 0 */
	padding: 0;/* 0 */
	list-style: none;
}
.home_qa_list li{
	display: grid;
	grid-template-columns: 54px 1fr;/* 54px 1fr */
	align-items: center;
	min-height: 76px;/* 76px */
	font-weight: 700;
	border-bottom: 1px dotted #B1B1B1;
}
.home_qa_list li span {
  color: #76a1ac;
  font: 700 12px/1 Arial, sans-serif;
}
/*----------------------*/
.home_box3{
	position: relative;
	background: var(--ink-deep);
	color: var(--paper);
}
.home_inner3-1{
	position: relative;
	display: grid;
	grid-template-columns: 54fr 46fr;/* 54fr 46fr */
	gap: 100px;/* 100px */
	padding: 140px 0;/* 140px 0 */
}
.kicker2 {
	color: #9cb3bd;
	font: 700 12px/1.2 Arial, sans-serif;
	letter-spacing: .21em;
}

.kicker2 span {
  display: inline-grid;
  place-items: center;
  width: 28px;/* 28px */
  height: 28px;/* 28px */
  margin-left: 14px;
  border: 1px solid #aac4cb;
  border-radius: 50%;
  color: var(--mint);
}
.home_mark2-2{
	position: relative;
	min-height: 280px;/* 280px */
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding-right: 5%;
	border-bottom: 1px solid rgba(255,255,255,.18);
}
.ex_title1 span{
	color: var(--mint);
	font-style: normal;
}
.home_mark2-2 strong{
	color: transparent;
	font: 400 clamp(130px, 15vw, 240px)/.8 Arial, sans-serif;
	-webkit-text-stroke: 1px rgba(116,214,202,.78);
	letter-spacing: -.08em;
}
.home_mark2-2 span{
	margin: 0 0 8px 28px;
	color: #9eb7c1;
	font: 700 12px/1.65 Arial, sans-serif;
	letter-spacing: .16em;
}
.home_mark2-2 i {
  	position: absolute;
  	right: -30px;/* -30px */
  	top: 12px;/* 12px */
  	width: 96px;/* 96px */
  	height: 96px;/* 96px */
 	 border-radius: 50%;
  	background: radial-gradient(circle at 30% 30%, #a8efcf, #5ecac5 52%, #0e4b72);
  	opacity: .82;
}
/*--実務経験 --*/
.home_ex_list{
	grid-column: 2;
	margin: 0;
	padding: 0;
	list-style: none;
}
.home_ex_list li{
	display: grid;
	grid-template-columns: 15fr 85fr;/* 15fr 85fr */
	gap: 20px;/* 20px */
	padding: 40px 0;/* 40px 0 */
	border-bottom: 1px solid rgba(255,255,255,.15);
}
.home_ex_list li > span{
	color: var(--mint);
	font: 700 20px/1.4 Arial, sans-serif;
}
.home_ex_list h3{
	margin: 0 0 15px;/* 0 0 15px */
	color: #fff;
	font: 600 24px/1.5 "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.home_ex_list p{
	line-height: 2;
}
/*---装飾 --*/
.strength-accent {
  position: absolute;
  left: 0;
  bottom: 110px;/* 110px */
  width: 31%;/* 31% */
  height: 180px;/* 180px */
  border: 1px solid rgba(255,255,255,.08);
  border-left: 0;
}

.strength-accent span {
  position: absolute;
  display: block;
  border-radius: 4px;
}

.strength-accent span:nth-child(1) {
  width: 78px;/* 78px */
  height: 78px;/* 78px */
  left: 18%;
  top: -34px;/* -34px */
  background: var(--mint);
  opacity: .8;
}

.strength-accent span:nth-child(2) {
  width: 54px;/* 54px */
  height: 54px;/* 54px */
  right: 24%;
  bottom: -24px;/* -24px */
  background: #396d87;
}

.strength-accent span:nth-child(3) {
  width: 22px;/* 22px */
  height: 22px;/* 22px */
  right: -11px;/* -11px */
  top: 26px;/* 26px */
  background: var(--cream);
}
/*----------------------------------*/
.home_box4{
	background: var(--mist);
	padding: 130px 0;/* 130px 0 */
}
.home_box4_inner{
	display: grid;
	grid-template-columns: 48fr 43fr;
	align-items: center;
	gap: 100px;/* 100px */
}
.home_img3{
	position: relative;
	min-height: 650px;/* 650px */
}
.home_img3 img{
	width: 100%;
	height: 610px;/* 610px */
	object-fit: cover;
	border-radius: 6px 6px 110px 6px;/* 6px 6px 110px 6px */
}
.home_img3 > p {
  position: absolute;
  right: -32px;/* -32px */
  bottom: 0;
  margin: 0;
  padding: 20px 28px;/* 20px 28px */
  background: var(--paper);
  color: #6b858f;
  font: 700 12px/1.2 Arial, sans-serif;
  letter-spacing: .13em;
}

.home_img3 > p span {
  color: var(--ink);
  margin-right: 18px;/* 18px */
}
.home_step{
	margin: 40px 0 0;/* 40px 0 0 */
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}
.home_step li{
	display: grid;
	grid-template-columns: 15fr 85fr;
	gap: 20px;/* 20px */
	border-bottom: 1px solid var(--line);
	align-items: center;
	font-weight: 700;
}
.home_step li > span{
	color: var(--muted);
	font-size: 15px;/* 15px */
}
.home_step  p{
	color: var(--ink);
}
.home_step  p > span{
	font-weight: normal;
}
/*---------------------*/
.home_box5{
	padding: 120px 0;/* 120px 0 */
}
.home5_inner{
	display: grid;
	grid-template-columns: 55fr 45fr;
	gap: 100px;/* 100px */
	align-items: end;
}
.home_mark4{
	padding-bottom: 40px;/* 40px */
}
.home_service{
	padding-left: 300px;/* 300px */
}
/*--サービスリスト --*/
.home_sr_list{
	display: grid;
	grid-template-columns: 25fr 65fr 10fr;
	gap: 50px;/* 50px */
	align-items: center;
	min-height: 190px;/* 190px */
	border-bottom:  1px solid var(--line);
	transition: background .3s ease, padding .3s ease;
}
.home_sr_list:hover {
  padding-left: 28px;/* 28px */
  background: #edf7f6;
}
.sr_index{
	display: flex;
	gap: 18px;/* 18px */
	align-items: baseline;
}
.sr_index span{
	color: var(--mint);
	font: 400 46px/1 Arial, sans-serif;/* 46px */
}
.sr_index > p {
  color: #79919d;
  font: 700 12px/1.5 Arial, sans-serif;/* 12px */
  letter-spacing: .12em;
}
.sr_body h3{
	margin: 0 0 10px;
	color: var(--ink);
	font: 600 25px/1.5 "Yu Mincho", "Hiragino Mincho ProN", serif;/* 25px */
}
.sr_body{
	margin: 0;
	color: #607987;
	line-height: 1.9;
}
.home_sr_list > a {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid #9fb6be;
  color: var(--ink);
  transition: background .25s ease, transform .25s ease;
}
.home_sr_list > a:hover {
  background: var(--mint);
  transform: rotate(12deg);
}
/*-------------*/
.home_box6{
	background: var(--cream);
	padding: 150px 0;/* 150px 0 */
}
.home_box6_inner{
	position: relative;
	display: grid;
	grid-template-columns: .6fr .4fr;
	align-items: end;
	gap: 200px;/* 200px */
}
.contact-button {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 128px;/* 120px */
  padding: 0 30px 0 40px;/* 0 30px 0 40px */
  background: var(--mint);
  color: var(--ink);
  transition: transform .25s ease, box-shadow .25s ease;
}

.contact-button:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 45px rgba(23,49,73,.13);/* 0 20px 45px */
}

.contact-button span {
  font-size: 18px;/* 18px */
  font-weight: 700;
}

.contact-button small {
  display: block;
  margin-bottom: 5px;
  font: 700 12px/1.3 Arial, sans-serif;/* 12px */
  letter-spacing: .18em;
}
.contact-button i {
  display: grid;
  place-items: center;
  width: 56px;/* 56px */
  height: 56px;/* 56px */
  border-radius: 50%;
  background: var(--ink);
  color: white;
  font-style: normal;
}
/*---------------------------------------------  当社について　　-------*/
/*---------------------------------------------  お問い合わせ　　-------*/
.con_box1{
	position: relative;
	display: grid;
	grid-template-columns: .18fr .64fr .18fr;
	padding: 7.5% 0 12.5%;/* 120px 0 200px */
}
.con_inner1{
	grid-column: 2;
}
.con_mark1{
	padding-bottom: 60px;/* 60px */
}
.co_squre1{
	position: absolute;
	background: var(--ink);
	top: 50px;/* 50px */
	right: 15%;
}
/*---------- お問い合わせフォーム　---*/
.ft-form{
	width: 100%;
	border-collapse: collapse;
	color: #000000;
	margin: auto;
	margin-bottom: 70px;/* 70px */
}
.ft-form tr{
	line-height: 1.5;
	border-bottom: 1px solid var(--mint);
}
.ft-form tr th{
	width: 23.5%;/* 200px */
	padding: 20px 18px;/* 20px 18px */
	font-weight: normal;
	text-align: left;
	vertical-align: middle;
}
.ft-form tr td{
	padding: 20px 10px;/* 20px 18px */
}
.ft-form select{
}
.ft-form option{
	padding: 5px;
}
.ft-form .text{
	width: 90%;
	height: 40px;/* 40px */
	border-radius: 6px;
	border: none;
	background: #EBEBEB;
}
.ft-form .textarea{
	width: 90%;
	height: 200px;/* 200px */
	border-radius: 6px;/* 6px */
	border: none;
	background: #EBEBEB;
}
.required{
	display: inline-block;
	padding: 2px 5px;/* 2px 5px */
	background: #000000;
	color: #FFFFFF;
	font-size: clamp(0.563rem, 0.465rem + 0.22vw, 0.688rem);/* 11px */
	margin-left: 1.1%;/* 10px */
	vertical-align: middle;
}
.submit{
	background: var(--ink);
	color: #FFFFFF;
	padding: 6px 10px;/* 3px 10px */
	border: none;
}