/* ************************************************************************ home */

.trust .inner {
	width: 96%;
	max-width: 1000px;
	margin: 120px auto 60px;
}
.trust .building {
	position: relative;
}
.trust .building:before{
	content: "TRUST AND ACHIEVEMENTS";
	position: relative;
	z-index: -1;
	color: #e5e9f1;
	font-size: 120px;
} 
.trust .building:before {
    content: "TRUST AND ACHIEVEMENTS";
    position: relative;
    z-index: -1;
    margin: 0 auto;
    display: block;
    width: 100%;
    text-align: center;
    letter-spacing: -2.007px;
}
.trust ul {
	width: 100%;
	margin: 30px 0;
}
.trust ul li {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 40px 0;
    border-bottom: 1px solid #e5e9f1;
}
.trust ul li:last-child {
	border: none;
}
.trust ul li span:first-child:before {
	content: "";
	position: absolute;
	font-family: "source-han-serif-japanese", serif;
	font-weight: 300;
	color: #b2bed5;
	font-size: 50px;
	z-index: -1;
	top: -29px;
	left: 0;
}
.trust ul li:first-child span:first-child:before {
	content: "01";
}
.trust ul li:nth-child(2) span:first-child:before {
	content: "02";
}
.trust ul li:nth-child(3) span:first-child:before {
	content: "03";
}
.trust ul li:nth-child(4) span:first-child:before {
	content: "04";
}
.trust ul li:last-child span:first-child:before {
	content: "05";
}
.trust ul li span:first-child {
	padding-left: 50px;
	font-size: 30px;
	font-weight: 500;
	position: relative;
}
.trust ul li span:last-child {
	width: 43.5%;
	font-size: 15px;
}
.trust .mv-h2 span {
    display: block;
    width: max-content;
    max-width: max-content;
    margin: 0 auto;
    background: none;
    padding: 0;
    position: relative;
    font-weight: 500;
    font-size: 50px;
}
.trust .mv-h2 {
    padding: 0;
    position: relative;
    text-align: left;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto 0 0;
    font-family: "source-han-serif-japanese", serif;
    font-size: 30px;
}
.works .inner {
	margin: 100px auto 0;
}
.works .container {
	display: flex;
}
.works .mainttl {
	margin: 0 auto 30px;
}
.works ul {
	width: 100%;
    max-width: 100%;
    display: flex;
}
.works li {
	width: calc(100% / 3);
	text-align: center;
}
.works li img {
	margin-bottom: 10px;
	width: 100%;
}
.home .flow .element {
	text-align: left;
}
.home .flow {
	margin: 130px auto 140px;
}
.home .flow .flow_ {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}
.home .flow .inner {
	width: 100%;
}
.home .flow .mainttl {
	margin: 0 0 20px 0;
	padding: 0;
}
.home .flow a {
	margin: 0;
    font-size: 24px;
	color: #002772;
}
.home .flow a span {
	background-color: #002772;
	width: max-content;
    margin: 0 0 0 auto;
    font-size: 18px;
    color: #fff;
    padding: 4px 10px 7px 15px;
	display: block;
}
.home .flow .image {
	margin-left: auto;
	position: relative;
    left: 10%;
}

