/**
 * NAGANO 3DVR LAB — v0 ビジュアルに近いランディング用スタイル（フロントページのみ body.nagano-v0-lp）。
 */

/* 縦スクロールはビューポート既定のまま（body に overflow-y: auto を付けると高さ計算で詰まる環境がある） */
body.nagano-v0-lp {
	overflow-x: clip;
	overflow-y: visible;
	/* レイアウトが変わったときにブラウザがスクロール位置を補正して「隙間が開く」ように見えるのを抑止 */
	overflow-anchor: none;
	--nagano-header-h: 4.5rem;
	--nagano-black: #000000;
	--nagano-pink: #ff0066;
	--nagano-cyan: #00ffff;
	--nagano-gray: #888888;
	--nagano-muted: #a3a3a3;
	--nagano-border: rgba(0, 255, 255, 0.22);
	--nagano-pink-border: rgba(255, 0, 102, 0.35);
	background: var(--nagano-black);
	color: #fff;
	font-family: "Noto Sans JP", system-ui, sans-serif;
}

body.nagano-v0-lp .nagano-font-cyber {
	font-family: Orbitron, system-ui, sans-serif;
	letter-spacing: 0.08em;
}

@supports not (overflow: clip) {
	body.nagano-v0-lp {
		overflow-x: hidden;
	}

	.nagano-main {
		overflow-x: hidden;
	}
}

/* ----- Header ----- */
.nagano-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	background: rgba(0, 0, 0, 0.78);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nagano-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.nagano-header__logo {
	display: block;
	line-height: 0;
}

.nagano-header__logo img {
	height: 2rem;
	width: auto;
	object-fit: contain;
}

@media (min-width: 768px) {
	.nagano-header__logo img {
		height: 2.5rem;
	}
}

.nagano-header__cb {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.nagano-header__burger {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	cursor: pointer;
	color: var(--nagano-cyan);
	font-size: 0.5rem;
	letter-spacing: 0.2em;
	padding: 0.35rem 0.5rem;
	border: 0;
	background: transparent;
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
}

.nagano-header__burger-lines {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	align-items: flex-end;
}

.nagano-header__burger-lines span {
	display: block;
	height: 2px;
	background: var(--nagano-cyan);
	box-shadow: 0 0 6px rgba(0, 255, 255, 0.7);
	transition:
		transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.22s ease,
		width 0.22s ease;
}

.nagano-header__burger-lines span:first-child {
	width: 1.5rem;
}

.nagano-header__burger-lines span:nth-child(2) {
	width: 1rem;
}

.nagano-header__burger-lines span:nth-child(3) {
	width: 1.5rem;
}

.nagano-header__burger-label {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	min-height: 0.65rem;
}

.nagano-header__burger-label-close {
	display: none;
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-label-open {
	display: none;
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-label-close {
	display: block;
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-lines {
	align-items: center;
	justify-content: center;
	gap: 0;
	width: 1.5rem;
	height: 1.25rem;
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-lines span {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 1.35rem;
	margin: 0;
	transform-origin: center;
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-lines span:first-child {
	transform: translate(-50%, -50%) rotate(45deg);
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-lines span:nth-child(2) {
	width: 0;
	opacity: 0;
	transform: translate(-50%, -50%) scaleX(0);
}

.nagano-header__cb:checked ~ .nagano-header__burger .nagano-header__burger-lines span:nth-child(3) {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.nagano-header__nav {
	display: none;
	flex-direction: column;
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	padding: 1rem 1.25rem 1.5rem;
	background: rgba(0, 0, 0, 0.95);
	border-bottom: 1px solid var(--nagano-border);
	gap: 0.5rem;
}

.nagano-header__cb:checked ~ .nagano-header__nav {
	display: flex;
}

.nagano-header__nav a {
	color: #ccc;
	font-size: 0.8rem;
	font-weight: 500;
	padding: 0.65rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	min-height: 44px;
	display: flex;
	align-items: center;
}

.nagano-header__nav a:hover,
.nagano-header__nav a:focus-visible {
	color: var(--nagano-cyan);
	text-shadow:
		0 0 10px rgba(0, 255, 255, 0.95),
		0 0 22px rgba(0, 255, 255, 0.55),
		0 0 40px rgba(0, 255, 255, 0.3);
	text-decoration: none;
}

@media (min-width: 768px) {
	/* ロゴ行がコンパクトなのでヘッダー実高に合わせて変数を詰める（main 帯とのズレ防止） */
	body.nagano-v0-lp {
		--nagano-header-h: 4rem;
	}

	.nagano-header__inner {
		padding-top: 0.7rem;
		padding-bottom: 0.7rem;
	}

	.nagano-header__burger {
		display: none;
	}

	.nagano-header__inner .nagano-header__nav {
		display: flex;
		flex-direction: row;
		position: static;
		padding: 0;
		background: transparent;
		border: 0;
		gap: 2rem;
	}

	.nagano-header__nav a {
		border: 0;
		padding: 0;
		position: relative;
	}
}

/* ----- Main / layout ----- */
/* ヘッダー分の余白はヒーロー側の padding-top に寄せる（main だけ padding だと背景が抜けて帯状の隙間に見える） */
.nagano-main {
	position: relative;
	z-index: 10;
	min-height: 100dvh;
	min-height: 100svh;
	overflow-x: clip;
	overflow-y: visible;
	overflow-anchor: none;
	padding-top: 0;
	background: transparent;
}

/* 狭い画面では横スクロールを確実に抑止 */
@media (max-width: 900px) {
	body.nagano-v0-lp .nagano-main {
		overflow-x: hidden;
	}

	body.nagano-v0-lp {
		overflow-x: hidden;
	}
}

body.nagano-v0-sub .nagano-main {
	min-height: 0;
	padding-top: var(--nagano-header-h);
}

.nagano-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
	position: relative;
	z-index: 1;
}

.nagano-container--narrow {
	max-width: 720px;
}

/* ----- Section shells ----- */
.nagano-section {
	position: relative;
	z-index: 1;
	padding: 4rem 0;
	/* 縦スクロールは常に文書に任せる（overflow-y: hidden はタッチ/ホイールで詰まりやすい） */
	overflow-x: hidden;
	overflow-y: visible;
	overflow-anchor: none;
	/*
	 * セクション全体を opacity:0 にすると、IO が走るまでレイアウト高さのまま全面透明になり、
	 * スクロール中に境目が「大きな余白」に見える。常に不透明にし入場は .nagano-reveal のみ。
	 */
	opacity: 1;
	transform: none;
}

@media (min-width: 768px) {
	.nagano-section {
		padding: 6rem 0;
	}
}

.nagano-section--in-view {
	opacity: 1;
	transform: none;
}

/*
 * LP 本文セクションは既定で同じ z-index:1。重なり境界で合成順が崩れることがあるため
 * ドキュメント順に昇順の z-index を振る。子セレクタ（>）は使わず、main 内のラッパーがあっても効くようにする。
 * FEATURES＋なぜPro3 は 1 セクション（#features.nagano-section--features-why-merged）に統合。
 */
body.nagano-v0-lp .nagano-main .nagano-lp-stack {
	position: relative;
	/* isolation は FEATURES 周辺の合成・重なり不具合の報告があったため付与しない */
}

/*
 * 1 つの .nagano-container（nagano-features-why-merge__inner）に両ブロックを入れ、
 * グリッド背景はセクション直下で全面に重ねる（二重コンテナ／下半だけ別背景をやめる）。
 */
body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	overflow: visible;
}

body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__inner .nagano-feature-grid {
	position: relative;
	z-index: 0;
	margin-bottom: 0;
}

/* FEATURES グリッドと「なぜPro3？」の間：視覚的な区切り＋十分なリズム（別セクションに見えないよう 1 カラムで繋ぐ） */
body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__divider {
	position: relative;
	z-index: 1;
	width: min(20rem, 92vw);
	height: 2px;
	margin: 3.75rem auto 0;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.35), rgba(255, 0, 102, 0.28), transparent);
	box-shadow: 0 0 24px rgba(0, 255, 255, 0.12);
}

@media (min-width: 768px) {
	body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__divider {
		margin-top: 5.5rem;
	}
}

body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__why {
	position: relative;
	z-index: 2;
	margin-top: 0;
	padding-top: 3.5rem;
	padding-bottom: 0.25rem;
	overflow: visible;
}

@media (min-width: 768px) {
	body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__why {
		padding-top: 4.75rem;
	}
}

body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__why .nagano-section-head {
	position: relative;
	z-index: 1;
	margin-top: 0;
	margin-bottom: 2.25rem;
}

@media (min-width: 768px) {
	body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__why .nagano-section-head {
		margin-bottom: 2.75rem;
	}
}

/* 見出しの ascender が欠けるのを防ぐ（clip-path / 合成まわりの保険） */
body.nagano-v0-lp .nagano-main section.nagano-section--features-why-merged .nagano-features-why-merge__why .nagano-section-head__title {
	padding-top: 0.2em;
	line-height: 1.15;
}

/*
 * backdrop-filter は下の兄弟レイヤーを誤って隠す（WHY 見出しが欠ける）ことがあるため統合セクションでは無効化。
 */
body.nagano-v0-lp section#features.nagano-section--features-why-merged .nagano-feature-card {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	background: rgba(6, 8, 12, 0.94) !important;
}

/*
 * ヒーローに高い z-index を付けると、はみ出した装飾が本文より手前に描画されタップを奪う。
 * 本文スタックを常に上にし、ヒーローは背面（FV の CTA は .nagano-hero__content で拾う）。
 */
body.nagano-v0-lp .nagano-main .nagano-hero {
	z-index: 0;
	pointer-events: none;
}

body.nagano-v0-lp .nagano-main > .nagano-lp-stack {
	position: relative;
	z-index: 2;
}

/* CTA・チップなど操作できる部分だけヒットテストを有効にする */
body.nagano-v0-lp .nagano-main .nagano-hero .nagano-hero__content {
	position: relative;
	z-index: 1;
	pointer-events: auto;
}

body.nagano-v0-lp .nagano-main section.nagano-section#challenges {
	z-index: 1;
}

body.nagano-v0-lp .nagano-main section.nagano-section#features {
	z-index: 2;
}

body.nagano-v0-lp .nagano-main section.nagano-section#service {
	z-index: 4;
}

