@charset "utf-8";
/* CSS Document */
@keyframes in_move {
  0% {
    transform: translate3d(0, 20%, 0);
	opacity: 0;
	}
  80% {
    transform: translate3d(0, 0, 0);
  }	
  100% {
    transform: translate3d(0, 0, 0);
	opacity: 1;
  }
}
@keyframes in_move2 {
  0% {
    transform: translate3d(0, 30%, 0);
	opacity: 0;
	}
  80% {
    transform: translate3d(0, 0, 0);
  }	
  100% {
    transform: translate3d(0, 0, 0);
	opacity: 1;
  }
}
.wrap_pankuzu{
    padding: 0 15px;
	border-top:solid 1px #707070;
	background-color: #F0F4F7;
}
.pankuzu {
	max-width: 1108px;
    margin: 0 auto;
    padding: 22px 0;
    font-size: 0.75rem;
    display: flex;
	align-items: center;
    list-style: none;
    flex-wrap: wrap;
	gap: 5px 41px;
}
.pankuzu li,
ul.pankuzu > span{
    font-weight: 500;
	color: #194056;
	font-size: 0.75rem;
}
.pankuzu a {
    display: inline-block;
    position: relative;
    padding-right: 0;
    margin-right: 0;
	margin-top: -1px;
	padding-top: 1px;
    font-weight: 500;
    color: #194056;
	font-size: 0.75rem;
	text-decoration: underline;
}
.pankuzu a:hover{
	text-decoration: none;
}
.pankuzu a::after {
    content: "";
    position: absolute;
    right: -25px;
    top: 7px;
	width:0;
	height:0;
	border-style:solid;
	border-width: 5.5px 0 5.5px 9px;
	border-color: transparent transparent transparent #98A6B5;
}
.pankuzu li:first-child a{
	padding-left: 23px;
}
.pankuzu li:first-child a::before{
	content: "";
	background: url("../images/icon/home.svg") top left /16px 14px no-repeat;
	width: 16px;
	height: 14px;
	position: absolute;
	top:4px;
	left:0;
}
/* ページリンク */
#link_menu {
	background-color: #194056;
	border-radius: 32px;
	color: #FFF;
	display: flex;
	max-width: 1108px;
	min-height: 64px;
	margin: auto;
	align-items: center;
	padding: 18px 40px;
	justify-content: space-between;
	position: relative;
	z-index: 999;
}
#link_menu.scroll{
	z-index: 9999;	
}
#link_menu .acdn_area{
	display: none;
}
#link_menu > p,
#link_menu > p a{
	font-family: gill-sans-nova;
	font-weight: 600;
	font-size: 1.125rem;
	letter-spacing: 0.4px;
	color: #FFF;
	position: relative;
    z-index: 1;	
}
#link_menu > p a,
#link_menu > p a:hover{
	text-decoration: none;
}
#link_menu ul{
	display: flex;
    gap: 34px;	
	max-width: inherit;
	margin: 0 !important;
}
#link_menu ul li{
	padding-left: 0;
	margin-bottom: 0 !important;
}
#link_menu ul li::before{
	content: none;
}
#link_menu ul li a{
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: 0.6px;
	color: #FFF;
	text-decoration: none;
	position: relative;
}
#link_menu ul li a:hover{
	text-decoration: none;
}
#link_menu > p a::before,
#link_menu ul li a::before{
	content:"";
	position: absolute;
	background-color: #FFF;
	width: 0%;
	height: 1px;
	bottom:-3px;
	right:0;
	transition: width .3s;	
}
#link_menu > p a:hover::before,
#link_menu ul li a:hover::before{
	width: 100%;
	right: inherit;
	left: 0;	
}
#link_menu ul li a.on::after{
	content:"";
	position: absolute;
	width:0;
	height:0;
	border-style:solid;
	border-width: 0 6px 10px 6px;
	border-color: transparent transparent #FFFFFF transparent;
    left: 0;
    right: 0;
    margin: auto;
    bottom: -14px;	
}
#main.hierarchy-two #link_menu{
    position: absolute;
    top: -32px;
    width: 100%;
    left: 0;
    right: 0;
	transition: top .3s;
}
#main.hierarchy-three #contents-top #link_menu{
	position: absolute;
	width: 100%;
	left: 0;
	right: 0;
	margin: 140px auto 0;
	top:0;
	transition: top .3s;
}
#main.hierarchy-three #contents-top #link_menu.scroll2,
#main.hierarchy-two #link_menu.scroll{
    position: fixed;
    top: 15px;	
	margin-top: 0;
}