@media screen and (min-width: 1500px) {
	.trust .building:before {
	    font-size: 118px;
	    top: -60px;
	}
}
@media screen and (max-width: 1499px) {
		.trust .building:before {
	    font-size: 7.8vw;
	    top: -4.5vw;
	}
}
@media screen and (max-width: 1300px){
	.trust .mv-h2 span {
		font-size: 35px;
		width: 90%;
		text-align: center;
	}
	.home .flow .mainttl span:last-child {
    	font-size: 80px;
    	top: 35%;
    	right: 0;
	}
	.arrow {
		font-size: 25px;
	}
	.home .flow a {
    	font-size: 18px;
	}
	.home .flow a span {
		font-size: 16px;
		margin: 10px 0 0 auto;
	}
	.home .flow .flow_ {
    	width: 85%;
	}
	.home .flow .mainttl span:last-child {
		font-size: 90px;
	}
}
@media screen and (max-width: 1000px) {
	.trust ul li span:first-child {
			font-size: 26px;
	}
	.trust ul li span:first-child:before {
			font-size: 40px;
		    top: -15px;
    		left: 5px;
	}
}
@media screen and (max-width: 768px) {
	.trust .inner {
		margin: 15vw auto 0;
	}
	.trust ul {
		margin: 1vw auto;
	}
	.trust ul li {
		flex-direction: column;
		padding: 8vw 0;
	}
	.trust .mv-h2 span {
		font-size: min(6vw, 40px);
	}
	.trust ul li span:first-child {
		padding-left: 10vw;
		font-size: min(5vw,30px);
	}
	.trust ul li span:first-child:before {
		font-size: 7vw;
        top: -2vw;
        left: 1.5vw;
	}
	.trust ul li span:last-child {
    	width: 100%;
    	text-align: center;
		margin-top: 5px;
		font-size: min(3.4vw, 20px);
	}
	.trust ul li span {
        width: 100%;
        text-align: center;
        max-width: max-content;
        position: relative;
	}
	.trust .building {
		margin-bottom: -15vw;
	}
	.home .works .mainttl {
		padding: 0;
	}
	.home .works .inner {
		margin: 15vw auto 5vw;
	}
	.home .works ul {
		flex-direction: column;
    	align-items: center;
	}
	.home .works li {
		width: 100%;
	}
	.home .works li img {
    	width: max-content;
	}
	.home .arrow {
		margin: 0 auto 8vw;
        font-size: min(5vw, 30px);
	}
	.home .arrow:before {
    	width: min(5vw, 24px);
		height: min(5vw, 24px);}
	.arrow:after { 
		width: min(2vw, 10px);
    	height: min(2vw, 10px);
		right: calc(100% + min(3.7vw, 18px));
	}
	.home .flow {
		margin: 0 auto 10vw;
	}
	.home .flow .mainttl span:last-child {
    	font-size: 10vw;
		left: 50%;
		top: 35%;
		opacity: 0.8;
	}
	.home .flow .flow_ {
        width: 100%;
	}
	.home .flow .inner {
    	width: 100%;
    	max-width: max-content;
    	margin: 0 auto;
	}
	.home .flow .element {
    	text-align: left;
    	position: absolute;
    	z-index: 1;
    	top: 25vw;
    	left: 0;
    	right: 0;
    	margin: 0 auto;
    	width: 80%;
	}
	.home .flow .mainttl{
    	margin: 0 0 2vw 0;
	}
	.home .flow .mainttl span:first-child,.home .flow a {
        color: #fff;
        text-shadow: 0 0 5px #002772,0 0 5px #002772;
		font-size: min(3.5vw, 22px);
    }
	.home .flow .mainttl span:first-child {
		font-size: min(6vw,40px);
	}
	.home .flow a span {
        font-size: min(3.5vw, 16px);
        margin: 0 0 0 auto;
        padding: 0.5vw 1.5vw 1vw 2.2vw;
		text-shadow: none;
        box-shadow: 0 0 15px #b2bed5;
    }
	.home .flow .image {
    	left: 0;
		margin: 0 auto;
		width: 100%;
	}
	.home .flow img {
    	width: 100%;
	}
}
@media screen and (max-width: 500px) {
	.trust .building:before {
	    letter-spacing: -1.006px;
	}
	.home .flow .element {
		top: 18vw;
	}
}

/* ************************************************************************ about */


