/* GT.engineer テーマスタイル（第1実装単位: 骨格 + ヘッダー + TOPヒーロー + フッター）
   ヒーローは決裁者指示「画像の切れ禁止」に従い、全幅で object-fit を使わず
   width:100%/height:auto（常に非トリミング）で描画する。 */

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	/* 読み込み途中のスクロールバー出現で実効幅が変わり、境界幅で
	   ヒーロー画像のメディア判定が2回走るのを防ぐ（v0.2.5） */
	scrollbar-gutter: stable;
}

body {
	margin: 0;
	min-width: 320px;
	font-family: var(--gt-font-family);
	font-feature-settings: "palt" 1;
	color: var(--gt-ink);
	background: linear-gradient(180deg, #ffffff 0%, #ffffff 60%, var(--gt-bg-soft) 100%);
	-webkit-font-smoothing: antialiased;
}

a {
	color: inherit;
	text-decoration: none;
}

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

.gt-container {
	width: min(var(--gt-container-max), calc(100% - var(--gt-container-gutter)));
	margin: 0 auto;
}

/* ── ヘッダー ── */
.gt-header {
	position: fixed;
	z-index: 20;
	top: 0;
	left: 0;
	right: 0;
	height: var(--gt-header-height);
	background: rgba(255, 255, 255, 0.88);
	backdrop-filter: blur(18px);
	box-shadow: var(--gt-shadow-header);
}

.gt-header-inner {
	display: flex;
	align-items: center;
	gap: 24px;
	height: 100%;
	padding: 0 28px;
}

.gt-logo {
	font-size: 28px;
	font-weight: 900;
	color: var(--gt-ink-heading);
	letter-spacing: 0.01em;
}

.gt-logo-dot {
	color: var(--gt-orange);
}

.gt-nav {
	margin-left: auto;
}

.gt-nav-list {
	display: flex;
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 700;
	font-size: 15px;
}

.gt-nav-list a {
	display: inline-block;
	padding: 8px 2px;
	color: var(--gt-ink);
	transition: color 0.2s ease;
}

.gt-nav-list a:hover,
.gt-nav-list a:focus-visible {
	color: var(--gt-purple);
}

.gt-header-cta {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 6px 20px;
	border-radius: var(--gt-radius-s);
	color: #ffffff;
	background: var(--gt-grad-cta);
	box-shadow: 0 4px 20px rgba(255, 107, 0, 0.35);
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gt-header-cta:hover,
.gt-header-cta:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 28px rgba(255, 107, 0, 0.45);
}

.gt-header-cta-small {
	font-size: 11px;
	font-weight: 700;
	opacity: 0.92;
}

.gt-header-cta-main {
	font-size: 15px;
	font-weight: 800;
}

/* ── ヒーロー ──
   デスクトップ: 承認ラフ準拠。全幅の合成ビジュアル（吹き出し込み・アスペクト比固定）
   の左側の余白領域にHTMLテキストを重ねる。画像は width:100% / height:auto のみで
   描画するため、どの幅でもトリミングされない。
   900px以下: テキストブロックを上、画像を下に積む（重ね合わせをやめる）。 */
.gt-hero {
	position: relative;
	margin-top: var(--gt-header-height);
	background:
		radial-gradient(ellipse 45% 55% at 12% 42%, rgba(160, 120, 255, 0.10) 0%, transparent 55%),
		linear-gradient(160deg, #f7f4ff 0%, #fdf9f4 50%, #fffcf8 100%);
	overflow: hidden;
}

/* ヒーロービジュアル（v0.2.5）:
   表示・取得ともCSSメディアクエリ一本で決める。実画像のURLは下の
   メディアクエリ内でのみ宣言するため、非表示側の実画像は取得されない。
   （imgのsrc fallback取得による二重ダウンロード対策。判定源の不一致も構造上起きない） */
.gt-hero-art {
	display: block;
	width: 100%;
}

.gt-hero-art-desktop {
	/* 決裁者指示（2026-07-29 v0.9.1）: ヒーローを一回り縮小。
	   合成画像下端の余白帯（吹き出しより下の約7%）だけをtop基準で切り、
	   吹き出し・人物は欠けさせない */
	aspect-ratio: 1691 / 868;
	background: center top / 100% auto no-repeat;
}

.gt-hero-art-mobile {
	display: none;
	aspect-ratio: 1024 / 1108;
	background: center top / 100% auto no-repeat;
}

/* 実画像の取得はこのメディアクエリ内に限定（769px以上=デスクトップ横長のみ） */
@media (min-width: 769px) {
	.gt-hero-art-desktop {
		background-image: url(../img/hero-composite-under-text.png);
	}
}

/* 重ね合わせ配置は承認ラフ（1691px幅基準）の比率をvwで再現する。
   1200px以下は縦積みに切り替えるため、vw値は1201px以上でのみ効く。
   タイトル拡大（決裁者指示）に伴いtopを7%へ調整して下部吹き出しとの衝突を回避。 */
.gt-hero-copy {
	position: absolute;
	z-index: 4;
	top: 7%;
	left: 7.9%;
	width: min(44vw, 680px);
}

.gt-hero-kicker {
	margin: 0 0 8px;
	/* 決裁者指示（2026-07-29 v0.9.1）: 拡大しすぎたため一回り縮小 */
	font-size: clamp(18px, 2vw, 36px);
	font-weight: 700;
	color: var(--gt-purple);
	letter-spacing: 0.04em;
}

.gt-hero-title {
	margin: 0;
	/* 決裁者指示（2026-07-29 v0.9.1）: 拡大しすぎたため一回り縮小 */
	font-size: clamp(46px, 5.5vw, 104px);
	line-height: var(--gt-lh-hero);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-hero-title .gt-line {
	display: block;
	white-space: nowrap;
}

.gt-hero-title .gt-fast {
	color: var(--gt-purple);
}

.gt-hero-title strong {
	color: var(--gt-orange);
}

/* 承認ラフ準拠: 紫地に白文字 */
.gt-hero-ribbon {
	display: inline-flex;
	align-items: center;
	margin: 14px 0 0;
	padding: 9px 24px;
	color: #ffffff;
	background: var(--gt-purple);
	border-radius: 6px;
	font-weight: 700;
	font-size: clamp(13px, 1.4vw, 24px);
}

.gt-hero-cable {
	width: min(520px, 100%);
	height: 20px;
	margin: 8px 0 6px;
	border-radius: 50%;
	background: var(--gt-grad-cable) bottom left / 100% 5px no-repeat;
	transform: rotate(1.4deg);
	filter: drop-shadow(0 3px 3px rgba(103, 37, 244, 0.16));
}

.gt-hero-services {
	display: grid;
	grid-template-columns: repeat(5, minmax(92px, 1fr));
	gap: 8px;
	width: min(610px, 100%);
	margin: 0;
	padding: 8px;
	list-style: none;
	background: rgba(255, 255, 255, 0.95);
	border-radius: 0 var(--gt-radius-m) var(--gt-radius-m) var(--gt-radius-m);
	box-shadow: var(--gt-shadow);
}

.gt-hero-services li {
	display: grid;
	place-items: center;
	gap: 8px;
	min-height: 96px;
	padding: 12px 6px;
	border: 1px solid var(--gt-line);
	border-radius: 10px;
	background: #ffffff;
	color: var(--gt-purple);
	font-weight: 900;
	font-size: 12px;
	text-align: center;
}

.gt-hero-services svg {
	width: 32px;
	height: 32px;
}

.gt-big-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	width: min(30vw, 500px);
	min-height: 58px;
	margin-top: 14px;
	border-radius: var(--gt-radius-s);
	color: #ffffff;
	background: var(--gt-grad-cta);
	font-size: var(--gt-fs-cta);
	font-weight: 800;
	box-shadow: 0 4px 20px rgba(255, 107, 0, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.gt-big-cta:hover,
.gt-big-cta:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 28px rgba(255, 107, 0, 0.45);
	filter: brightness(1.06);
}

.gt-big-cta .gt-cta-arrow {
	font-weight: 900;
}

/* ── セクション共通見出し ── */
.gt-section-eyebrow {
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: var(--gt-orange);
}

.gt-section-title {
	margin: 0 0 24px;
	font-size: clamp(24px, 2.6vw, 34px);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

/* ラフ準拠の見出しアクセント（紫→オレンジのライン） */
.gt-section-title::after {
	content: '';
	display: block;
	width: 64px;
	height: 4px;
	margin-top: 10px;
	border-radius: 2px;
	background: var(--gt-grad-cable);
}

/* v0.10.0: 推奨構成セクションの見出しはfixture同様inline-block
   （中央寄せセクションでアクセント線が見出し直下に付く） */
.gt-services-icons .gt-section-title,
.gt-flow .gt-section-title,
.gt-reasons-icons .gt-section-title,
.gt-cases-structured .gt-section-title,
.gt-voices-cards .gt-section-title,
.gt-faq .gt-section-title {
	display: inline-block;
}

/* v0.10.0: fixtureのinline style相当（本番はクラスで指定） */
.gt-big-cta.gt-about-cta {
	width: auto;
	padding: 0 28px;
}

.gt-big-cta.gt-cta-band-btn {
	width: min(460px, 100%);
}

/* ラフの背景ハーフトーン（ドットグリッド）。静的装飾のみでアニメなし */
.gt-halftone,
.gt-works,
.gt-voices {
	background-image: radial-gradient(circle, rgba(103, 37, 244, 0.06) 1.5px, transparent 1.5px);
	background-size: 26px 26px;
}

.gt-services-sec {
	background-image: radial-gradient(circle, rgba(255, 107, 0, 0.05) 1.5px, transparent 1.5px);
	background-size: 26px 26px;
}

/* ── ラフ準拠の装飾アクセント（主要箇所のみ・静的） ── */
.gt-works,
.gt-cases,
.gt-services-sec,
.gt-voices,
.gt-reasons {
	position: relative;
}

.gt-works::before {
	content: '';
	position: absolute;
	top: 40px;
	right: 6%;
	width: 26px;
	height: 26px;
	background: var(--gt-yellow);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	transform: rotate(18deg);
	opacity: 0.85;
	pointer-events: none;
}

.gt-cases::before {
	content: '';
	position: absolute;
	top: 52px;
	right: 8%;
	width: 24px;
	height: 24px;
	background: var(--gt-orange);
	clip-path: polygon(50% 0%, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0% 50%, 38% 38%);
	opacity: 0.6;
	pointer-events: none;
}

.gt-voices::before {
	content: '';
	position: absolute;
	top: 44px;
	right: 10%;
	width: 20px;
	height: 20px;
	background: var(--gt-purple);
	clip-path: polygon(50% 0%, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0% 50%, 38% 38%);
	opacity: 0.35;
	pointer-events: none;
}

.gt-reasons::before {
	content: '';
	position: absolute;
	top: 46px;
	right: 5%;
	width: 180px;
	height: 16px;
	background: var(--gt-grad-cable) bottom left / 100% 4px no-repeat;
	border-radius: 50%;
	transform: rotate(-3deg);
	opacity: 0.7;
	pointer-events: none;
}

/* 密度調整（1366pxでラフより余白過多の指摘対応） */
.gt-works,
.gt-voices,
.gt-services-sec {
	padding: 48px 0 56px;
}

.gt-work-grid {
	gap: 16px;
}

.gt-case-track {
	gap: 18px;
}

.gt-service-grid {
	gap: 14px;
}

.gt-reason-grid {
	gap: 16px;
}

/* ── 取引先ロゴマーキー ──
   JS無効時/少数時/reduced-motion時: 横並びの静的表示（is-static）。
   JSが複製を追加したとき（is-animated）のみ無限スクロール。 */
.gt-logos {
	padding: 56px 0 48px;
	background: #ffffff;
}

.gt-logo-marquee {
	display: flex;
	overflow: hidden;
	margin-top: 8px;
}

.gt-logo-track {
	display: flex;
	align-items: center;
	gap: 48px;
	flex-shrink: 0;
	min-width: 100%;
	justify-content: space-around;
	margin: 0;
	padding: 0 24px;
	list-style: none;
}

/* ロゴは白い統一タイル。決裁者指示（2026-07-29）: より大きく・2段で流す */
.gt-logo-track li {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 220px;
	height: 88px;
	padding: 12px 18px;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: 12px;
	box-shadow: 0 4px 14px rgba(73, 36, 180, 0.08);
}

.gt-logo-track img {
	display: block;
	max-width: 184px;
	max-height: 64px;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* 2段目は逆方向へ流す */
.gt-logo-marquee + .gt-logo-marquee {
	margin-top: 16px;
}

.gt-logo-marquee.gt-marquee-reverse.is-animated .gt-logo-track {
	animation-direction: reverse;
}

.gt-logo-marquee.is-static {
	overflow-x: auto;
}

.gt-logo-marquee.is-animated .gt-logo-track {
	justify-content: flex-start;
	animation: gt-marquee 36s linear infinite;
}

.gt-logo-marquee.is-animated:hover .gt-logo-track,
.gt-logo-marquee.is-animated:focus-within .gt-logo-track {
	animation-play-state: paused;
}

@keyframes gt-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-100%); }
}

/* ── 導入事例カルーセル ──
   JS無効時もCSSの横スクロールで全件読める。 */
.gt-cases {
	padding: 56px 0 64px;
	background: var(--gt-bg-soft);
}

.gt-case-carousel {
	position: relative;
	width: min(var(--gt-container-max), calc(100% - var(--gt-container-gutter)));
	margin: 0 auto;
}

.gt-case-viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	padding-bottom: 8px;
}

.gt-case-viewport:focus-visible {
	outline: 3px solid var(--gt-purple);
	outline-offset: 4px;
	border-radius: var(--gt-radius-m);
}

.gt-case-track {
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 4px;
	list-style: none;
}

.gt-case-card {
	flex: 0 0 min(340px, 82vw);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	box-shadow: var(--gt-shadow);
	overflow: hidden;
}

.gt-case-media {
	aspect-ratio: 16 / 9;
	background: var(--gt-purple-soft);
}

.gt-case-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gt-case-media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 40%, rgba(103, 37, 244, 0.18), transparent 55%),
		radial-gradient(circle at 75% 65%, rgba(255, 107, 0, 0.14), transparent 50%),
		var(--gt-purple-soft);
}

