@charset "UTF-8";
/* ==========================================================
   共通フッター（.nf-*）
   ========================================================== */
.nf { position: relative; color: #b9c6cc; background: #0e1a21; font-size: 14px; line-height: 1.8; overflow: hidden; }
.nf::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #00a5bb 0%, #4fd1e0 50%, #00707e 100%); }
.nf::after { content: ""; position: absolute; top: -260px; right: -200px; width: 620px; height: 620px; border-radius: 50%; background: radial-gradient(circle, rgba(0,165,187,.16) 0%, rgba(0,165,187,0) 70%); pointer-events: none; }
.nf a { color: #d5e0e4; text-decoration: none; transition: color .2s; }
.nf a:hover, .nf a:focus { color: #4fd1e0; text-decoration: none; }
.nf-main { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 48px 44px; padding: 64px 0 56px; }
.nf-brand { grid-column: 1 / -1; display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 16px 44px; align-items: center; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.09); }
.nf-brand img { display: block; width: 200px; height: auto; }
.nf-brand p { margin: 0; font-size: 13.5px; line-height: 1.9; color: #9fb0b7; }
.nf-pills { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.nf-pills li { margin: 0; }
.nf-pills a { display: block; padding: 8px 22px; text-align: center; white-space: nowrap; font-size: 13px; border: 1px solid rgba(255,255,255,.22); border-radius: 30px; }
.nf-pills a:hover, .nf-pills a:focus { color: #fff; background: #00a5bb; border-color: #00a5bb; }
.nf-title { position: relative; margin: 0 0 18px; padding-bottom: 12px; font-size: 15px; font-weight: 700; letter-spacing: .02em; color: #fff; text-transform: none; }
.nf-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: #00a5bb; }
.nf-list { margin: 0; padding: 0; list-style: none; }
.nf-list li { margin: 0; }
.nf-list li + li { margin-top: 9px; }
.nf-list a { position: relative; display: inline-block; padding-left: 14px; font-size: 13.5px; line-height: 1.6; }
.nf-list a::before { content: ""; position: absolute; left: 0; top: .62em; width: 5px; height: 5px; border-top: 1.5px solid #00a5bb; border-right: 1.5px solid #00a5bb; transform: rotate(45deg); transition: left .2s; }
.nf-list a:hover::before { left: 3px; }
.nf-list small { display: block; margin-bottom: 1px; padding-left: 14px; font-size: 11px; line-height: 1.4; color: #7f939b; }
.nf-list--2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 28px; }
.nf-list--2col li + li { margin-top: 0; }
.nf-bottom { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.09); }
.nf-bottom__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding: 22px 0; font-size: 12.5px; color: #7f939b; }
.nf-bottom__inner p { margin: 0; }
.nf-bottom__links { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; list-style: none; }
.nf-bottom__links li { margin: 0; }
.nf-bottom__links a { color: #9fb0b7; }

@media (max-width: 991px) {
	.nf-brand { grid-template-columns: 200px minmax(0, 1fr); }
	.nf-pills { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
	.nf-main { grid-template-columns: 1fr 1fr; }
	.nf-col--links { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
	.nf-main { gap: 36px 24px; padding: 48px 0 40px; }
	.nf-brand { display: block; padding-bottom: 32px; }
	.nf-brand p { margin-top: 18px; }
	.nf-pills { margin-top: 18px; }
}

@media (max-width: 575px) {
	.nf-main { grid-template-columns: 1fr; }
	.nf-list--2col { grid-template-columns: 1fr; }
	.nf-bottom__inner { flex-direction: column-reverse; align-items: flex-start; }
}