.about .contents {
	margin: 120px 0;
	position: relative;
}
.about .contents .inner {
    display: flex;
    text-align: left;
	align-items: center;
}
.about .rinen .element {
    margin-right: 50px;
}
.about .rinen p {
	margin-top: 0;
    margin-bottom: 0;
}
.about .rinen .img {
	position: relative;
}
.about .rinen2 .inner {
	align-items: baseline;
}
.about .rinen2 {
	background-color: #f0f4f8;
	padding-top: 50px;
}
.about .mainttl {
	text-align: left;
	padding: 0;
	margin: 0;
	width: 48%;
}
.about .inner {
    width: 96%;
    max-width: 1000px;
    margin: 0 auto;
}
.rinen2 ul {
	
}
.rinen2 ul li {
	background-color: #fff;
	margin: 15px 0;
	padding: 20px 30px;
	border-radius: 3px;
	box-shadow: 3px 5px 3px #b2bed5;
	font-weight: 500;
}
.rinen2 .inner ul li p {
	font-size: 15px;
	margin-bottom: 0;
	font-weight: 400;
}
.rinen2 .inner ul li p span:first-child {
    font-size: 30px;
    font-weight: 500;
    color: #fbb03b;
    width: 100%;
    display: block;
}
.about .rinen .mainttl span:last-child {
	font-size: 110px;
	left: 43%;
	top: 22%;
}
.about .building {
	background-size: auto;
}
.about .message .mainttl {
	width: 100%;
    max-width: 1000px;
	text-align: left;
	padding: 0;
	margin: 0 0 20px 0;
    font-size: 30px;
    font-weight: 500;
}
.about .message:before{
	content: "";
    position: absolute;
    inset: 0;
    background: #f0f4f8;
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
    z-index: -1;
}
.about .message .element {
	margin-left: 50px;
}
.about .message .name {
	font-family: "source-han-serif-japanese", serif;
	font-size: 24px;
	text-align: end;
}
.about .message .name span {
	font-family: "source-han-sans-japanese", sans-serif;
	font-size: 110px;
	text-align: end;
	font-weight: 300;
	position: absolute;
	color: #e5e9f1;
	z-index: -1;
	top: 66%;
    right: 21%;
}
.about .gaiyo .inner {
	flex-direction: column;
}
.about .gaiyo th,td {
	font-weight: 400;
	font-size: 15px;
	border: solid 1px;
	padding: 15px 30px 15px 15px;
}
.about .gaiyo table {
	margin-top: 30px;
}
.about iframe {
	width: 100%;
    max-width: 1000px;
	margin: 100px auto 150px;
    display: block;
}

@media screen and (max-width: 1300px) {
	.about .rinen .mainttl span:last-child {
    	font-size: 90px;
    	left: 50%;
		opacity: 0.8;
	}
	.about .contents .inner {
		width: 85%;
	}
	.about .rinen .element {
    	margin-right: 30px;
	}
	.about .message .name span {
		right: 10%;
	}
}
@media screen and (max-width: 1000px) {
	.about .contents {
    	margin: 70px 0;
	}
.about .mainttl {
    max-width: initial;
    width: 100%;
}
	.about .rinen .inner {
		flex-direction: column-reverse;
	}
	.about .rinen .mainttl span:last-child {
        font-size: 80px;
	}
	.about .rinen2 .inner {
		flex-direction: column;
	}
	.rinen2 ul {
    	margin: 0 auto;
	}
	.rinen2 .inner ul li p span:first-child,.about .message .mainttl {
    	font-size: 25px;
	}
	.about .message .element {
    	margin-left: 30px;
	}
	.about .message .mainttl p {
		font-size: 15px;
	}
}
@media screen and (max-width: 768px){
	.about .contents {
        margin: 15vw 0;
    }
	.about .rinen .element {
        margin-right: 0;
	}
	.about .rinen img {
		width: 100%;
	}
	.about .rinen p,.rinen2 .inner ul li p {
		font-size: min(3.5vw, 20px);
	}
	.about .rinen .mainttl span:last-child {
		font-size: min(15vw, 95px);
	}
	.rinen2 .inner ul li p span:first-child, .about .message .mainttl {
		font-size: min(4.5vw, 24px);
	}
	.rinen2 ul li {
		margin: 4vw 0;
    	padding: 4vw 5vw;
    	border-radius: 0.8vw;
    	box-shadow: 1vw 1.3vw 0.7vw #b2bed5;
	}
	.about .gaiyo table {
    margin-top: 5vw;
	}
	.about .gaiyo tr {
		display: block;
	}
	.about .message .inner {
		flex-direction: column;
		width: 80%;
	}
	.about .message .element {
		margin-left: 0;
	}
	.about .message .mainttl {
		margin: 4vw 0 2vw 0;
	}
	.about .message p {
		font-size: min(3.5vw, 20px);
		margin-bottom: 1vw;
	}
	.about .message .name p {
		font-size: min(4vw, 20px);
		margin-bottom: 6vw;
	}
	.about .message .name span {
		right: 0;
		top: 86%;
        font-size: 15vw;
	}
	.about .message .inner .img {
		aspect-ratio: 1 / 1.25;
		width: 80%;
		overflow: hidden;
	}
	.about .message .inner .img img {
		width: 100%;
	}
	.about .gaiyo th {
		border-bottom: none;
		padding: 2.9vw 2vw 0.9vw 2vw;
		font-weight: 500;
		font-size: min(4vw,24px);
	}
	.about .gaiyo td {
		padding: 0 2vw 2.9vw 2vw;
		border-style: dotted;
		font-size: min(3.5vw, 22px);
	}
	.about .gaiyo tr:last-child td {
		border: none
	}
	.about .gaiyo th, .about .gaiyo td {
		display: block;
		width: 100%;
		border-top: none;
        border-right: none;
        border-left: none;
	}
	.about iframe {
		margin: 70px auto 100px;
	}
}

