@charset "UTF-8";

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@100..900&family=Barlow+Condensed:wght@700&display=swap');

body {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	color: #000;
	background: #fff;
}

a { color: #000; text-decoration: none; }
a:hover { color: #000; }

p, li {
	line-height: 1.8;
}

@media screen and (min-width: 768px) {
	img { width: auto; }
}

@media screen and (max-width: 767px) {
	.pcOnly { display: none !important; }
}
@media screen and (min-width: 768px) {
	.spOnly { display: none !important; }
}

.sec_inner {
	margin: 0 auto;
	max-width: 1200px;
}

.sec_inner100 {
	margin: 0 auto;
	max-width: 100%;
}

@media screen and (max-width: 1200px) {
	.sec_inner { max-width: 96%; }
	.sec_inner100 { max-width: 100%; }
}

@media screen and (max-width: 768px) {
	.sec_inner { max-width: 90%; }
	.sec_inner100 { max-width: 100%; }
}

/* マージンユーティリティ */
.mt00  { margin-top:   0 !important; }
.mt10  { margin-top:  10px !important; }
.mt20  { margin-top:  20px !important; }
.mt30  { margin-top:  30px !important; }
.mt40  { margin-top:  40px !important; }
.mt50  { margin-top:  50px !important; }
.mt60  { margin-top:  60px !important; }
.mt70  { margin-top:  70px !important; }
.mt80  { margin-top:  80px !important; }
.mt90  { margin-top:  90px !important; }
.mt100 { margin-top: 100px !important; }

.mb00  { margin-bottom:   0 !important; }
.mb10  { margin-bottom:  10px !important; }
.mb20  { margin-bottom:  20px !important; }
.mb30  { margin-bottom:  30px !important; }
.mb40  { margin-bottom:  40px !important; }
.mb50  { margin-bottom:  50px !important; }
.mb60  { margin-bottom:  60px !important; }
.mb70  { margin-bottom:  70px !important; }
.mb80  { margin-bottom:  80px !important; }
.mb90  { margin-bottom:  90px !important; }
.mb100 { margin-bottom: 100px !important; }


/* ============================================
   ヘッダー
============================================ */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 9999;
	background: #fff;
	border-bottom: 1px solid #ddd;
}

.header_inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 85px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ロゴ */
.header_logo_text {
	display: block;
	font-size: 2.25rem;
	font-weight: 700;
	color: #000;
	letter-spacing: 0.08em;
	text-decoration: none;
}

/* PCナビ */
.gnavi {}

.nav_list {
	display: flex;
	align-items: center;
	gap: 0;
}

.nav_item a {
	display: block;
	padding: 8px 24px;
	font-size: 1.25rem;
	color: #000;
	text-decoration: none;
	position: relative;
	letter-spacing: 0.05em;
	transition: color 0.3s;
}

/* hover：左から伸びる下線アニメーション */
.nav_item a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 24px;
	right: 24px;
	height: 1px;
	background: #0d2b4f;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav_item a:hover {
	color: #0d2b4f;
}

.nav_item a:hover::after {
	transform: scaleX(1);
}

/* ナビ区切り縦線 */
.nav_item + .nav_item {
	border-left: 1px solid #ccc;
}

/* ハンバーガー（SP用・PC時は非表示） */
.hamburger {
	display: none;
	overflow: hidden;
}

/* SPナビ */
.gnavi_sp {
	display: none;
	position: fixed;
	top: 60px;
	left: 0;
	width: 100%;
	background: #fff;
	z-index: 9998;
	border-top: 1px solid #ddd;
}

.gnavi_sp.is-open {
	display: block;
}

.gnavi_sp .nav_list {
	flex-direction: column;
}

.gnavi_sp .nav_item {
	width: 100%;
	border-left: none;
	border-bottom: 1px solid #eee;
}

.gnavi_sp .nav_item a {
	padding: 16px 5%;
}


/* ============================================
   ヘッダー SP
============================================ */
@media screen and (max-width: 768px) {

	header {
		height: 60px;
	}

	.header_inner {
		height: 60px;
		padding: 0 16px;
	}

	.header_logo_text {
		font-size: 1.375rem;
	}

	/* PCナビ非表示 */
	.gnavi {
		display: none;
	}

	/* ハンバーガー表示 */
	.hamburger {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 6px;
		width: 44px;
		height: 44px;
		cursor: pointer;
		flex-shrink: 0;
	}

	.hamburger_line {
		display: block;
		width: 24px;
		height: 2px;
		background: #333;
		border-radius: 2px;
		transition: all 0.3s;
	}

	.hamburger.is-open .hamburger_line--top {
		transform: translateY(8px) rotate(45deg);
	}

	.hamburger.is-open .hamburger_line--mid {
		opacity: 0;
		width: 0;
		transform: scaleX(0);
	}

	.hamburger.is-open .hamburger_line--btm {
		transform: translateY(-8px) rotate(-45deg);
	}

	main {
		margin-top: 0;
	}
}


/* ============================================
   フッター
============================================ */

/* フッター上部：会社情報 */
.footer_info {
	background: #f3f4f8;
	padding: 80px 20px;
}

.footer_info_inner {
	max-width: 1000px;
	margin: 0 auto;
	text-align: center;
}

.footer_company {
	font-size: 2.75rem;
	font-weight: 700;
	color: #000;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}

.footer_address {
	font-size: 1.125rem;
	color: #000;
	letter-spacing: 0.03em;
	line-height: 1.8;
}

/* フッター下部：コピーライト */
.footer_copy {
	background: #0b284a;
	padding: 20px;
}

.footer_copy_text {
	font-size: 1rem;
	color: #fff;
	text-align: center;
	letter-spacing: 0.05em;
	line-height: 1;
}


/* ============================================
   フッター SP
============================================ */
@media screen and (max-width: 768px) {

	.footer_info {
		padding: 60px 10%;
	}

	.footer_company {
		font-size: 5.5vw;
		margin-bottom: 14px;
	}

	.footer_address {
		font-size: 3.5vw;
	}

	/* 郵便番号の後で改行・スペースなしでブロック表示 */
	.footer_address_zip {
		display: block;
	}

	.footer_address_text {
		display: block;
	}

	.footer_copy_text {
		font-size: 3vw;
	}
}


/* ============================================
   CTAセクション
   ★ デザインが出てきたら追記する
============================================ */