/* ==========================================================================
   NEXTSTAGE株式会社 テーマ
   現行サイト(universal-wp + WPBakery)の見た目を、標準ブロック+このCSSで再現
   数値は現行サイトの実測値(1440px幅・390px幅)に合わせている
   ========================================================================== */

:root {
	--ns-ink: #444;
	--ns-dark: #222;
	--ns-box: #333;
	--ns-light: #f7f7f7;
	--ns-copy: #18191b;
	--ns-blue: #0088cc;
	--ns-purple: #7f1084;
	--ns-orange: #f5a200;
	--ns-overlay: rgba(7, 9, 21, 0.5);
	--ns-font: Raleway, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	--ns-serif: "Noto Serif", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	--ns-sans: "Noto Sans", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: #fff;
	color: var(--ns-ink);
	font-family: var(--ns-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.03em;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: #000;
	text-decoration: none;
	transition: color 0.25s;
}

a:hover {
	color: #666;
}

p {
	margin: 0 0 35px;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 35px;
	font-family: var(--ns-font);
	font-weight: 800;
	line-height: 1.7;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ns-ink);
}

h1 { font-size: 36px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h4 { font-size: 18px; }
h5 { font-size: 14px; }
h6 { font-size: 12px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.ns-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	padding: 8px 16px;
	background: #000;
	color: #fff;
}

.ns-skip:focus {
	left: 8px;
	top: 8px;
	color: #fff;
}

.ns-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
}

/* 幅(Bootstrap 3 の .container と同じ) */
.ns-container {
	width: 100%;
	margin: 0 auto;
	padding: 0 15px;
}

@media (min-width: 768px) {
	.ns-container { width: 750px; }
}

@media (min-width: 992px) {
	.ns-container { width: 970px; }
}

@media (min-width: 1200px) {
	.ns-container { width: 1170px; }
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.ns-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition: background-color 0.8s ease, border-color 0.8s ease;
}

.admin-bar .ns-header {
	top: 32px;
}

.ns-header__inner {
	display: flex;
	align-items: center;
	width: 100%;
	height: 116px;
	margin: 0 auto;
	padding: 0 15px;
	transition: height 0.8s ease;
}

@media (min-width: 1200px) {
	.ns-header__inner {
		width: 1170px;
	}
}

.ns-header__logo {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	padding-left: 15px;
}

.ns-logo--white {
	width: auto;
	height: 30px;
}

.ns-logo--dark {
	display: none;
	width: auto;
	height: 50px;
}

.ns-gnav {
	margin-left: auto;
}