#contents{
	padding: 0 15px 108px;
}
#main.hierarchy-two #contents.have_menu{
	padding-top: 118px;
	position: relative;
}
#main.hierarchy-three #contents{
	padding: 80px 15px 108px;
}
/* 2階層 */
#main.hierarchy-two{
	background-color: #DCE1E4;
	overflow: hidden;
}
#main.hierarchy-two #contents-top{
	background: url("../images/other/company_top.webp") center / cover no-repeat;
	min-height: 470px;
	width: 100%;
	position: relative;
	display: flex;
    align-items: center;
    padding: 15px 0 20px 128px;	
}
#main.hierarchy-two #contents-top.news{
	background: url("../images/other/news_top.webp") center / cover no-repeat;
}
#main.hierarchy-two #contents-top.contact{
	background: url("../images/other/contact_top.webp") center / cover no-repeat;
}
#main.hierarchy-two #contents-top::before {
    content: "";
    background-color: rgba(25, 64, 86, 1);
    position: absolute;
    width: 100%;
	height: 100%;
    top: 0;
    left: 0;
    min-height: 470px;
    clip-path: polygon(0 0, 445px 0, 625px 100%, 0 100%, 0 0);
    mix-blend-mode: multiply;
	transform: translate(-75%, 0);	
	animation: cover2-move .5s cubic-bezier(0.18, 0.93, 0.42, 1.01) forwards;
}
@keyframes cover2-move {
	0% {
		transform: translate(-75%, 0);	
	}	
	100% {
		transform: translate(0, 0);	
	}
}
#main.hierarchy-two #contents-top .text_cnt{
	position: relative;
	z-index: 2;
    height: fit-content;
	max-width: 350px;
	clip-path: polygon(0 0, 0% 0, 0% 100%, 0% 100%);
	animation: clip-txt .5s cubic-bezier(0.18, 0.93, 0.42, 1.01) forwards;
	animation-delay: .3s;		
}
@keyframes clip-txt {
	0% {
		clip-path: polygon(0 0, 0% 0, 0% 100%, 0% 100%);
	}	
	100% {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	}
}
#main.hierarchy-two #contents-top p.en_ttl{
	font-family: gill-sans-nova;
	font-weight: 600;
	font-size: 1.375rem;		
    letter-spacing: 3.5px;
	color: #FFF;
}
#main.hierarchy-two #contents-top h1{
	font-weight: 600;
	color: #FFF;
	font-size: 2.5rem;
	position: relative;
    line-height: 1.2;
	margin-top: 10px;
    padding-left: 51px;
    letter-spacing: 4px;	
}
#main.hierarchy-two #contents-top h1::before {
    content: "";
    position: absolute;
    width: 36px;
    height: 36px;
    background-color: #FFF;
    top: 9px;
    left: 0;
    clip-path: polygon(50% 0, 100% 50%, 100% 100%, 0 100%, 0 0);
}
/* 3階層 */
#main.hierarchy-three{
	background-color: #F0F4F7;
	overflow: hidden;
	margin-top: -100px;
}
#main.hierarchy-three #contents-top{
	background-color: #FFF;
	padding: 205px 15px 0;
	position: relative;
}
#main.hierarchy-three #contents-top::before {
    content: "";
    background-color: rgba(25, 64, 86, 0.4);
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    clip-path: polygon(50.5% 0, 100% 0, 100% 100%, 76.3% 100%);
    z-index: 1;
    mix-blend-mode: multiply;
	transform: translate(75%, 0);
    animation: cover3-move .5s cubic-bezier(0.18, 0.93, 0.42, 1.01) forwards;
    animation-delay: .3s;
}
@keyframes cover3-move {
	0% {
		transform: translate(75%, 0);	
	}	
	100% {
		transform: translate(0, 0);	
	}
}
#main.hierarchy-three #contents-top .text_cnt{
	max-width: 1108px;
	padding: 48px 0 104px;
	margin: auto;
	position: relative;
	z-index: 1;
}
#main.hierarchy-three #contents-top .text_cnt::before {
    content: attr(data-title);
    position: absolute;
    font-size: 9.5rem;
    font-family: gill-sans-nova;
    font-weight: 600;
    color: #E6EEF3;
    letter-spacing: 3px;
    line-height: 1.06;
    top: 53px;
    left: -49px;
    z-index: -1;
	clip-path: polygon(0 0, 0% 0, 0% 100%, 0% 100%);
	animation: clip-txt .5s cubic-bezier(0.18, 0.93, 0.42, 1.01) forwards;
	animation-delay: .3s;
	white-space: nowrap;
}
@keyframes clip-txt {
	0% {
		clip-path: polygon(0 0, 0% 0, 0% 115%, 0% 115%);
	}	
	100% {
		clip-path: polygon(0 0, 100% 0, 100% 115%, 0% 115%);
	}
}
#main.hierarchy-three #contents-top p.category{
	font-weight: 600;	
	font-size: 1.125rem;
	color: #194056;
	position: relative;
    padding-left: 29px;
	transform: translate3d(0, 20%, 0);
	opacity: 0;
	animation: in_move 1s ease-in-out forwards;
	animation-delay: .3s;
}
#main.hierarchy-three #contents-top p.category::before {
    content: "";
    position: absolute;
    width: 17px;
    height: 17px;
    background-color: #194056;
    top: 6px;
    left: 0;
    clip-path: polygon(50% 0, 100% 50%, 100% 100%, 0 100%, 0 0);
}
#main.hierarchy-three #contents-top h1{
	font-weight: 700;
	font-size: 2.5rem;
	margin-top: 29px;
    letter-spacing: 4px;
	transform: translate3d(0, 20%, 0);	
	opacity: 0;
	animation: in_move 1s ease-in-out forwards;
	animation-delay: .3s;
	line-height: 1.4;
}
#main.hierarchy-three #contents-top .img_cnt{
	display: block;
	width: calc(100% + 30px);
	height: 456px;
	background: url("../images/other/cp_top.webp") center / cover no-repeat;
transform: translateX(-15px);
}
#main.hierarchy-three #contents > .sp_width h2.lead:first-child,
#main.hierarchy-three #contents > h2.lead:first-child{
	margin: 27px auto 20px;
}
/* 共通 */
#contents h2{
	font-weight: 700;
	font-size: 2.125rem;		
    letter-spacing: 3.5px;
	padding-left: 3.5px;
	color: #194056;	
	text-align: center;
}
#contents p.en_ttl{
	font-family: gill-sans-nova;
	font-weight: 600;
	font-size: 3.125rem;
	text-align: center;
	line-height: 1;
    margin-top: 22px;
    letter-spacing: 1px;
	padding-bottom: 8px;
	margin-bottom: 13px;
}
#contents p.en_ttl + h2{
	font-weight: 500;
	font-size: 1rem;
	color: #194056;	
	text-align: center;
    letter-spacing: 0;
	padding-left: 0;	
}
#contents p.en_ttl.move{
    transform: translate3d(0, 20%, 0);
	opacity: 0;		
}
#contents p.en_ttl + h2.move{
    transform: translate3d(0, 30%, 0);
	opacity: 0;	
}
#contents p.en_ttl.move.active{
	animation: in_move 1s ease-in-out forwards;		
}
#contents p.en_ttl + h2.move.active{
	animation: in_move2 1s ease-in-out forwards;	
}
#contents h3{
	font-weight: 700;
	font-size: 1.5rem;
	padding-left: 32px;
	color: #3B4043;	
	position: relative;
	margin-bottom: 34px;	
}
#contents h3.indent ~ *{
	padding-left: 32px;
}
#contents h3::before{
	content: "";
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 13px solid transparent;
	border-left: 13px solid transparent;
	border-bottom: 13px solid #194056;
	border-top: 0;
	transform: rotate(135deg);
	left:0;
	top:17px;
}
#contents a{
	text-decoration: none;
	color: #004BB1;
}
#contents a:hover{
	text-decoration: underline;
}
#contents .cnt_box{
	background-color: #FFF;
	max-width: 1108px;
	width: 100%;
	margin: 52px auto 120px;
	position: relative;
	padding: 108px 15px 96px;
}
#common_page .cnt_box{
	padding: 78px 15px 96px;
}
#contents .cnt_box:last-child{
	margin: 52px auto 0;	
}
#contents .cnt_box:first-child{
	margin: 0 auto;	
}
#contents .cnt_box::before{
	content:"";
	position: absolute;
	background-color: #707070;
	width: 1px;
	height: 60px;
	top:-30px;
	left:0;
	right:0;
	margin: auto;
}
#common_page .cnt_box::before{
	content: none;
}
#contents .cnt_box > div{
	max-width: 918px;
	width: 100%;
	margin: auto;
}