body.nagano-v0-lp .nagano-main section.nagano-section#benefits {
	z-index: 5;
}

body.nagano-v0-lp .nagano-main section.nagano-section#portfolio {
	z-index: 6;
}

body.nagano-v0-lp .nagano-main section.nagano-section#pricing {
	z-index: 7;
}

body.nagano-v0-lp .nagano-main section.nagano-section#process {
	z-index: 8;
}

body.nagano-v0-lp .nagano-main section.nagano-section#faq {
	z-index: 9;
}

body.nagano-v0-lp .nagano-main section.nagano-section#contact {
	z-index: 10;
}

/*
 * 追加CSS・最適化プラグイン等で z-index が潰れる場合の最終ライン（LP の該当ブロックのみ）。
 * FEATURES＋なぜPro3 統合セクション。
 */
body.nagano-v0-lp section#features.nagano-section.nagano-section--features-why-merged {
	z-index: 2 !important;
	position: relative !important;
	/* overflow-x:hidden だけだと overflow-y が auto 扱いになり縦方向の描画が欠けることがあるため両軸明示 */
	overflow: visible !important;
	background-color: #000000 !important;
}

/* タイルの入場（motion.js が .nagano-reveal--visible を付与）— translate はレイアウトと描画のずれで境目に隙間が出るため禁止 */
body.nagano-v0-lp .nagano-reveal {
	opacity: 0;
	transform: translateY(14px);
	filter: none;
	transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

body.nagano-v0-lp .nagano-reveal.nagano-reveal--visible {
	opacity: 1;
	transform: translateY(0);
	filter: none;
}

/* Why カード: 旧 JS が nagano-reveal を付けたままでも常に不透明（Chrome 合成バグの保険） */
body.nagano-v0-lp .nagano-section--why .nagano-why-card.nagano-reveal {
	opacity: 1;
}

/* FAQ は <details> のため入場で opacity:0 にしない（キャッシュ済み JS 対策も含む） */
body.nagano-v0-lp .nagano-faq-list details.nagano-faq-item,
body.nagano-v0-lp .nagano-faq-list details.nagano-faq-item.nagano-reveal {
	opacity: 1 !important;
}

.nagano-section__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.nagano-section__bg--fade {
	background: linear-gradient(to bottom, #000, rgba(0, 0, 0, 0.96), #000);
}

.nagano-section__bg--grid-cyan {
	opacity: 0.12;
	background-image: linear-gradient(rgba(0, 255, 255, 0.35) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 255, 0.35) 1px, transparent 1px);
	background-size: 60px 60px;
}

.nagano-section__bg--grid-pink {
	opacity: 0.15;
	background-image: linear-gradient(rgba(255, 0, 102, 0.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 0, 102, 0.35) 1px, transparent 1px);
	background-size: 40px 40px;
}

.nagano-section__bg--grid-mixed {
	opacity: 0.22;
	background-image: linear-gradient(rgba(255, 0, 102, 0.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 0, 102, 0.3) 1px, transparent 1px), linear-gradient(rgba(0, 255, 255, 0.12) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 255, 0.12) 1px, transparent 1px);
	background-size: 80px 80px, 80px 80px, 20px 20px, 20px 20px;
}

.nagano-section__bg--contact-grid {
	opacity: 0.25;
	background-image: linear-gradient(rgba(255, 0, 102, 0.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 0, 102, 0.3) 1px, transparent 1px), linear-gradient(rgba(0, 255, 255, 0.12) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 255, 0.12) 1px, transparent 1px);
	background-size: 80px 80px, 80px 80px, 20px 20px, 20px 20px;
}

.nagano-section__rule {
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(to right, transparent, rgba(0, 255, 255, 0.45), transparent);
}

.nagano-section__rule--top {
	top: 0;
}

.nagano-section__rule--bottom {
	bottom: 0;
	background: linear-gradient(to right, transparent, rgba(255, 0, 102, 0.45), transparent);
}

/* ----- Section head ----- */
.nagano-section-head {
	text-align: center;
	margin-bottom: 3rem;
}

.nagano-section-head__label {
	display: inline-block;
	margin: 0 0 1rem;
	padding: 0.35rem 1rem;
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.85);
	border: 1px solid rgba(0, 255, 255, 0.45);
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.12), transparent);
	clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}

.nagano-section-head__title {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 4vw, 2.75rem);
	font-weight: 900;
	line-height: 1.2;
	color: #fff;
}

.nagano-section-head__lead {
	margin: 0 auto;
	max-width: 36rem;
	font-size: 0.9rem;
	color: var(--nagano-gray);
}

/* ----- Hero ----- */
.nagano-hero {
	position: relative;
	z-index: 2;
	/* 3D スクロールアイコンが clip されないよう縦横とも visible（横は .nagano-main の clip に任せる） */
	overflow: visible;
	/* 固定ヘッダー分：本文開始位置。背景の帯を防ぐためヒーロー内で確保 */
	padding: var(--nagano-header-h) 0 4.5rem;
	box-sizing: border-box;
	min-height: 100dvh;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	/* padding 上域とトーンを揃える */
	background: var(--nagano-black);
}

.nagano-hero__shade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		rgba(0, 0, 0, 0.7),
		radial-gradient(ellipse at 30% 20%, rgba(255, 0, 102, 0.12), transparent 45%),
		radial-gradient(ellipse at 70% 60%, rgba(0, 255, 255, 0.1), transparent 40%);
}

.nagano-hero__grid {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.2;
	background-image:
		linear-gradient(rgba(255, 0, 102, 0.3) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 0, 102, 0.3) 1px, transparent 1px),
		linear-gradient(rgba(0, 255, 255, 0.15) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 255, 255, 0.15) 1px, transparent 1px);
	background-size: 100px 100px, 100px 100px, 25px 25px, 25px 25px;
	animation: nagano-hero-grid-drift 28s linear infinite;
}

.nagano-hero__laser-layer {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	overflow: hidden;
}

.nagano-hero__laser {
	position: absolute;
	left: -18%;
	width: 145%;
	height: 3px;
	border-radius: 999px;
	filter: blur(0.6px) drop-shadow(0 0 10px rgba(0, 255, 255, 0.8));
	opacity: 0.78;
	animation: nagano-hero-laser-sweep 2.9s cubic-bezier(0.22, 0.61, 0.36, 1) infinite alternate;
	transform-origin: center;
}

.nagano-hero__laser--c1,
.nagano-hero__laser--c2,
.nagano-hero__laser--c3 {
	background: linear-gradient(90deg, transparent 0%, rgba(0, 255, 255, 0.95) 45%, rgba(0, 255, 255, 0.6) 55%, transparent 100%);
}

.nagano-hero__laser--p1,
.nagano-hero__laser--p2 {
	background: linear-gradient(90deg, transparent 0%, rgba(255, 0, 102, 0.9) 42%, rgba(255, 0, 102, 0.52) 58%, transparent 100%);
	filter: blur(0.8px) drop-shadow(0 0 10px rgba(255, 0, 102, 0.8));
}

.nagano-hero__laser--c1 {
	top: 26%;
	transform: rotate(-14deg);
	animation-delay: 0s;
}

.nagano-hero__laser--c2 {
	top: 38%;
	transform: rotate(13deg);
	animation-delay: 0.7s;
}

.nagano-hero__laser--c3 {
	top: 54%;
	transform: rotate(-9deg);
	animation-delay: 1.4s;
}

.nagano-hero__laser--p1 {
	top: 66%;
	transform: rotate(11deg);
	animation-delay: 0.4s;
}

.nagano-hero__laser--p2 {
	top: 78%;
	transform: rotate(-8deg);
	animation-delay: 1.1s;
}

@keyframes nagano-hero-laser-sweep {
	0% {
		opacity: 0.44;
		transform: translateX(-8%) translateY(-1.5%) rotate(var(--laser-rot, -12deg));
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 0.62;
		transform: translateX(8%) translateY(1.5%) rotate(var(--laser-rot, -12deg));
	}
}

.nagano-hero__laser--c1 { --laser-rot: -14deg; }
.nagano-hero__laser--c2 { --laser-rot: 13deg; }
.nagano-hero__laser--c3 { --laser-rot: -9deg; }
.nagano-hero__laser--p1 { --laser-rot: 11deg; }
.nagano-hero__laser--p2 { --laser-rot: -8deg; }

/* 本文セクションにも控えめなクロスビームを追加（うるさくない程度） */
.nagano-section::before,
.nagano-section::after {
	content: '';
	position: absolute;
	left: -10%;
	width: 120%;
	height: 2px;
	pointer-events: none;
	opacity: 0.16;
	filter: blur(0.5px);
	z-index: 0;
}

.nagano-section::before {
	top: 24%;
	background: linear-gradient(90deg, transparent 0%, rgba(0, 255, 255, 0.58) 48%, transparent 100%);
	transform: rotate(-6deg);
	animation: nagano-section-laser-cyan 6.8s ease-in-out infinite alternate;
}

.nagano-section::after {
	top: 72%;
	background: linear-gradient(90deg, transparent 0%, rgba(255, 0, 102, 0.5) 50%, transparent 100%);
	transform: rotate(5deg);
	animation: nagano-section-laser-pink 7.6s ease-in-out infinite alternate;
}

@keyframes nagano-section-laser-cyan {
	0% { transform: translateX(-2%) rotate(-6deg); opacity: 0.1; }
	100% { transform: translateX(2%) rotate(-4deg); opacity: 0.2; }
}

@keyframes nagano-section-laser-pink {
	0% { transform: translateX(2%) rotate(5deg); opacity: 0.1; }
	100% { transform: translateX(-2%) rotate(7deg); opacity: 0.18; }
}

@keyframes nagano-hero-grid-drift {
	0% {
		background-position: 0 0, 0 0, 0 0, 0 0;
	}
	100% {
		background-position: 100px 100px, -80px 80px, 25px 25px, -18px 18px;
	}
}