.gt-case-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px 20px 20px;
}

.gt-case-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}

.gt-case-tags span {
	padding: 3px 10px;
	border-radius: var(--gt-radius-pill);
	background: rgba(103, 37, 244, 0.08);
	color: var(--gt-purple);
	font-size: 12px;
	font-weight: 700;
}

.gt-case-title {
	margin: 0;
	font-size: 17px;
	font-weight: 800;
	color: var(--gt-ink-heading);
	line-height: 1.45;
}

.gt-case-summary {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--gt-muted);
}

.gt-case-link {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 4px;
	color: var(--gt-purple);
	font-weight: 800;
	font-size: 14px;
}

.gt-case-link:hover,
.gt-case-link:focus-visible {
	text-decoration: underline;
}

.gt-case-nav {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 12px;
}

.gt-case-prev,
.gt-case-next {
	width: 46px;
	height: 46px;
	border: 1.5px solid var(--gt-line);
	border-radius: 50%;
	background: #ffffff;
	color: var(--gt-purple);
	font-size: 18px;
	font-weight: 900;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.gt-case-prev:hover,
.gt-case-next:hover,
.gt-case-prev:focus-visible,
.gt-case-next:focus-visible {
	background: var(--gt-purple-soft);
	border-color: var(--gt-purple);
}

/* ── 施工実績グリッド ── */
.gt-works {
	padding: 56px 0 64px;
	background: #ffffff;
}

.gt-work-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-work-card {
	position: relative;
	border-radius: var(--gt-radius-m);
	overflow: hidden;
	border: 1px solid var(--gt-line);
	box-shadow: var(--gt-shadow);
	background: #ffffff;
}

.gt-work-media {
	aspect-ratio: 16 / 10;
	background: var(--gt-purple-soft);
}

.gt-work-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gt-work-media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 40%, rgba(103, 37, 244, 0.16), transparent 55%),
		var(--gt-purple-soft);
}

.gt-work-body {
	padding: 14px 16px 16px;
}

.gt-work-industry {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	color: var(--gt-purple);
}

.gt-work-title {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: var(--gt-ink-heading);
	line-height: 1.5;
}

.gt-work-more {
	margin: 20px 0 0;
	text-align: right;
}

.gt-work-more a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 4px;
	font-weight: 800;
	color: var(--gt-purple);
}

.gt-work-more a:hover,
.gt-work-more a:focus-visible {
	text-decoration: underline;
}

/* ── サービス5カード ── */
.gt-services-sec {
	padding: 56px 0 64px;
	background: var(--gt-bg-soft);
}

.gt-service-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-service-card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	box-shadow: var(--gt-shadow);
	overflow: hidden;
}

.gt-service-media {
	aspect-ratio: 16 / 10;
	background: var(--gt-purple-soft);
}

.gt-service-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gt-service-media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 60% 40%, rgba(255, 107, 0, 0.12), transparent 55%),
		var(--gt-purple-soft);
}

.gt-service-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 14px 16px;
}

.gt-service-title {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: var(--gt-ink-heading);
	line-height: 1.45;
}

.gt-service-lead {
	margin: 0;
	font-size: 13px;
	line-height: 1.65;
	color: var(--gt-muted);
}

.gt-service-link {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 2px;
	color: var(--gt-purple);
	font-weight: 800;
	font-size: 13px;
}

.gt-service-link:hover,
.gt-service-link:focus-visible {
	text-decoration: underline;
}

@media (max-width: 1100px) {
	.gt-service-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 700px) {
	.gt-service-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.gt-service-grid {
		grid-template-columns: 1fr;
	}
}

/* ── 数値実績 ── */
.gt-metrics {
	padding: 48px 0;
	background: linear-gradient(120deg, var(--gt-purple) 0%, var(--gt-purple-dark) 100%);
	color: #ffffff;
}

.gt-metric-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

.gt-metric-label {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	opacity: 0.9;
}

.gt-metric-figure {
	margin: 0;
}

.gt-metric-value {
	font-size: clamp(34px, 3.6vw, 48px);
	font-weight: 900;
}

.gt-metric-unit {
	margin-left: 4px;
	font-size: 15px;
	font-weight: 700;
}

/* ── お客様の声 ── */
.gt-voices {
	padding: 56px 0 64px;
	background: #ffffff;
}

.gt-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-voice-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	background: var(--gt-bg-soft);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
}

.gt-voice-quote {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: var(--gt-ink);
}

.gt-voice-quote::before {
	content: '\201C';
	display: block;
	font-size: 34px;
	line-height: 1;
	color: var(--gt-purple);
	font-weight: 900;
}

.gt-voice-name {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--gt-muted);
}

/* ── 選ばれる理由 ── */
.gt-reasons {
	padding: 56px 0 64px;
	background: var(--gt-bg-soft);
}

.gt-reason-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-reason-card {
	display: flex;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	box-shadow: var(--gt-shadow);
	overflow: hidden;
}

.gt-reason-media {
	flex: 0 0 38%;
}

.gt-reason-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gt-reason-body {
	flex: 1;
	padding: 18px 20px;
}

.gt-reason-number {
	margin: 0 0 2px;
	font-size: 13px;
	font-weight: 900;
	color: var(--gt-orange);
	letter-spacing: 0.1em;
}

.gt-reason-title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 800;
	color: var(--gt-ink-heading);
	line-height: 1.45;
}

.gt-reason-text {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--gt-muted);
}

.gt-reason-points {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}

.gt-reason-points span {
	padding: 3px 10px;
	border-radius: var(--gt-radius-pill);
	background: rgba(103, 37, 244, 0.08);
	color: var(--gt-purple);
	font-size: 12px;
	font-weight: 700;
}

/* ── 下部相談CTA ── */
.gt-bottom-cta {
	padding: 64px 0;
	background:
		radial-gradient(ellipse 60% 80% at 80% 30%, rgba(255, 140, 56, 0.18) 0%, transparent 60%),
		linear-gradient(120deg, var(--gt-purple) 0%, var(--gt-purple-dark) 100%);
	color: #ffffff;
	text-align: center;
}

.gt-bottom-cta-title {
	margin: 0 0 12px;
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 900;
}

.gt-bottom-cta-text {
	margin: 0 0 24px;
	font-size: 15px;
	line-height: 1.8;
	opacity: 0.92;
}

.gt-bottom-cta .gt-big-cta {
	width: min(520px, 100%);
	margin-top: 0;
}

/* ── 下層共通: パンくず・ページヒーロー・本文・FAQ（第5実装単位） ── */
.gt-breadcrumb {
	padding: calc(var(--gt-header-height) + 16px) 0 0;
	font-size: 13px;
}

.gt-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--gt-muted);
}

.gt-breadcrumb li:not(:last-child)::after {
	content: '\203A';
	margin: 0 6px;
	color: var(--gt-line);
}

.gt-breadcrumb a {
	color: var(--gt-purple);
	font-weight: 700;
}

.gt-breadcrumb a:hover,
.gt-breadcrumb a:focus-visible {
	text-decoration: underline;
}

.gt-page-hero {
	margin-top: 12px;
	padding: 36px 0 40px;
	background:
		radial-gradient(circle, rgba(103, 37, 244, 0.06) 1.5px, transparent 1.5px) 0 0 / 26px 26px,
		linear-gradient(160deg, #f7f4ff 0%, #fdf9f4 60%, #fffcf8 100%);
	border-bottom: 1px solid var(--gt-line);
}

.gt-page-hero-title {
	margin: 0 0 10px;
	font-size: clamp(28px, 3.4vw, 42px);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-page-hero-title::after {
	content: '';
	display: block;
	width: 64px;
	height: 4px;
	margin-top: 10px;
	border-radius: 2px;
	background: var(--gt-grad-cable);
}

.gt-page-hero-lead {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: var(--gt-muted);
}

.gt-service-detail {
	padding: 40px 0 56px;
}

.gt-prose {
	max-width: 820px;
	font-size: 15px;
	line-height: 1.9;
	color: var(--gt-ink);
}

.gt-prose h2 {
	margin: 40px 0 14px;
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 900;
	color: var(--gt-ink-heading);
	border-left: 5px solid var(--gt-purple);
	padding-left: 12px;
}

.gt-prose h3 {
	margin: 28px 0 10px;
	font-size: 17px;
	font-weight: 800;
	color: var(--gt-ink-heading);
}

.gt-prose ul,
.gt-prose ol {
	padding-left: 1.4em;
}

.gt-prose img {
	border-radius: var(--gt-radius-m);
}

/* 関連事例の静的並び（カルーセルなし） */
.gt-case-track-static {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-case-track-static .gt-case-card {
	flex: none;
}

/* FAQ（details/summary・JS不要） */
.gt-faq {
	padding: 48px 0 56px;
	background: var(--gt-bg-soft);
}

.gt-faq-item {
	margin-bottom: 10px;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	overflow: hidden;
}

.gt-faq-item summary {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 16px;
	font-weight: 800;
	color: var(--gt-ink-heading);
	cursor: pointer;
	list-style: none;
}

.gt-faq-item summary::-webkit-details-marker {
	display: none;
}

.gt-faq-item summary::before {
	content: 'Q';
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--gt-purple);
	color: #ffffff;
	font-size: 13px;
	font-weight: 900;
}

.gt-faq-item summary::after {
	content: '+';
	margin-left: auto;
	font-size: 20px;
	font-weight: 900;
	color: var(--gt-purple);
}

.gt-faq-item[open] summary::after {
	content: '\2212';
}

.gt-faq-item summary:focus-visible {
	outline: 3px solid var(--gt-purple);
	outline-offset: -3px;
}

.gt-faq-answer {
	padding: 0 16px 14px 52px;
	font-size: 14px;
	line-height: 1.8;
	color: var(--gt-muted);
}

@media (max-width: 900px) {
	.gt-case-track-static {
		grid-template-columns: 1fr;
	}
}

/* ── 施工実績 下層（第7実装単位） ── */
.gt-works-archive {
	padding: 40px 0 56px;
}

.gt-work-card-link {
	display: block;
	color: inherit;
}

.gt-work-card-link:hover .gt-work-title,
.gt-work-card-link:focus-visible .gt-work-title {
	color: var(--gt-purple);
	text-decoration: underline;
}

.gt-work-card-link:focus-visible {
	outline: 3px solid var(--gt-purple);
	outline-offset: 2px;
	border-radius: var(--gt-radius-m);
}

/* ── blog 下層（第8実装単位） ── */
.gt-blog-date {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	color: var(--gt-muted);
}

.pagination,
.nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 28px;
	font-weight: 800;
}

.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 6px 12px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-s);
	background: #ffffff;
	color: var(--gt-purple);
}

