/* ============================================================
	Outline of Sections
	============================================================ */
/*
1. Global Settings
2. Colors
3. Header Navigation
4. Footer
5. Container
6. Mobile and Tablet Styles
7. Page Level Parts
8. About Section
9. Greeting Section
10. Products Section
11. Business Section
12. Recruit Section
13. Privacy
*/


/* ============================================================
	Global Settings
	============================================================ */

body {
	font-size: 18px;
	line-height: 1.7;
	color: #000;
}
@media (max-width: 1409px) {
	
	body {
		font-size: 14px;
		line-height: 1.7;
		color: #000;
	}
}

/* ============================================================
	Colors
	============================================================ */

.bg-lightblue {
	background-color: #F1F8FD;
}
.bg-beige {
	background-color: #FDF4E5;
}
.bg-navy {
	background-color: #013384;
}

.text-blue{
	color: #013384;
}

.din {
	font-family: "din-condensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.nav-item a.nav-link {
	color: #013384;
}

.btn-hdcontact {
	background-color: #013384;
	color: white !important;
	border-radius: 0;
	padding: 25px 40px;
}
.btn-hdcontact:hover {
	background-color: #1854b5;
	color: white;
}

/* ============================================================
	Header Navigation
	============================================================ */

@media screen and (min-width: 1410px) {
	#headerNav{
		padding:0;
		height: 110px;
	}
	.nav-item{
		height: 110px;
	}
	.nav-item a{
		align-items: center;;
		display: flex;
		height: 110px;;
		line-height: 20px;;
		border-bottom: 3px solid #F1F8FD;
	}
	.nav-item a:hover{
		border-bottom: 3px solid #013384;
		box-sizing:border-box;
	}
	.nav-item a.active{
		border-bottom: 3px solid #013384;
	}
	.btn-hdcontact{
		margin-top:10px;
		height: 90px!important;;
		display: flex;
	}
}
@media screen and (max-width: 1399px) {
	.navbar-collapse{
		position: fixed;
		top:60px;
		left:0;
		width: 100%;;
		z-index: 10002;
		background-color: #fff;
		padding-bottom: 15px;;
	}
}



@media screen and (min-width: 1410px) {
	.pcLogo{
		display: block;
	}
	.spLogo{
		display: none;
	}
}
@media screen and (max-width: 1409px) {

	#headerNav{
		padding:0;
		height: 70px;
	}
	
	.navbar{
		padding:8px 0!important;
	}
	.navbar .container{
		max-width: 100%;;
	}
	.navbar-brand {
		display: block;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}
	.navbar-brand img{
		width: 128px;
		height: 21px;
	}
	.navbar-toggler{
		border: none;
		box-shadow: none;
		background: none;
	}
	

	.pcLogo{
		display: none;
	}
	.spLogo{
		display: block;
	}
}



/* ============================================================
	Footer
	============================================================ */

footer {
	padding: 50px 25px;
	background-image: url(../images/common/footer_bg.jpg);
	background-size: cover;
}

/* フッターメニュー2カラムレイアウト */
.footer-menu {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
	/*max-width: 320px;*/ /* 必要に応じて調整 */
}
.footer-menu li {
	width: 50%;
	margin: 0 0 8px 0;
	color: #fff;
	font-size: 1em;
}
.footer-menu li a {
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s;
}
.footer-menu li a:hover {
	opacity: 0.7;
}

.footer-menu > li::before {
  content: "- ";
  margin-right: 0.5em; /* アイコンとテキストの間隔 */
  color: #fff; /* 色を好きに指定可能 */
  font-weight: bold; /* 必要なら太字にも */
}

footer .cCt {
	margin-bottom: 15px;
}

div.copyright p {
	text-align: center;
	color: #013384;
	font-size: 14px;
	padding: 8px 0;
	margin-bottom: 0;
}

#contact {
	padding: 100px 0;
}

footer .address-text{
	font-weight: normal;
	line-height: 150%;;
}

footer .logoimage{
	text-align: left;;
	padding-bottom: 8px;;
}

@media (min-width: 1155px) {
	footer{
		background-position: 0 0;;
		background-size: cover;;
	}
}
@media (max-width: 1154px) {
	footer .text{
		text-align: left;;
	}
	footer{
		background-size: cover;
	}
}