.ns-gnav__list {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-gnav__list a {
	display: block;
	padding: 48px 15px;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: padding 0.8s ease, color 0.3s;
}

.ns-gnav__list a:hover {
	color: #ccc;
}

.ns-header__tools {
	display: flex;
	align-items: center;
	padding-right: 15px;
}

.ns-header__divider {
	width: 1px;
	height: 18px;
	margin: 0 15px;
	border-right: 1px solid #fff;
}

.ns-search-btn,
.ns-burger {
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	cursor: pointer;
}

.ns-search-btn {
	display: flex;
	padding: 0 3px 0 15px;
	font-size: 17px;
}

.ns-burger {
	display: none;
	position: relative;
	width: 28px;
	height: 18px;
	margin-left: 15px;
}

.ns-burger span:not(.screen-reader-text) {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: #fff;
	transition: transform 0.3s, opacity 0.3s, top 0.3s, background-color 0.3s;
}

.ns-burger span:nth-child(1) { top: 0; }
.ns-burger span:nth-child(2) { top: 8px; }
.ns-burger span:nth-child(3) { top: 16px; }

/* スクロール後: 白地+濃いロゴ */
.is-scrolled .ns-header {
	background: #fff;
	border-bottom-color: #eee;
}

.is-scrolled .ns-header__inner {
	height: 56px;
}

.is-scrolled .ns-logo--white {
	display: none;
}

.is-scrolled .ns-logo--dark {
	display: block;
}

.is-scrolled .ns-gnav__list a {
	padding-top: 18px;
	padding-bottom: 18px;
	color: #333;
}

.is-scrolled .ns-gnav__list a:hover {
	color: #789;
}

.is-scrolled .ns-header__divider {
	border-color: #b3b3b3;
}

.is-scrolled .ns-search-btn {
	color: #333;
}

.is-scrolled .ns-burger span:not(.screen-reader-text) {
	background: #333;
}

@media (max-width: 1300px) {
	.ns-gnav__list a {
		padding-left: 19px;
		padding-right: 19px;
		letter-spacing: 0;
	}

	.is-scrolled .ns-gnav__list a {
		padding-left: 17px;
		padding-right: 17px;
	}

	.ns-header__logo {
		padding-left: 0;
	}

	.is-scrolled .ns-header__inner {
		height: 70px;
	}
}

/* タブレット・スマホ: ハンバーガー+全画面メニュー */
@media (max-width: 990px) {
	.ns-header__inner {
		height: 88px;
	}

	.is-scrolled .ns-header__inner {
		height: 62px;
	}

	.is-scrolled .ns-logo--dark {
		height: 40px;
	}

	.ns-burger {
		display: block;
		z-index: 2;
	}

	.ns-header__divider,
	.ns-search-btn {
		display: none;
	}

	.ns-gnav {
		position: fixed;
		inset: 0;
		z-index: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0;
		background: rgba(0, 0, 0, 0.92);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.4s, visibility 0.4s;
	}

	.ns-gnav__list {
		flex-direction: column;
		text-align: center;
	}

	.ns-gnav__list a,
	.is-scrolled .ns-gnav__list a {
		padding: 12px 20px;
		color: #fff;
		font-size: 20px;
		letter-spacing: 0.1em;
	}

	.is-menu-open .ns-gnav {
		opacity: 1;
		visibility: visible;
	}

	.is-menu-open .ns-burger span:not(.screen-reader-text) {
		background: #fff;
	}

	.is-menu-open .ns-burger span:nth-child(1) {
		top: 8px;
		transform: rotate(45deg);
	}

	.is-menu-open .ns-burger span:nth-child(2) {
		opacity: 0;
	}

	.is-menu-open .ns-burger span:nth-child(3) {
		top: 8px;
		transform: rotate(-45deg);
	}

	.is-menu-open {
		overflow: hidden;
	}
}

@media (max-width: 782px) {
	.admin-bar .ns-header {
		top: 46px;
	}
}

/* 検索(全画面の黒い帯) */
.ns-search {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.95);
}

.ns-search[hidden] {
	display: none;
}

.ns-search form {
	width: 50%;
	min-width: 280px;
}

.ns-search input {
	width: 100%;
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid #fff;
	background: transparent;
	color: #fff;
	font-family: var(--ns-font);
	font-size: 36px;
	font-weight: 800;
	outline: none;
}

.ns-search__close {
	position: absolute;
	top: 30px;
	right: 40px;
	border: 0;
	background: none;
	color: #fff;
	font-size: 56px;
	line-height: 1;
	cursor: pointer;
}

/* ==========================================================================
   トップのメインビジュアル(写真3枚が7秒ごとに切り替わる)
   ========================================================================== */
.ns-intro {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100vh;
	min-height: 520px;
	overflow: hidden;
	color: #fff;
	text-align: center;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	background: #333;
}

.ns-intro__slides,
.ns-intro__slide {
	position: absolute;
	inset: 0;
}

.ns-intro__slide {
	background-position: center;
	background-size: cover;
	opacity: 0;
	transition: opacity 2s ease;
}

.ns-intro__slide.is-active {
	opacity: 1;
	animation: ns-kenburns 9s ease-out forwards;
}

@keyframes ns-kenburns {
	from { transform: scale(1.12) translate(-2%, -2%); }
	to { transform: scale(1); }
}

.ns-intro::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--ns-overlay);
}

.ns-intro__body {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: 130px 0 50px;
}

.ns-intro__logo {
	margin: 0 0 45px;
	line-height: 1;
}

.ns-intro__logo img {
	width: 300px;
	height: 300px;
}

.ns-intro__scroll {
	display: inline-block;
	animation: ns-fade-down 1s 1s both;
}

.ns-mouse {
	position: relative;
	display: block;
	width: 30px;
	height: 50px;
	border: 2px solid #eee;
	border-radius: 24px;
}

.ns-mouse span {
	position: absolute;
	top: 12px;
	left: 50%;
	width: 6px;
	height: 6px;
	margin-left: -3px;
	border-radius: 50%;
	background: #eee;
	animation: ns-wheel 1.6s ease-in-out infinite;
}

@keyframes ns-wheel {
	0% { opacity: 1; transform: translateY(0); }
	80% { opacity: 0; transform: translateY(14px); }
	100% { opacity: 0; transform: translateY(0); }
}