.nagano-hero__glow {
	position: absolute;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	filter: blur(80px);
	opacity: 0.35;
	pointer-events: none;
	animation: nagano-hero-glow-pulse 5s ease-in-out infinite alternate;
}

@keyframes nagano-hero-glow-pulse {
	0% {
		opacity: 0.22;
		transform: scale(1);
	}
	100% {
		opacity: 0.42;
		transform: scale(1.08);
	}
}

.nagano-hero__glow--left {
	left: -5%;
	top: 15%;
	background: var(--nagano-pink);
}

.nagano-hero__glow--right {
	right: -5%;
	bottom: 20%;
	background: var(--nagano-cyan);
}

.nagano-hero__mono {
	position: absolute;
	font-family: ui-monospace, monospace;
	font-size: 0.55rem;
	line-height: 1.4;
	color: rgba(0, 255, 255, 0.45);
	max-width: 42%;
	pointer-events: none;
}

.nagano-hero__mono--pink {
	color: rgba(255, 0, 102, 0.65);
}

.nagano-hero__mono--dim {
	color: rgba(255, 255, 255, 0.25);
}

.nagano-hero__mono--tl {
	top: 6rem;
	left: 0.5rem;
}

.nagano-hero__mono--tr {
	top: 6rem;
	right: 0.5rem;
	text-align: right;
}

.nagano-hero__build {
	margin-top: 0.28rem;
	padding-top: 0.22rem;
	border-top: 1px solid rgba(0, 255, 255, 0.28);
	color: rgba(0, 255, 255, 0.82);
	font-size: 0.54rem;
	letter-spacing: 0.08em;
}

.nagano-hero__mono--bl {
	bottom: 6rem;
	left: 0.5rem;
}

.nagano-hero__mono--br {
	bottom: 6rem;
	right: 0.5rem;
	text-align: right;
}

.nagano-hero__stage {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.nagano-hero__visual {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.nagano-hero__webgl {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.95;
}

.nagano-hero__webgl canvas.nagano-webgl-mount__canvas {
	width: 100% !important;
	height: 100% !important;
	display: block;
	filter: saturate(1.18) contrast(1.08);
	mix-blend-mode: screen;
	opacity: 0.95;
}

.nagano-hero__camera-bloom {
	position: absolute;
	border-radius: 50%;
	filter: blur(100px);
	pointer-events: none;
	opacity: 0.85;
}

.nagano-hero__camera-bloom--cyan {
	width: min(90vw, 420px);
	height: min(90vw, 420px);
	background: rgba(0, 255, 255, 0.14);
}

.nagano-hero__camera-bloom--pink {
	width: min(75vw, 320px);
	height: min(75vw, 320px);
	background: rgba(255, 0, 102, 0.1);
	transform: translate(18%, 8%);
}

.nagano-hero__visual-inner {
	position: relative;
	width: min(88vw, 520px);
	aspect-ratio: 650 / 780;
	max-height: min(38svh, 360px);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 0;
}

@media (min-width: 640px) {
	.nagano-hero__visual-inner {
		max-height: min(52svh, 520px);
		margin-top: clamp(0rem, 1.5vh, 1.25rem);
	}
}

@media (min-width: 900px) {
	.nagano-hero__visual-inner {
		max-height: min(62svh, 640px);
		margin-top: clamp(0rem, 2.5vh, 2rem);
	}
}

.nagano-hero__wireframe {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nagano-hero__wireframe-svg {
	width: 100%;
	height: 100%;
	opacity: 0.55;
}

.nagano-hero__camera {
	position: relative;
	z-index: 1;
	width: 88%;
	height: auto;
	max-width: 450px;
	object-fit: contain;
	filter: drop-shadow(0 0 48px rgba(0, 255, 255, 0.45));
	animation: nagano-hero-camera-float 6s ease-in-out infinite;
}

@media (min-width: 768px) {
	.nagano-hero__camera {
		width: 98%;
		max-width: 520px;
		animation: nagano-hero-camera-float 4.2s ease-in-out infinite;
	}
}

@keyframes nagano-hero-camera-float {
	0%,
	100% {
		transform: translateY(0) rotate(0deg);
	}
	50% {
		transform: translateY(-16px) rotate(-1.2deg);
	}
}

.nagano-hero__content {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: 56rem;
	margin: 0 auto;
	padding: 0 max(0.35rem, env(safe-area-inset-left)) 0 max(0.35rem, env(safe-area-inset-right));
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin-top: 0.35rem;
}

@media (min-width: 640px) {
	.nagano-hero__content {
		margin-top: clamp(-1rem, -2vh, 0.25rem);
		padding: 0 0.5rem;
		max-width: 56rem;
	}
}

@media (max-width: 639px) {
	.nagano-hero__content {
		max-width: 100%;
		width: 100%;
		padding-left: max(0.25rem, env(safe-area-inset-left));
		padding-right: max(0.25rem, env(safe-area-inset-right));
	}
}

.nagano-hero__tagline {
	color: rgba(255, 0, 102, 0.85);
	font-size: clamp(0.65rem, 2.2vw, 1rem);
	margin: 0 0 1rem;
	letter-spacing: 0.2em;
	text-shadow: 0 0 12px rgba(255, 0, 102, 0.45);
	transform: rotate(-7deg);
	transform-origin: center;
	--nagano-stack-rot: -7deg;
}

@media (max-width: 639px) {
	.nagano-hero__tagline {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		box-sizing: border-box;
		white-space: nowrap;
		font-size: clamp(0.9rem, 5.8vw, 1.55rem) !important;
		letter-spacing: clamp(0.04em, 0.08em + 0.35vw, 0.22em);
		line-height: 1.22;
		padding: 0 max(0.02rem, env(safe-area-inset-left)) 0 max(0.02rem, env(safe-area-inset-right));
		margin-bottom: 0.75rem;
		text-align: center;
		text-shadow:
			0 0 14px rgba(255, 0, 102, 0.65),
			0 0 28px rgba(255, 0, 102, 0.35);
		transform: rotate(-7deg);
	}

	.nagano-hero__title-rotate {
		padding-left: max(0.02rem, env(safe-area-inset-left)) !important;
		padding-right: max(0.02rem, env(safe-area-inset-right)) !important;
	}

	.nagano-hero__title {
		font-size: clamp(1.55rem, 13.2vw, 3.4rem) !important;
		letter-spacing: -0.01em;
	}
}

/* v0 と同様：見出しは常に 1 行。狭い幅は vw で縮小し、必要なら画面幅いっぱいに広げる */
.nagano-hero__title-rotate {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	transform: rotate(-3deg);
	transform-origin: center;
	--nagano-stack-rot: -3deg;
	margin-bottom: 0.75rem;
	padding: 0 max(0.35rem, env(safe-area-inset-left)) 0 max(0.35rem, env(safe-area-inset-right));
	box-sizing: border-box;
}

.nagano-hero__title {
	margin: 0;
	font-size: clamp(1.05rem, 8.6vw, 7rem);
	font-weight: 900;
	line-height: 1.08;
	white-space: nowrap;
	text-shadow: 0 0 40px rgba(255, 255, 255, 0.35);
	text-align: center;
}

@media (min-width: 480px) {
	.nagano-hero__title {
		font-size: clamp(1.85rem, 11vw, 7rem);
	}
}

@media (min-width: 768px) {
	.nagano-hero__title-rotate {
		transform: rotate(-5deg);
		--nagano-stack-rot: -5deg;
	}
}

/* v0 相当のヒーロー見出しグリッチレイヤー */
.nagano-glitch-text {
	position: relative;
	display: inline-block;
}

.nagano-glitch-text__main {
	position: relative;
	z-index: 2;
}

.nagano-glitch-text__layer {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	white-space: nowrap;
}

.nagano-glitch-text__layer--cyan {
	color: var(--nagano-cyan);
	mix-blend-mode: screen;
	text-shadow:
		0 0 12px rgba(0, 255, 255, 0.85),
		0 0 28px rgba(0, 255, 255, 0.45);
	animation: nagano-glitch-layer-1 1.15s infinite linear alternate-reverse;
}

.nagano-glitch-text__layer--pink {
	color: var(--nagano-pink);
	mix-blend-mode: screen;
	text-shadow:
		0 0 12px rgba(255, 0, 102, 0.85),
		0 0 28px rgba(255, 0, 102, 0.45);
	animation: nagano-glitch-layer-2 1.75s infinite linear alternate-reverse;
}

@keyframes nagano-glitch-layer-1 {
	0% {
		opacity: 0;
		transform: translate(0);
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
	2% {
		opacity: 1;
		transform: translate(-8px, 4px);
		clip-path: polygon(0 18%, 100% 18%, 100% 34%, 0 34%);
	}
	4% {
		opacity: 0;
		transform: translate(0);
	}
	10% {
		opacity: 0.92;
		transform: translate(7px, -4px);
		clip-path: polygon(0 55%, 100% 55%, 100% 72%, 0 72%);
	}
	12% {
		opacity: 0;
		transform: translate(0);
	}
	20% {
		opacity: 0.95;
		transform: translate(-6px, 5px);
		clip-path: polygon(0 76%, 100% 76%, 100% 92%, 0 92%);
	}
	22% {
		opacity: 0;
		transform: translate(0);
	}
	34% {
		opacity: 0.55;
		transform: translate(5px, 3px);
		clip-path: polygon(0 42%, 100% 42%, 100% 48%, 0 48%);
	}
	36% {
		opacity: 0;
		transform: translate(0);
	}
	100% {
		opacity: 0;
		transform: translate(0);
	}
}

@keyframes nagano-glitch-layer-2 {
	0% {
		opacity: 0;
		transform: translate(0);
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
	5% {
		opacity: 0.95;
		transform: translate(9px, -5px);
		clip-path: polygon(0 38%, 100% 38%, 100% 52%, 0 52%);
	}
	7% {
		opacity: 0;
		transform: translate(0);
	}
	15% {
		opacity: 0.85;
		transform: translate(-8px, 4px);
		clip-path: polygon(0 8%, 100% 8%, 100% 22%, 0 22%);
	}
	17% {
		opacity: 0;
		transform: translate(0);
	}
	25% {
		opacity: 1;
		transform: translate(6px, -6px);
		clip-path: polygon(0 66%, 100% 66%, 100% 88%, 0 88%);
	}
	27% {
		opacity: 0;
		transform: translate(0);
	}
	41% {
		opacity: 0.65;
		transform: translate(-5px, -3px);
		clip-path: polygon(0 28%, 100% 28%, 100% 36%, 0 36%);
	}
	43% {
		opacity: 0;
		transform: translate(0);
	}
	100% {
		opacity: 0;
		transform: translate(0);
	}
}

.nagano-hero__subtitle {
	margin: 0 0 1.5rem;
	font-size: clamp(0.875rem, 2.4vw, 1.125rem);
	color: var(--nagano-muted);
	letter-spacing: 0.2em;
	text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
}

@media (max-width: 639px) {
	.nagano-hero__subtitle {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		font-size: clamp(0.78rem, 3.85vw, 1.12rem);
		letter-spacing: clamp(0.08em, 0.15em + 0.35vw, 0.22em);
		line-height: 1.55;
		padding: 0 0.1rem;
		margin-bottom: 1.1rem;
		text-shadow:
			0 0 12px rgba(255, 255, 255, 0.35),
			0 0 24px rgba(255, 255, 255, 0.12);
	}
}

.nagano-hero__tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.5rem 0.75rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}

.nagano-hero__tag {
	font-size: 0.75rem;
	padding: 0.35rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #ccc;
	background: rgba(0, 0, 0, 0.35);
}

.nagano-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	width: 100%;
}

/* v0 相当：ヒーローコピーのスタッガー入場 */
@keyframes nagano-hero-stack-in {
	from {
		opacity: 0;
		transform: translateY(40px) rotate(var(--nagano-stack-rot, 0deg));
	}
	to {
		opacity: 1;
		transform: translateY(0) rotate(var(--nagano-stack-rot, 0deg));
	}
}

body.nagano-v0-lp .nagano-hero__content > * {
	animation: nagano-hero-stack-in 0.82s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.nagano-v0-lp .nagano-hero__content > .nagano-hero__tagline {
	animation-delay: 0.32s;
}

body.nagano-v0-lp .nagano-hero__content > .nagano-hero__title-rotate {
	animation-delay: 0.46s;
}

body.nagano-v0-lp .nagano-hero__content > .nagano-hero__subtitle {
	animation-delay: 0.56s;
}

body.nagano-v0-lp .nagano-hero__content > .nagano-hero__tags {
	animation-delay: 0.66s;
}

body.nagano-v0-lp .nagano-hero__content > .nagano-hero__ctas {
	animation-delay: 0.76s;
}

.nagano-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	transition: box-shadow 0.2s, border-color 0.2s, background 0.2s, transform 0.25s ease;
}

.nagano-btn:hover,
.nagano-btn:focus-visible {
	transform: translateY(-1px);
}

.nagano-btn--primary {
	background: var(--nagano-pink);
	color: #fff;
	border-color: rgba(255, 0, 102, 0.6);
}

.nagano-btn--primary:hover,
.nagano-btn--primary:focus-visible {
	box-shadow:
		0 0 22px rgba(255, 0, 102, 0.65),
		0 0 48px rgba(255, 0, 102, 0.45),
		0 0 80px rgba(255, 0, 102, 0.22);
	text-decoration: none;
}

.nagano-btn--outline {
	background: transparent;
	color: var(--nagano-cyan);
	border-color: rgba(0, 255, 255, 0.45);
}

.nagano-btn--outline:hover,
.nagano-btn--outline:focus-visible {
	box-shadow:
		0 0 20px rgba(0, 255, 255, 0.45),
		0 0 44px rgba(0, 255, 255, 0.32),
		0 0 72px rgba(0, 255, 255, 0.18);
	text-decoration: none;
}

.nagano-btn--block {
	width: 100%;
}

.nagano-hero__scroll {
	position: absolute;
	bottom: clamp(3.35rem, 10vh, 5.75rem);
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 0.4rem;
	min-width: 48px;
	width: 48px;
	max-width: 48px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.55rem;
	z-index: 80;
	pointer-events: none;
	isolation: isolate;
	filter: none;
}

.nagano-hero__scroll-label {
	display: block;
	margin: 0;
	text-align: center;
	line-height: 1;
	letter-spacing: 0.22em;
	padding-inline-end: 0;
	text-indent: 0.22em; /* 文字間ぶんだけ視覚中心を合わせる */
	box-sizing: border-box;
	width: 100%;
}

.nagano-hero__scroll-mover {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0;
}

/* SVG 立方体：下方向へ転がるように回転＋わずかに沈む（全ブラウザで表示） */
.nagano-hero__scroll-cube-svg {
	display: block;
	width: 48px;
	height: auto;
	max-width: 100%;
	margin: 0 auto;
	overflow: visible;
	filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.45));
}

.nagano-hero__scroll-cube-svg-g {
	transform-origin: center center;
	transform-box: fill-box;
	animation: nagano-hero-scroll-cube-svg-roll 2.75s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

@keyframes nagano-hero-scroll-cube-svg-roll {
	0% {
		transform: translateY(0) rotate(0deg);
	}
	35% {
		transform: translateY(10px) rotate(-120deg);
	}
	70% {
		transform: translateY(4px) rotate(-240deg);
	}
	100% {
		transform: translateY(0) rotate(-360deg);
	}
}

.nagano-hero__bar {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 3px;
	pointer-events: none;
	background: linear-gradient(to right, transparent, var(--nagano-cyan), transparent);
	opacity: 0.5;
}

/* ----- Challenges ----- */
.nagano-challenge-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.nagano-challenge-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.nagano-challenge-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.nagano-challenge-card {
	position: relative;
	background: rgba(0, 0, 0, 0.5);
	border: 1px solid var(--nagano-pink-border);
	padding: 1.5rem;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
	transition: box-shadow 0.25s, border-color 0.25s, transform 0.3s ease;
}

.nagano-challenge-card:hover {
	box-shadow:
		0 0 26px rgba(255, 0, 102, 0.42),
		0 0 52px rgba(255, 0, 102, 0.22);
	border-color: rgba(255, 0, 102, 0.55);
	transform: translateY(-2px);
}

.nagano-challenge-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 1rem;
	border: 1px solid rgba(255, 0, 102, 0.45);
	color: #f87171;
	font-weight: 700;
	font-size: 1rem;
}

.nagano-challenge-card__text {
	margin: 0;
	font-weight: 600;
	color: #fff;
}

.nagano-solution-arrow {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	margin-top: 2.5rem;
	color: var(--nagano-cyan);
	font-size: 0.65rem;
}

/* ----- Features ----- */
.nagano-feature-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nagano-feature-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.nagano-feature-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.nagano-feature-card {
	background: rgba(0, 0, 0, 0.45);
	border: 1px solid var(--nagano-border);
	padding: 1.25rem;
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.3s ease;
}

.nagano-feature-card:hover {
	border-color: rgba(0, 255, 255, 0.55);
	box-shadow:
		0 0 24px rgba(0, 255, 255, 0.35),
		0 0 48px rgba(0, 255, 255, 0.18);
	transform: translateY(-2px);
}

.nagano-feature-card__title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 800;
	color: var(--nagano-cyan);
}

