@charset "utf-8";

/* =======================================

	Structure CSS

 -----------------------------------------
	INDEX
 -----------------------------------------
 	1.wrapper
	2.header
	3.gNavi
	4.breadcrumb
	5.mainimg
	6.contents
	7.lNavi
	8.pageTop
	9.footer

========================================== */

html { scroll-behavior: smooth;}

body {
	background: #fff;
	color: #031A47;
	font-size: clamp(14px, 1.6667vw, 20px); /*24px*/
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	font-style: normal;
	letter-spacing: .044em;
	line-height: 1.5;
}

.pc{}
.sp{	display: none;}
@media screen and (max-width:767px){
	body {
		font-size: 3.9vw; /*16px*/
	}
	.pc{	display: none;}
	.sp{	display: block;}
}
@media(min-width: 768px){
	a[href^="tel:"]{
		 /*pointer-events: none;*/
	}
}

.siteName a{vertical-align: middle;}
h2{
	font-size: clamp(16px, 3.8889vw, 46px); /*56px*/
	font-weight: 700;
	letter-spacing: 0;
	line-height: 2.8;
}
h2 span{
	font-size: clamp(15px, 3.1944vw, 38px); /*46px*/
	font-family: "Raleway", serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	letter-spacing: .044em;
	line-height: 1;
	display: block;
}

video{	width: 100%;}
@media screen and (max-width:767px){
	.siteName{
		width: 26.67vw;
	}
	h2{
		font-size: 9.6vw; /*36px*/
		line-height: 1.8;
	}
	h2 span{
		font-size: 5.33vw; /*20px*/
	}
}

/* 1.wrapper
---------------------------------------------------------- */
section{
	max-width: 1200px;
	margin: auto;
}
footer section{
	max-width: 100%;
}
.sectionWraper{
	margin: 0 4.44%;
}
@media screen and (max-width:767px){
	.sectionWraper{
		margin: 0 4.27vw;
	}
}

/* 2.header
---------------------------------------------------------- */

header{
	background: url("../images/top_bg1.png") repeat-x 50% 0 / auto 100%;
	/*background: transparent linear-gradient(180deg, #0059FF00 2%, #0059FF1A 34%, #0059FF1A 94%, #D7E5FF00 100%) 0% 0% no-repeat padding-box;*/
	position: relative;
}

.headerContOuter{
	background: url("../images/top_bg2.png") no-repeat 50% 0% / 100% auto;
	max-width: 1240px;
	margin: -8% auto 0;
	position: relative;
}
.headerCont{
//	background: #031A47;
	color: #fff;
	margin: 0 6%;
	padding: 12% 0;
	border-radius: 2%;
}
.headerContFlex{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-direction: row-reverse;
	padding-right: 10.47%;
	margin: 0 6.33%;
}

.headerCont h2{
	font-size: clamp(14px, 3.3333vw, 40px); /*48px*/
	line-height: 1.6;
	margin-bottom: 2%;
}
.headerCont h2 span{
	letter-spacing: .044em;
	color: #FFF100CC;
	line-height: 1.175;
	text-shadow: 0px 2px 32px #FFFFFF80;
	margin-bottom: 2%;
}

.headerContFlex img{
	width: 20%;
}

header .headerCont video{
	width: 87.35%;
	display: block;
	margin: 4.83% auto 5.93%;
}
header a.aboutLink{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 29.57%;
	height: clamp( 24px, 4.5139vw, 54px);
	margin: auto;
	border: 1px solid #fff;
	border-radius: 5vw;
	position: relative;
}
header a.aboutLink:before{
	content: "";
	background: url("../images/icon-arrow_r.png") no-repeat 94% 50% / auto 30%;
	display: block;
	position: absolute;
	right: 0;
	width: 100%;
	height: 100%;
}

header a.aboutLink:hover{
background:white;
color:#031A47
}