@keyframes ns-fade-down {
	from { opacity: 0; transform: translateY(-20px); }
	to { opacity: 1; transform: none; }
}

/* ==========================================================================
   下層ページの写真見出し
   ========================================================================== */
.ns-tagline {
	position: relative;
	z-index: 0;
	overflow: hidden;
	color: #fff;
	text-align: center;
	background-color: #333;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.ns-tagline::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--ns-overlay);
}

.ns-tagline__body {
	padding: 180px 0 150px;
}

.ns-tagline__title {
	margin: 0;
	color: #fff;
	font-size: 60px;
	font-weight: 900;
	line-height: 80px;
	letter-spacing: 0.1em;
}

.ns-breadcrumbs {
	padding: 28px 0 2px;
	font-size: 15px;
	font-weight: 700;
	line-height: 27px;
	text-transform: uppercase;
}

.ns-breadcrumbs,
.ns-breadcrumbs a {
	color: #fff;
}

.ns-breadcrumbs a:hover {
	color: #ddd;
}

@media (max-width: 480px) {
	.ns-tagline__title {
		font-size: 40px;
		line-height: 40px;
	}
}

/* ==========================================================================
   本文(標準ブロック)
   ========================================================================== */
.ns-content {
	overflow: hidden;
}

.ns-content > .wp-block-group:not(.alignfull),
.ns-section {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
}

@media (min-width: 768px) {
	.ns-content > .wp-block-group:not(.alignfull),
	.ns-section { width: 750px; }
}

@media (min-width: 992px) {
	.ns-content > .wp-block-group:not(.alignfull),
	.ns-section { width: 970px; }
}

@media (min-width: 1200px) {
	.ns-content > .wp-block-group:not(.alignfull),
	.ns-section { width: 1170px; }
}

.ns-content .wp-block-group,
.ns-content .wp-block-columns {
	display: flow-root;
	margin-top: 0;
	margin-bottom: 0;
}

.ns-content .wp-block-columns {
	display: flex;
}

/* WordPress の「ブロック間の余白(24px)」を打ち消し、現行と同じ 35px の下余白にそろえる */
body .ns-content .wp-block-group > *,
body .ns-content .wp-block-column > * {
	margin-top: 0;
	margin-bottom: 35px;
}

body .ns-content .wp-block-group > .wp-block-columns,
body .ns-content .wp-block-group > .ns-map,
body .ns-content .wp-block-column > :last-child {
	margin-bottom: 0;
}

body .ns-content .wp-block-group > .ns-about,
body .ns-content .wp-block-column > .ns-promo {
	margin-bottom: 35px;
}

body .ns-content .wp-block-group > .ns-company {
	margin: 40px 0 0;
}

body .ns-content .wp-block-group > .wp-block-buttons {
	margin-bottom: 21px;
}

body .ns-content .wp-block-column > .ns-box {
	margin-bottom: 35px;
}

body .ns-content .wp-block-column > p.ns-about-text {
	margin: 0;
}

body .ns-content .wp-block-column > hr {
	margin: 0 0 20px;
}

/* タブレット・スマホ: 現行と同じく、文章ブロックは中央寄せ・段落の下余白 15px */
@media (max-width: 991px) {
	body .ns-content .ns-policy > p:not(:last-child),
	body .ns-content .ns-contact .wp-block-column > p {
		margin-bottom: 15px;
	}

	.ns-policy p,
	.ns-policy h3,
	.ns-about-text,
	.ns-promo {
		text-align: center;
	}
}

.ns-content .ns-mt120 { margin-top: 120px; }
.ns-content .ns-mb120 { margin-bottom: 120px; }
.ns-content .ns-mb60 { margin-bottom: 60px; }

.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.ns-center { text-align: center; }

.ns-serif {
	font-family: var(--ns-serif);
	font-weight: 700;
	font-style: normal;
}

/* 段組み(Bootstrap の 30px 溝と同じ) */
.ns-content .wp-block-columns {
	display: flex;
	flex-wrap: nowrap;
	gap: 30px;
	margin-bottom: 0;
}

.ns-content .wp-block-column {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 767px) {
	.ns-content .wp-block-columns {
		flex-direction: column;
		gap: 0;
	}

	.ns-content .wp-block-column {
		flex-basis: auto;
	}
}

/* トップ: ごあいさつ */
.ns-home-about {
	padding-top: 115px;
}

.ns-home-about h2 {
	margin-bottom: 35px;
}

.ns-about {
	margin-bottom: 35px;
}