.nagano-feature-card__desc {
	margin: 0;
	font-size: 0.85rem;
	color: var(--nagano-gray);
}

/* ----- Why Pro3 ----- */
.nagano-why-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.nagano-why-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.nagano-card {
	border-radius: 0;
}

.nagano-why-card {
	padding: 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(0, 0, 0, 0.35);
}

.nagano-why-card.nagano-card--accent-pink {
	border-color: rgba(255, 0, 102, 0.35);
	background: rgba(255, 0, 102, 0.06);
}

.nagano-why-card.nagano-card--accent-cyan {
	border-color: rgba(0, 255, 255, 0.35);
	background: rgba(0, 255, 255, 0.06);
}

.nagano-why-card.nagano-card--accent-green {
	border-color: rgba(34, 197, 94, 0.35);
	background: rgba(34, 197, 94, 0.06);
}

.nagano-why-card__title {
	margin: 0 0 0.25rem;
	font-size: 1.25rem;
	font-weight: 900;
}

.nagano-why-card__subtitle {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	color: var(--nagano-cyan);
}

.nagano-why-card__desc {
	margin: 0;
	font-size: 0.85rem;
	color: var(--nagano-muted);
}

/* 統合ブロック（FEATURES＋なぜPro3）と活用事例の間：既定 padding が重なって帯のように見えるため詰める */
section#features.nagano-section--features-why-merged {
	padding-bottom: 2.75rem;
}

@media (min-width: 768px) {
	section#features.nagano-section--features-why-merged {
		padding-bottom: 3.25rem;
	}
}

.nagano-section--features-why-merged + .nagano-section--usecases {
	padding-top: 2.75rem;
}

@media (min-width: 768px) {
	.nagano-section--features-why-merged + .nagano-section--usecases {
		padding-top: 3.25rem;
	}
}

/* ----- Use cases ----- */
.nagano-use-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nagano-use-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.nagano-use-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

a.nagano-use-card {
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(0, 0, 0, 0.4);
	overflow: visible;
	transition: transform 0.3s ease, box-shadow 0.35s ease, filter 0.35s ease;
}

a.nagano-use-card:hover,
a.nagano-use-card:focus-visible {
	box-shadow:
		0 0 14px rgba(0, 255, 255, 0.24),
		0 0 24px rgba(255, 0, 102, 0.12);
	filter: brightness(1.015);
}

.nagano-use-card__img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
}

.nagano-use-card__body {
	padding: 1rem;
}

.nagano-use-card__title {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 800;
}

.nagano-use-card__desc {
	margin: 0;
	font-size: 0.8rem;
	color: var(--nagano-gray);
}

