*,*::before,*::after{ box-sizing:border-box; }
body{
  margin:0; padding:0;
  width:100%; max-width:100%;
  position:relative;
  overflow-x:clip;
  font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:16px; line-height:1.85; color:#333; background:#ebf5ff;
  font-feature-settings:"palt" 1;
}
.nav-wrap {
	display:flex;
	width:100%;
	position: sticky;
	top:-4px;
	justify-content:center;
	padding:0.5rem;
	background-color:#ebf5ff;
	z-index:9999;
	transition:background-color 0.3s, box-shadow 0.3s, backdrop-filter 0.3s;

}
nav {
	display:flex;
	width:100%;
	max-width:1120px;
	justify-content:flex-end;
	height:48px;
	align-items:center;
}
.nav-links {
	display:flex;
	align-items:center;
	gap:0 1.5rem;
	align-self:flex-end;
	line-height:1;
	position:relative;
	top:-4px;
}
.nav-toggle {
	display:none;
	width:44px;
	height:44px;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:6px;
	padding:0;
	border:0;
	background:none;
	cursor:pointer;
}
.nav-toggle>span {
	display:block;
	width:24px;
	height:2px;
	background-color:#2d68c4;
	transition:transform 0.25s, opacity 0.2s;
}
.nav-wrap.is-open .nav-toggle>span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
.nav-wrap.is-open .nav-toggle>span:nth-child(2) { opacity:0; }
.nav-wrap.is-open .nav-toggle>span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
nav>.logo-wrap {
	display:flex;
	align-items:center;
	height:48px;
	margin:0 auto 0 0;
	flex:0 1 auto;
	min-width:0;
	overflow:hidden;
}
nav>.logo-wrap>a {
	display:flex;
	align-items:center;
}
nav>.logo-wrap>a>img {
	height:36px;
	max-width:100%;
}
.nav-links>a {
	display:inline-block;
	text-decoration:none;
	font-size:1.08rem;
	font-weight:400;
	padding:0 0.5rem;
	text-align:center;
	color:#2d68c4;
	white-space:nowrap;
	flex:0 0 auto;
}
header {
	display:flex;
	position:relative;
	justify-content:center;
	align-items: flex-end;
	width:100%;
	height:calc(100vh - 64px);
	background:url(../img/main-bg.webp) center center no-repeat;
	background-size:cover;
}
header::before {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to bottom, rgba(0,32,72,0) 45%, rgba(0,32,72,0.55) 100%);
	pointer-events:none;
}
header h1 {
	margin:0 0 1em;
	position:relative;
	font-size:2.6rem;
	color:#fff;
	font-weight:800;
	text-align:center;
	line-height:3.8rem;
	text-shadow:0 2px 10px rgba(0,26,58,0.65), 0 0 2px rgba(0,26,58,0.5);
}
.main {
	display:flex;
	width:100%;
	flex-direction: column;
 	align-items: center;
	position:relative;
	flex-wrap:wrap;
	background-color:#ebf5ff;
}
.caption,.sec {
	width:100%;
	max-width:1120px;
	padding:0.5rem;
}
.sec {
	padding:4rem 0.5rem;
}
.caption {
	max-width:1120px;
	font-size:1.4rem;
	line-height:2.2rem;
	margin:1.5rem 0 0;
	letter-spacing:0.08em;
}
.sec>h2 {
	font-size:1.5rem;
	color:#2d68c4;
	font-weight:700;
	letter-spacing:0.08em;
	margin:0 0 1.5rem;
}
.sec>section>h3 {
	display:inline-block;
	font-size:1.2rem;
	color:#fff;
	font-weight:500;
	background-color:#307fe2;
	width:12em;
	padding:0.25rem 0.75rem;
	margin:0;
	font-weight:400;
	text-align:center;
}
.sec>section>dl {
	margin:1.75rem 0;
}
.sec>section>dl>dt {
	font-size:1.3rem;
	font-weight:700;
	line-height:1.85;
	color:#2d68c4;
}
.sec>section>dl>dd {
	font-size:1.2rem;
	line-height:1.85;
	margin-left:0;
	margin-bottom:1rem;
	padding:0.25rem 0;
	font-weight:400;
}
.sec>p {
	font-size:1.2rem;
	line-height:1.85;
}
.company>dl {
	display:grid;
	grid-template-columns:7em 1fr;
	font-size:0.95rem;
	line-height:1.55;
	margin:0;
}
.company>dl>dt,.company>dl>dd {
	margin:0;
	padding:0.5rem 0;
	border-bottom:dotted 1px #ccc;
}
.company address {
	display:inline;
	font-style:normal;
}
.company>dl>dd>a,
.company>dl>dd>a:link,
.company>dl>dd>a:visited,
.company>dl>dd>a:hover,
.company>dl>dd>a:active {
	color:inherit;
	text-decoration:none;
}
.company>dl>dd span {
	display:inline-block;
	width:6em;
}
.sec>.col2 {
	display:flex;
	gap:0 4%;
	align-items:stretch;
}
.sec>.col2>.col {
	display:grid;
	grid-template-columns:repeat(2,46%);
	justify-content:space-between;
	align-content:stretch;
	gap:1.6rem 0;
	width:48%;
}
.sec>.col2>.pic {
	width:48%;
	min-height:18rem;
	background:url(../img/diag-price-bg.webp) center center no-repeat;
	background-size:cover;
}
.sec>.col2>.col>.block {
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	text-align:center;
	font-size:1.2rem;
	line-height:1.4;
	padding:0.9rem 0.5rem;
	background-color:#007fe6;
	color:#fff;
}
.sec>.col2>.col>.block:nth-child(4n+1),
.sec>.col2>.col>.block:nth-child(4n) {
	background-color:#0068c9;
}
.sec>.col2.foot {
	justify-content: space-between;
	padding:1rem 0;
}
.sec>.col2.foot>.block {
	display:inline-block;
	width:48%;
	text-decoration:none;
	background-color:#b3e9ff;
	text-align:center;
	font-size:1.2rem;
	padding:2rem 1.5rem;
}
.sec>.col2.foot>.block,
.sec>.col2.foot>.block:link,
.sec>.col2.foot>.block:visited,
.sec>.col2.foot>.block:hover,
.sec>.col2.foot>.block:active {
	text-decoration:none;
	color:#1c4f9c;
	font-weight:700;
	line-height:1.65;
	letter-spacing:-0.02em;
}
.sec>.col2.foot>.block:visited>h3,
.sec>.col2.foot>.block:active>h3,
.sec>.col2.foot>.block>h3 {
	margin:0 0 0.4rem;
	font-size:1.35rem;
	line-height:1.4;
	letter-spacing:-0.02em;
	color:#307fe2;
}
.sec>.col2.foot>.block>span {
	display:block;
	font-size:1.05rem;
	color:#307fe2;
}