.nav-links .page-numbers.current {
	background: var(--gt-purple);
	border-color: var(--gt-purple);
	color: #ffffff;
}

.nav-links .page-numbers:hover,
.nav-links .page-numbers:focus-visible {
	border-color: var(--gt-purple);
}

/* ── 導入事例 下層（第6実装単位） ── */
.gt-cases-archive {
	padding: 40px 0 56px;
}

.gt-case-grid-archive {
	grid-template-columns: repeat(3, 1fr);
}

.gt-case-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	margin: 10px 0 0;
}

.gt-case-meta div {
	display: flex;
	gap: 8px;
	font-size: 14px;
}

.gt-case-meta dt {
	font-weight: 800;
	color: var(--gt-purple);
}

.gt-case-meta dd {
	margin: 0;
	color: var(--gt-ink);
}

.gt-case-mainvisual {
	margin: 0 0 28px;
}

.gt-case-mainvisual img {
	width: 100%;
	height: auto;
	border-radius: var(--gt-radius-m);
}

.gt-case-metric {
	display: inline-block;
	padding: 10px 18px;
	border-radius: var(--gt-radius-m);
	background: rgba(103, 37, 244, 0.08);
	color: var(--gt-purple);
	font-weight: 900;
	font-size: 17px;
}

.gt-case-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

.gt-case-gallery figure {
	margin: 0;
}

.gt-case-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--gt-radius-m);
}

.gt-case-voice {
	margin: 0;
	padding: 18px 20px;
	background: var(--gt-bg-soft);
	border-left: 5px solid var(--gt-orange);
	border-radius: 0 var(--gt-radius-m) var(--gt-radius-m) 0;
}

.gt-case-voice cite {
	display: block;
	margin-top: 8px;
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	color: var(--gt-muted);
}

@media (max-width: 900px) {
	.gt-case-grid-archive {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.gt-case-grid-archive {
		grid-template-columns: 1fr;
	}

	.gt-case-gallery {
		grid-template-columns: 1fr;
	}
}

/* ══ 推奨構成（11-homepage-recommended-structure）準拠のTOP下層 v0.9.0 ══ */

/* お困りごと */
.gt-pain {
	padding: 48px 0 40px;
	background: #ffffff;
	text-align: center;
}

.gt-pain-title {
	margin: 0 0 26px;
	font-size: clamp(24px, 2.8vw, 34px);
	font-weight: 900;
}

.gt-pain-title em {
	font-style: normal;
	color: var(--gt-purple);
}

.gt-pain-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.gt-pain-card {
	/* 決裁者指摘（2026-07-29 v0.9.1）: ラベルが2行に折り返すカードで
	   写真の開始位置がずれるため、写真を下端揃えにして行を揃える */
	display: flex;
	flex-direction: column;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 6px 20px rgba(73, 36, 180, 0.07);
}

.gt-pain-card-label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	font-weight: 800;
	font-size: 14px;
	line-height: 1.5;
}

.gt-pain-card-label svg {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	color: var(--gt-purple);
}

.gt-pain-card img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	margin-top: auto;
}

.gt-bridge {
	margin: 30px 0 0;
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 900;
}

.gt-bridge em {
	font-style: normal;
	color: var(--gt-purple);
}

.gt-bridge::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	margin: 0 auto 14px;
	border-left: 16px solid transparent;
	border-right: 16px solid transparent;
	border-top: 16px solid var(--gt-purple);
}

/* サービス（アイコン5列） */
.gt-services-icons {
	padding: 48px 0 56px;
	background: var(--gt-bg-soft);
	text-align: center;
}

.gt-services-icons-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-service-icon-card {
	padding: 22px 14px;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
}

.gt-service-icon-card svg {
	width: 44px;
	height: 44px;
	color: var(--gt-purple);
}

.gt-service-icon-card h3 {
	margin: 10px 0 8px;
	font-size: 15px;
	font-weight: 800;
	color: var(--gt-purple);
}

.gt-service-icon-card p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.7;
	color: var(--gt-muted);
	text-align: left;
}

/* 数字で見る + 対応業種 */
.gt-stats-industries {
	padding: 48px 0 56px;
	background: #ffffff;
}

.gt-stats-industries-inner {
	display: grid;
	grid-template-columns: 5fr 6fr;
	gap: 24px;
	/* 決裁者指摘（2026-07-30 v0.9.2）: 左右の段ズレ解消。
	   両列をストレッチし、見出し位置と下端を揃える */
	align-items: stretch;
}

.gt-numbers {
	background: var(--gt-purple-soft);
	border-radius: var(--gt-radius-m);
	padding: 20px;
	display: flex;
	flex-direction: column;
}

.gt-numbers .gt-numbers-grid {
	flex: 1;
	align-content: stretch;
}

/* 右列: 左パネルのpadding(20px)と同じだけ見出しを下げ、
   グリッドを残り高さいっぱいに伸ばして下端を左パネルと揃える */
.gt-industries {
	display: flex;
	flex-direction: column;
	padding-top: 20px;
}

.gt-numbers h2,
.gt-industries h2 {
	margin: 0 0 14px;
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 900;
	text-align: center;
}

.gt-numbers-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-number-card {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #ffffff;
	border-radius: 10px;
	padding: 14px;
}

.gt-number-card svg {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	color: var(--gt-purple);
}

.gt-number-card .gt-number-label {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	color: var(--gt-muted);
}

.gt-number-card .gt-number-value {
	margin: 0;
	font-size: 18px;
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-industries-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex: 1;
}

/* 決裁者選択（2026-07-31 v0.9.3・B案）: 統一アートディレクションの
   AI生成イメージ写真6枚（assets-gen/）を採用。行揃え（stretch）は維持し、
   画像はabsolute+coverでセル高さに追従させる */
.gt-industry-tile {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	min-height: 112px;
}

.gt-industry-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gt-industry-tile span {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 6px 10px;
	background: linear-gradient(transparent, rgba(19, 11, 40, 0.78));
	color: #ffffff;
	font-size: 13px;
	font-weight: 800;
}

/* 導入事例（課題/対応/成果の構造カード） */
.gt-cases-structured {
	padding: 48px 0 56px;
	background: var(--gt-bg-soft);
}

.gt-case-s-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-case-s-card {
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	overflow: hidden;
	box-shadow: var(--gt-shadow);
}

.gt-case-s-card > img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.gt-case-s-body {
	padding: 16px 18px 18px;
}

.gt-case-s-body h3 {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 800;
}

.gt-case-s-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 10px;
	font-size: 11px;
}

.gt-case-s-tags span {
	padding: 2px 8px;
	border-radius: 99px;
	font-weight: 800;
}

.gt-case-s-tags .t-service {
	background: rgba(103, 37, 244, 0.1);
	color: var(--gt-purple);
}

.gt-case-s-tags .t-industry {
	background: rgba(255, 107, 0, 0.1);
	color: var(--gt-orange);
}

.gt-case-s-rows {
	display: grid;
	gap: 6px;
	margin: 0;
}

.gt-case-s-rows div {
	display: flex;
	gap: 8px;
	font-size: 12.5px;
	line-height: 1.6;
}

.gt-case-s-rows dt {
	flex-shrink: 0;
	width: 40px;
	height: fit-content;
	text-align: center;
	border-radius: 4px;
	font-weight: 800;
	font-size: 11px;
	padding: 2px 0;
	background: var(--gt-purple-soft);
	color: var(--gt-purple);
}

.gt-case-s-rows dd {
	margin: 0;
	color: var(--gt-ink);
}

.gt-cases-more {
	margin: 22px 0 0;
	text-align: center;
}

.gt-cases-more a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 28px;
	border: 2px solid var(--gt-purple);
	border-radius: 99px;
	color: var(--gt-purple);
	font-weight: 800;
}

.gt-cases-more a:hover,
.gt-cases-more a:focus-visible {
	background: var(--gt-purple-soft);
}

/* ご相談から保守まで（5ステップ） */
.gt-flow {
	padding: 48px 0 56px;
	background: #ffffff;
	text-align: center;
}

.gt-flow-lead {
	margin: -14px 0 24px;
	color: var(--gt-muted);
	font-size: 14px;
}

.gt-flow-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gtflow;
}

.gt-flow-step {
	position: relative;
	padding: 20px 12px 16px;
	background: var(--gt-bg-soft);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
	counter-increment: gtflow;
}

.gt-flow-step::before {
	content: counter(gtflow);
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--gt-purple);
	color: #ffffff;
	font-weight: 900;
	font-size: 13px;
}

.gt-flow-step svg {
	width: 34px;
	height: 34px;
	color: var(--gt-purple);
}

.gt-flow-step h3 {
	margin: 8px 0 6px;
	font-size: 14.5px;
	font-weight: 800;
}

.gt-flow-step p {
	margin: 0;
	font-size: 12px;
	color: var(--gt-muted);
	line-height: 1.6;
}

/* 選ばれる理由（アイコン4列） */
.gt-reasons-icons {
	padding: 48px 0 56px;
	background: var(--gt-bg-soft);
	text-align: center;
}

.gt-reasons-icons-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-reason-icon-card {
	padding: 24px 16px;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
}

.gt-reason-icon-card svg {
	width: 40px;
	height: 40px;
	color: var(--gt-purple);
}

.gt-reason-icon-card h3 {
	margin: 10px 0 8px;
	font-size: 15px;
	font-weight: 800;
}

.gt-reason-icon-card p {
	margin: 0;
	font-size: 12.5px;
	color: var(--gt-muted);
	line-height: 1.7;
	text-align: left;
}

/* お客様の声（人物カード） */
.gt-voices-cards {
	padding: 48px 0 56px;
	background: #ffffff;
}

.gt-voices-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-voice-card2 {
	padding: 20px;
	background: var(--gt-bg-soft);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-radius-m);
}

.gt-voice-card2 .v-tag {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 99px;
	background: rgba(255, 107, 0, 0.12);
	color: var(--gt-orange);
	font-size: 11px;
	font-weight: 800;
}

.gt-voice-card2 h3 {
	margin: 8px 0 8px;
	font-size: 16px;
	font-weight: 800;
}

.gt-voice-card2 blockquote {
	margin: 0 0 10px;
	font-size: 13.5px;
	line-height: 1.8;
	color: var(--gt-ink);
}

.gt-voice-card2 cite {
	font-style: normal;
	font-size: 12px;
	font-weight: 700;
	color: var(--gt-muted);
}