/* ============================================================
	Container
	============================================================ */

@media (min-width: 1410px) {
	.container-1410 {
		width: 100%;
		max-width: 1410px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}
}

.container-1155 {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 1155px) {
	
	.container-1155 {
		width: 100%;
		max-width: 1155px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}
}

/* ============================================================
	Mobile and Tablet Styles
	============================================================ */

@media (max-width: 1409px) {
	body {
		width: 100%;
		/*padding: 0 16px;*/
	}

	.imageWrap {
		width: 100% !important;
		padding: 0 16px;
	}

	#service .items .item {
		width: 100%;
	}

	footer {
		text-align: center;
	}

	.footer-menu {
		margin:auto
	}

	.footer-menu li {
		width: 50%;
		text-align: center;

	}
	.footer-menu li a{
		white-space: nowrap;
	}
	.btn-hdcontact {
		padding: 15px 20px;
		font-size: 16px;
		
	}
	.container-1410 {
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 20px;
		padding-right: 20px;
	}
}

.onlySp{
	display: none;
}
@media (max-width: 575px) {

	
	.onlyPC{
		display: none;;
	}
	.onlySp{
		display: block;
	}
	footer .text{
		font-size: 14px;
		text-align: left;;
	}

	.footer-menu li {
		width: 50%;
		text-align: left;
		font-size: 14px;
	}

	.sp-left{
		text-align: left!important;;
	}
}

/* ============================================================
	Page Level Parts
	============================================================ */

.page-header {
	padding-top: 80px;
	padding-bottom: 40px;
}

.section-title {
	font-size: 30px;
	font-weight: bold;
	color: #013384;
	margin-bottom: 15px;;
}
.section-title span{
	font-size: 25px;
	color: #557AB5;
	padding-left: 15px;
}

@media (max-width: 1409px) {
	.section-title {
		font-size: 18px;
		text-align: center;;
	}
	.section-title span{
		display: block;
		font-size: 16px;
		color: #557AB5;
		padding-left: 0;
	}
}

.section-header-wrapper {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
}

.left-line {
	position: absolute;
	left: 0;
	height: 2px;
	background-color: #013384;
	width: calc((100% - 1440px) / 2); /* container左端まで */
	top: 50%;
	transform: translateY(-50%);
}
@media (max-width: 1409px) {
	.left-line {
		display: none; /* 小さい画面では線を非表示にするなど */
	}
}

.left-line2 {
	position: absolute;
	left: 0;
	top: 30px; /* 親コンテナの上から15px位置に表示 */
	height: 2px;
	background-color: #013384;
	width: calc((100% - 1440px) / 2); /* container左端まで */
	transform: none; /* Y方向の中央寄せを解除 */
}
@media (max-width: 1409px) {
	.left-line2 {
		display: none; /* 小さい画面では線を非表示にするなど */
	}
}

.page-header .page-title {
	font-size: 40px;
	color: #013384;
	text-align: center;
	margin-bottom: 0;
}
.eng-text {
	text-align: center;
	font-size: 30px;
	font-weight: 800;
	color: #557AB5;
}
@media (max-width: 1409px) {
	.page-header .page-title {
		font-size: 22px;
	}
	.eng-text {
		font-size: 18px;
	}
}


.contents-header {
	position: relative;
}

.page-description {
	text-align: center;
}

h3.section-subtitle {
	position: relative;
	font-size: 22px;
	font-weight: bold;
	color: #013384;
	padding-bottom: 10px;
	margin-bottom: 20px;
}

h3.section-subtitle::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: #013384;
}



/* ============================================================
	About Section
	============================================================ */

.company-info-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 40px;
}

.company-info-table th,
.company-info-table td {
	border-bottom: 1px solid #013384;
	padding: 16px;
	vertical-align: top;
}

.company-info-table th {
	background-color: #eaf4fb;
	white-space: nowrap;
	width: 160px;
	text-align: left;
	font-weight: normal;
}

.company-info-table td {
	background-color: #ffffff;
}
.companyName{
	font-weight: bold;;
}
.companySummary{
	margin-bottom: 12px;;
}
.companyAddress{
	line-height: 128%;;
}
@media screen and (min-width: 1380px) {
	.conpanyInfo {
		padding-left: 200px;
		padding-right: 200px;
	}
}

