/* NaviCebu Contact — CVボタン（全ページ共通・軽量） */
:root {
	--ncct-c1: #0B7A55;
	--ncct-c2: #0C8259;
	--ncct-float-b: 76px;
}

.ncct-btn {
	display: inline-block;
	background: linear-gradient(135deg, var(--ncct-c1), var(--ncct-c2));
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
	border: 0;
	border-radius: 999px;
	padding: 14px 28px;
	min-height: 44px;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(11, 122, 85, 0.32);
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
	text-align: center;
}
.ncct-btn:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(11, 122, 85, 0.4); }
.ncct-btn:active { transform: translateY(0); }
.ncct-btn:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
.ncct-btn-lg { font-size: 18px; padding: 16px 36px; }

/* ヘッダーCTA（既存 .nc-cta-group 内に追加・PC幅のみ） */
.ncct-header-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: linear-gradient(135deg, var(--ncct-c1), var(--ncct-c2));
	color: #fff !important;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none !important;
	border-radius: 999px;
	padding: 9px 16px;
	min-height: 44px; /* 既存CTAと高さを揃える（横幅は増えない） */
	white-space: nowrap;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(11, 122, 85, 0.32);
	transition: filter 0.15s ease;
}
.ncct-header-btn:hover { filter: brightness(1.07); }
.ncct-header-btn:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
@media (max-width: 1120px) { .ncct-header-btn { display: none; } }

/* ---- ヘッダーに3つ目のCTAを収めるための圧縮 ----
   このサイトのヘッダーは width:min(1220px,…) の固定グリッドで、
   ブランド列(1fr, min-width:0) → nav → CTA群 の順に詰まっている。
   既存2ボタンの時点で余白が約2pxしかないため、ボタンを足すだけではロゴが潰れる。
   そこで「自分のボタンを挿入したときだけ」body.ncct-hdr-tight を付け、
   ヘッダー最大幅・各gap・既存CTAの左右paddingをわずかに詰めて席をつくる。
   プラグインを止めればクラスごと外れて元に戻る。 */
@media (min-width: 1121px) {
	body.ncct-hdr-tight .site-header { gap: 8px; width: min(1320px, calc(100% - 28px)); }
	body.ncct-hdr-tight .site-header .site-nav { gap: 4px; }
	body.ncct-hdr-tight .site-header .header-cta,
	body.ncct-hdr-tight .site-header .nc-cta-sim { padding-left: 12px; padding-right: 12px; }
	body.ncct-hdr-tight .nc-cta-group { gap: 6px; }
	body.ncct-hdr-tight .ncct-header-btn { padding: 9px 12px; font-size: 13.5px; }
}
/* 1347px以下はさらに詰める（ヘッダーが画面幅に張り付き、席が足りなくなるため） */
@media (min-width: 1121px) and (max-width: 1347px) {
	body.ncct-hdr-tight .site-header .site-nav { gap: 2px; }
	body.ncct-hdr-tight .site-header .site-nav a { font-size: 0.84rem; }
	body.ncct-hdr-tight .site-header .header-cta,
	body.ncct-hdr-tight .site-header .nc-cta-sim { padding-left: 10px; padding-right: 10px; font-size: 0.84rem; }
	body.ncct-hdr-tight .ncct-header-btn { padding: 9px 10px; font-size: 13px; }
}

/* フローティングCTA（モバイルのみ・右下固定） */
.ncct-float {
	position: fixed;
	right: 14px;
	bottom: calc(var(--ncct-float-b) + env(safe-area-inset-bottom, 0px));
	z-index: 9998;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: linear-gradient(135deg, var(--ncct-c1), var(--ncct-c2));
	color: #fff !important;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none !important;
	border-radius: 999px;
	padding: 12px 18px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
	animation: ncct-pop 0.4s ease;
}
.ncct-float:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
@keyframes ncct-pop { from { transform: scale(0.7); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (min-width: 1121px) { .ncct-float { display: none; } }
/* ヘッダーにCTAを入れられなかった場合はPCでも右下ボタンを表示（CV導線を切らさない） */
@media (min-width: 1121px) { .ncct-float-any .ncct-float { display: inline-flex; } }
@media (prefers-reduced-motion: reduce) { .ncct-float { animation: none; } .ncct-btn, .ncct-header-btn { transition: none; } }

/* 記事下CTAブロック */
.ncct-cta-block {
	margin: 2.5em 0 1em;
	padding: 28px 22px;
	border-radius: 16px;
	background: linear-gradient(180deg, #f1fbf6, #fff);
	border: 1px solid #c9ead9;
	text-align: center;
}
.ncct-cta-kicker { font-size: 13px; font-weight: 700; color: var(--ncct-c1); letter-spacing: 0.06em; margin: 0 0 6px; }
.ncct-cta-title { font-size: 20px; font-weight: 800; margin: 0 0 8px; color: #222; line-height: 1.45; }
.ncct-cta-note { font-size: 14px; color: #555; margin: 0 0 18px; line-height: 1.7; }
.ncct-cta-micro { font-size: 12px; color: #888; margin: 12px 0 0; }