#contents table{
	max-width: 918px;
	width: 100%;
	margin: auto;
	border-collapse:collapse;
}
#contents table th,
#contents table td{
	border-bottom:solid 1px #CECECE;
    line-height: 1.75;	
}
#contents table th,
#contents table th *{
	font-size: 1rem;
	font-weight: 700;
	text-align: left;
}
#contents table th{
	vertical-align: top;
    padding: 16.5px 34px;	
}
#contents table td{
	padding: 16.5px 20px 16.5px 47px
}
#contents table td,
#contents table td *{
	font-size: 1rem;	
}
#contents .two-column{
	display: flex;
	justify-content: space-between;
	max-width: 918px;
	margin: 19px auto 60px;
	gap:10px;
}
#contents .two-column h2{
	text-align: left;
	padding-left: 0;
	margin-top: 7px;
}
#contents .two-column div:last-child{
	max-width: 508px;
}
#contents .two-column p{
	line-height: 2.5;
}
#contents .two-column + .en_ttl{
	margin-top: 109px;
}
#contents ul {
	max-width: 840px;
	margin: 42px auto;
}
#contents ol{
	max-width: 820px;
	margin: 42px auto;
}
#contents ul li{
	position: relative;
	padding-left: 15px;
	margin-bottom: 10px;
}
#contents ul li:last-child{
	margin-bottom: 0;	
}
#contents ul li::before{
	position: absolute;
	content:"";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #194056;
	left:0;
	top:10px;
}
#contents ol li{
	padding-left: 7px;
    margin-bottom: 6px;
}
#contents ol li:last-child{
	margin-bottom: 0;	
}
/* 共通下層 */
#main.common_page{
	overflow: hidden;
}
#main.common_page #contents{
	padding: 100px 15px 108px;
}
#common_page{
	padding-top: 91px;
	background-color: #DCE1E4;
}
#common_page .en_ttl{
	font-family: gill-sans-nova;
    font-weight: 700;
    font-size: 1.375rem;
    color: #194056;
	letter-spacing: 2.2px;
	line-height: 1;
	margin-bottom: 12px;
}
#common_page .en_ttl.news::first-letter{
	text-transform: uppercase;
}
#common_page h1,
#common_page .h1_style{
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.4;
    color: #194056;
	position: relative;
    padding-left: 52px;
    letter-spacing: 4px;	
}
#common_page h1::before,
#common_page .h1_style::before {
    content: "";
    position: absolute;
    width: 36px;
    height: 36px;
    background-color: #194056;
    top: 12px;
    left: 0;
    clip-path: polygon(50% 0, 100% 50%, 100% 100%, 0 100%, 0 0);
}
#title_cnt{
	max-width: 1108px;
	width: 100%;
	margin: auto;
	padding: 0 15px;
}
#common_page .news_text h2{
	font-weight: 700;
    font-size: 1.5rem;
    padding-left: 32px;
    color: #3B4043;
    position: relative;
    margin-bottom: 5px;
    letter-spacing: 0; 
	text-align: left;
	transform: translateX(-30px);
}
#common_page .news_text h2::before{
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 13px solid transparent;
    border-left: 13px solid transparent;
    border-bottom: 13px solid #194056;
    border-top: 0;
    transform: rotate(135deg);
    left: 0;
    top: 17px;	
}
#common_page h1.news,
#common_page.pwa h2{
	font-size: 2.125rem;
	color: #194056;
	font-weight: 700;
	text-align: center;
	padding: 0;
	letter-spacing: 3px;
    padding-left: 0;
    margin-bottom: 0;
	transform: translateX(0);
}
#common_page .news_text h3::before,
#common_page.pwa h2::before,
#common_page h1.news::before{
	content: none;
}
#common_page h4,
#common_page .news_text h3{
	font-weight: 700;
    font-size: 1.125rem;
    padding-left: 0;
    color: #222;
    margin: 32px 0 4px;	
	transform: translateX(0px);
}
#common_page .cnt_box p{
	line-height: 1.8;
}

#common_page .column2{
	display: flex;
    justify-content: space-between;
    margin: 46px 0;	
}
#common_page h2 + p{
	margin-top:45px; 
}
#common_page h3{
	transform: translateX(-30px);
    margin: 35px 0 4px;
}
/* 2階層 リンクリスト */
#contents h2.lead + p{
	text-align: center;
    margin-top: 35px;	
}