/* 全幅ビジュアル */
.visual {
	display:block;
	width:100%;
	height:calc(100vh - 64px);
	margin-top:3rem;
	object-fit:cover;
	object-position:center 30%;
}

/* ご利用までの流れ */
.sec>.flex-box {
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:1rem;
	margin:1.5rem 0 0;
}
.sec>.flex-box>dl {
	margin:0;
	background-color:#fff;
	border:solid 2px #a9cff2;
	border-radius:1rem;
	padding:0 1rem 1.25rem;
}
.sec>.flex-box>dl>dt {
	border-bottom:solid 1px #d5e7f9;
	padding:0.9rem 0;
	overflow:hidden;
	min-height:calc(0.95rem * 1.6 * 2 + 1.8rem);
	display:flex;
	align-items:flex-start;
	margin-bottom:0.9rem;
}
.sec>.flex-box>dl>dt>h3 {
	margin:0;
	font-size:0.95rem;
	line-height:1.6;
	display:grid;
	grid-template-columns:auto 1fr;
	column-gap:0.4em;
	font-weight:500;
	color:#2d68c4;
}
.sec>.flex-box>dl>dd {
	margin:0;
	font-size:0.85rem;
	line-height:1.9;
}

/* 株式会社BLUEとは / 業務内容 */
.how {
	position:relative;
	width:100%;
	padding:4rem 0.5rem;
	margin-top:3rem;
	background:url(../img/company-head-bg.webp) center 35% no-repeat;
	background-size:cover;
	color:#fff;
}
.how::before {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to bottom, rgba(0,32,72,0.12), rgba(0,32,72,0.22));
	pointer-events:none;
}
.how>.inner {
	position:relative;
	width:100%;
	max-width:1120px;
	margin:0 auto;
	padding:0 0.5rem;
}
.how dl {
	margin:0 0 2rem;
}
.how dl:last-child {
	margin-bottom:0;
}
.how dt>h2 {
	margin:0 0 0.5rem;
	font-size:1.3rem;
	text-shadow:0 2px 10px rgba(0,26,58,0.7), 0 0 2px rgba(0,26,58,0.5);
	font-size:1.15rem;
	font-weight:500;
	letter-spacing:0.1rem;
}
.how dd {
	margin:0;
	font-size:1.05rem;
	text-shadow:0 1px 8px rgba(0,26,58,0.7), 0 0 2px rgba(0,26,58,0.5);
	line-height:2;
}