.ns-about .ns-photo {
	display: block;
	width: 100%;
}

.ns-about-text {
	margin: 0;
	padding: 50px;
}

@media (max-width: 767px) {
	.ns-about .wp-block-column:first-child {
		margin-bottom: 35px;
	}

	body .ns-content .wp-block-column > p.ns-about-text {
		padding: 50px 35px;
	}
}

/* 地図 */
.ns-content .ns-map-row {
	padding: 40px 5px;
	background: #fff;
}

.ns-map iframe {
	display: block;
	width: 100%;
	height: 500px;
	border: 0;
}

/* 事業内容: 業務の4つの箱 */
.ns-business h3 {
	margin-bottom: 35px;
}

.ns-box {
	margin: 0 0 35px;
	padding: 20px 0;
	background: var(--ns-box);
	color: #fff;
	font-family: var(--ns-sans);
	font-weight: 700;
	font-style: normal;
}

.ns-business > p:last-child {
	margin-bottom: 35px;
}

/* 会社概要の表(現行の追加CSSと同じ) */
.ns-company {
	margin: 40px 0 0;
}

.ns-company table {
	width: 100%;
	border-collapse: collapse;
}

.ns-company tr {
	border-bottom: solid 2px #fff;
}

.ns-company tr:last-child {
	border-bottom: none;
}

.ns-company th,
.ns-company td {
	padding: 10px 0;
	border: 0;
	text-align: center;
	vertical-align: middle;
}

.ns-company th {
	position: relative;
	width: 30%;
	background-color: var(--ns-dark);
	color: #fff;
	font-weight: 700;
}

.ns-company th::after {
	content: "";
	position: absolute;
	top: calc(50% - 10px);
	right: -10px;
	z-index: 1;
	display: block;
	width: 0;
	height: 0;
	border-left: 10px solid #2d1c0a;
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
}

.ns-company td {
	width: 70%;
	background-color: #eee;
}



.ns-section > .ns-company:last-child,
.ns-section > .wp-block-table:last-child {
	margin-bottom: 0;
}

/* 採用情報のボタン(現行の青いボタン・左に封筒アイコン) */
.ns-recruit .wp-block-buttons {
	justify-content: center;
	margin-bottom: 21px;
}

.ns-btn-recruit .wp-block-button__link {
	position: relative;
	display: inline-block;
	padding: 18px 25px 18px 60px;
	border: 1px solid var(--ns-blue);
	border-radius: 5px;
	background-color: var(--ns-blue);
	background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
	color: #fff;
	font-family: var(--ns-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.42857;
	letter-spacing: 0.03em;
	transition: background-color 0.2s;
}

.ns-btn-recruit .wp-block-button__link::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 25px;
	width: 20px;
	height: 20px;
	margin-top: -11px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 1.5 8.2V22h21V8.2zm0 2.4 8 5.5-8 5.2-8-5.2zM3.5 10.6l8.5 5.5 8.5-5.5V20h-17z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 1.5 8.2V22h21V8.2zm0 2.4 8 5.5-8 5.2-8-5.2zM3.5 10.6l8.5 5.5 8.5-5.5V20h-17z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ns-btn-recruit .wp-block-button__link:hover,
.ns-btn-recruit .wp-block-button__link:focus {
	background-color: #0077b3;
	border-color: #0077b3;
	color: #fff;
}

/* お問い合わせ */
.ns-promo {
	margin-bottom: 30px;
}

.ns-contact .wp-block-column > p {
	margin: 0 0 35px;
}

.ns-contact hr {
	height: 0;
	margin: 0 0 20px;
	border: 0;
	border-top: 1px solid #eee;
	opacity: 1;
}

.ns-contact-info {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-contact-info li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 35px;
	color: var(--ns-ink);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.7;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ns-contact-info li:last-child {
	margin-bottom: 0;
}

.ns-contact-info .ns-icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	color: #222;
}

.ns-contact-info a {
	color: #000;
}

.ns-form__row {
	margin-bottom: 16px;
}

.ns-form input[type="text"],
.ns-form input[type="email"],
.ns-form input[type="tel"],
.ns-form textarea {
	display: block;
	width: 100%;
	height: 50px;
	padding: 0 16px;
	border: 1px solid #ddd;
	border-radius: 0;
	background: #fff;
	color: #444;
	font-family: var(--ns-font);
	font-size: 15px;
	letter-spacing: 0.03em;
	transition: border-color 0.25s linear;
	-webkit-appearance: none;
	appearance: none;
}

.ns-form textarea {
	height: 100px;
	padding-top: 10px;
	padding-bottom: 10px;
	resize: vertical;
}

.ns-form input:focus,
.ns-form textarea:focus {
	border-color: #aaa;
	outline: none;
}

.ns-form ::placeholder {
	color: #777;
	opacity: 1;
}

.ns-form__submit {
	margin: 24px 0 35px;
}

.ns-form input[type="submit"] {
	padding: 8px 15px;
	border: 0;
	border-radius: 0;
	background: #1b1b1b;
	color: #fff;
	font-family: var(--ns-font);
	font-size: 12px;
	font-weight: 800;
	line-height: 18px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.25s;
	-webkit-appearance: none;
	appearance: none;
}

.ns-form input[type="submit"]:hover {
	background: #555;
}

.ns-form__note {
	margin: 0;
}

.ns-form__note a {
	color: #000;
}

.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 .screen-reader-response {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}

.ns-form p {
	margin: 0;
}

.wpcf7 .wpcf7-spinner {
	vertical-align: middle;
}

.wpcf7-not-valid-tip {
	margin-top: 4px;
	font-size: 13px;
}

.wpcf7 form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 10px 15px;
}