#contents .link_list{
	display: flex;
    flex-direction: column;
    gap: 148px;
	margin-top: 172px;
}
#contents .link_list > div{
	display: flex;
	gap: 20px 60px;
    justify-content: space-between;
	max-width: 1108px;
	width: 100%;
	margin: auto;
}
#contents .link_list > div:nth-child(even){
	flex-direction: row-reverse;
}
#contents .link_list .text_cnt{
	max-width: 483px;
	position: relative;
	z-index: 1;
}
#contents .link_list .text_cnt::before{
    content: attr(data-title);
	position: absolute;
	font-size: 9.5rem;
	font-family: gill-sans-nova;
	font-weight: 600;
	color: #FFF;
    letter-spacing: 3px;
    line-height: 1.06;
	top: -7px;
    left: -85px;	
	z-index: -1;
	width: 850px;
	clip-path: polygon(0 0, 0% 0, 0% 115%, 0% 115%);
	transition: clip-path 1s cubic-bezier(0.18, 0.93, 0.42, 1.01);	
}
#contents .link_list .text_cnt.active::before{
	clip-path: polygon(0 0, 100% 0, 100% 115%, 0% 115%);	
}
#contents .link_list p.en_ttl_h2{
	font-family: gill-sans-nova;
	font-weight: 600;
	font-size: 3.125rem;		
    letter-spacing: 1px;
	line-height: 1.18;
	color: #194056;
	transform: translate3d(0, 20%, 0);
	opacity: 0;	
}
#contents .link_list .text_cnt.active p.en_ttl_h2{
	animation: in_move 1s ease-in-out forwards;	
}
#contents .link_list h2{
	font-weight: 700;
	font-size: 1.125rem;		
	margin-top: 23px;
	transform: translate3d(0, 20%, 0);
	opacity: 0;	
	color: #222;	
	text-align: left;
    letter-spacing: 0;
	padding-left: 0;
}
#contents .link_list .text_cnt.active h2{
	animation: in_move 1s ease-in-out forwards;		
}
#contents .link_list .about_txt{
    margin-top: 81px;
	position: relative;
    z-index: 1;
}
#contents .link_list .about_txt p:first-child{
    line-height: 1.7;	
}
#contents .link_list .btn_style1{
	margin-top: 24px;
	margin-left: 0;
}
#contents .link_list .btn_style1 a{
	min-width: 260px;
}
#contents .link_list .img_cnt a{
	display: block;
    clip-path: polygon(9.5% 0, 100% 0%, 90.5% 100%, 0% 100%);
	max-width: 565px;
	width: 100%;
	height: 100%;
	max-height: 403px;
	position: relative;
	z-index: 2;
}
#contents .link_list .img_cnt a:focus-visible{
    outline: 2px solid #000;	
}
#contents .link_list .img_cnt a img{
	transition: 0.5s;
	max-width: 565px;
	max-height: 403px;	
	object-fit: cover;
}
#contents .link_list .img_cnt a:hover img{
	transform: scale(1.08);
}
#contents .link_list .img_cnt a span.link_mark{
    position: absolute;
	right: 82px;
    bottom: 66px;
	z-index: 1;
}
#contents .link_list .img_cnt a span.link_mark::after{
	content:"";
	background: url("../images/icon/btn_circle_68.svg") top left / 68px no-repeat;
	width: 68px;
	height: 68px;
	position: absolute;
	right: 0;
    transition: .35s ease-out;
	top:0;
	bottom:0;
	margin: auto;
}
#contents .link_list .img_cnt a:hover span.link_mark::after{
	transform: rotate(360deg);
}
#contents .link_list .img_cnt a span.link_mark::before{
	content:"";
	position: absolute;
	width:0;
	height:0;
	border-style:solid;
	border-width: 3.5px 0 3.5px 6px;
	border-color: transparent transparent transparent #FFF;
	right: 31px;
	top:0;
	bottom:0;
	margin: auto;
}
#contents .link_list .img_cnt a:hover span.link_mark::before{
	animation: arrow_move 0.5s cubic-bezier(0.3, 0.85, 0.53, 1.09);
}
#contents .link_list .img_cnt a::after{
	position: absolute;
	content: "";
	width: 100%;
	height: 100%;
	bottom: 0;
	left: 0;
	background: linear-gradient(to top , #333 , transparent 45%, transparent);
	background-color: transparent;
	mix-blend-mode: multiply;
	transition: 0.3s;	
}
#contents .link_list .img_cnt a:hover::after{
	background-color: #97A9B3;
}
/* ごあいさつ */
#contents .name_txt{
	display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0 21px;
    margin-top: 52px;
}
#contents .name_txt p{
	font-weight: 700;
	font-size: 1.125rem;
}
#contents .name_txt img{
    margin-top: 11px;
}
#contents .number{
	position: relative;
	max-width: 112px;
	margin: 0 auto 5px;
}
#contents .cnt_box > div.philosophy{
	display: flex;
	max-width: 852px;
	width: 100%;
	flex-wrap: wrap;
	justify-content: center;
	gap: 111px 46px;
	padding: 14px 0;
}
#contents .philosophy > div{
	max-width: 253px;
	background-color: #E6EEF3;
	border-radius: 12px;
	position: relative;
	padding: 44px 30px 47px;
}
#contents .philosophy > div::before,
#contents .philosophy > div::after{
	content:"";
	position: absolute;
	border:solid 1px #707070;
	width: calc(100% - 2px);
	height: 23px;
	left:0;
	right:0;
	margin: auto;
}
#contents .philosophy > div::before{
	border-bottom: none;
	border-radius: 12px 12px 0 0;
	top:0;
}
#contents .philosophy > div::after{
	border-top: none;
	border-radius: 0 0 12px 12px;
	bottom:0;
}
#contents .philosophy > div .triangle::before,
#contents .philosophy > div .triangle::after{
	content:"";
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 15px solid transparent;
	border-left: 15px solid transparent;
	left:0;
	right:0;
	margin: auto;
	z-index: 1;
}
#contents .philosophy > div .triangle::before{
	border-top: 21px solid #0064b6;
	border-bottom: 0;
	top:-8px;
}
#contents .philosophy > div .triangle::after{
	border-bottom: 21px solid #0064b6;
	border-top: 0;
	bottom:-8px;
}
#contents .circle-text {
	position:absolute;
	width: 115px;
	height: 115px;
	font-size: 0.75rem;
	text-align: center;
	margin: auto;
    left: 2px;
    right: 0;
    top: 1px;
	transform: rotate(-47deg);
}
#contents .circle-text span {
	color: #194056;
	font-weight: 600;
	font-family: gill-sans-nova;	
	position: absolute;
	top: 0;
	left: calc(50% - 12px); /* 中心点 - 文字サイズ */
	display: inline-block;
	width: 12px; /* 文字サイズ */
	height: 57.5px; /* 半径 */
	transform-origin: center bottom; /* 回転の基準点 */
}
#contents .circle-text span:nth-child(1) {
	transform: rotate(0deg);
}
#contents .circle-text span:nth-child(2) {
	transform: rotate(12deg);
}
#contents .circle-text span:nth-child(3) {
	transform: rotate(21deg);
}
#contents .circle-text span:nth-child(4) {
	transform: rotate(28deg);
}
#contents .circle-text span:nth-child(5) {
	transform: rotate(37deg);
}
#contents .circle-text span:nth-child(6) {
	transform: rotate(48deg);
}
#contents .circle-text span:nth-child(7) {
	transform: rotate(59deg);
}
#contents .circle-text span:nth-child(8) {
	transform: rotate(71deg);
}
#contents .circle-text span:nth-child(9) {
	transform: rotate(83deg);
}
#contents .circle-text span:nth-child(10) {
	transform: rotate(96deg);
}
#contents .number p:last-child{
	color: #194056;
	font-size: 2.07625rem;
	font-weight: 600;
	font-family: gill-sans-nova;
    text-align: center;
    padding-top: 29px;
	letter-spacing: 1px;	
}
#contents .philosophy > div > p{
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.75;
}
/* 会社概要 */
#contents .cnt_box.about{
	padding: 92px 15px 96px;
}
#contents .cnt_box .access{
	display: flex;
    justify-content: space-between;
	gap:10px;
}
#contents .cnt_box .access iframe{
    width: 100%;
    vertical-align: middle;
	aspect-ratio: 65 / 49;
	min-height: 392px;
}
#contents .cnt_box .access p{
	line-height: 1.85;
	font-weight: 500;
}
#contents .cnt_box .access p *{
	font-weight: 500;	
}
#contents .cnt_box .access .map_link{
    margin-bottom: 31px;
}
#contents .map_link a{
	position: relative;
	padding-left: 32px;
	color: #222222;
	text-decoration: none;
}
#contents .map_link a::before{
    content: "[";
    position: absolute;
    background: url(../images/icon/map_blue.svg) 9px 8px / 13px 13.42px no-repeat;
    left: 4px;
    top: 0;
    width: 25px;
}
#contents .map_link a::after{
	content:"]";	
    padding-left: 3px;
	z-index: 1;
}
#contents .map_link a:hover{
	text-decoration: underline;
}
/* 沿革 */
#contents ul.history_list{
	max-width: inherit;
	margin: 0 auto;
}
#contents ul.history_list li{
	display: flex;
	max-width: 918px;
	width: 100%;
    justify-content: space-between;	
	gap:15px;
    margin-bottom: 40px;
	position: relative;
	padding-left: 0;
}
#contents ul.history_list li:first-child{
    margin-top: 11px;	
}
#contents ul.history_list li:last-child{
    margin-bottom: 0;	
}
#contents ul.history_list li::before{
	content:none;	
}
#contents ul.history_list li > div{
	max-width: 431px;
	width: 100%;
	order: 3;
	transform: translate3d(0, 20%, 0);
	opacity: 0;
}
#contents ul.history_list li.fadeUp > div{
	animation: in_move 1s ease-in-out forwards;
	animation-delay: .3s;		
}