/* ----- Benefits ----- */
.nagano-benefits-list {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 52rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nagano-benefit-row {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1.25rem;
	background: rgba(0, 0, 0, 0.5);
	border: 1px solid rgba(0, 255, 255, 0.18);
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.3s ease;
}

.nagano-benefit-row:hover {
	border-color: rgba(0, 255, 255, 0.45);
	box-shadow:
		0 0 26px rgba(0, 255, 255, 0.32),
		0 0 52px rgba(0, 255, 255, 0.16);
	transform: translateY(-2px);
}

.nagano-benefit-row__num {
	display: none;
	flex-shrink: 0;
	width: 2.75rem;
	height: 2.75rem;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 0, 102, 0.45);
	background: rgba(255, 0, 102, 0.1);
	color: var(--nagano-pink);
	font-weight: 700;
}

@media (min-width: 640px) {
	.nagano-benefit-row__num {
		display: flex;
	}
}

.nagano-benefit-row__content {
	flex: 1;
	min-width: 0;
}

.nagano-benefit-row__title {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 800;
}

.nagano-benefit-row__desc {
	margin: 0;
	font-size: 0.85rem;
	color: var(--nagano-gray);
}

/* ----- Portfolio ----- */
.nagano-portfolio-card {
	display: grid;
	gap: 1.5rem;
	border: 1px solid var(--nagano-border);
	background: rgba(0, 0, 0, 0.45);
	padding: 1.25rem;
}

@media (min-width: 900px) {
	.nagano-portfolio-card {
		grid-template-columns: 1fr 1.4fr;
		align-items: start;
	}
}

.nagano-portfolio-card__tag {
	display: inline-block;
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	padding: 0.25rem 0.6rem;
	border: 1px solid rgba(255, 0, 102, 0.45);
	color: var(--nagano-pink);
	margin-bottom: 0.75rem;
}

.nagano-portfolio-card__client {
	margin: 0 0 0.25rem;
	font-size: 1.35rem;
	font-weight: 900;
}

.nagano-portfolio-card__sub {
	margin: 0 0 1rem;
	font-size: 0.85rem;
	color: var(--nagano-gray);
}

.nagano-portfolio-stats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.nagano-portfolio-stats__item {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 5rem;
}

.nagano-portfolio-stats__value {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--nagano-cyan);
}

.nagano-portfolio-stats__label {
	font-size: 0.7rem;
	color: var(--nagano-gray);
}

.nagano-portfolio-stats__unit {
	font-size: 0.65rem;
	color: rgba(255, 255, 255, 0.35);
	text-transform: uppercase;
}

.nagano-portfolio-card__embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #000;
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.nagano-portfolio-card__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.nagano-portfolio-cta-wrap {
	text-align: center;
	margin: 2.5rem 0 0;
}

.nagano-btn--portfolio-more {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	padding: 1rem 1.75rem;
	font-size: 0.8rem;
}

.nagano-portfolio-cta-wrap__arrow {
	flex-shrink: 0;
}

.nagano-portfolio-section-bottom {
	position: relative;
	z-index: 4;
	margin-top: 0.5rem;
	padding: 2rem 0 2.75rem;
	border-top: 1px solid rgba(0, 255, 255, 0.12);
	background: linear-gradient(180deg, rgba(255, 0, 102, 0.07), transparent 60%), rgba(0, 0, 0, 0.4);
}

.nagano-portfolio-section-bottom .nagano-portfolio-cta-wrap {
	display: block;
}

.nagano-portfolio-section-bottom .nagano-btn--portfolio-more {
	width: 100%;
	max-width: 22rem;
	margin-left: auto;
	margin-right: auto;
	justify-content: center;
}

.nagano-portfolio-section-bottom__hint {
	text-align: center;
	font-size: 0.58rem;
	letter-spacing: 0.24em;
	color: rgba(255, 255, 255, 0.48);
	margin: 0 0 1rem;
}

.nagano-portfolio-cta-wrap--section-bottom {
	margin-top: 0;
}

/* 活用事例セクション直下 CTA（ブロックは portfolio 下部と共通） */
.nagano-section-bottom-cta--usecases {
	border-top-color: rgba(0, 255, 255, 0.14);
	background: linear-gradient(180deg, rgba(0, 255, 255, 0.07), transparent 60%), rgba(0, 0, 0, 0.38);
}

/* ----- Pricing ----- */
.nagano-cloud-notice {
	display: block;
	width: 100%;
	max-width: 48rem;
	margin: 0 auto 2rem;
	padding: 0.65rem 1rem;
	background: rgba(255, 0, 102, 0.08);
	border: 1px solid rgba(255, 0, 102, 0.35);
	font-size: 0.85rem;
	text-align: center;
	box-sizing: border-box;
}

.nagano-pricing-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 900px) {
	.nagano-pricing-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.nagano-price-card {
	position: relative;
	padding: 1.5rem;
	background: rgba(0, 0, 0, 0.5);
	border: 1px solid rgba(0, 255, 255, 0.28);
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.3s ease;
}

.nagano-price-card:hover {
	border-color: rgba(0, 255, 255, 0.5);
	box-shadow:
		0 0 28px rgba(0, 255, 255, 0.38),
		0 0 56px rgba(0, 255, 255, 0.2);
	transform: translateY(-3px);
}

.nagano-price-card--popular {
	border-color: rgba(255, 0, 102, 0.55);
	box-shadow:
		0 0 28px rgba(255, 0, 102, 0.38),
		0 0 56px rgba(255, 0, 102, 0.2);
}

.nagano-price-card--popular:hover {
	border-color: rgba(255, 0, 102, 0.85);
	box-shadow:
		0 0 32px rgba(255, 0, 102, 0.55),
		0 0 64px rgba(255, 0, 102, 0.32),
		0 0 96px rgba(255, 0, 102, 0.15);
	transform: translateY(-4px);
}

.nagano-price-card__badge {
	position: absolute;
	top: 0;
	right: 0;
	margin: 0;
	padding: 0.25rem 0.65rem;
	font-size: 0.55rem;
	background: var(--nagano-pink);
	color: #fff;
}

.nagano-price-card__name {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
	font-weight: 800;
}

.nagano-price-card__price {
	margin: 0 0 0.25rem;
}

.nagano-price-card__amount {
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--nagano-cyan);
}

.nagano-price-card__unit {
	font-size: 0.9rem;
	color: var(--nagano-gray);
	margin-left: 0.15rem;
}

.nagano-tax-note {
	display: inline-block;
	margin-left: 0.35rem;
	font-size: 0.68rem;
	color: rgba(255, 255, 255, 0.7);
	letter-spacing: 0.02em;
	line-height: 1;
	vertical-align: baseline;
}

.nagano-price-card__size {
	margin: 0 0 1rem;
	font-size: 0.8rem;
	color: var(--nagano-muted);
}

.nagano-price-card__features {
	margin: 0;
	padding: 0 0 0 1.1rem;
	font-size: 0.8rem;
	color: #ccc;
	line-height: 1.7;
}

.nagano-options {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.nagano-options__title {
	margin: 0 0 1rem;
	font-size: 0.75rem;
	color: var(--nagano-cyan);
}

.nagano-options__list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: 32rem;
}

.nagano-options__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.65rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 0.85rem;
}

.nagano-options__price {
	color: var(--nagano-cyan);
	font-weight: 700;
}

.nagano-options__cell .nagano-tax-note {
	margin-left: 0.28rem;
}

.nagano-options__price-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 9.8ch;
	text-align: center;
}

/* ----- Process ----- */
.nagano-process-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nagano-process-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.nagano-process-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.nagano-process-step {
	padding: 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(0, 0, 0, 0.35);
}

.nagano-process-step__num {
	display: block;
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--nagano-pink);
	margin-bottom: 0.5rem;
}

.nagano-process-step__title {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 800;
}

.nagano-process-step__desc {
	margin: 0;
	font-size: 0.85rem;
	color: var(--nagano-gray);
}

/* ----- FAQ ----- */
.nagano-faq-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.nagano-faq-item {
	border: 1px solid rgba(0, 255, 255, 0.28);
	background: rgba(0, 0, 0, 0.45);
}

.nagano-faq-item__q {
	padding: 1rem 1.25rem;
	cursor: pointer;
	font-weight: 700;
	list-style: none;
	position: relative;
}

.nagano-faq-item__q::-webkit-details-marker {
	display: none;
}

.nagano-faq-item__q::after {
	content: "+";
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--nagano-cyan);
	font-weight: 400;
}

.nagano-faq-item[open] .nagano-faq-item__q::after {
	content: "−";
}

.nagano-faq-item__a {
	padding: 0 1.25rem 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.nagano-faq-item__a p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--nagano-muted);
	line-height: 1.7;
}

/* ----- Contact ----- */
.nagano-section--contact {
	padding-bottom: 5rem;
}

.nagano-contact-grid {
	display: grid;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.nagano-contact-grid {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
		max-width: 72rem;
		margin: 0 auto;
	}
}

.nagano-contact-heading {
	margin: 0 0 1.25rem;
	font-size: clamp(1.85rem, 5.8vw, 3.55rem);
	font-weight: 900;
	line-height: 1.12;
	color: #fff;
}

.nagano-contact-heading__line {
	display: block;
	color: #fff;
}

.nagano-contact-heading__pink {
	color: var(--nagano-pink);
	text-shadow: 0 0 18px rgba(255, 0, 102, 0.35);
	display: block;
}

.nagano-contact-heading__white {
	color: #fff;
	display: block;
}

.nagano-contact-body {
	margin: 0 0 1.5rem;
	font-size: 0.9rem;
	color: var(--nagano-muted);
	line-height: 1.8;
}

.nagano-contact-note {
	padding: 1rem;
	border: 1px solid rgba(0, 255, 255, 0.35);
	background: rgba(0, 255, 255, 0.05);
}

.nagano-contact-note p {
	margin: 0;
	font-size: 0.85rem;
	color: rgba(0, 255, 255, 0.9);
}