/* ************************************************************************ kaitai */


/* ************************************************************************ sangyo */


/* ************************************************************************ asbestos */

@media screen and (max-width: 768px) {
	.asbestos .fourth-cont .inner h2.mainttl span:last-child{
		 top: 40%;
	}
}

/* ************************************************************************ flow */

.flow .fifith-cont .inner {
	display: block;
	padding-bottom: 50px;
}
.flow .fifith-cont .inner ul {
    margin: 30px 0 0 auto;
    width: 100%;
    max-width: max-content;
    display: block;
}
.flow .fifith-cont .inner ul span {
    display: block;
    margin: 0 0px 0 24px;
}
.flow .sixth-cont {
	background-color: #e5e9f1;
    z-index: 0;
    position: relative;
}
.flow .sixth-cont .inner {
	padding: 70px 0;
}
.flow .sixth-cont .inner div {
	opacity: 1;
}
.flow .heart {
    fill: #fff;
}
.flow .flow .inner {
	background-color: #f0f4f8;
	padding: 100px 0;
	margin: 130px auto 0;
}
.flow .mainttl span:last-child {
	font-size: 110px;
	top: 25%;
}
.flow .flow .flowchart {
	display: flex;
	width: 100%;
	max-width: 1000px;
	justify-content: center;
	background-color: #fff;
	border-radius: 3px;
	margin: 40px auto;
	align-items: center;
	box-shadow: 3px 5px 3px #b2bed5;
}
.flow .flow h3 {
	position: relative;
	margin: 0 50px 20px 50px;
	font-family: "source-han-serif-japanese", serif;
	font-size: 100px;
	font-weight: 500;
	color: #fbb03b;
}
.flow .flow h3 span:first-child {
	opacity: 0.5;
	text-box: trim-both cap alphabetic;
    display: block;
}
.flow .flow h3 span:last-child {
	font-family: "source-han-sans-japanese", sans-serif;
	font-weight: 500;
	font-size: 30px;
	position: absolute;
	color: #002772;
	bottom: -15px;
	left: 0;
	line-height: 1;
}
.flow .flow p {
	font-size: 18px;
	margin: 30px 50px 0;
}

@media screen and (max-width: 1300px) {
	
}
@media screen and (max-width: 768px) {
	.flow .mainttl span:last-child {
	    font-size: min(10vw, 80px);
	    top: 45%;
	    left: 50%;
	    margin: 0 auto;
	    width: max-content;}
	.flow .flow .flowchart {
	    width: 90%;
	    margin: 4vw auto;
	    display: block;
	    padding: 8vw 0;}
	.flow .flow h3 {
	    margin: 0 5vw 7vw;
	    font-size: min(13vw, 100px);}
	.flow .flow h3 span:last-child { font-size: min(4.5vw, 30px); bottom: -3.5vw;}
	.flow .flow p,
	.flow .flow .flowchart img {
	    font-size: min(3.5vw, 18px);
	    width: calc(100% - 10vw);
	    margin: 5vw 5vw 0;
	    display: block;
	    border-radius: 10px;}
	.flow .flow .inner {
            padding: 10vw 0;
            margin: 14vw auto;}
	.flow .fifith-cont .inner {
        padding-bottom: 0;}
	.flow .fifith-cont .inner ul {
		margin: 5vw auto;}
	.flow .fifith-cont .inner ul li {
	    font-size: min(4vw, 24px);
	    width: 90%;
	    margin: 0 auto;
	    letter-spacing: -1px;    }
	.flow .fifith-cont .inner ul span {
	    display: block;
	    margin: 0 0px 0 4.5vw;}
	.flow .sixth-cont .inner { padding: 10vw 0;}
}


