@charset "UTF-8";

.pc { display:block; }
.sp { display:none; }	


.page_guide {
	max-width: 760px;
	margin: 4rem auto 3rem;
	width: 90%;
	text-align: justify;
	line-height: 1.8;
}

.greetings h2,.accessmap h2 {
	text-align: center;
	margin: 5em auto 3em;
	color: #004986;
}

.greetings {
    max-width: 800px;
    width: 90%;
    margin: 0px auto;
}

.greetings br {
	display: block;
	content: "";
	margin: 0.5em 0;
}

.greetings_l {
	float: left;
}

.greetings_l img {
	width: 240px;
}

.greetings_r {
    width: 100%;
    padding-left: 280px;
}

p.gr_text {
	line-height: 1.5;
}

p.company_name {
	font-size: 1.25em;
	text-align: right;	
	margin-top: 2rem;
}

p.ceo_name {
	text-align: right;	
}

.guide_title {
    font-weight: 700;
    font-size: 20px;
    margin: 5rem 0 3rem;
    padding: 10px 15px;
    border-left: 10px solid #004986;
    color: #004986;
    background-color: #F2F2F2;
}



.company_bg {
	background-color: #F2F5FA;
	width: 100%;
	padding: 1px 0 80px;
	display: block;
	margin-top: 6rem;
}

.company_bg h2 {
	text-align: center;
	margin: 4em auto 3em;
	color: #004986;
	}


.company_bg ul li {
	padding-left: 0.9em;
    text-indent: -0.9em;
    line-height: 1.2;
    margin-bottom: 0.3em;
}

.comptable table {
	line-height: 1.45;
	max-width: 600px;
	width: 90%;
    margin: 0px auto 0px;
	letter-spacing: 1px;
}

.comptable table tr {
    border-bottom: 1px dotted #3E603B;
}

.comptable table td {
    line-height: 1.6em;
    text-align: left;
    font-size: 1.05em;
    padding: 10px 5px;
	font-feature-settings: "palt";
	vertical-align: top;
}

td.biographyitem {
    width: 70px;
}

td.profileitem {
    width: 150px;
}

.comptable ul {
	margin-bottom: 0;
}

.certification {
	max-width: 600px;
	width: 90%;
	margin: 0 auto;
}

.certification li {
	margin-bottom: 0.5em;
}




.map {
    width: 100%;
    height: 500px;
}

td.historyitem {
    width: 200px;
}



@media only screen and (min-width:580px) and (max-width: 1170px){
	.company_bg {
		padding: 1px 0 3rem;
		margin: 4rem 0 5rem;
	}
	
	.map {
    	margin-bottom: 7rem;
	}
}



@media only screen and (max-width: 580px){

	.pc { display:none; }
  	.sp { display:block; }
	
	.greetings h2,.accessmap h2 {
		font-size: 1.25em;
    	margin: 3rem auto 2rem;
	}
	
	
	.page_guide {
		margin: 3rem 5%;
	}
		
	.company_frame p {
		font-size: 1.0em;
	}

	.greetings {
     	width: 100%;
	}

	.greetings_l {
		float: none;
		text-align: center;
		margin-bottom: 2rem;
	}
	
	.greetings_r {
    	padding-left: 5%;
		width: 95%;
	}
	
	p.company_name {
		font-size: 1.25em;
		margin-top: 1rem;
	}

	p.ceo_name {
		text-align: right;	
		margin-top: 0.5rem;
	}
	
	
	.guide_title {
    	width: 90%;
		margin: 5rem auto 3rem;
	}
	
	
	.company_bg {
		padding: 1px 0 3rem;
		margin: 4rem 0 5rem;
	}
	
	
	
	.company_bg h2 {
		margin: 2.5rem 0 1.5rem;
	}
	
	.comptable table td {
    	line-height: 1.5em;
     	font-size: 0.9em;
		padding: 10px 5px;
	}
	
	.certification {
		font-size: 0.9em;
		margin-top: -20px;
	}
	
	td.biographyitem {
		width: 20%;
	}
	
	td.profileitem {
    	width: 31%;
	}
	
	td.historyitem {
    	width: 30%;
	}
	
	.map {
    	margin-bottom: 6rem;
	}
}
.certificate{
	width:70%;
	max-width: 600px;
	height: auto;
	margin: 30px auto;
	text-align: center;
	display: flex;
}
.certificate-L{
	width: 30%;
}
.certificate-R{
	width: 70%;
}

.certificate-R img{
	width:100%;
}
.certificate p{
	text-align: left;
}
@media only screen and (max-width: 850px){
.certificate{
	width:90%;
	max-width: 600px;
	height: auto;
	margin: 30px auto;
	text-align: center;
	display: flex;
}
}

/* ===== 警備業認定書 拡大表示モーダル ===== */
.cert-modal-open{
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}
.cert-modal-open img{
	display: block;
	width: 100%;
	transition: opacity .2s;
}
.cert-modal-open:hover img{
	opacity: .85;
}
.cert-modal-open__icon{
	position: absolute;
	right: 8px;
	bottom: 8px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(0,0,0,.55);
	color: #fff;
	font-size: 16px;
	line-height: 32px;
	text-align: center;
}
.cert-modal-open:focus,
.cert-modal__close:focus{
	outline: none;
}
.cert-modal-open:focus-visible{
	outline: 2px solid #333;
	outline-offset: 3px;
}
.cert-modal__close:focus-visible{
	outline: 2px solid #fff;
	outline-offset: 3px;
}
.cert-modal{
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 16px 24px;
	background: rgba(0,0,0,.8);
	cursor: zoom-out;
	opacity: 0;
	transition: opacity .25s;
}
.cert-modal[hidden]{
	display: none;
}
.cert-modal.is-open{
	opacity: 1;
}
.cert-modal__inner{
	position: relative;
	transform: scale(.96);
	transition: transform .25s;
}
.cert-modal.is-open .cert-modal__inner{
	transform: none;
}
.cert-modal__img{
	display: block;
	/* 縦横どちらにも収まる最大サイズ(画像の縦横比 3508:2481 ≒ 1.414) */
	width: 100%;
	width: min(1600px, calc(100vw - 32px), calc((100vh - 84px) * 1.414));
	width: min(1600px, calc(100vw - 32px), calc((100dvh - 84px) * 1.414));
	height: auto;
	background: #fff;
	box-shadow: 0 10px 40px rgba(0,0,0,.5);
	cursor: default;
}
.cert-modal__close{
	position: absolute;
	top: -50px;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}
.cert-modal__close:hover{
	background: rgba(255,255,255,.2);
}
html.cert-modal-lock,
html.cert-modal-lock body{
	overflow: hidden;
}
@media (prefers-reduced-motion: reduce){
	.cert-modal,
	.cert-modal__inner,
	.cert-modal-open img{
		transition: none;
	}
}