/* ── お客様の声マーキー（決裁者指示 2026-07-31: ロゴ帯のように常時スライド・
   業種カテゴリで配色を変える）。ロゴマーキーの仕組み（data-gt-marquee +
   .gt-logo-track + 複製アニメーション）を流用し、カード見た目だけ上書きする ── */
.gt-voice-marquee .gt-logo-track {
	gap: 16px;
	align-items: stretch;
}

.gt-voice-marquee .gt-logo-track li {
	display: block;
	width: 330px;
	height: auto;
	min-height: 150px;
	padding: 14px 18px 12px;
	text-align: left;
	border-top: 4px solid var(--v-cat, var(--gt-purple));
	border-radius: 12px;
}

.gt-voice-marquee.is-animated .gt-logo-track {
	/* 文章を読めるようロゴ帯より遅く流す */
	animation-duration: 80s;
}

/* v0.10.1（Codexラウンド155必須修正3）: 可視停止ボタンで止めた状態 */
.gt-logo-marquee.is-paused .gt-logo-track {
	animation-play-state: paused;
}

.gt-voices-head {
	position: relative;
}

/* v0.10.2（Codexラウンド157必須修正）: author CSSのdisplay指定はUAの
   [hidden]{display:none}を上書きするため、hidden時の非表示を明示保証する */
.gt-marquee-toggle[hidden] {
	display: none;
}