#contents ul.history_list li:nth-child(even) > div{
	order: 1;	
}
#contents ul.history_list li p{
	font-size: 0.875rem;
	font-weight: 500;
}
#contents ul.history_list li:nth-child(even) p{
	text-align: right;
}
#contents ul.history_list li p.year + p span{
    padding-right: 0;
    display: block;
    font-size: 0.75rem;
}
#contents ul.history_list li p.year{
	font-weight: 900;	
	color: #194056;	
}
#contents ul.history_list li p.year + p span{
	padding-right: 0;
	display: block;
}
#contents ul.history_list li p.year span{	
	font-family: gill-sans-nova;
	font-weight: 600;
    font-size: 1.375rem;
    letter-spacing: 3px;
    line-height: 1;
}
#contents ul.history_list li .circle{
	content:"";
	display: block;
	width: 15px;
	height: 15px;
	background-color: #0064B6;
	border-radius: 50%;
	order:2;
	position: relative;
	margin-top: 4px;
	opacity: 0;
	transition: opacity .5s;
}
#contents ul.history_list li.fadeUp .circle{
	opacity: 1;	
}
#contents ul.history_list li .circle::before{
	content:"";
	width: 3px;
	height: 45px;
	background-color: #0064B6;
	position: absolute;
	left:0;
	right:0;
	margin: auto;
    top: -15px;	
}
#contents ul.history_list li:last-child::before{
	content:"";
	width: 3px;
	height: 100%;
	background-color: #FFF;
	position: absolute;
	left:0;
	right:0;
	margin: auto;
	border-radius: 0;
}
#contents ul.history_list li::after{
	content:"";
	display: block;
	max-width: 431px;
	height: 100%;
	width: 100%;
	order:1;
}
#contents ul.history_list li:nth-child(even)::after{
	order:3;	
}
#contents .history_cnt{
	position: relative;
	overflow: hidden;
}
#contents .history_bar {
    position: absolute;
    top: 0;
	left:0;
	right:0;
	margin: auto;
    height: 0;
    width: 1px;
    background-color: #707070;
    transition: width .2s;
    will-change: width;
}
/* 安全への取り組み */
#contents .si_lead_text{
	max-width: 728px;
	line-height: 2.5;
	margin: 23px auto 115px !important;
	text-align: left !important;
}
#contents .si_cnt > div{
	background-color: #194056;
	position: relative;
	padding: 87px 51px 48px;
	margin-bottom: 36px;
}
#contents .si_cnt > div:last-child{
	margin-bottom: 0;
}
#contents .si_cnt .text_cnt{
	display: flex;
	gap: 0 18px;
}
#contents .si_cnt .text_cnt > div{
	max-width: 250px;
}
#contents .si_cnt .text_cnt > div:first-child{
	max-width: 280px;
	width: 100%;
	padding-right: 12px;
}
#contents .si_cnt .number{
    position: absolute;
    top: -1px;
    left: -1px;
    background-color: #FFF;
    min-width: 130px;
    font-family: gill-sans-nova;
    font-weight: 600;
    font-size: 0.875rem;
    color: #194056;
    clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
    padding: 17px 30px 7px 20px;
    line-height: 1 !important;
    text-align: center;
}
#contents .si_cnt .number::before{
	content:"";
	position: absolute;
	width: calc(100% - 18px);
    height: calc(100% - 13px);
    top: 7px;
    left: 7px;
	border-top: solid 1px #194056;
	border-left: solid 1px #194056;
}
#contents .si_cnt h3 {
    font-size: 1.125rem;
    padding-left: 0;
    color: #FFF;
    padding-bottom: 13px;
    border-bottom: solid 1px #FFF;
    margin-bottom: 18px;
    letter-spacing: 1px;
}
#contents .si_cnt h3::before{
	content: none;
}
#contents .si_cnt p{
    font-size: 0.875rem;	
	color: #FFF;
	line-height: 1.5;
}
#contents .si_cnt img{
	width: 250px;
	height: 164px;
	object-fit: cover;
}
/* 事業内容下層 */
#contents .img_cnt_pic3{
	display: flex;
	max-width: 1248px;
	margin:60px auto;
}
#contents .img_cnt_pic3 > div{
	clip-path: polygon(9.5% 0, 100% 0%, 90.5% 100%, 0% 100%);
    width: 416px;
    height: 297px;
}
#contents #business_slide{
	display: none;
}
/* 作業実績 */
#contents.work_record{
	background: url("../images/other/wr_bg.webp") top center / 100% repeat-y;
	background-color: #194056;
	padding-top: 71px;
}
#contents p.wr_toptext{
	font-size: 1rem;
	text-align: center;
	position: relative;
	color: #FFF;
    padding: 50px 0;
}
#contents p.wr_toptext::before{
	content: "WORK RECORD";
    position: absolute;
    font-size: 7.875rem;
    font-family: gill-sans-nova;
    font-weight: 600;
    color: #FFF;
    line-height: 1;
    top: 0;
	bottom: 0;
    left: 0;
	right: 0;
	margin: auto;
    white-space: nowrap;
	opacity: 0.13;
}
#contents ul.wr_list{
	display: flex;
	max-width: 1108px;
	margin: 36px auto 79px;
	gap:77px 32px;
	flex-wrap: wrap;
}
#contents ul.wr_list li{
	padding-left: 0;
	margin-bottom: 0;
}
#contents ul.wr_list li::before{
	content:none;
}
#contents ul.wr_list a{
	display: block;
	max-width: 348px;	
	position: relative;
	z-index: 2;
	overflow: hidden;
}
#contents ul.wr_list a::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    bottom: 0;
    left: 0;
    mix-blend-mode: multiply;
    transition: 0.3s;
}
#contents ul.wr_list a img{
	transition: 0.5s;
}
#contents ul.wr_list a:hover img{
	transform: scale(1.08);
}
#contents ul.wr_list a span.link_mark{
    position: absolute;
	right: 0;
	left: 0;
    bottom: 0;
	top: 0;
	z-index: 1;
	margin: auto;
	opacity: 0;
    transition: .5s;
}
#contents ul.wr_list a span.link_mark::after{
	content:"";
	background: url("../images/icon/btn_circle_68.svg") top left / 68px no-repeat;
	width: 68px;
	height: 68px;
	position: absolute;
	right: 0;
	left: 0;
    transition: .35s ease-out;
	top:0;
	bottom:0;
	margin: auto;
}
#contents ul.wr_list a:hover span.link_mark::after{
	transform: rotate(360deg);
}
#contents ul.wr_list a span.link_mark::before{
	content:"";
	position: absolute;
	width:0;
	height:0;
	border-style:solid;
	border-width: 3.5px 0 3.5px 6px;
	border-color: transparent transparent transparent #FFF;
	right: 0;
	left:0;
	top:0;
	bottom:0;
	margin: auto;
}
#contents ul.wr_list a:hover span.link_mark{
	opacity: 1;	
}
#contents ul.wr_list a:hover span.link_mark::before{
	animation: arrow_move 0.5s cubic-bezier(0.3, 0.85, 0.53, 1.09);
}
#contents ul.wr_list a:hover::after{
	background-color: #97A9B3;
}
#contents ul.wr_list img{
	max-width: clamp(328px, 29vw, 348px);
	max-height: 228px;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#contents ul.wr_list .box_text{
	display: flex;
    gap: 10px;
    margin: 15px 0 4px;	
}
#contents ul.wr_list .box_text p{
	background: #FFF;
	color: #194056;
	max-width: fit-content;
	font-weight: 700;
	padding: 3px 10px;
}
#contents ul.wr_list .box_text p span{
	font-family: gill-sans-nova;
    font-weight: 600;
}
#contents ul.wr_list .box_text p.address{
	position: relative;
	padding: 3px 12px 3px 28px;
}
#contents ul.wr_list .box_text p.address::before {
    content: "";
    position: absolute;
    background: url(../images/icon/map_blue.svg) top left / 13px 13.42px no-repeat;
    left: 11px;
    top: 10px;
    width: 13px;
    height: 13.42px;
}
#contents ul.wr_list li > p{
	color: #FFF;
	font-size: 1.125rem;
	font-weight: 700;
}
/* 実績一覧 */
#common_page.pwa{
	background: url("../images/other/wr_bg.webp") top center / 100% repeat-y;
	background-color: #194056;
}
#common_page.pwa .en_ttl,
#common_page.pwa h1{
    color: #FFF;	
}
#common_page.pwa h1::before {
    background-color: #FFF;
}
#contents ul.pwa_list{
	max-width: 960px;
	display: flex;
	justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
	margin: 0 auto;
}
#contents ul.pwa_list li{
	padding: 0;
	margin: 0;
}
#contents ul.pwa_list li::before{
	content:none;
}
#contents ul.pwa_list li a{
	background-color: #FFF;
	border-radius: 32px;
	font-size: 1rem;
	color: #194056;
	font-weight: 700;
	max-width: fit-content;
    display: flex;
	align-items: center;
    gap: 20px;
    padding: 25px 42px;
    line-height: 1;
    letter-spacing: 0.6px;
}
#contents ul.pwa_list li a::after{
	content:"";
	width:0;
	height:0;
	border-style:solid;
	border-width: 10px 5.5px 0 5.5px;
	border-color: #194056 transparent transparent transparent;
}
#common_page.pwa #contents .cnt_box:last-child {
    margin: 46px auto 0;
}
#contents .work_list{
	display: flex;	
	margin-top: 48px !important;
}
#contents .work_list > div {
	flex: 1;
}
#contents .work_list > div > div{
	display: flex;
	position: relative;
	padding-bottom: 31px;
}
#contents .work_list > div > div:last-child{
	padding-bottom: 0;	
}
#contents .work_list > div > div::before{
	content: "";
	background-color: #B1B3B4;
	width: 1px;
	height: 100%;
	left: 78px;
	top:0;
	position: absolute;
}
#contents .work_list > div > div > p{
	width: 78px;
	font-weight: 700;
}
#contents .work_list ul{
	max-width: 327px;
	width: 100%;
	margin: 0;
	padding-left: 24px;
}
#contents .work_list li{
	padding: 0;
	margin-bottom: 2px;
}
#contents .work_list li:last-child{
	margin-bottom: 0;	
}
#contents .work_list li::before{
	content: none;
}
#contents .work_list + h2{
	margin-top: 110px;
}
/* お知らせ */
#contents .news_cnt{
	margin: 120px auto 0;
	max-width: 1108px;
}
#contents .news_mainlist{
    display: flex;
    gap: 32px;
    width: 100%;
	flex-wrap: wrap;
	justify-content: center;
}
#contents .newslist a{
	display: block;
	text-decoration: none;
	color: #222222;
	font-weight: 500;
	font-size: 0.875rem;
	border-bottom: solid 3px #194056;
	transition: box-shadow .3s;
	border-radius: 0 55px 0 0;
	position: relative;
}
#contents .newslist a:focus-visible{
	border-radius: 0;	
}
#contents .newslist a::before{
	content:"";
	position: absolute;
	background-color: #0064B6;
	width: 0%;
	height: 3px;
	bottom:-3px;
	right:0;
	transition: width .3s;	
}
#contents .newslist a:hover::before{
	width: 100%;
	right: inherit;
	left: 0;
}
#contents .newslist a:hover{	
	box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
}
#contents .newslist .img_cnt{
	clip-path: polygon(88% 0, 100% 15%, 100% 100%, 0 100%, 0 0);
	overflow: hidden;
}
#contents .newslist .img_cnt img{
	width: 253px;
	max-width: inherit;
	height: 190px;
	object-fit: cover;
}
#contents .newslist a .img_cnt img{
	transition: .5s;
}
#contents .newslist a:hover .img_cnt img{
		transform: scale(1.1);
}
#contents .newslist .text_cnt{
	display: flex;
	background-color: #FFF;
    gap: 18px;
	padding: 12px 19px 12px;
	min-height: 99px;
}
#contents .newslist .text_cnt p.date{
	display: flex;
    flex-direction: column;
    align-items: center;
}
#contents .newslist .text_cnt p.date,
#contents .newslist .text_cnt p.date span{
	font-family: gill-sans-nova;	
	color: #194056;
	font-weight: 600;
	transition: .3s;	
}
#contents .newslist a:hover .text_cnt p.date,
#contents .newslist a:hover .text_cnt p.date span{
	color: #0064B6;	
}
#contents .newslist .text_cnt p.date span{
	font-size: 2.875rem;
	line-height: 1;
}
#contents .newslist .text_cnt .ttl_box{
	max-width: 148px;
	width: 100%;
	margin-top: 5px;
	line-height: 1.45;
}
#contents .newslist .text_cnt .ttl_box p{
	line-height: 1.45;	
}
#contents .newslist .text_cnt p.cate{
	color: #194056;
	font-size: 0.75rem;
	border: solid 1px #194056;
	text-align: center;
	margin-top: 7px;
	line-height: 1.5;
	padding-bottom: 1px;
}
#contents .news_cnt .btn_style1{
	margin-top: 50px;
}