.nagano-contact-phone {
	margin-top: 0.85rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(255, 0, 168, 0.35);
	background: rgba(255, 0, 168, 0.06);
	box-sizing: border-box;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.nagano-contact-phone__number {
	margin: 0;
	font-size: clamp(1.2rem, 4vw, 2rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
	background: linear-gradient(96deg, #00ecff 0%, #70f4ff 36%, #ff00a8 68%, #ffc6f2 100%);
	background-size: 180% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0 8px rgba(0, 236, 255, 0.33)) drop-shadow(0 0 7px rgba(255, 0, 168, 0.26));
	animation: nagano-iris-phone 3.2s linear infinite;
}

.nagano-contact-phone__link {
	color: inherit;
	text-decoration: none;
}

@keyframes nagano-iris-phone {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 180% 50%;
	}
}

.nagano-contact-form-wrap {
	position: relative;
	border: 1px solid rgba(0, 255, 255, 0.32);
	background: rgba(0, 0, 0, 0.28);
}

/* 外枠ボックス下端のシアン L 字（フォーム内パディングではなく wrap 外周基準） */
.nagano-contact-form-wrap::before,
.nagano-contact-form-wrap::after {
	content: "";
	position: absolute;
	width: 14px;
	height: 14px;
	border-style: solid;
	border-color: var(--nagano-cyan);
	pointer-events: none;
	z-index: 2;
}

.nagano-contact-form-wrap::before {
	bottom: 0;
	left: 0;
	border-width: 0 0 2px 2px;
}

.nagano-contact-form-wrap::after {
	bottom: 0;
	right: 0;
	border-width: 0 2px 2px 0;
}

.nagano-contact-form-wrap > .nagano-alert {
	margin: 1rem 1.25rem 0;
}

.nagano-contact-form {
	position: relative;
	margin: 0;
	padding: 1.75rem;
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(0, 0, 0, 0.35);
}

.nagano-contact-form-wrap > .nagano-contact-form:first-child {
	border-top: 0;
}

.nagano-contact-form--cf7 {
	padding: 1.75rem;
}

.nagano-contact-form--cf7 .wpcf7 {
	width: 100%;
}

.nagano-contact-form--cf7 .wpcf7 form {
	margin: 0;
	padding: 0;
}

.nagano-contact-form--cf7 p {
	margin: 0 0 0.9rem !important;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.nagano-contact-form--cf7 p > label {
	order: 0;
	margin: 0 0 0.12rem !important;
	line-height: 1.2;
}

.nagano-contact-form--cf7 p + p {
	margin-top: 0 !important;
}

.nagano-contact-form--cf7 label .required,
.nagano-contact-form--cf7 label .wpcf7-required,
.nagano-contact-form--cf7 label .asterisk {
	color: var(--nagano-pink) !important;
}

.nagano-contact-form--cf7 p > .wpcf7-form-control-wrap,
.nagano-contact-form--cf7 p > input:not([type="submit"]),
.nagano-contact-form--cf7 p > select,
.nagano-contact-form--cf7 p > textarea {
	order: 1;
}

.nagano-contact-form--cf7 p:last-of-type {
	margin-bottom: 0;
}


.nagano-contact-form--cf7 label {
	display: block;
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.86);
	margin: 0;
}

.nagano-contact-form--cf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0 !important;
}

/* CF7 が「ラベルだけの行」+「入力だけの行」を出す場合、ラベルを下のBOX側へ配置 */
.nagano-contact-form--cf7 p:has(> label):not(:has(> .wpcf7-form-control-wrap, > input:not([type="submit"]), > select, > textarea)) {
	margin-top: 0.55rem !important;
	margin-bottom: 0.12rem !important;
	padding-bottom: 0 !important;
}

.nagano-contact-form--cf7 p:has(> label):not(:has(> .wpcf7-form-control-wrap, > input:not([type="submit"]), > select, > textarea))
	+ p:has(> .wpcf7-form-control-wrap, > input:not([type="submit"]), > select, > textarea) {
	margin-top: 0 !important;
}

/* 万一 p のデフォルト余白が残っても押し下げる */
.nagano-contact-form--cf7 .wpcf7 p {
	margin-block-start: 0 !important;
}

/* Final hard override: keep label attached to the input box below */
.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p {
	margin: 0 0 0.86rem !important;
	padding: 0 !important;
}

.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p > label {
	display: block !important;
	margin: 0 0 0.12rem !important;
	padding: 0 !important;
	line-height: 1.15 !important;
}

.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p > .wpcf7-form-control-wrap,
.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p > input:not([type="submit"]),
.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p > select,
.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p > textarea {
	margin-top: 0 !important;
}

/* CF7 default markup often injects <br> and extra spacing; remove to keep label attached to its box */
.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form br {
	display: none !important;
}

.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p:empty {
	display: none !important;
}

.nagano-contact-form-wrap .nagano-contact-form--cf7 .wpcf7 form p label {
	margin-bottom: 0.08rem !important;
}

.nagano-contact-form--cf7 .wpcf7-form-control {
	box-sizing: border-box;
}

.nagano-contact-form--cf7 input[type="text"],
.nagano-contact-form--cf7 input[type="email"],
.nagano-contact-form--cf7 input[type="tel"],
.nagano-contact-form--cf7 input[type="url"],
.nagano-contact-form--cf7 select,
.nagano-contact-form--cf7 textarea {
	width: 100%;
	padding: 0.75rem 0.85rem;
	background: rgba(0, 0, 0, 0.5);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	font-size: 1.06rem;
	line-height: 1.45;
	border-radius: 0 !important;
	min-height: 48px;
	box-shadow: none !important;
}

.nagano-contact-form--cf7 textarea {
	min-height: 140px;
	resize: vertical;
}

.nagano-contact-form--cf7 input::placeholder,
.nagano-contact-form--cf7 textarea::placeholder {
	font-size: 1.02rem;
	color: rgba(255, 255, 255, 0.5);
}

.nagano-contact-form--cf7 input:focus-visible,
.nagano-contact-form--cf7 select:focus-visible,
.nagano-contact-form--cf7 textarea:focus-visible {
	outline: 2px solid var(--nagano-pink);
	outline-offset: 1px;
}

.nagano-contact-form--cf7 input[type="submit"],
.nagano-contact-form--cf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid rgba(255, 0, 102, 0.6);
	border-radius: 0;
	background: var(--nagano-pink);
	color: #fff;
	cursor: pointer;
	transition: box-shadow 0.2s, border-color 0.2s, background 0.2s, transform 0.25s ease;
}

.nagano-contact-form--cf7 input[type="submit"]:hover,
.nagano-contact-form--cf7 input[type="submit"]:focus-visible,
.nagano-contact-form--cf7 .wpcf7-submit:hover,
.nagano-contact-form--cf7 .wpcf7-submit:focus-visible {
	box-shadow:
		0 0 22px rgba(255, 0, 102, 0.65),
		0 0 48px rgba(255, 0, 102, 0.45),
		0 0 80px rgba(255, 0, 102, 0.22);
	transform: translateY(-1px);
}

.nagano-contact-form--cf7 .wpcf7-spinner {
	margin: 0.5rem 0 0;
}

.nagano-contact-form--cf7 .wpcf7-not-valid-tip {
	margin-top: 0.35rem;
	font-size: 0.75rem;
	color: #fecaca;
}

.nagano-contact-form--cf7 .wpcf7 form .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 0.85rem 1rem;
	font-size: 0.9rem;
	border-width: 1px;
}

.nagano-contact-form--cf7 .wpcf7 form.sent .wpcf7-response-output,
.nagano-contact-form--cf7 .wpcf7 form.init .wpcf7-response-output {
	border-color: rgba(34, 197, 94, 0.5);
	background: rgba(34, 197, 94, 0.1);
	color: #86efac;
}

.nagano-contact-form--cf7 .wpcf7 form.invalid .wpcf7-response-output,
.nagano-contact-form--cf7 .wpcf7 form.failed .wpcf7-response-output,
.nagano-contact-form--cf7 .wpcf7 form.aborted .wpcf7-response-output,
.nagano-contact-form--cf7 .wpcf7 form.unaccepted .wpcf7-response-output,
.nagano-contact-form--cf7 .wpcf7 form.spam .wpcf7-response-output {
	border-color: rgba(248, 113, 113, 0.5);
	background: rgba(248, 113, 113, 0.08);
	color: #fecaca;
}

.nagano-contact-form::before,
.nagano-contact-form::after {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	border-color: var(--nagano-pink);
	border-style: solid;
	pointer-events: none;
}

.nagano-contact-form::before {
	top: 0;
	left: 0;
	border-width: 2px 0 0 2px;
}

.nagano-contact-form::after {
	top: 0;
	right: 0;
	border-width: 2px 2px 0 0;
}

.nagano-field {
	margin: 0 0 1rem;
}

.nagano-field label {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	color: var(--nagano-muted);
	margin-bottom: 0.35rem;
}

.nagano-req {
	color: var(--nagano-pink);
}

.nagano-field input,
.nagano-field select,
.nagano-field textarea {
	width: 100%;
	padding: 0.75rem 0.85rem;
	background: rgba(0, 0, 0, 0.5);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	font: inherit;
	border-radius: 0;
	min-height: 48px;
}

.nagano-field textarea {
	min-height: 120px;
	resize: vertical;
}

.nagano-field input:focus-visible,
.nagano-field select:focus-visible,
.nagano-field textarea:focus-visible {
	outline: 2px solid var(--nagano-pink);
	outline-offset: 1px;
}