/* フッター */
footer {
	width:100%;
	padding:1.25rem 0.5rem;
	background-color:#1c4f9c;
	color:#fff;
	text-align:center;
	font-size:0.8rem;
	letter-spacing:0.05rem;
}

/* ===== responsive ===== */
@media screen and (max-width:960px){
	.sec>.flex-box { grid-template-columns:repeat(2,1fr); }
	.sec>.col2 { flex-wrap:wrap; gap:1.5rem 0; }
	.sec>.col2>.col,
	.sec>.col2>.pic { width:100%; }
	.sec>.col2>.pic { min-height:12rem; }
	header h1 { font-size:1.9rem; line-height:2.9rem; }
}
@media screen and (max-width:1000px){
	.nav-links { gap:0 0.9rem; }
	.nav-links>a { font-size:0.9rem; padding:0 0.15rem; }
	nav>.logo-wrap>a>img { height:30px; }
}
@media screen and (max-width:820px){
	.nav-toggle { display:flex; }
	.nav-links {
		align-self:auto;
		top:auto;
		position:absolute;
		top:100%;
		left:0;
		right:0;
		flex-direction:column;
		align-items:stretch;
		gap:0;
		max-height:0;
		overflow:hidden;
		background-color:#ebf5ff;
		transition:max-height 0.3s ease;
	}
	.nav-wrap.is-open .nav-links {
		max-height:70svh;
		box-shadow:0 8px 16px rgba(28,79,156,0.15);
	}
	.nav-links>a {
		font-size:1rem;
		padding:0.9rem 1.25rem;
		text-align:left;
		border-top:solid 1px rgba(45,104,196,0.15);
	}
}
@media screen and (max-width:768px){
	.sec { padding:2.5rem 0.5rem; }
	.caption { font-size:1.15rem; line-height:1.9; letter-spacing:0.04em; }
	.sec>h2 { font-size:1.35rem; }
	.sec>section>h3 { width:auto; min-width:12em; }
	.sec>.col2.foot>.block { width:100%; }
	.sec>.col2.foot { gap:1rem 0; }
	.company>dl { grid-template-columns:6em 1fr; font-size:0.9rem; }
}
@media screen and (max-width:640px){
	header { height:calc(100svh - 64px); }
	header h1 { font-size:calc(100vw / 26); line-height:1.9; letter-spacing:0.01em; padding:0 1.75rem; box-sizing:border-box; }
	.visual { height:56svh; }
	.sec>.flex-box { grid-template-columns:1fr; }
	.sec>.flex-box>dl>dt { min-height:0; }
	.sec>.col2>.col { grid-template-columns:repeat(2,48%); gap:0.8rem 0; }
	.sec>.col2>.col>.block { font-size:1.05rem; }
	.sec>.col2.foot>.block>h3 { font-size:1.2rem; }
	.sec>.col2.foot>.block { font-size:1.05rem; }
	.how { padding:2.5rem 0.5rem; }
	.how dt>h2 { font-size:1.15rem; }
	.how dd { font-size:0.95rem; line-height:1.9; }
	.company>dl { grid-template-columns:5.5em 1fr; }
	.company>dl>dd span { width:5.5em; }
}

.nav-wrap.is-scrolled {
	background-color:rgba(235,245,255,0.72);
	-webkit-backdrop-filter:blur(10px);
	backdrop-filter:blur(10px);
	box-shadow:0 2px 12px rgba(28,79,156,0.15);
}

.sec>section:last-child>dl:last-child { margin-bottom:0; }
.sec>section:last-child>dl:last-child>dd:last-child { margin-bottom:0; }

html { scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){
	html { scroll-behavior:auto; }
}
#merit,#price,#flow,#company { scroll-margin-top:72px; }