.gt-marquee-toggle {
	display: inline-flex;
	align-items: center;
	margin: 0 0 12px;
	padding: 6px 16px;
	border: 1px solid var(--gt-line);
	border-radius: 99px;
	background: #ffffff;
	color: var(--gt-ink);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.gt-marquee-toggle:hover,
.gt-marquee-toggle:focus-visible {
	border-color: var(--gt-purple);
	color: var(--gt-purple);
}

.gt-voice-marquee .v-tag {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 99px;
	/* color-mix非対応ブラウザ向けの無彩色フォールバック→対応環境でカテゴリ色 */
	background: rgba(19, 11, 40, 0.08);
	background: color-mix(in srgb, var(--v-cat, var(--gt-purple)) 14%, #ffffff);
	color: var(--v-cat, var(--gt-purple));
	font-size: 11px;
	font-weight: 800;
}

.gt-voice-marquee h3 {
	margin: 8px 0 6px;
	font-size: 15px;
	font-weight: 800;
	color: var(--gt-ink-heading);
}

.gt-voice-marquee blockquote {
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.7;
	color: var(--gt-ink);
}

.gt-voice-marquee cite {
	font-style: normal;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--gt-muted);
}

/* 業種カテゴリ配色（タグ・上辺アクセントに反映） */
.v-cat-hotel { --v-cat: #6725f4; }
.v-cat-factory { --v-cat: #e8630a; }
.v-cat-medical { --v-cat: #0f9d78; }
.v-cat-shop { --v-cat: #d6336c; }
.v-cat-school { --v-cat: #1c7ed6; }
.v-cat-office { --v-cat: #5f3dc4; }

/* 私たちが対応します */
.gt-about {
	padding: 48px 0 56px;
	background: var(--gt-bg-soft);
}

.gt-about-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: center;
}

.gt-about-inner img {
	width: 100%;
	border-radius: var(--gt-radius-m);
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.gt-about h2 {
	margin: 0 0 10px;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 900;
}

.gt-about .gt-about-lead {
	margin: 0 0 8px;
	font-weight: 800;
	color: var(--gt-purple);
}

.gt-about p {
	font-size: 14px;
	line-height: 1.9;
	color: var(--gt-ink);
}

/* 無料相談CTA帯 */
.gt-cta-band {
	padding: 40px 0;
	background:
		radial-gradient(circle, rgba(255, 255, 255, 0.06) 1.5px, transparent 1.5px) 0 0 / 24px 24px,
		linear-gradient(100deg, var(--gt-purple-dark) 0%, var(--gt-purple) 55%, #7b3df6 100%);
	color: #ffffff;
}

.gt-cta-band-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.gt-cta-band-title {
	margin: 0 0 8px;
	font-size: clamp(24px, 2.8vw, 34px);
	font-weight: 900;
}

.gt-cta-band-title em {
	font-style: normal;
	color: var(--gt-yellow);
}

.gt-cta-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	font-weight: 800;
}

.gt-cta-badges li::before {
	content: '\2713 ';
	color: var(--gt-yellow);
	font-weight: 900;
}

.gt-cta-band-note {
	margin: 10px 0 0;
	font-size: 12.5px;
	opacity: 0.85;
}

@media (max-width: 1000px) {
	.gt-pain-grid,
	.gt-reasons-icons-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gt-services-icons-grid,
	.gt-flow-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gt-stats-industries-inner,
	.gt-about-inner {
		grid-template-columns: 1fr;
	}

	.gt-case-s-grid,
	.gt-voices-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.gt-pain-grid,
	.gt-services-icons-grid,
	.gt-flow-grid,
	.gt-reasons-icons-grid {
		grid-template-columns: 1fr;
	}

	.gt-industries-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── 汎用テンプレート最小スタイル ── */
.gt-main {
	padding: calc(var(--gt-header-height) + 40px) 0 64px;
}

.gt-entry-title {
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

/* ── フッター ── */
.gt-footer {
	padding: 44px 0 0;
	background: var(--gt-ink);
	color: #ffffff;
}

.gt-footer-inner {
	width: min(var(--gt-container-max), calc(100% - var(--gt-container-gutter)));
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 28px;
}

.gt-footer-logo {
	margin: 0 0 6px;
	font-size: 22px;
	font-weight: 900;
}

.gt-footer-tagline {
	margin: 0;
	font-size: 13px;
	opacity: 0.75;
}

.gt-footer-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-footer-nav a {
	display: inline-block;
	padding: 8px 2px;
	font-size: 14px;
	font-weight: 700;
	color: #ffffff;
	opacity: 0.85;
}

.gt-footer-nav a:hover,
.gt-footer-nav a:focus-visible {
	opacity: 1;
	text-decoration: underline;
}

.gt-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding: 16px 0;
	text-align: center;
}

.gt-footer-copy {
	margin: 0;
	font-size: 13px;
	opacity: 0.75;
}

/* ── 769〜1200px: HTMLテキスト→横長画像の縦積み（v0.2.1で合格した構成）。
   縦長合成を全幅に敷くと1199px付近でヒーロー高さが極端になるため、
   文字入り縦長はスマホ帯（768px以下）に限定する（v0.2.3閾値再調整）。 ── */
@media (max-width: 1200px) {
	.gt-hero {
		display: flex;
		flex-direction: column;
	}

	.gt-hero-copy {
		position: static;
		order: 1;
		width: min(720px, calc(100% - 48px));
		margin: 32px auto 8px;
	}

	.gt-hero-art {
		order: 2;
	}

	.gt-hero-title {
		font-size: clamp(48px, 7.6vw, 78px);
	}

	.gt-hero-kicker {
		font-size: clamp(18px, 2.8vw, 28px);
	}

	.gt-hero-ribbon {
		font-size: clamp(13px, 1.6vw, 16px);
	}

	.gt-big-cta {
		width: min(500px, 100%);
	}
}

/* ── 768px以下: 文字入り縦長合成（グリッドより上）を先頭に置き、
   サービスグリッド+CTAはタップ可能なHTMLで続ける（決裁者指示 2026-07-28）。
   デスクトップ側は同一条件で排他的に隠れ、実画像URLの宣言もないため取得されない（v0.2.5）。 ── */
@media (max-width: 768px) {
	.gt-hero-art-desktop {
		display: none;
	}

	.gt-hero-art-mobile {
		display: block;
		order: 1;
		/* WebP優先+PNG fallback。image-set非対応の旧ブラウザは1行目のPNGのみ取得 */
		background-image: url(../img/hero-mobile.png);
		background-image: -webkit-image-set(url(../img/hero-mobile.webp) 1x);
		background-image: image-set(url(../img/hero-mobile.webp) type("image/webp"), url(../img/hero-mobile.png) type("image/png"));
		/* 画像下端（イラスト途中）を背景へフェードさせて自然につなぐ */
		-webkit-mask-image: linear-gradient(to bottom, #000 92%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 92%, transparent 100%);
	}

	.gt-hero-copy {
		order: 2;
		margin-top: 0;
	}

	/* 装飾のみのケーブル線は非表示 */
	.gt-hero-cable {
		display: none;
	}

	/* 画像内に焼き込まれた文言（キッカー・タイトル・帯）は視覚非表示で
	   支援技術へ伝える（display:noneにしない。v0.2.3必須修正1） */
	.gt-hero-kicker,
	.gt-hero-ribbon,
	.gt-hero-title {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}
}

@media (max-width: 900px) {
	.gt-nav {
		display: none;
	}

	.gt-work-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gt-voice-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gt-reason-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.gt-voice-grid {
		grid-template-columns: 1fr;
	}

	.gt-reason-card {
		flex-direction: column;
	}

	.gt-reason-media {
		flex: none;
		aspect-ratio: 16 / 7;
	}
}

@media (max-width: 480px) {
	.gt-work-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 760px) {
	.gt-header-inner {
		padding: 0 14px;
		gap: 12px;
	}

	.gt-logo {
		font-size: 24px;
	}

	.gt-header-cta {
		margin-left: auto;
		min-height: 44px;
		padding: 6px 12px;
	}

	.gt-header-cta-small {
		display: none;
	}

	.gt-header-cta-main {
		font-size: 13px;
	}

	.gt-hero-copy {
		margin-top: 24px;
	}

	.gt-hero-title {
		font-size: clamp(38px, 11.4vw, 52px);
	}

	.gt-hero-kicker {
		font-size: 20px;
	}

	.gt-hero-services {
		grid-template-columns: repeat(2, 1fr);
	}

	.gt-footer-inner {
		flex-direction: column;
		text-align: center;
	}
}

/* 動きを抑えたい利用者への配慮 */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.gt-header-cta,
	.gt-big-cta {
		transition: none;
	}

	.gt-logo-marquee.is-animated .gt-logo-track {
		animation: none;
	}

	.gt-case-viewport {
		scroll-behavior: auto;
	}
}

/* ══ 下層リデザイン v0.11.0（決裁者提供GPTモック 12/13 準拠・2026-07-31） ══ */

/* ── ページヒーロー（明・一覧系） ── */
.gt-page-hero2 {
	position: relative;
	overflow: hidden;
	padding: 18px 0 44px;
	background:
		radial-gradient(circle at 88% 10%, rgba(103, 37, 244, 0.10), transparent 45%),
		linear-gradient(135deg, #f6f2ff 0%, #ffffff 60%, #f1ecff 100%);
}

.gt-page-hero2 .gt-breadcrumb {
	margin: 0 0 26px;
	font-size: 12px;
}

.gt-page-hero2-title {
	margin: 0 0 14px;
	font-size: clamp(34px, 3.6vw, 48px);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-page-hero2-title::after {
	content: '';
	display: block;
	width: 84px;
	height: 5px;
	margin-top: 12px;
	border-radius: 3px;
	background: var(--gt-grad-cable);
}

.gt-page-hero2-lead {
	margin: 0;
	max-width: 560px;
	font-size: 14.5px;
	line-height: 1.9;
	color: var(--gt-ink);
}

.gt-page-hero2-art {
	position: absolute;
	top: 54px;
	right: 4%;
	width: min(360px, 30vw);
	display: flex;
	gap: 14px;
	align-items: flex-start;
	pointer-events: none;
}

.gt-page-hero2-art img {
	width: 31%;
	height: auto;
	filter: drop-shadow(0 10px 18px rgba(73, 36, 180, 0.18));
}

.gt-page-hero2-art img:nth-child(2) { margin-top: 34px; }
.gt-page-hero2-art img:nth-child(3) { margin-top: 10px; }

/* ── サービスカード（2列+全幅・写真斜め切り） ── */
.gt-svc2-sec { padding: 48px 0 56px; background: #ffffff; text-align: center; }

.gt-svc2-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.gt-svc2-card {
	position: relative;
	display: flex;
	min-height: 240px;
	border: 1px solid var(--gt-line);
	border-radius: 16px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 10px 26px rgba(73, 36, 180, 0.08);
}

.gt-svc2-body {
	position: relative;
	z-index: 2;
	width: 56%;
	padding: 22px 8px 22px 24px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	background: linear-gradient(105deg, #ffffff 78%, rgba(255, 255, 255, 0));
}

.gt-svc2-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--gt-purple-soft);
	color: var(--gt-purple);
}

.gt-svc2-icon svg { width: 24px; height: 24px; }

.gt-svc2-body h2, .gt-svc2-body h3 {
	margin: 0;
	font-size: clamp(17px, 1.6vw, 21px);
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-svc2-body p { margin: 0; font-size: 13px; line-height: 1.9; color: var(--gt-ink); }

.gt-btn-outline {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding: 9px 20px;
	border: 1.5px solid var(--gt-orange);
	border-radius: 8px;
	color: var(--gt-orange);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	background: #ffffff;
	transition: background 0.2s ease, color 0.2s ease;
}

.gt-btn-outline:hover, .gt-btn-outline:focus-visible { background: var(--gt-orange); color: #ffffff; }

/* v0.11.3: 詳細ページ未作成のサービスは無効ボタン（deadリンクを置かない・Codexラウンド172継続指摘対応） */
.gt-btn-outline.is-disabled { opacity: 0.55; cursor: default; }

.gt-svc2-media { position: absolute; top: 0; right: 0; bottom: 0; width: 52%; }

.gt-svc2-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
}

.gt-svc2-wide { grid-column: 1 / -1; min-height: 210px; }
.gt-svc2-wide .gt-svc2-body { width: 44%; }
.gt-svc2-wide .gt-svc2-media { width: 62%; }

/* ── 流れ5ステップ（番号+矢印） ── */
.gt-steps2-sec { padding: 48px 0 56px; background: var(--gt-bg-soft); text-align: center; }

.gt-steps2 {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gtstep;
}

.gt-steps2 li {
	counter-increment: gtstep;
	position: relative;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: 14px;
	padding: 26px 14px 18px;
	text-align: center;
}

.gt-steps2 li::before {
	content: '0' counter(gtstep);
	position: absolute;
	top: -14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--gt-purple);
	color: #ffffff;
	font-size: 13px;
	font-weight: 800;
}

.gt-steps2 li:not(:last-child)::after {
	content: '\25B6';
	position: absolute;
	top: 50%;
	right: -21px;
	transform: translateY(-50%);
	color: var(--gt-purple);
	font-size: 12px;
}

.gt-steps2 svg { width: 34px; height: 34px; color: var(--gt-purple); }
.gt-steps2 h3 { margin: 10px 0 6px; font-size: 14.5px; font-weight: 900; color: var(--gt-purple); }
.gt-steps2 p { margin: 0; font-size: 12px; line-height: 1.8; color: var(--gt-muted); text-align: left; }

/* ── FAQ「もっと見る」導線 ── */
.gt-faq-more { margin: 18px 0 0; text-align: center; }
.gt-faq-more a { color: var(--gt-purple); font-size: 13.5px; font-weight: 800; text-decoration: none; }
.gt-faq-more a:hover, .gt-faq-more a:focus-visible { text-decoration: underline; }

/* ── サービス詳細ヒーロー（暗・写真背景） ── */
.gt-svcd-hero {
	position: relative;
	overflow: hidden;
	padding: 16px 0 46px;
	color: #ffffff;
	background: #17103a;
}

.gt-svcd-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0.42;
}

.gt-svcd-hero-bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(23, 16, 58, 0.92) 30%, rgba(23, 16, 58, 0.45) 70%, rgba(103, 37, 244, 0.35));
}

.gt-svcd-hero .gt-container { position: relative; z-index: 2; }

.gt-svcd-hero .gt-breadcrumb { margin: 0 0 24px; font-size: 12px; }
.gt-svcd-hero .gt-breadcrumb a, .gt-svcd-hero .gt-breadcrumb li { color: rgba(255, 255, 255, 0.85); }

.gt-svcd-kicker {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 800;
	color: #d9ccff;
}

.gt-svcd-kicker em { font-style: normal; color: var(--gt-orange); }

.gt-svcd-title {
	margin: 0 0 14px;
	font-size: clamp(34px, 3.8vw, 50px);
	font-weight: 900;
	color: #ffffff;
}

.gt-svcd-title::after {
	content: '';
	display: block;
	width: 84px;
	height: 5px;
	margin-top: 12px;
	border-radius: 3px;
	background: var(--gt-grad-cable);
}

.gt-svcd-lead { margin: 0 0 22px; max-width: 560px; font-size: 14px; line-height: 1.9; color: rgba(255, 255, 255, 0.92); }

.gt-svcd-chips { display: flex; gap: 26px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }

.gt-svcd-chips li { display: flex; align-items: center; gap: 10px; }
.gt-svcd-chips svg { width: 30px; height: 30px; color: #c9b6ff; flex-shrink: 0; }
.gt-svcd-chips b { display: block; font-size: 13px; color: #ffffff; }
.gt-svcd-chips span { display: block; font-size: 11px; color: rgba(255, 255, 255, 0.75); }

.gt-svcd-hero-art {
	position: absolute;
	top: 50%;
	right: 5%;
	transform: translateY(-50%);
	z-index: 1;
	width: min(220px, 18vw);
	pointer-events: none;
}

.gt-svcd-hero-art img { width: 100%; height: auto; filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.4)); }

/* ── お困りごと5連ミニカード ── */
.gt-pain5-sec { padding: 48px 0 52px; background: #ffffff; text-align: center; }

.gt-pain5-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-pain5-grid li {
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: 12px;
	padding: 20px 12px 16px;
	box-shadow: 0 6px 18px rgba(73, 36, 180, 0.06);
}

.gt-pain5-grid svg { width: 34px; height: 34px; color: var(--gt-purple); }
.gt-pain5-grid h3 { margin: 10px 0 6px; font-size: 13.5px; font-weight: 900; color: var(--gt-ink-heading); }
.gt-pain5-grid p { margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--gt-muted); text-align: left; }

/* ── 提供内容（写真+チェックリスト） ── */
.gt-provide-sec { padding: 48px 0 56px; background: var(--gt-bg-soft); text-align: center; }

.gt-provide {
	display: grid;
	grid-template-columns: 5fr 6fr;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 30px rgba(73, 36, 180, 0.10);
	text-align: left;
}

/* 写真は右のリスト高さに追従（自然高で縦に伸ばさない） */
.gt-provide-media { position: relative; min-height: 260px; }

.gt-provide-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.gt-provide-list { margin: 0; padding: 26px 28px; list-style: none; background: #ffffff; display: flex; flex-direction: column; gap: 16px; }

.gt-provide-list li { display: flex; gap: 12px; }

.gt-provide-check {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--gt-purple);
	color: #ffffff;
}

.gt-provide-check svg { width: 14px; height: 14px; }
.gt-provide-list b { display: block; font-size: 14.5px; font-weight: 900; color: var(--gt-purple); margin-bottom: 3px; }
.gt-provide-list p { margin: 0; font-size: 12.5px; line-height: 1.8; color: var(--gt-ink); }

/* ── 下層レスポンシブ ── */
@media (max-width: 1000px) {
	.gt-page-hero2-art { display: none; }
	.gt-svc2-grid { grid-template-columns: 1fr; }
	.gt-svc2-wide .gt-svc2-body { width: 56%; }
	.gt-steps2 { grid-template-columns: repeat(2, 1fr); gap: 30px 22px; }
	.gt-steps2 li:not(:last-child)::after { content: none; }
	.gt-pain5-grid { grid-template-columns: repeat(2, 1fr); }
	.gt-provide { grid-template-columns: 1fr; }
	.gt-provide-media img { max-height: 300px; }
	.gt-svcd-hero-art { display: none; }
}

@media (max-width: 520px) {
	.gt-steps2, .gt-pain5-grid { grid-template-columns: 1fr; }
	.gt-svc2-card { flex-direction: column; min-height: 0; }
	.gt-svc2-body, .gt-svc2-wide .gt-svc2-body { width: 100%; background: #ffffff; padding: 18px; }
	.gt-svc2-media, .gt-svc2-wide .gt-svc2-media { position: static; width: 100%; height: 170px; }
	.gt-svc2-media img { clip-path: none; }
}

/* ══ ネットワーク詳細 v0.11.1（決裁者提供GPTモック14準拠・2026-07-31） ══ */

/* 明トーンのサービス詳細ヒーロー（写真右+チップ5連+バッジ） */
.gt-netd-hero {
	position: relative;
	overflow: hidden;
	padding: 16px 0 40px;
	background:
		radial-gradient(circle at 90% 20%, rgba(103, 37, 244, 0.10), transparent 45%),
		linear-gradient(120deg, #ffffff 0%, #f4efff 100%);
}

.gt-netd-hero-inner { display: grid; grid-template-columns: 11fr 9fr; gap: 26px; align-items: center; }

/* v0.11.2: Codex制作のHTML化参照に合わせ、ヒーロー写真は右側フルブリード配置 */
.gt-netd-hero.has-photo { min-height: 430px; display: flex; align-items: center; }
.gt-netd-hero.has-photo .gt-container { width: 100%; }
.gt-netd-photo {
	position: absolute;
	right: 0;
	top: 0;
	height: 100%;
	width: 52%;
	object-fit: cover;
	object-position: left center;
}
.gt-netd-photo-fade {
	position: absolute;
	right: 40%;
	top: 0;
	height: 100%;
	width: 18%;
	background: linear-gradient(90deg, rgba(247, 243, 255, 1), rgba(247, 243, 255, 0));
	pointer-events: none;
}
.gt-netd-copy { position: relative; z-index: 2; max-width: 47%; }

.gt-netd-title {
	margin: 0 0 14px;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.35;
	font-weight: 900;
	color: var(--gt-ink-heading);
}

.gt-netd-title .c-fast { color: var(--gt-purple); }
.gt-netd-title .c-safe { color: var(--gt-orange); }

/* v0.12.1（Codexラウンド178推奨）: 強調語は途中改行させず、
   390px等で「く。」だけの孤立行が出ないようにする */
.gt-netd-title .c-fast,
.gt-netd-title .c-safe { white-space: nowrap; }

.gt-netd-lead { margin: 0 0 20px; font-size: 13.5px; line-height: 1.9; color: var(--gt-ink); }

.gt-netd-chips { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.gt-netd-chips li { text-align: center; width: 92px; }
.gt-netd-chips svg { width: 30px; height: 30px; color: var(--gt-purple); }
.gt-netd-chips b { display: block; margin-top: 6px; font-size: 11.5px; color: var(--gt-ink-heading); }
.gt-netd-chips span { display: block; font-size: 10px; color: var(--gt-muted); }

.gt-netd-visual { position: relative; }
.gt-netd-visual > img { width: 100%; max-height: 360px; object-fit: cover; border-radius: 16px; box-shadow: 0 14px 30px rgba(73, 36, 180, 0.16); display: block; }

.gt-netd-badge {
	position: absolute;
	right: -8px;
	top: -14px;
	width: 112px;
	height: 112px;
	border-radius: 50%;
	background: #ffffff;
	border: 2px solid var(--gt-purple);
	box-shadow: 0 8px 20px rgba(73, 36, 180, 0.18);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	text-align: center;
}

.gt-netd-badge b { font-size: 14px; color: var(--gt-purple); line-height: 1.2; }
.gt-netd-badge span { font-size: 9.5px; color: var(--gt-muted); }

/* お困りごと6連（pain5の6列版） */
.gt-pain6 { grid-template-columns: repeat(6, 1fr); }

/* ソリューションカード（3×2） */
.gt-sol-sec { padding: 48px 0 56px; background: var(--gt-bg-soft); text-align: center; }

.gt-sol-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.gt-sol-card {
	background: #ffffff;
	border: 1px solid var(--gt-line);
	border-radius: 14px;
	padding: 18px;
	box-shadow: 0 8px 22px rgba(73, 36, 180, 0.07);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.gt-sol-head { display: flex; align-items: center; gap: 10px; }
.gt-sol-head svg { width: 26px; height: 26px; color: var(--gt-purple); flex-shrink: 0; }
.gt-sol-head h3 { margin: 0; font-size: 16.5px; font-weight: 900; color: var(--gt-ink-heading); }

.gt-sol-media { border-radius: 10px; overflow: hidden; }
.gt-sol-media img { width: 100%; height: 150px; object-fit: cover; display: block; }

.gt-sol-tags { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.gt-sol-tags li { display: flex; flex-direction: column; align-items: center; gap: 3px; width: 52px; font-size: 10px; color: var(--gt-muted); text-align: center; }
.gt-sol-tags svg { width: 20px; height: 20px; color: var(--gt-purple); }

.gt-sol-card > p { margin: 0; font-size: 12.5px; line-height: 1.8; color: var(--gt-ink); }

.gt-sol-checks { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 12px; }
.gt-sol-checks li { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--gt-ink); }
.gt-sol-checks svg { width: 14px; height: 14px; color: var(--gt-purple); flex-shrink: 0; }

/* VLAN図（HTML/CSS簡易ダイアグラム） */
.gt-vlan-diagram { display: flex; flex-direction: column; align-items: center; gap: 0; padding: 6px 0 2px; }
.gt-vlan-node { padding: 5px 18px; border: 1.5px solid var(--gt-purple); border-radius: 7px; font-size: 12px; font-weight: 800; color: var(--gt-ink-heading); background: #ffffff; }
.gt-vlan-link { width: 2px; height: 12px; background: var(--gt-purple); opacity: 0.5; }
.gt-vlan-chips { display: flex; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; flex-wrap: wrap; justify-content: center; }
.gt-vlan-chips li { padding: 6px 8px; border-radius: 7px; font-size: 10px; font-weight: 800; color: #ffffff; text-align: center; line-height: 1.4; }
.gt-vlan-c1 { background: #6725f4; }
.gt-vlan-c2 { background: #0f9d78; }
.gt-vlan-c3 { background: #e8630a; }
.gt-vlan-c4 { background: #1c7ed6; }
.gt-vlan-c5 { background: #d6336c; }

/* VPN簡易パネル（暗トーン） */
.gt-vpn-panel {
	border-radius: 10px;
	background: linear-gradient(135deg, #17103a 0%, #2b1a6e 100%);
	color: #ffffff;
	padding: 18px 14px;
	display: flex;
	align-items: center;
	justify-content: space-around;
	gap: 8px;
	min-height: 150px;
}

.gt-vpn-site { display: flex; flex-direction: column; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; }
.gt-vpn-site svg { width: 26px; height: 26px; color: #c9b6ff; }
.gt-vpn-globe svg { width: 44px; height: 44px; color: var(--gt-orange); }

/* 対応メーカー（テキストタイル。商標ロゴ画像は使用可否確認まで使わない） */
.gt-makers-sec { padding: 42px 0 48px; background: #ffffff; text-align: center; }
.gt-makers-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
.gt-makers-grid li { min-width: 128px; padding: 14px 16px 10px; border: 1px solid var(--gt-line); border-radius: 10px; background: #ffffff; box-shadow: 0 4px 12px rgba(73, 36, 180, 0.05); }
.gt-makers-grid b { display: block; font-size: 15px; font-weight: 900; color: var(--gt-ink-heading); letter-spacing: 0.04em; }
.gt-makers-grid span { display: block; margin-top: 2px; font-size: 10.5px; color: var(--gt-muted); }

/* 選ばれる理由5列/6列 */
.gt-reasons-5 { grid-template-columns: repeat(5, 1fr); }
.gt-reasons-6 { grid-template-columns: repeat(6, 1fr); }
.gt-reasons-6 .gt-reason-icon-card { padding: 18px 10px; }
.gt-reasons-6 .gt-reason-icon-card h3 { font-size: 13px; }
.gt-reasons-6 .gt-reason-icon-card p { font-size: 11px; }

/* 事例カードのチェック箇条書き */
.gt-case-checks { margin: 0 0 8px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.gt-case-checks li { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--gt-ink); }
.gt-case-checks svg { width: 13px; height: 13px; color: var(--gt-purple); flex-shrink: 0; }

/* FAQ2列 */
.gt-faq-2col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 18px; }

/* Omada機器帯（Codex素材） */
.gt-sol-devices { width: 100%; margin-top: 2px; border-radius: 8px; }

/* v0.11.5（Codexラウンド175継続条件）: 簡易図には「構成イメージ」を可視表示 */
.gt-diagram-caption { margin: 2px 0 0; font-size: 10.5px; color: var(--gt-muted); text-align: right; }

@media (max-width: 1000px) {
	.gt-netd-hero-inner { grid-template-columns: 1fr; }
	.gt-netd-photo, .gt-netd-photo-fade { display: none; }
	.gt-netd-copy { max-width: 100%; }
	.gt-netd-visual { max-width: 520px; }
	.gt-pain6 { grid-template-columns: repeat(3, 1fr); }
	.gt-sol-grid { grid-template-columns: 1fr; }
	.gt-reasons-5, .gt-reasons-6 { grid-template-columns: repeat(3, 1fr); }
	.gt-faq-2col { grid-template-columns: 1fr; }
	.gt-makers-grid li { min-width: 110px; }
}

@media (max-width: 520px) {
	.gt-pain6 { grid-template-columns: 1fr; }
	.gt-reasons-5, .gt-reasons-6 { grid-template-columns: 1fr; }
	.gt-netd-chips { gap: 12px; }
}

/* ══ 導入事例一覧の現代化 v0.12.2（2026-08-01・自走ドラフト） ══ */

/* 絞り込みピル（fixtureは静的表示。本番はタクソノミアーカイブへのリンク想定） */
.gt-filter-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.gt-filter-pills a,
.gt-filter-pills span {
	display: inline-block;
	padding: 8px 18px;
	border: 1.5px solid var(--gt-line);
	border-radius: 99px;
	font-size: 13px;
	font-weight: 800;
	color: var(--gt-ink);
	text-decoration: none;
	background: #ffffff;
}

.gt-filter-pills .is-active {
	border-color: var(--gt-purple);
	background: var(--gt-purple);
	color: #ffffff;
}

.gt-filter-pills a:hover,
.gt-filter-pills a:focus-visible {
	border-color: var(--gt-purple);
	color: var(--gt-purple);
}

/* 一覧カードのサムネなしプレースホルダー（実事例で写真未整備のもの） */
.gt-case-s-noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 190px;
	background:
		radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.15), transparent 45%),
		linear-gradient(135deg, #2b1a6e 0%, var(--gt-purple) 100%);
}

.gt-case-s-noimg svg { width: 40px; height: 40px; color: rgba(255, 255, 255, 0.85); }

/* ══ お役立ち情報一覧の現代化 v0.12.5（2026-08-01・自走ドラフト） ══ */
.gt-blog-featured {
	display: grid;
	grid-template-columns: 6fr 5fr;
	border-radius: 16px;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid var(--gt-line);
	box-shadow: 0 12px 30px rgba(73, 36, 180, 0.10);
	margin: 0 0 26px;
}

.gt-blog-featured-media { position: relative; min-height: 260px; }
.gt-blog-featured-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-blog-featured-badge { position: absolute; top: 14px; left: 14px; padding: 4px 12px; border-radius: 99px; background: var(--gt-orange); color: #fff; font-size: 11px; font-weight: 800; }
.gt-blog-featured-body { padding: 26px 28px; display: flex; flex-direction: column; gap: 10px; }
.gt-blog-featured-body h2 { margin: 0; font-size: clamp(18px, 1.9vw, 24px); font-weight: 900; color: var(--gt-ink-heading); }
.gt-blog-featured-body p { margin: 0; font-size: 13px; line-height: 1.9; color: var(--gt-ink); }
.gt-blog-date2 { font-size: 12px; font-weight: 700; color: var(--gt-muted); }

.gt-blog-grid2 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-blog-card2 { background: #ffffff; border: 1px solid var(--gt-line); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 22px rgba(73, 36, 180, 0.07); display: flex; flex-direction: column; }
.gt-blog-card2 img { width: 100%; height: 160px; object-fit: cover; display: block; }
.gt-blog-card2-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gt-blog-card2-body h3 { margin: 0; font-size: 15px; font-weight: 800; line-height: 1.6; color: var(--gt-ink-heading); }
.gt-blog-card2-body .gt-btn-outline { margin-top: auto; align-self: flex-start; }

@media (max-width: 1000px) {
	.gt-blog-featured { grid-template-columns: 1fr; }
	.gt-blog-grid2 { grid-template-columns: 1fr; }
}

/* ===== v0.13.1 防犯カメラページ モック忠実リデザイン（HP素材/カメラページ GPTモック準拠・gt-camv2-*） ===== */
.gt-camv2-hero { background: #fff; overflow: hidden; }
.gt-camv2-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 545px); gap: 18px; align-items: center; padding: 4px 0 30px; }
.gt-camv2-kicker { margin: 0 0 8px; color: var(--gt-purple); font-size: 14px; font-weight: 800; }
.gt-camv2-title { margin: 0 0 14px; font-size: clamp(28px, 3.6vw, 40px); font-weight: 900; line-height: 1.32; color: var(--gt-ink-heading); }
.gt-camv2-title em { font-style: normal; color: var(--gt-purple); }
.gt-camv2-lead { margin: 0 0 24px; max-width: 470px; color: var(--gt-ink-soft); font-size: 14px; line-height: 2; }
.gt-camv2-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.gt-camv2-chips li { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; padding: 0 12px; border-left: 1px solid var(--gt-line); }
.gt-camv2-chips li:first-child { border-left: 0; padding-left: 0; }
.gt-camv2-chips svg { width: 30px; height: 30px; color: var(--gt-purple); }
.gt-camv2-chips b { font-size: 12.5px; color: var(--gt-ink-heading); }
.gt-camv2-chips li > div > span { display: block; font-size: 10.5px; color: var(--gt-ink-soft); line-height: 1.55; }
.gt-camv2-hero-art img { display: block; width: 100%; height: auto; }
.gt-camv2-sec-title { margin: 0 0 24px; text-align: center; font-size: clamp(20px, 2.4vw, 26px); font-weight: 900; color: var(--gt-ink-heading); }
.gt-camv2-sec-title em { font-style: normal; color: var(--gt-purple); border-bottom: 3px solid var(--gt-purple); padding-bottom: 2px; }
.gt-camv2-pain { padding: 38px 0 44px; background: #fff; }
.gt-camv2-pain-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.gt-camv2-pain-grid li { background: #fff; border: 1px solid var(--gt-line); border-radius: 12px; padding: 18px 12px; text-align: center; box-shadow: 0 6px 16px rgba(73, 36, 180, 0.05); }
.gt-camv2-pain-grid svg { width: 32px; height: 32px; color: var(--gt-purple); }
.gt-camv2-pain-grid h3 { margin: 10px 0 6px; font-size: 12.5px; line-height: 1.5; }
.gt-camv2-pain-grid p { margin: 0; font-size: 10.5px; color: var(--gt-ink-soft); line-height: 1.7; }
.gt-camv2-sol { padding: 38px 0 46px; background: #f7f5fc; }
.gt-camv2-sol-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.gt-camv2-sol-grid > li { background: #fff; border: 1px solid var(--gt-line); border-radius: 12px; padding: 14px 12px; }
.gt-camv2-sol-head { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; color: var(--gt-ink-heading); }
.gt-camv2-sol-head svg { width: 18px; height: 18px; color: var(--gt-purple); flex: none; }
.gt-camv2-sol-grid img { width: 100%; height: 92px; object-fit: cover; border-radius: 8px; margin: 10px 0; }
.gt-camv2-sol-grid p { margin: 0 0 8px; font-size: 10.8px; color: var(--gt-ink-soft); line-height: 1.7; }
.gt-camv2-checks { margin: 0; padding: 0; list-style: none; }
.gt-camv2-checks li { display: flex; align-items: flex-start; gap: 5px; margin-top: 4px; font-size: 10.5px; font-weight: 700; color: var(--gt-ink-heading); line-height: 1.5; }
.gt-camv2-checks svg { width: 12px; height: 12px; color: var(--gt-purple); flex: none; margin-top: 2px; }
.gt-camv2-lineup-sec { padding: 38px 0 46px; background: #fff; }
.gt-camv2-lineup { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.gt-camv2-lineup li { background: #fff; border: 1px solid var(--gt-line); border-radius: 12px; padding: 14px 10px 12px; text-align: center; box-shadow: 0 6px 16px rgba(73, 36, 180, 0.05); }
.gt-camv2-lineup h3 { margin: 0 0 2px; font-size: 12.5px; color: var(--gt-ink-heading); }
.gt-camv2-lineup p { margin: 0 0 8px; font-size: 10.5px; color: var(--gt-ink-soft); }
.gt-camv2-lineup img { width: 100%; height: 106px; object-fit: contain; }
.gt-camv2-makers { padding: 36px 0 42px; background: #f7f5fc; text-align: center; }
.gt-camv2-makers-main { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 6px 0 4px; }
.gt-camv2-makers-main .tp { font-size: 26px; font-weight: 900; color: #00b1c3; letter-spacing: -0.02em; }
.gt-camv2-makers-main .sep { font-size: 24px; color: #c9c4d8; font-weight: 300; }
.gt-camv2-makers-main .vigi { font-size: 28px; font-weight: 900; color: #1d1b29; letter-spacing: 0.12em; }
.gt-camv2-makers-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 36px; margin: 18px 0 0; padding: 0; list-style: none; }
.gt-camv2-makers-row li { font-size: 15px; font-weight: 900; color: #6b6580; letter-spacing: 0.06em; }
.gt-camv2-reasons { padding: 38px 0 46px; background: #fff; }
.gt-camv2-reasons-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.gt-camv2-reasons-grid li { background: #fff; border: 1px solid var(--gt-line); border-radius: 12px; padding: 18px 12px; text-align: center; box-shadow: 0 6px 16px rgba(73, 36, 180, 0.05); }
.gt-camv2-reasons-grid svg { width: 34px; height: 34px; color: var(--gt-purple); }
.gt-camv2-reasons-grid h3 { margin: 10px 0 6px; font-size: 12.5px; color: var(--gt-purple); line-height: 1.5; }
.gt-camv2-reasons-grid p { margin: 0; font-size: 10.5px; color: var(--gt-ink-soft); line-height: 1.7; }
.gt-camv2-cases { padding: 38px 0 46px; background: #f7f5fc; }
.gt-camv2-cases-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.gt-camv2-cases-grid > li { background: #fff; border: 1px solid var(--gt-line); border-radius: 12px; padding: 16px; }
.gt-camv2-case-head { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 10px; align-items: start; }
.gt-camv2-case-head img { width: 92px; height: 68px; object-fit: cover; border-radius: 8px; }
.gt-camv2-cases-grid h3 { margin: 0 0 6px; font-size: 14px; color: var(--gt-ink-heading); }
.gt-camv2-case-badge { display: inline-block; background: var(--gt-purple); color: #fff; font-size: 10px; font-weight: 800; border-radius: 4px; padding: 2px 8px; margin-bottom: 8px; }
.gt-camv2-case-result { margin: 10px 0 0; padding: 7px 10px; background: #f3effd; border-radius: 8px; font-size: 11px; color: var(--gt-ink-heading); }
.gt-camv2-case-result b { color: var(--gt-purple); margin-right: 6px; }
.gt-camv2-more { text-align: center; margin: 22px 0 0; }
.gt-camv2-faq { padding: 38px 0 46px; background: #fff; }
.gt-camv2-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.gt-camv2-faq details { background: #fff; border: 1px solid var(--gt-line); border-radius: 10px; margin-bottom: 10px; }
.gt-camv2-faq summary { display: flex; align-items: center; gap: 10px; padding: 12px 14px; font-weight: 800; font-size: 13px; color: var(--gt-ink-heading); cursor: pointer; list-style: none; }
.gt-camv2-faq summary::-webkit-details-marker { display: none; }
.gt-camv2-faq summary::before { content: "Q"; flex: none; width: 22px; height: 22px; display: grid; place-items: center; background: var(--gt-purple); color: #fff; border-radius: 50%; font-size: 12px; font-weight: 900; }
.gt-camv2-faq summary::after { content: "+"; margin-left: auto; color: var(--gt-purple); font-weight: 900; font-size: 16px; }
.gt-camv2-faq details[open] summary::after { content: "\2212"; }
.gt-camv2-faq .gt-camv2-ans { padding: 0 14px 12px 46px; font-size: 12.5px; color: var(--gt-ink-soft); line-height: 1.9; }
.gt-camv2-cta { position: relative; overflow: hidden; background: linear-gradient(90deg, #3a05a5 0%, #4a0cd9 100%); color: #fff; }
.gt-camv2-cta-bird { position: absolute; top: 0; right: 0; height: 100%; width: auto; z-index: 0; }
.gt-camv2-cta-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 34px 0; }
.gt-camv2-cta-inner > div:last-of-type { margin-right: 190px; }
.gt-camv2-cta-title { margin: 0 0 10px; font-size: clamp(22px, 2.6vw, 30px); font-weight: 900; }
.gt-camv2-cta-title em { font-style: normal; color: #ffb02e; }
.gt-camv2-cta-badges { display: flex; gap: 16px; margin: 0 0 8px; padding: 0; list-style: none; font-size: 12.5px; font-weight: 800; }
.gt-camv2-cta-badges li::before { content: "\2713 "; color: #ffb02e; }
.gt-camv2-cta-note { margin: 0; font-size: 11.5px; color: rgba(255, 255, 255, 0.75); }
@media (max-width: 1080px) {
	.gt-camv2-sol-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gt-camv2-pain-grid, .gt-camv2-lineup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gt-camv2-reasons-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.gt-camv2-hero-inner { grid-template-columns: 1fr; }
	.gt-camv2-hero-art { order: -1; margin: 0 -24px; }
	.gt-camv2-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 0; }
	.gt-camv2-chips li:nth-child(odd) { border-left: 0; padding-left: 0; }
	.gt-camv2-cases-grid { grid-template-columns: 1fr; }
	.gt-camv2-faq-grid { grid-template-columns: 1fr; }
	.gt-camv2-cta-inner { flex-direction: column; align-items: flex-start; }
	.gt-camv2-cta-inner > div:last-of-type { margin-right: 0; }
	.gt-camv2-cta-bird { opacity: 0.35; }
}
@media (max-width: 560px) {
	.gt-camv2-sol-grid, .gt-camv2-pain-grid, .gt-camv2-lineup, .gt-camv2-reasons-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== v0.15.0 保守ページ RPG風 清書版（決裁者提供 ウェブページの清書依頼.zip 準拠・gt-adv3-*） ===== */
.gt-adv3 { max-width: 1180px; margin: 0 auto; color: #1b1a2e; }
.gt-adv3 img { image-rendering: auto; }
.gt-adv3-dot { font-family: "DotGothic16", monospace; }
.gt-adv3-maru { font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif; }
.gt-adv3-hero { position: relative; width: 100%; aspect-ratio: 1180 / 523; isolation: isolate; overflow: hidden; }
.gt-adv3-hero-band { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-adv3-menu { position: absolute; z-index: 2; left: 2.2%; top: 8.6%; width: 20.5%; box-sizing: border-box; margin: 0; background: #000; border: 3px solid #fff; outline: 3px solid #000; border-radius: 10px; padding: 14px 14px; display: flex; flex-direction: column; gap: 9px; color: #fff; font-size: clamp(11px, 1.3vw, 16px); box-shadow: 0 5px 0 rgba(0, 0, 0, 0.25); list-style: none; }
.gt-adv3-menu li { padding-left: 21px; white-space: nowrap; }
.gt-adv3-menu li.sel { padding-left: 0; }
.gt-adv3-menu li.sel::before { content: "\25B6 "; font-size: 0.7em; }
.gt-adv3-hero-title { position: absolute; z-index: 2; left: 33.9%; top: 9.6%; width: 39.8%; margin: 0; text-align: center; font-weight: 900; font-size: clamp(24px, 3.3vw, 39px); line-height: 1.42; letter-spacing: 0.01em; color: #16142a; }
.gt-adv3-hero-title em { font-style: normal; color: #7a4de0; }
.gt-adv3-hero-sub { position: absolute; z-index: 2; left: 33.9%; top: 47%; width: 39.8%; margin: 0; text-align: center; font-weight: 700; font-size: clamp(13px, 1.7vw, 20px); color: #4c2fa8; }
.gt-adv3-status { position: absolute; left: 76.1%; top: 36%; width: 22.6%; box-sizing: border-box; background: #000; border: 3px solid #fff; outline: 3px solid #000; border-radius: 10px; padding: 10px 12px; color: #fff; box-shadow: 0 5px 0 rgba(0, 0, 0, 0.25); z-index: 2; }
.gt-adv3-status p { margin: 0 0 5px; font-size: clamp(10px, 1.15vw, 14px); white-space: nowrap; }
.gt-adv3-status .ttl { font-size: clamp(13px, 1.5vw, 18px); letter-spacing: 0.04em; margin-bottom: 6px; }
.gt-adv3-status .star { color: #ffd84a; letter-spacing: 2px; }
.gt-adv3-status a { display: flex; align-items: center; gap: 7px; margin-top: 7px; border: 2px solid #fff; border-radius: 6px; padding: 5px 8px; color: #fff; text-decoration: none; font-size: clamp(10px, 1.1vw, 13px); white-space: nowrap; }
.gt-adv3-status a::before { content: "\25B6"; font-size: 0.7em; }
.gt-adv3-tiles { position: absolute; z-index: 2; left: 22.2%; top: 71.6%; width: 74%; height: 27.4%; display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; margin: 0; padding: 0; list-style: none; }
.gt-adv3-tiles a { background: #000; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 8px 4px; height: 100%; box-sizing: border-box; color: #fff; text-decoration: none; font-weight: 700; font-size: clamp(9px, 1vw, 11.5px); line-height: 1.45; text-align: center; }
.gt-adv3-tiles a:hover { background: #241d3a; }
.gt-adv3-tiles img { height: clamp(24px, 3.4vw, 40px); width: auto; }
.gt-adv3-sec { padding: 34px 26px 10px; }
.gt-adv3-sec-title { margin: 0 0 26px; display: flex; align-items: center; justify-content: center; gap: 14px; font-weight: 900; font-size: clamp(20px, 2.3vw, 27px); color: #4c2fa8; }
.gt-adv3-sec-title img { height: 28px; width: auto; }
.gt-adv3-can-inner { display: flex; align-items: flex-end; gap: 18px; }
.gt-adv3-guide { width: 205px; flex: none; align-self: center; display: flex; flex-direction: column; align-items: center; }
.gt-adv3-guide p { position: relative; box-sizing: border-box; width: 100%; margin: 0 0 8px; padding: 12px 13px; background: #fff; border: 2px solid #302567; border-radius: 14px; color: #28233f; font-size: 12px; line-height: 1.55; text-align: center; font-weight: 700; }
.gt-adv3-guide p::after { content: ""; position: absolute; left: 50%; bottom: -10px; width: 16px; height: 16px; background: #fff; border-right: 2px solid #302567; border-bottom: 2px solid #302567; transform: translateX(-50%) rotate(45deg); }
.gt-adv3-guide p strong { color: #5b2fd0; }
.gt-adv3-guide img { display: block; width: 155px; max-width: 100%; height: auto; }
.gt-adv3-can-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 9px; flex: 1; margin: 0; padding: 0; list-style: none; }
.gt-adv3-can-grid li { border: 2px solid #bda9f4; border-radius: 14px; padding: 13px 9px 15px; display: flex; flex-direction: column; align-items: center; gap: 10px; background: #fff; }
.gt-adv3-can-grid h3 { margin: 0; font-weight: 700; font-size: 14px; color: #16142a; text-align: center; }
.gt-adv3-can-grid .art { height: 100px; display: flex; align-items: center; }
.gt-adv3-can-grid .art img { max-height: 96px; width: auto; }
.gt-adv3-can-grid p { margin: 0; font-size: 11.5px; line-height: 1.75; color: #3a3852; text-align: center; font-weight: 500; }
.gt-adv3-plans-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: stretch; margin: 0; padding: 14px 0 0; list-style: none; }
.gt-adv3-plan { position: relative; background: #f8f5f0; border-radius: 16px; padding: 30px 16px 20px; box-shadow: 0 2px 0 rgba(22, 20, 42, 0.08); }
.gt-adv3-plan.p-pink { background: #fbeef3; }
.gt-adv3-plan.p-gray { background: #f7f7f8; }
.gt-adv3-plan-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); color: #fff; border: 2.5px solid #16142a; border-radius: 999px; padding: 6px 20px; font-weight: 700; font-size: 15px; white-space: nowrap; }
.gt-adv3-plan.p-blue .gt-adv3-plan-badge { background: #183ba4; }
.gt-adv3-plan.p-purple .gt-adv3-plan-badge { background: #371b7e; }
.gt-adv3-plan.p-pink .gt-adv3-plan-badge { background: #d53b6d; }
.gt-adv3-plan.p-gray .gt-adv3-plan-badge { background: #3a3a42; }
.gt-adv3-plan-lead { margin: 6px 0 14px; text-align: center; font-size: 12.5px; font-weight: 700; color: #3a3852; }
.gt-adv3-plan-price { display: flex; align-items: baseline; justify-content: center; gap: 6px; margin: 0 0 16px; color: #4c2fa8; font-weight: 700; font-size: 15px; }
.gt-adv3-plan-price b { font-size: 34px; font-weight: 900; letter-spacing: -0.01em; }
.gt-adv3-plan-main { display: flex; align-items: center; gap: 12px; }
.gt-adv3-plan-main img { height: 116px; width: auto; max-width: 42%; flex: none; }
.gt-adv3-plan-main ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 12.5px; font-weight: 700; color: #26243c; }
.gt-adv3-plan-main li { display: flex; align-items: center; gap: 8px; }
.gt-adv3-plan-main li svg { flex: none; }
.gt-adv3-plan-note { margin: 22px 0 0; text-align: center; font-size: 12.5px; font-weight: 700; color: #3a3852; }
.gt-adv3-flow-box { position: relative; border: 2px solid #bda9f4; border-radius: 16px; padding: 34px 24px 26px; }
.gt-adv3-flow-box > h2 { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); margin: 0; background: #fff; padding: 0 18px; display: flex; align-items: center; gap: 14px; font-weight: 900; font-size: clamp(18px, 2.1vw, 25px); color: #4c2fa8; white-space: nowrap; }
.gt-adv3-flow-box > h2 img { height: 27px; width: auto; }
.gt-adv3-flow-grid { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr; align-items: start; margin: 0; padding: 0; list-style: none; }
.gt-adv3-step-head { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.gt-adv3-step-tag { background: #5b2fd0; color: #fff; border-radius: 5px; padding: 4px 9px; font-weight: 900; font-size: 13px; }
.gt-adv3-step-name { font-weight: 700; font-size: 15px; color: #26243c; }
.gt-adv3-step-sub { font-size: 13px; font-weight: 700; color: #26243c; padding-left: 62px; margin-bottom: 14px; min-height: 21px; }
.gt-adv3-step-art { height: 96px; display: flex; align-items: center; justify-content: center; }
.gt-adv3-step-art img { max-height: 88px; width: auto; }
.gt-adv3-step p { margin: 16px 0 0; font-size: 12.5px; font-weight: 700; line-height: 1.9; color: #26243c; }
.gt-adv3-flow-sep { display: flex; align-items: center; justify-content: center; height: 150px; border-left: 1px solid #d9cffa; }
.gt-adv3-flow-sep span { display: block; width: 0; height: 0; border-left: 15px solid #5b2fd0; border-top: 11px solid transparent; border-bottom: 11px solid transparent; }
.gt-adv3-voice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0; padding: 0; list-style: none; }
.gt-adv3-voice { border: 2px solid #bda9f4; border-radius: 16px; padding: 18px 20px; display: flex; gap: 18px; align-items: flex-start; }
.gt-adv3-voice > img { height: 110px; width: auto; flex: none; margin-top: 12px; }
.gt-adv3-voice .meta { margin: 0 0 8px; font-size: 12.5px; font-weight: 700; color: #4c2fa8; }
.gt-adv3-voice h3 { margin: 0 0 12px; font-weight: 900; font-size: clamp(15px, 1.6vw, 19px); line-height: 1.6; color: #2c1a86; }
.gt-adv3-voice .body { margin: 0; font-size: 12px; font-weight: 500; line-height: 1.95; color: #3a3852; }
.gt-adv3-faq-box { border: 2px solid #bda9f4; border-radius: 16px; overflow: hidden; }
.gt-adv3-faq-row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) 90px; align-items: center; padding: 16px 18px; border-bottom: 2px solid #ddd2fa; gap: 12px; }
.gt-adv3-faq-row:last-child { border-bottom: 0; }
.gt-adv3-qa { display: flex; gap: 12px; align-items: flex-start; }
.gt-adv3-qa-badge { background: #5b2fd0; color: #fff; border-radius: 6px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 15px; flex: none; }
.gt-adv3-qa .q { margin: 0; font-size: 13.5px; font-weight: 700; line-height: 1.8; color: #2c1a86; }
.gt-adv3-qa .a { margin: 0; font-size: 12.5px; font-weight: 500; line-height: 1.9; color: #26243c; }
.gt-adv3-faq-row > img { height: 58px; width: auto; justify-self: center; }
.gt-adv3-cta { position: relative; background: radial-gradient(120% 140% at 50% 0%, #1b1a63 0%, #0a0a3a 55%, #050526 100%); border: 2px solid #7c5cff; border-radius: 10px; min-height: 200px; display: flex; align-items: center; overflow: hidden; color: #fff; flex-wrap: nowrap; padding-right: 10px; }
.gt-adv3-cta .sp { position: absolute; color: #ffd84a; opacity: 0.85; }
.gt-adv3-cta-castle { height: 158px; width: auto; margin-left: 6px; align-self: flex-end; flex: none; }
.gt-adv3-cta-main { position: relative; margin-left: 12px; }
.gt-adv3-cta-bubble { position: relative; display: inline-block; background: #fff; border-radius: 999px; padding: 8px 26px; font-weight: 900; font-size: clamp(18px, 2.1vw, 25px); color: #16142a; margin-bottom: 8px; }
.gt-adv3-cta-bubble::after { content: ""; position: absolute; left: 26px; bottom: -9px; width: 0; height: 0; border-top: 12px solid #fff; border-right: 14px solid transparent; }
.gt-adv3-cta-catch { display: flex; align-items: baseline; gap: 12px; }
.gt-adv3-cta-catch { white-space: nowrap; }
.gt-adv3-cta-catch .big { font-weight: 900; font-size: clamp(28px, 3.4vw, 40px); color: #ffd84a; text-shadow: 0 0 18px rgba(255, 200, 60, 0.55); }
.gt-adv3-cta-catch .rest { font-weight: 900; font-size: clamp(16px, 2vw, 23px); color: #fff; }
.gt-adv3-cta-checks { margin: 0 0 0 26px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; font-weight: 700; font-size: clamp(12px, 1.3vw, 16px); white-space: nowrap; flex: none; }
.gt-adv3-cta-checks li::before { content: "\2713 "; color: #e879f9; }
.gt-adv3-cta-btn { margin-left: 22px; border: 2.5px solid #e879f9; border-radius: 8px; padding: 12px 16px; text-align: center; box-shadow: 0 0 16px rgba(232, 121, 249, 0.55), inset 0 0 14px rgba(232, 121, 249, 0.25); color: #fff; text-decoration: none; display: block; flex: none; }
.gt-adv3-cta-btn .s1 { font-weight: 700; font-size: clamp(13px, 1.4vw, 16px); margin-bottom: 4px; }
.gt-adv3-cta-btn .s2 { font-weight: 900; font-size: clamp(16px, 1.9vw, 22px); }
.gt-adv3-cta-btn .s2 em { font-style: normal; color: #ffd84a; }
.gt-adv3-cta-helper { height: 92px; width: auto; margin-left: 14px; align-self: flex-end; margin-bottom: 10px; }
@media (max-width: 1080px) {
	.gt-adv3-can-inner { flex-direction: column; align-items: center; }
	.gt-adv3-can-grid { grid-template-columns: repeat(3, 1fr); width: 100%; }
	.gt-adv3-plans-grid { grid-template-columns: repeat(2, 1fr); }
	.gt-adv3-flow-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
	.gt-adv3-flow-sep { display: none; }
	.gt-adv3-voice-grid { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.gt-adv3-hero { aspect-ratio: auto; background: linear-gradient(180deg, #eaf3ff 0%, #f0e9ff 60%, #efe6d6 100%); padding: 18px 16px 22px; }
	.gt-adv3-hero-band { position: static; width: 100%; height: auto; aspect-ratio: 1180 / 523; object-fit: cover; object-position: center; border-radius: 10px; }
	.gt-adv3-menu, .gt-adv3-status { display: none; }
	.gt-adv3-hero-title, .gt-adv3-hero-sub { position: static; width: auto; margin: 14px 0 0; }
	.gt-adv3-tiles { position: static; width: auto; height: auto; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
	.gt-adv3-tiles a { font-size: 11px; }
	.gt-adv3-flow-box > h2 { white-space: normal; width: max-content; max-width: calc(100% - 28px); text-align: center; justify-content: center; }
	.gt-adv3-flow-box > h2 img { display: none; }
	.gt-adv3-cta { flex-direction: column; align-items: flex-start; padding: 20px; }
	.gt-adv3-cta-castle, .gt-adv3-cta-helper { display: none; }
	.gt-adv3-cta-checks { margin: 10px 0 0; }
	.gt-adv3-cta-btn { margin: 14px 0 0; }
	.gt-adv3-faq-row { grid-template-columns: 1fr; }
	.gt-adv3-faq-row > img { display: none; }
}
@media (max-width: 560px) {
	.gt-adv3-can-grid { grid-template-columns: repeat(2, 1fr); }
	.gt-adv3-plans-grid { grid-template-columns: 1fr; gap: 26px; }
	.gt-adv3-flow-grid { grid-template-columns: 1fr; }
	.gt-adv3-tiles { grid-template-columns: repeat(2, 1fr); }
}