/* お知らせ詳細 */
#contents .cnt_box > div.date{
	display: flex;
	justify-content: flex-end;
    align-items: center;	
	gap: 10px;
	margin-top: 53px;
}
#contents div.date p.day{
	font-weight: 700;
	line-height: 1 !important;
}
#contents div.date p.cate{
	font-size: 0.75rem;
	color: #194056;
	border: solid 1px #194056;
	line-height: 1 !important;
	padding: 4px 15px;
	max-width: 103px;
	width: 100%;
	text-align: center;
}
#contents .news_text{
	margin-top: 67px !important;
}
#contents .news_text > *:last-child{
	margin-bottom: 0;
}
#contents .btn_style1.news{
	margin: 61px auto auto;
}
#contents .btn_style1.news a{
	width: 260px;	
}
/* お問い合わせ */
#contents.contact > h2:first-child{
	margin-top: 50px;
}
#contents p.con_lead{
    max-width: 864px;
    margin: 120px auto 56px;
    padding-bottom: 40px;
    border-bottom: solid 1px #CECECE;
    line-height: 1.8;
	font-weight: 400;
}
#contents #form table{
	margin: 26px auto 0;
	empty-cells: hide;
	table-layout: inherit;	
	width: 100%;	
}
#contents #form table th{
	padding: 15px 0;
	border-bottom: none;
	font-weight: 700;
	padding-left: 13px;	
}
#contents #form table td{
	padding: 10px 0;
	border-bottom: none;
	padding-left: 26px;
	font-size: 1rem;
}
#contents #form table td *{
	font-weight: 400;
}
#contents #form table th,
#contents #form table th *{
	font-size: 1rem;
	text-align: right;
}
#contents #form table th.txt_area{
	vertical-align: top;
}
#contents #form table th.txt_area{
	padding-top: 43px;	
	padding-bottom: 16px;
}
#contents #form table td.txt_area{
	padding-top: 37px;
	padding-bottom: 16px;	
}
#contents #form input[type="text"],
#contents #form input[type="email"] {
	font-size: 1rem;	
    height: 38px;
    padding: 0 18px;
    background-color: #FFF;
	width: 100%;
    max-width: 612px;
	border:none;
}
#contents #form textarea{
	font-size: 1rem;	
	border-radius: 5px;	
    padding: 5px 18px;
	width: 100%;
    background-color: #FFF;
	min-height: 181px;
	border:none;
    max-width: 612px;
}
#contents #form td p:first-child{
	letter-spacing: 0.2px;
	padding-left: 4px;
}
#contents #form .radio{
	padding-left: 6px;
}
#contents #form input[type="radio"]{
  opacity: 0;
  position: absolute;
}
#contents #form .radio label span {
    display: inline-block;
    padding: 0;
    cursor: pointer;
    position: relative;
    padding-left: 20px;	
    margin-right: 13px;	
}
#contents #form .radio label span::before {
    content: "";
    display: inline-block;
    width: 10px;
    padding-top: 10px;
    left: -2px;
    border: 1px solid #B1B3B4;
    position: absolute;
    top: 8px;
	background-color: #FFF;
	border-radius: 50%;
}
#contents #form .radio label input:focus-visible ~ span::before{
	outline: 2px solid #000;
}
#contents #form .radio label span::after {
    content: "";
    display: inline-block;
    position: absolute;
    width: 8px;
	height: 8px;
	background-color: #194056;
	top: 10px;
    left: 0;
    opacity: 0;
	border-radius: 50%;
}
#contents #form input[type="radio"]:checked + span::after {
    opacity: 1;
}