.grecaptcha-badge {
	visibility: hidden;
}

/* 個人情報保護方針 */


/* 一覧・404 */
.ns-section.ns-container {
	padding-top: 120px;
	padding-bottom: 120px;
}

.ns-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-list li {
	border-bottom: 1px solid #eee;
}

.ns-list a {
	display: block;
	padding: 15px 0;
}

.ns-btn {
	display: inline-block;
	padding: 12px 30px;
	background: #1b1b1b;
	color: #fff;
	font-weight: 700;
}

.ns-btn:hover {
	color: #fff;
	background: #555;
}

/* ==========================================================================
   フッター
   ========================================================================== */
.ns-footer {
	background: var(--ns-light);
}

.ns-footer__main {
	padding: 80px 0;
}

.ns-footer__grid {
	display: flex;
	padding: 0;
}

.ns-footer__col {
	flex: 0 0 25%;
	max-width: 25%;
	padding: 0 15px;
	font-size: 14px;
	line-height: 1.8;
	color: var(--ns-ink);
}

.ns-footer__logo img {
	display: block;
	width: 100%;
}

.ns-footer__tel .ns-icon {
	width: 0.95em;
	height: 0.95em;
	color: #222;
}

.ns-fnav {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-fnav li {
	padding-bottom: 10px;
}

.ns-fnav a {
	color: #000;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.8;
	letter-spacing: 0.45px;
	text-transform: uppercase;
}

.ns-fnav a:hover {
	color: #666;
}

.ns-footer__copy {
	padding: 60px 0;
	background: var(--ns-copy);
}

.ns-footer__copy p {
	margin: 0 -15px;
	padding: 30px 0;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 20px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

@media (max-width: 990px) {
	.ns-footer__main {
		padding: 50px 0;
	}

	.ns-footer__grid {
		flex-wrap: wrap;
	}

	.ns-footer__col {
		flex-basis: 50%;
		max-width: 50%;
		padding-top: 30px;
		padding-bottom: 30px;
	}
}

@media (max-width: 767px) {
	.ns-footer__main {
		padding: 0 0 50px;
	}

	.ns-footer__col {
		flex-basis: 100%;
		max-width: 100%;
		text-align: center;
	}


	.ns-footer__copy p {
		margin: 0;
		text-align: center;
	}
}

/* ページの先頭へ */
.ns-pagetop {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 2px;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	font-size: 22px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s, visibility 0.4s;
}

.ns-pagetop:hover {
	color: #fff;
	background: rgba(0, 0, 0, 0.85);
}

.is-scrolled .ns-pagetop {
	opacity: 1;
	visibility: visible;
}

@media (max-width: 767px) {
	.ns-pagetop {
		display: none;
	}
}

/* ==========================================================================
   スクロールで下からふわっと表示(現行の fadeInUp と同じ動き)
   ========================================================================== */
.js .ns-fade {
	opacity: 0;
	transform: translate3d(0, 40px, 0);
	transition: opacity 1s ease, transform 1s ease;
}

.js .ns-fade.is-in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.js .ns-fade {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ns-intro__slide.is-active,
	.ns-mouse span,
	.ns-intro__scroll {
		animation: none;
	}

	html {
		scroll-behavior: auto;
	}
}