.imageTxt {
	width: 100%;
	display: flex;
	overflow: hidden;
	margin-top: -6%;
}
.first, .second {
	font-size: clamp(100px, 13.8889vw, 167px); /*200px*/
	font-family: "Raleway", serif;
	letter-spacing: 0;
	opacity: 0.15;
	flex-shrink: 0;
	width: auto;
	height: auto;
	text-wrap: nowrap;
	word-break: keep-all;
	display: inline;
}
.first {
	animation: anim--first 200s infinite linear 0.1s both;
}
.second {
	animation: anim--second 200s infinite linear 0.1s both;
}
@keyframes anim--first {
	from {
		transform: translateX(0%);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes anim--second {
	from {
		transform: translateX(0%);
	}
	to {
		transform: translateX(-100%);
	}
}

.youtubeWrapper {
	margin: 5% 6.33%;
}
.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

@media screen and (max-width:767px){
	header{
		/*background: url("../images/top_bg1.png") repeat-x 50% 0 / auto 100%;*/
		background: transparent linear-gradient(180deg, #0059FF00 2%, #0059FF1A 34%, #0059FF1A 89%, #3B7FFF00 96%, #D7E5FF00 100%) 0% 0% no-repeat padding-box;
		overflow: hidden;
	}
	
	.headerContOuter{
		background: url("../images/top_bg2sp.png") no-repeat 50% 0 / 140% auto;
		margin: -25% auto 0;
	}
	.headerCont{
		margin: 0 4.25vw;
		padding: 23vw 0 33vw;
	}
	.headerContFlex{
		text-align: center;
		display: block;
		padding-right: 0;
		margin: 0 6vw;
		padding-top: 10.67vw;
	}
	.headerContFlex > div{	text-align: left;}
	
	.headerCont h2{
		font-size: 9.6vw; /*36px*/
		line-height: 1.22;
		margin: 3vw 0 10.96vw;
	}
	.headerCont h2 span{
		margin-bottom: 10.96vw;
	}
	
	.headerContFlex img{
		width: 29vw;
	}
	
	header .headerCont video{
		width: 85.5vw;
		margin: 10.55vw auto 14.93vw;
	}
	header a.aboutLink{
		width: 70.13vw;
		height: 14.93vw;
		border-radius: 15vw;
	}
	header a.aboutLink:before{
		background: url("../images/icon-arrow_r.png") no-repeat 90% 50% / auto 25%;
	}
	
	/*.imageTxt{
		font-size: 27.73vw; /*104px
		font-family: "Raleway", serif;
		letter-spacing: 0;
		white-space: nowrap;
		margin: -11vw auto 0 -86vw;
		opacity: .15;
		overflow: visible;
	}*/
	.first, .second {
		font-size: 27.73vw; /*104px*/
	}

	.youtubeWrapper {
		margin: 10.56vw 6vw;
	}
}


/* 3.gNavi
---------------------------------------------------------- */

.navwrapper{
	max-width: 1200px;
	width: 100%;
	margin: auto;
}
nav{
	position: absolute;
	top: 0;
	z-index: 10;
	max-width: 1200px;
	width: 100%;
}
nav > div{
	background: #fff;
	margin: 3.75% 4.44% 0;
	display: flex;
	justify-content: space-between;
	border-radius: 5vw;
	padding: .95% 1.27% .95% 4.12%;
	box-shadow: 0px 1px 53px #04194733;
}
nav ul{
	display: flex;
	flex: 1;
	justify-content: center;
	align-items: center;
	gap: 3.8%;
}

nav .contactLink{	width: 20.7%;}
nav .contactLink a{
	background: #F0D300;
	text-align: center;
	font-weight: 700;
	padding: 9% 20%;
	border-radius: 5vw;
	display: block;
}
nav .contactLink a:hover{background:#C6D7F7}
nav a:hover{color:#39558b}

.spMenuBtn{	display: none;}
@media screen and (max-width:767px){
	.navwrapper{
	}
	nav{
	}
	nav > div{
		width: 91.47vw;
		margin: 3.75vw auto 0;
		border-radius: 15vw;
		padding: 2.93vw 2.13vw 2.93vw 3.86vw;
	}
	nav > div.spMenu._open{
		background: #031a47;
		width: 100vw;
		margin: 0;
		padding: 10.93vw 3vw 0 6.4vw;
	}
	nav ul{
		display: none;
/*		display: flex;
		flex: 1;
		justify-content: center;
		align-items: center;
		gap: 3.8%;*/
	}
	nav >div.spMenu._open ul{
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		background: #031a47;
		color: #fff;
		font-size: 6.4vw;
		width: 100vw;
		height: 100vh;
		padding: 43.17vw 0 0 6.4vw;
	}
	nav >div.spMenu._open ul li{
		margin-bottom: 6.4vw;
	}
	
	nav .contactLink{
		width: 50%;
		display: flex;
		justify-content: flex-end;
		gap: 2.13vw;
	}
	nav .contactLink a{
		font-size: 3.2vw;
		width: 27.73vw;
		/*height: 10.13vw;*/
		padding: 2.94vw 3vw;
		border-radius: 15vw;
	}
	
	.spMenuBtn{	display: block;}
	.spMenuBtn .menuClose{	display: none;}
	
	.spMenuBtn._on .menuOpen{	display: none;}
	.spMenuBtn._on .menuClose{	display: block;}

	.spMenuBtn{
		width: 10.67vw;
	}
}






/* 4.SERVICE
---------------------------------------------------------- */

.service{}
.service img{
	margin: 5% auto 10%;
	padding: 0 1.7%;
}

@media screen and (max-width:767px){
	.service p{
		margin: 7vw 0 0;
	}
	.service img{
		margin: 9.97vw auto 19.86vw;
		padding: 0 4.27vw;
	}
}


/* 5.STRENGTHS
---------------------------------------------------------- */

.strengths{
}
.strengths ul{
	margin-top: 10%;
}
.strengths li{
	position: relative;
	margin-bottom: 7.5%;
}
.strengths li img{
	position: absolute;
	width: 23.44%;
	margin: -3.28% auto auto 3.3%;
}
.strengths li div{
	background: #C6D7F780;
	border-radius: clamp( 27px, 2.5vw, 32px);
	padding: 4.85% 6.25% 4.85% 29.92%;
}
.strengths li div h3{
	color: #031a47;
	font-size: clamp(14px, 3.3333vw, 40px);
	font-weight: 700;
	line-height: 1;
	margin-bottom: 4%;
}
@media screen and (max-width:767px){
	.strengths ul{
		margin-top: 5vw;
	}
	.strengths li{
		margin-bottom: 9.33vw;
	}
	.strengths li img{
		width: 21.37vw;
		margin: -3.28% auto auto 0;
	}
	.strengths li div{
		border-radius: 2.4vw;
		padding: 6vw;
	}
	.strengths li div h3{
		font-size: 5vw;
		line-height: 1.2;
		margin-bottom: 5.208vw;
		margin-left: 22vw;
	}
}


/* 6.NEWS
---------------------------------------------------------- */
.newsCont{
	background: #031A47;
	color: #fff;
	border-radius: clamp( 27px, 2.5vw, 32px);
	padding: 5% 5% 6.48%;
	margin: 15% 0 18%;
}
.newsCont dl{
	margin-top: 4.4%;
	position: relative;
}
.newsCont dt{
	position: absolute;
	padding: 2%;
}
.newsCont dd{
	border-bottom: 1px solid #fff;
	padding: 2% 2% 2% 18%;
}

@media screen and (max-width:767px){
	.newsCont{
		border-radius: 8.53vw;
		padding: 9.992vw 6vw 11.2vw;
		margin: 21.33vw 0 18%;
	}
	.newsCont dl{
		margin-top: 3vw;
		border-top: 1px solid rgba(255,255,255,.7);
	}
	.newsCont dt{
		position: relative;
		padding: 7vw 0 0;
	}
	.newsCont dd{
		padding: 0 0 5.74vw;
		border-bottom: 1px solid rgba(255,255,255,.7);
	}
}


/* 7.CONTACT
---------------------------------------------------------- */
.contact{
	max-width: 1200px;
	margin: auto;
}
.contactBtn{	margin: 10% 0;}
.contactBtn a{
	font-size: clamp(14px, 3.3333vw, 40px);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 5vw;
	width: 65.625%;
	margin: 4% auto;
	padding: 3% 0;
	position: relative;
}
.contactBtn a.contactMail{
	background: #f0d300;
}
.contactBtn a.contactMail:hover{
background: #C6D7F780;
}
.contactBtn a.contactTel{
	background: #031a47;
	color: #fff;
}
.contactBtn a.contactTel:hover{
background: #C6D7F7;
color:#031a47;
}

.contactBtn a.contactTel:before{
	content: "";
	background: url("../images/icon-phone.png") no-repeat 22% 50% / auto 40%;
	display: block;
	position: absolute;
	right: 0;
	width: 100%;
	height: 100%;
}



@media screen and (max-width:767px){
	.contactBtn{	margin: 12vw 0;}
	.contactBtn a{
		font-size: 4.8vw;
		border-radius: 15vw;
		width: 100%;
		height: 21.33vw;
		margin: 4% auto;
		padding: 0;
	}
	.contactBtn a.contactTel:before{
		content: "";
		background: url("../images/icon-phone.png") no-repeat 22% 50% / auto 30%;
	}
}


/* 8.RECRUIT
---------------------------------------------------------- */
.recruit{
	background: url("../images/top_bg3.jpg") no-repeat 50% 0 / cover;
}
.recruitInner{
	max-width: 1200px;
	margin: auto;
	padding: 9.48% 0 11%;
}
.recruitBtn{
	background: #031a47;
	color: #fff;
	font-size: clamp(14px, 3.3333vw, 40px);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 5vw;
	width: 65.625%;
	margin: 11% auto 0;
	padding: 3% 0;
}

.recruitBtn:hover{background: #C6D7F7;
color:#031a47;}

@media screen and (max-width:767px){
	.recruit{
		background: url("../images/top_bg3sp.jpg") no-repeat 50% 0 / cover;
	}
	.recruitInner{
		padding: 15.6vw 0 20vw;
	}
	.recruitBtn{
		font-size: 4.8vw;
		border-radius: 15vw;
		width: 100%;
		height: 21.33vw;
		margin: 56.96vw auto 0;
		padding: 0;
	}
}


/* 9.footer
---------------------------------------------------------- */
.foot {
	background: #031a47;
	color: #fff;
	text-align: center;
	padding: 8.68% 0 9%;
}
.foot img{
	width: 11%;
	max-width: 160px;
	margin-bottom: 3.8%;
}
.copyright{
	font-size: clamp(11px, 1.1111vw, 13px);
	opacity: .7;
	margin-top: 1.58%;
}
@media screen and (max-width:767px){
	.foot {
		padding: 21.33vw 0 29.632vw;
	}
	.foot img{
		width: 27.79vw;
		max-width: 100%;
		margin-bottom: 8.928vw;
	}
	.copyright{
		font-size: 3.2vw;
		margin-top: 3.84vw;
	}
}


/*---------------------------------------------------

		企業情報（about.html）

---------------------------------------------------*/



/* 1.ABOUT US
---------------------------------------------------------- */
.aboutus{
	margin-top: 5%;
}
.aboutus p{
	width: 80%;
}
@media screen and (max-width:767px){
	.aboutus{
		margin-top: 14.03vw;
	}
	.aboutus h2{
		line-height: 1.25;
		margin-bottom: 6vw;
	}
	.aboutus h2 span{
		margin-bottom: 3vw;
	}
	.aboutus p{
		width: 100%;
	}
}


/* 2.COMPANY
---------------------------------------------------------- */
.campany{}
.campany > span{
	font-size: clamp(70px, 8.65vw, 106px); /*127px*/
	font-family: "Raleway", serif;
	letter-spacing: 0;
	color: #031A47;
	opacity: 0.15;
	display: block;
	margin-top: 2%;
}

.aboutBody{
	background: url("../images/about_img1.jpg") no-repeat 98.33% 0 / auto 96%;
	padding-left: 4.44%;
	padding-bottom: 5%;
	margin-bottom: 2%;
	margin-top: -2%;
}

.aboutBody h2{
	padding-top: 5%;
}

.aboutList{
	background: #fff;
	width: 57%;
	padding: 2% 0;
	border-radius: clamp( 24px, 3.056vw, 37px);
}

.aboutList table{
	border-collapse: separate;
	border-spacing: 0 8px;
	width: 100%;
}
.aboutList th{
	background: #545454;
	color: #fff;
	font-weight: 500;
	width: 33%;
	padding: 2% 0 2% 8%;
}
.aboutList td{
	padding: 2% 0 2% 12%;
}

@media screen and (max-width:767px){
	.campany{}
	.campany > span{
		font-size: 18.93vw;
		line-height: 1.1;
		margin: 6vw 4.27vw;
	}
	
	.aboutBody{
		background: none;
		padding: 0;
		margin: 0 0 23vw 4.27vw;
	}
	
	.aboutBody h2{
		display: none;
	}
	
	.aboutList{
		width: 100%;
		padding: 0;
		margin-bottom: 15vw;
	}
	
	.aboutList table{
		font-size: 4vw;
	}
	.aboutList th{
		width: 29%;
		padding: 2% 0 2% 2.5%;
	}
	.aboutList td{
		padding: 2% 0 2% 2.5%;
	}
}



/*---------------------------------------------------

		警備業標識（license.html）

---------------------------------------------------*/



/* 1.license
---------------------------------------------------------- */
.license{
	padding: 10% 0 5%;
}

.licenseList{}
.licenseList table{
	width: 60%;
	margin: 7% auto;
}
.licenseList caption{
	font-size: clamp(15px, 3.1944vw, 38px); /*46px*/
	font-weight: 700;
	letter-spacing: .3em;
	text-align: center;
	margin-bottom: 2.5%;
}
.licenseList th ,
.licenseList td{
	border: 1px solid #000;
	vertical-align: middle;
	padding: 3%;
}
.licenseList td{
	text-align: center;
}
@media screen and (max-width:767px){
	.license{
		padding: 20vw 0 5vw;
	}
	
	.licenseList{}
	.licenseList table{
		font-size: 4vw;
		width: 100%;
		margin: 14vw auto;
	}
	.licenseList caption{
		font-size: 6vw;
	}
	.licenseList th ,
	.licenseList td{
		padding: 3%;
	}
	.licenseList td{
		text-align: center;
	}
}