.nagano-honeypot {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.nagano-contact-privacy {
	margin: 0.75rem 0 0;
	font-size: 0.65rem;
	color: rgba(255, 255, 255, 0.45);
	text-align: center;
}

.nagano-alert {
	padding: 0.85rem 1rem;
	margin: 0 0 1rem;
	font-size: 0.9rem;
	border: 1px solid;
}

.nagano-alert--success {
	border-color: rgba(34, 197, 94, 0.5);
	background: rgba(34, 197, 94, 0.1);
	color: #86efac;
}

.nagano-alert--error {
	border-color: rgba(248, 113, 113, 0.5);
	background: rgba(248, 113, 113, 0.08);
	color: #fecaca;
}

/* ----- CPT アーカイブ / 記事（サブページ） ----- */
.nagano-main--archive {
	padding-bottom: 4rem;
}

.nagano-archive-head {
	padding: 2.5rem 0 1.5rem;
	text-align: center;
	border-bottom: 1px solid rgba(0, 255, 255, 0.12);
}

.nagano-archive-head__title {
	margin: 0;
	font-size: clamp(1.35rem, 4vw, 2rem);
	font-weight: 900;
	letter-spacing: 0.06em;
}

.nagano-archive-head__desc {
	margin: 0.75rem auto 0;
	max-width: 36rem;
	font-size: 0.9rem;
	color: var(--nagano-gray);
}

.nagano-archive-grid {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nagano-archive-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.nagano-archive-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.nagano-archive-card {
	display: block;
	padding: 1.25rem;
	border: 1px solid rgba(0, 255, 255, 0.22);
	background: rgba(0, 0, 0, 0.45);
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.nagano-archive-card:hover,
.nagano-archive-card:focus-visible {
	border-color: rgba(255, 0, 102, 0.45);
	box-shadow: 0 0 24px rgba(0, 255, 255, 0.12);
}

.nagano-archive-card__thumb {
	margin: 0 0 0.75rem;
	border-radius: 2px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #111;
}

.nagano-archive-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nagano-archive-card__title {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 800;
}

.nagano-archive-card__excerpt {
	margin: 0;
	font-size: 0.82rem;
	color: var(--nagano-muted);
	line-height: 1.55;
}

.nagano-archive-nav {
	margin: 2.5rem 0 0;
	display: flex;
	justify-content: center;
}

.nagano-archive-nav .navigation,
.nagano-archive-nav .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
}

.nagano-archive-nav .page-numbers {
	display: inline-flex;
	padding: 0.4rem 0.75rem;
	border: 1px solid rgba(0, 255, 255, 0.35);
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-size: 0.8rem;
}

.nagano-archive-nav .page-numbers.current,
.nagano-archive-nav .page-numbers:hover,
.nagano-archive-nav .page-numbers:focus-visible {
	border-color: rgba(255, 0, 102, 0.55);
	color: #fff;
}

.nagano-single {
	padding: 2.5rem 0 4rem;
}

.nagano-single__inner {
	max-width: 48rem;
	margin: 0 auto;
}

@media (max-width: 767px) {
	/* 投稿/実績ページはTOPと同等のゆとり感に寄せる（本文幅を広げる） */
	.nagano-main--archive .nagano-container {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.nagano-single__inner {
		max-width: none;
	}

	.nagano-single__content {
		font-size: 0.98rem;
		line-height: 1.78;
	}
}

.nagano-single__meta {
	font-size: 0.75rem;
	color: var(--nagano-muted);
	margin: 0 0 1rem;
}

.nagano-single__title {
	margin: 0 0 1.25rem;
	font-size: clamp(1.35rem, 4vw, 2.25rem);
	font-weight: 900;
	line-height: 1.25;
}

.nagano-single__thumb {
	margin: 0 0 1.5rem;
	border-radius: 4px;
	overflow: hidden;
	border: 1px solid rgba(0, 255, 255, 0.2);
}

.nagano-single__thumb img {
	width: 100%;
	height: auto;
	display: block;
}

.nagano-single__content {
	font-size: 0.95rem;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.88);
}

.nagano-single__content p {
	margin: 0 0 1rem;
}

.nagano-single__back {
	display: inline-flex;
	margin-top: 2rem;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--nagano-cyan);
	text-decoration: none;
}

.nagano-single__back:hover,
.nagano-single__back:focus-visible {
	text-decoration: underline;
}

/* ----- Footer ----- */
.nagano-footer {
	position: relative;
	padding: 1.75rem 0 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: #000;
}

.nagano-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0.35rem 1rem 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

@media (min-width: 768px) {
	.nagano-footer__inner {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
}

.nagano-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	text-align: center;
}

@media (min-width: 768px) {
	.nagano-footer__brand {
		flex-direction: row;
		text-align: left;
	}
}

.nagano-footer__logo img {
	height: 1.5rem;
	width: auto;
	object-fit: contain;
}

@media (min-width: 768px) {
	.nagano-footer__logo img {
		height: 2rem;
	}
}

.nagano-footer__area {
	margin: 0;
	font-size: 0.65rem;
	color: rgba(255, 255, 255, 0.45);
	max-width: 28rem;
	line-height: 1.5;
}

.nagano-footer__social {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.78rem;
	letter-spacing: 0.03em;
}

.nagano-footer__social a {
	color: rgba(255, 255, 255, 0.62);
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.nagano-footer__social a:hover,
.nagano-footer__social a:focus-visible {
	color: var(--nagano-pink);
}

.nagano-footer__operator {
	display: inline-flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.78);
}

.nagano-footer__social .nagano-footer__operator-link {
	min-width: 32px;
	min-height: 32px;
}

/* ----- Optional editor content below LP ----- */
.nagano-below-content {
	max-width: 720px;
	margin: 0 auto;
	padding: 2rem 1rem 4rem;
	color: var(--nagano-muted);
}

/* =============================================================================
 * WebGL / グリッチ / フローティング CTA（v0 の視覚レイヤー）
 * ========================================================================== */

/* DOM 末尾に置き、本文より下のレイヤーでタッチを受けない */
.nagano-fx-stack {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.nagano-fx-stack,
.nagano-fx-stack * {
	pointer-events: none !important;
}

.nagano-webgl-mount {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	/* シアン帯より手前にしてレーザー・ワイヤーが背景として見える */
	z-index: 1;
	pointer-events: none;
}

/* 装飾レイヤーは全面でも操作を透過（canvas / 子孫の既定 auto を潰す） */
#nagano-webgl-mount,
#nagano-webgl-mount * {
	pointer-events: none;
}

#nagano-webgl-mount canvas.nagano-webgl-mount__canvas {
	touch-action: manipulation;
}

.nagano-global-beams,
.nagano-global-beams * {
	pointer-events: none;
}

.nagano-glitch-overlay,
.nagano-glitch-overlay * {
	pointer-events: none;
}

/* 全画面の太めシアン／ピンクのディティール（WebGL の補助・単体でも動く） */
.nagano-global-beams {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.nagano-global-beams__band {
	position: absolute;
	width: 140%;
	height: 22%;
	left: -20%;
	filter: blur(18px);
	opacity: 0.42;
	/*
	 * position:fixed の FX スタック上で translateX を往復させると、
	 * スクロールするセクション（FEATURES 付近）に対してパララックスのように見える。
	 * 装飾は静的な帯のままにする。
	 */
	animation: none;
	transform: rotate(-28deg) translateX(0);
}

.nagano-global-beams__band--cyan {
	top: 12%;
	background: linear-gradient(102deg, transparent 0%, rgba(0, 255, 255, 0.55) 45%, rgba(0, 255, 255, 0.2) 70%, transparent 100%);
	transform: rotate(-28deg) translateX(0);
}

.nagano-global-beams__band--pink {
	top: 48%;
	background: linear-gradient(102deg, transparent 0%, rgba(255, 0, 102, 0.5) 40%, rgba(255, 0, 102, 0.15) 68%, transparent 100%);
	transform: rotate(-22deg) translateX(0);
	animation: none;
}

@keyframes nagano-global-beam-drift {
	0% {
		opacity: 0.32;
		transform: rotate(-28deg) translateX(-4%);
	}
	100% {
		opacity: 0.48;
		transform: rotate(-28deg) translateX(5%);
	}
}

@keyframes nagano-global-beam-drift-pink {
	0% {
		opacity: 0.28;
		transform: rotate(-22deg) translateX(3%);
	}
	100% {
		opacity: 0.46;
		transform: rotate(-22deg) translateX(-5%);
	}
}

.nagano-webgl-mount__canvas {
	display: block;
	width: 100%;
	height: 100%;
	vertical-align: top;
}

.nagano-glitch-overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 2;
	overflow: hidden;
}

.nagano-glitch-scanlines {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 0, 0, 0.15) 2px, rgba(0, 0, 0, 0.15) 4px);
	animation: nagano-scanlines-move 0.1s linear infinite;
}

@keyframes nagano-scanlines-move {
	0% {
		background-position: 0 0;
	}
	100% {
		background-position: 0 4px;
	}
}

.nagano-glitch-scanbar {
	position: absolute;
	left: 0;
	width: 100%;
	height: 8px;
	pointer-events: none;
	background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.08) 50%, transparent 100%);
	animation: nagano-scanbar-move 4s linear infinite;
}

@keyframes nagano-scanbar-move {
	0% {
		top: -10%;
	}
	100% {
		top: 110%;
	}
}

.nagano-glitch-rgb {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	mix-blend-mode: screen;
}

.nagano-glitch-rgb::before,
.nagano-glitch-rgb::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.nagano-glitch-rgb::before {
	background: linear-gradient(90deg, rgba(255, 0, 102, 0) 0%, rgba(255, 0, 102, 0.03) 50%, rgba(255, 0, 102, 0) 100%);
	animation: nagano-rgb-shift-1 8s ease-in-out infinite;
}

.nagano-glitch-rgb::after {
	background: linear-gradient(90deg, rgba(0, 255, 255, 0) 0%, rgba(0, 255, 255, 0.03) 50%, rgba(0, 255, 255, 0) 100%);
	animation: nagano-rgb-shift-2 6s ease-in-out infinite;
}

@keyframes nagano-rgb-shift-1 {
	0%,
	100% {
		transform: translateX(-100%);
		opacity: 0;
	}
	10% {
		opacity: 1;
	}
	50% {
		transform: translateX(100%);
		opacity: 1;
	}
	60% {
		opacity: 0;
	}
}

@keyframes nagano-rgb-shift-2 {
	0%,
	100% {
		transform: translateX(100%);
		opacity: 0;
	}
	20% {
		opacity: 1;
	}
	60% {
		transform: translateX(-100%);
		opacity: 1;
	}
	70% {
		opacity: 0;
	}
}