/* ************************************************************************ contact */
.contact_ .form {
    width: 90%;
    max-width: 1000px;
    margin: 80px auto;}
.contact_ .form dl {
    display: flex;
    flex-wrap: wrap;
    align-items: self-start;
    justify-content: space-between;}
.contact_ .form dl dt {
    width: 37%;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 20px;
	font-weight: 500}
.contact_ .form dl dt span {
    font-size: 18px;
    color: #fff;
    font-weight: 300;
    background-color: #fbb03b;
    width: max-content;
    line-height: 1.2;
    padding: 3.5px 7px;
    border-radius: 3px;}
.contact_ .form dl dd {
    width: 61%;
    margin: 0 0 20px auto;}
.contact_ .form dl dd select,
.contact_ .form dl dd input,
.contact_ .form dl dd textarea {
	font-family: "source-han-sans-japanese", "source-han-serif-japanese", sans-serif, serif;
    width: 100%;
    background-color: #f0f4f8;
    border: none;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 3px;}
.contact_ .form dl dd textarea { min-height: 140px;}
.contact_ .form p {
    font-size: 24px;
    text-align: center;
    font-weight: 400;}
.contact_ .form div {
    font-size: 24px;
    text-align: center;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;}
.contact_ .form div input[type="checkbox"] {
    background-color: #f0f4f8;
    width: 30px;
    height: 30px;
    margin-right: 10px;
    border: none;
    appearance: none;
    border-radius: 4px;}
.contact_ .form div input[type="checkbox"]:checked {
    border: 1px solid #8b98a5;
    background-color: #1d9bf0;}
.contact_ .form div input[type="checkbox"]:checked::before {
    display: grid;
    place-content: center;
    color: white;
    height: 100%;
    font-family: "Material Icons";
    font-size: 18px;
    content: "✓";}
.contact_ .form div input[type="checkbox"]:focus-visible {
    outline: 2px solid #1d9bf0;
    outline-offset: 2px;}
.contact_ .form input[type="submit"]{
    background-color: #002772;
    width: 390px;
    margin: 30px auto;
    display: block;
    font-size: 30px;
    color: #fff;
    border: none;
    border-radius: 5px;
	padding: 10px;}
.contact .first-cont .inner p {
	font-family: "source-han-serif-japanese", serif;
	font-weight: 400;
}
.contents.error .inner {
    padding: min(10vw, 50px) 3vw;
    text-align: center;}
@media screen and (max-width: 1100px) {
	.contact_ .form p {font-size: 18px;}
}
@media screen and (max-width: 1024px) {
	.contact .first-cont .inner p {
	    font-size: 20px;
	    text-align: center;}
	.contact_ .form dl dt { font-size: 18px;}
}
@media screen and (max-width: 768px) {
	.contact_ .form {
		width: 85%;
		margin: 10vw auto;}
	.contact_ form dl dt {
	    font-size: 18px;
	    width: 100%;}
	.contact_ .form dl { display: block;}
	.contact_ .form dl dd select, .contact_ form dl dd input { min-height: 40px;}
	.contact_ .form dl dd { width: 100%; margin: 0 0 5vw auto;}
	.contact_ .form p { font-size: min(3.5vw, 18px);}
	.contact_ .form div {font-size: min(4vw, 20px);}
	.contact_ .form input[type="submit"] {
		width: 100%;
        margin: 3.5vw auto;
        font-size: min(4.5vw, 24px);
        padding: 2vw;}
	.contact .first-cont .inner p { font-size: min(4vw, 20px);}
	.contact_ .form dl dt {
		width: 100%;
		font-size: min(3.5vw, 18px);
		justify-content: flex-start;
		margin: 0 0 3vw;}
	.contact_ .form dl dt span {
		font-size: min(3.4vw,16px);
		margin-left: 1.3vw;
		padding: 0.6vw 1.2vw;}
	.contact_ .form dl dd select, .contact_ .form dl dd input, .contact_ .form dl dd textarea {
		font-size: min(3.4vw,16px);
		padding: 0 3vw;
	    min-height: 10vw;}
	.contact_ .form dl dd textarea {
		padding: 3vw;
	}
}

/* ************************************************************************ rule */


/* ************************************************************************ policy */