.upperLine {
	border-top: 1px solid #013384;
}

@media screen and (max-width: 767px) {
	.company-info-table,
	.company-info-table tbody,
	.company-info-table tr,
	.company-info-table th,
	.company-info-table td {
		display: block;
		width: 100%;
	}

	.company-info-table tr {
		margin-bottom: 24px;
	}

	.company-info-table th {
		background-color: #eaf4fb;
		width: 100%;
		text-align: left;
		padding: 12px 16px 4px 16px;
		border-bottom: none;
		border-top: 1px solid #013384;
	}

	.company-info-table td {
		background-color: #ffffff;
		width: 100%;
		padding: 4px 16px 12px 16px;
		border-bottom: 1px solid #013384;
	}

	.company-info-table th:last-child,
	.company-info-table td:last-child {
		border-bottom: 1px solid #013384;
	}

	.company-info-table tr:last-child td {
		border-bottom: 1px solid #013384;
	}

	.company-info-table tr:last-child th {
		border-top: 1px solid #013384;
	}
}
/* ============================================================
	Greeting Section
	============================================================ */

.greetings-section {
	background-color: #fff; /* セクション背景色 */
	padding: 80px 0;
}

.greetings-section-title {
	font-size: 40px;
	color: #013384;
}

.greetings-header-wrapper {
	position: relative;
	width: 100%;
	display: flex;
	align-items: stretch; /* 中身の高さに合わせる */
	min-height: auto; /* 高さ制限を解除 */
}

.greetings-copyWrap{
	display: flex;
	flex-direction: column;
	align-items: left;
	justify-content: center;
	height: 100%;
	padding-top: 90px;
}

@media screen and (max-width: 1409px) {
	.greetings-copyWrap{
		padding-top: 0;
	}
}

/* ============================================================
	Products Section
	============================================================ */

.page-hero {
	width: 100%;
	max-width: 1410px;
	margin: 0 auto;
}

.page-products .hero-image {
	width: 100%;
	aspect-ratio: 1410 / 552;
	background-image: url('/images/products/hero-image.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.page-products .hero-image img{
	width: 100%;
	height: auto;
}
.product-title {
	font-weight: bold;
	margin-bottom: 0;
}

#prodcut-lineup {
	padding: 100px 0;
}
@media (max-width: 575px) {
	#prodcut-lineup {
		padding: 30px 0;
	}
}
#prodcut-lineup h5 {
	font-size: 24px;
	text-align: center;
	padding: 80px 0 40px 0;
}

.contact-box {
	background-color: #013384;
	border-radius: 10px;
}

.product-section .product-item{
	position: relative;
}
.product-section .product-item .delap2{
	position: absolute;
	top: -10px;
	left:-10px;
}
/* ============================================================
	Business Section
	============================================================ */

.page-business .hero-image {
	width: 100%;
	aspect-ratio: 1410 / 552;
	background-image: url('/images/business/hero-image.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* ============================================================
	Recruit Section
	============================================================ */

.page-recruit .hero-image {
	width: 100%;
	aspect-ratio: 1410 / 552;
	background-image: url('/images/recruit/hero-image.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* ============================================================
	privacy
	============================================================ */

.page-privacy h3{
	font-size: 22px;
	color: #013384;
	border-bottom: 1px solid #013384;
	padding-bottom: 8px;;
	margin-bottom: 16px;;
}
.page-privacy h4{
	font-size: 18px;
	
}

/* ============================================================
	News
	============================================================ */
.icon-news {
	display: inline-block;
	background-color: white!important;
	color: #ff3c3c!important;
	border: 1px solid #ff3c3c;
	border-radius: 2px;
	padding: 2px 14px;
	font-weight: bold;
	font-size: 18px!important;
	letter-spacing: 1px;
}
.icon-scanning {
	display: inline-block;
	background-color: white!important;
	color: #f5a623!important;
	border: 1px solid #f5a623;
	border-radius: 2px;
	padding: 2px 14px;
	font-weight: bold;
	font-size: 18px!important;
	letter-spacing: 1px;
}

/* ============================================================
	Contact
	============================================================ */


.form-check p span span{
	justify-content: center;
}