.nagano-glitch-blocks {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.nagano-glitch-block {
	position: absolute;
	pointer-events: none;
	background: rgba(255, 0, 102, 0.1);
	animation: nagano-glitch-block-anim 4s steps(1) infinite;
}

.nagano-glitch-block:nth-child(1) {
	top: 15%;
	left: 0;
	width: 30%;
	height: 3px;
	animation-delay: 0s;
}

.nagano-glitch-block:nth-child(2) {
	top: 35%;
	right: 0;
	width: 20%;
	height: 2px;
	background: rgba(0, 255, 255, 0.15);
	animation-delay: 1s;
}

.nagano-glitch-block:nth-child(3) {
	top: 55%;
	left: 10%;
	width: 40%;
	height: 4px;
	animation-delay: 2s;
}

.nagano-glitch-block:nth-child(4) {
	top: 75%;
	right: 5%;
	width: 25%;
	height: 2px;
	background: rgba(0, 255, 255, 0.1);
	animation-delay: 3s;
}

.nagano-glitch-block:nth-child(5) {
	top: 90%;
	left: 0;
	width: 15%;
	height: 3px;
	animation-delay: 0.5s;
}

@keyframes nagano-glitch-block-anim {
	0%,
	92%,
	100% {
		opacity: 0;
		transform: translateX(0) scaleX(1);
	}
	93% {
		opacity: 1;
		transform: translateX(-5px) scaleX(1.5);
	}
	94% {
		opacity: 0;
		transform: translateX(10px) scaleX(0.8);
	}
	95% {
		opacity: 1;
		transform: translateX(-3px) scaleX(1.2);
	}
	96% {
		opacity: 0;
	}
}

.nagano-glitch-flicker {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background: transparent;
	animation: nagano-glitch-flicker-anim 10s steps(1) infinite;
}

@keyframes nagano-glitch-flicker-anim {
	0%,
	100% {
		background: transparent;
	}
	3% {
		background: rgba(255, 0, 102, 0.02);
	}
	3.5% {
		background: transparent;
	}
	7% {
		background: rgba(0, 255, 255, 0.02);
	}
	7.2% {
		background: transparent;
	}
	12% {
		background: rgba(255, 255, 255, 0.01);
	}
	12.1% {
		background: transparent;
	}
}

.nagano-glitch-noise {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
	opacity: 0.02;
	animation: nagano-noise-anim 0.2s steps(10) infinite;
}

@keyframes nagano-noise-anim {
	0%,
	100% {
		transform: translate(0, 0);
	}
	10% {
		transform: translate(-2%, -2%);
	}
	20% {
		transform: translate(2%, 2%);
	}
	30% {
		transform: translate(-1%, 1%);
	}
	40% {
		transform: translate(1%, -1%);
	}
	50% {
		transform: translate(-2%, 2%);
	}
	60% {
		transform: translate(2%, -2%);
	}
	70% {
		transform: translate(-1%, -1%);
	}
	80% {
		transform: translate(1%, 1%);
	}
	90% {
		transform: translate(0, -2%);
	}
}

.nagano-floating-cta {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	z-index: 95;
	width: 3.5rem;
	height: 3.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #fff;
	animation: nagano-cta-enter 0.45s ease 0.8s both;
}

@keyframes nagano-cta-enter {
	from {
		opacity: 0;
		transform: scale(0.85);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes nagano-cta-float {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-6px);
	}
}

.nagano-floating-cta__glow {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	pointer-events: none;
	background: var(--nagano-pink);
	filter: blur(18px);
	opacity: 0.45;
	transition: opacity 0.25s ease;
}

.nagano-floating-cta:hover .nagano-floating-cta__glow,
.nagano-floating-cta:focus-visible .nagano-floating-cta__glow {
	opacity: 0.72;
}

.nagano-floating-cta__btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 999px;
	background: var(--nagano-pink);
	box-shadow: 0 0 0 1px rgba(255, 0, 102, 0.35);
	transition: box-shadow 0.25s ease, background 0.25s ease;
	animation: nagano-cta-float 3s ease-in-out 1.2s infinite;
}

.nagano-floating-cta:hover .nagano-floating-cta__btn,
.nagano-floating-cta:focus-visible .nagano-floating-cta__btn {
	box-shadow:
		0 0 26px rgba(255, 0, 102, 0.75),
		0 0 52px rgba(255, 0, 102, 0.45),
		0 0 88px rgba(255, 0, 102, 0.22);
}

.nagano-floating-cta__label {
	position: absolute;
	right: calc(100% + 0.75rem);
	top: 50%;
	transform: translateY(-50%) translateX(6px);
	opacity: 0;
	pointer-events: none;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--nagano-cyan);
	padding: 0.35rem 0.75rem;
	border: 1px solid rgba(0, 255, 255, 0.45);
	background: rgba(0, 0, 0, 0.85);
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	white-space: nowrap;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.nagano-floating-cta:hover .nagano-floating-cta__label,
.nagano-floating-cta:focus-visible .nagano-floating-cta__label {
	opacity: 1;
	transform: translateY(-50%) translateX(0);
}

.nagano-footer__ticker {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	overflow: hidden;
	font-family: ui-monospace, monospace;
	font-size: 5px;
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.12);
	white-space: nowrap;
	pointer-events: none;
}

@media (min-width: 768px) {
	.nagano-footer__ticker {
		font-size: 6px;
	}
}

.nagano-footer__ticker-inner {
	display: inline-block;
	animation: nagano-marquee 40s linear infinite;
}

@keyframes nagano-marquee {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nagano-webgl-mount,
	.nagano-global-beams,
	.nagano-glitch-overlay {
		display: none;
	}

	.nagano-floating-cta {
		animation: none;
	}

	.nagano-floating-cta__btn {
		animation: none;
	}

	.nagano-section {
		transform: none;
		opacity: 1;
		transition: none;
	}

	.nagano-glitch-text__layer--cyan,
	.nagano-glitch-text__layer--pink {
		animation: none;
		display: none;
	}

	body.nagano-v0-lp .nagano-hero__content > * {
		animation: none;
	}

	.nagano-footer__ticker-inner {
		animation: none;
	}

	.nagano-hero__grid,
	.nagano-hero__glow,
	.nagano-hero__camera,
	.nagano-hero__streak,
	.nagano-hero__particles,
	.nagano-hero__scroll-cube-svg-g {
		animation: none;
		transform: rotate(-18deg);
	}
}

/* タッチ端末では :hover が効かないため、押下時にデスクトップ hover と同等のフィードバック */
@media (hover: none), (pointer: coarse) {
	.nagano-header__nav a:active {
		color: var(--nagano-cyan);
		text-shadow:
			0 0 10px rgba(0, 255, 255, 0.95),
			0 0 22px rgba(0, 255, 255, 0.55),
			0 0 40px rgba(0, 255, 255, 0.3);
	}

	.nagano-challenge-card:active {
		box-shadow:
			0 0 26px rgba(255, 0, 102, 0.42),
			0 0 52px rgba(255, 0, 102, 0.22);
		border-color: rgba(255, 0, 102, 0.55);
		transform: translateY(-2px);
	}

	.nagano-feature-card:active {
		border-color: rgba(0, 255, 255, 0.55);
		box-shadow:
			0 0 24px rgba(0, 255, 255, 0.35),
			0 0 48px rgba(0, 255, 255, 0.18);
		transform: translateY(-2px);
	}

	.nagano-benefit-row:active {
		border-color: rgba(0, 255, 255, 0.45);
		box-shadow:
			0 0 26px rgba(0, 255, 255, 0.32),
			0 0 52px rgba(0, 255, 255, 0.16);
		transform: translateY(-2px);
	}

	.nagano-price-card:active {
		border-color: rgba(0, 255, 255, 0.5);
		box-shadow:
			0 0 28px rgba(0, 255, 255, 0.38),
			0 0 56px rgba(0, 255, 255, 0.2);
		transform: translateY(-3px);
	}

	.nagano-price-card--popular:active {
		border-color: rgba(255, 0, 102, 0.85);
		box-shadow:
			0 0 32px rgba(255, 0, 102, 0.55),
			0 0 64px rgba(255, 0, 102, 0.32),
			0 0 96px rgba(255, 0, 102, 0.15);
		transform: translateY(-4px);
	}

	.nagano-btn:active {
		transform: translateY(-1px);
	}

	.nagano-btn--primary:active {
		box-shadow:
			0 0 22px rgba(255, 0, 102, 0.65),
			0 0 48px rgba(255, 0, 102, 0.45),
			0 0 80px rgba(255, 0, 102, 0.22);
		transform: translateY(-1px);
	}

	.nagano-btn--outline:active {
		box-shadow:
			0 0 20px rgba(0, 255, 255, 0.45),
			0 0 44px rgba(0, 255, 255, 0.32),
			0 0 72px rgba(0, 255, 255, 0.18);
		transform: translateY(-1px);
	}

	.nagano-footer__social a:active {
		color: var(--nagano-cyan);
		opacity: 1;
	}

	.nagano-floating-cta:active .nagano-floating-cta__glow {
		opacity: 0.72;
	}

	.nagano-floating-cta:active .nagano-floating-cta__btn {
		box-shadow:
			0 0 26px rgba(255, 0, 102, 0.75),
			0 0 52px rgba(255, 0, 102, 0.45),
			0 0 88px rgba(255, 0, 102, 0.22);
	}

	.nagano-floating-cta:active .nagano-floating-cta__label {
		opacity: 1;
		transform: translateY(-50%) translateX(0);
	}
}

/* Mobile hero copy hard override (final) */
@media (max-width: 639px) {
	body.nagano-v0-lp .nagano-hero .nagano-hero__content .nagano-hero__tagline {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		font-size: clamp(0.58rem, 3.35vw, 0.96rem) !important;
		line-height: 1.22 !important;
		letter-spacing: clamp(0.05em, 0.08em + 0.16vw, 0.16em) !important;
		padding-left: max(0rem, env(safe-area-inset-left)) !important;
		padding-right: max(0rem, env(safe-area-inset-right)) !important;
	}

	body.nagano-v0-lp .nagano-hero .nagano-hero__content .nagano-hero__title-rotate {
		padding-left: max(0rem, env(safe-area-inset-left)) !important;
		padding-right: max(0rem, env(safe-area-inset-right)) !important;
	}

	body.nagano-v0-lp .nagano-hero .nagano-hero__content .nagano-hero__title {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		white-space: nowrap !important;
		font-size: clamp(1.28rem, 12.3vw, 2.7rem) !important;
		line-height: 1 !important;
		letter-spacing: -0.02em !important;
		text-wrap: nowrap !important;
		display: inline-block !important;
		padding-right: 0 !important;
		overflow: visible !important;
	}
}