#contents #form table .checkbox{
	margin-top: 20px;
}
#contents #form input[type="checkbox"]{
  opacity: 0;
  position: absolute;
}
#contents #form .checkbox label span {
    display: inline-block;
    padding: 0;
    cursor: pointer;
    position: relative;
    padding-left: 37px;	
}

#contents #form .checkbox label span::before {
    content: "";
    display: inline-block;
    width: 14px;
    padding-top: 14px;
    left: 3px;
    border: 1px solid #B1B3B4;
    position: absolute;
    top: 5px;
	background-color: #FFF;
}
#contents #form .checkbox label input:focus-visible ~ span::before{
	outline: 2px solid #000;
}
#contents #form .checkbox label span::after {
    content: "";
    display: inline-block;
    position: absolute;
    width: 10px;
    padding-top: 5px;
	top: 8px;
    left: 5px;
    border-left: 2px solid #194056;
    border-bottom: 2px solid #194056;
    transform: rotate(-45deg);
    opacity: 0;
}
#contents #form input[type="checkbox"]:checked + span::after {
    opacity: 1;
}
#contents #form .msg{
	color: #D22929;
}
#contents #form .btn_cnt{
    display: flex;
    justify-content: center;
    margin: 39px auto 0;
    flex-wrap: wrap;
    gap: 30px 20px;
    max-width: 550px;
    padding-left: 74px;
}
#contents #form .btn_cnt .form_btn input{
	min-width: 260px;
}
#contents #form .btn_cnt .form_btn.back input{
	padding: 0 26px 0 64px;
}
#contents #form .btn_cnt .form_btn.back span.link_mark::before{
	right: inherit;
	left: 31px;
	transform: scale(-1);
}
#contents #form .btn_cnt .form_btn.back span.link_mark::after{
	right: inherit;
	left: 19px;
}
#contents #form .btn_cnt .form_btn.back:hover span.link_mark::before{
	animation: arrow_move_back 0.5s cubic-bezier(0.3, 0.85, 0.53, 1.09);
}
@keyframes arrow_move_back {
    0% {
      transform: scale(-1) translate(1px, 0px);
      opacity: 1;
    }    
    49.9% {
      transform: scale(-1) translate(11px, 0px);
      opacity: .01;
    }
    50% {
      transform: scale(-1) translate(-7px, 0px);
      opacity: .01;
    }
    100% {
      transform: scale(-1) translate(0);
      opacity: 1;
    }
 }
#contents #form .btn_cnt.preview{
    padding-left: 0;	
}
#contents.contact .btn_style1{
	margin-top: 30px;
}
#contents .btn_style1.pnf{
	margin-top: 30px;
}
@media print {
	#main.hierarchy-three #contents-top #link_menu.scroll2, #main.hierarchy-two #link_menu.scroll {
    	position: absolute;
    	top: -32px;
	}
	#main.hierarchy-three #contents-top #link_menu{
		top: 0;
	}
	#main.hierarchy-three #contents-top::before,
	#main.hierarchy-two #contents-top::before {
		transform: translate(0, 0);	
		animation: none !important;
	}
	#main.hierarchy-two #contents-top .text_cnt{
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
		animation: none !important;
	}
	#main.hierarchy-three #contents-top .text_cnt::before {
		clip-path: polygon(0 0, 100% 0, 100% 115%, 0% 115%);
		animation: none !important;
	}
	#main.hierarchy-three #contents-top h1,
	#main.hierarchy-three #contents-top p.category,
	#contents ul.history_list li > div,
	#contents p.en_ttl.move,
	#contents p.en_ttl + h2.move,
	#contents .link_list h2,
	#contents .link_list p.en_ttl_h2{
    	transform: translate3d(0, 0, 0);
		opacity: 1;
		animation: none !important;	
	}
	#contents .link_list .text_cnt::before{
		clip-path: polygon(0 0, 100% 0, 100% 115%, 0% 115%);
	}
	#contents ul.history_list li .circle{
		opacity: 1;
	}
	#contents .history_bar {
    	height: 100%;
	}
	#contents .link_list {
    	align-items: center;
	}
	#contents .link_list > div:nth-child(even),
	#contents .link_list > div{
		flex-direction: column;
		max-width: 564px;
	}
	#contents .cnt_box .access .map_link{
		position: relative;
	}
	#contents .map_link::after {
    	content: "]";
    	padding-left: 3px;
   		z-index: 1;
	}
	#contents .map_link a::after {
    	content: none;
	}
}