/* ========================================
   Sugar Link Button
   ======================================== */

.sglb-wrap {
	margin: 1.6em 0;
	display: flex;
}

.sglb-wrap.is-align-left {
	justify-content: flex-start;
}

.sglb-wrap.is-align-center {
	justify-content: center;
}

.sglb-wrap.is-align-right {
	justify-content: flex-end;
}

/* ---- ボタン共通 ---- */

.sglb-btn {
	--sglb-main: #2b7de9;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	max-width: 100%;
	box-sizing: border-box;
	text-align: center;
	text-decoration: none !important;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease,
		background-color 0.15s ease, color 0.15s ease;
}

.sglb-btn__label {
	display: inline-block;
	word-break: break-word;
}

.sglb-btn.has-arrow::after {
	content: "";
	flex: none;
	width: 0.42em;
	height: 0.42em;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.15s ease;
}

.sglb-btn.has-arrow:hover::after {
	transform: rotate(45deg) translate(2px, -2px);
}

/* ---- 色プリセット ---- */

.sglb-btn.is-color-blue   { --sglb-main: #2b7de9; }
.sglb-btn.is-color-green  { --sglb-main: #22a06b; }
.sglb-btn.is-color-red    { --sglb-main: #e0384e; }
.sglb-btn.is-color-orange { --sglb-main: #f0872a; }
.sglb-btn.is-color-pink   { --sglb-main: #e8558f; }
.sglb-btn.is-color-purple { --sglb-main: #7c5cd6; }
.sglb-btn.is-color-black  { --sglb-main: #333333; }
.sglb-btn.is-color-gray   { --sglb-main: #8c959d; }

/* ---- サイズ ---- */

.sglb-btn.is-size-small {
	font-size: 0.88rem;
	padding: 0.6em 1.4em;
	min-width: 8em;
}

.sglb-btn.is-size-medium {
	font-size: 1rem;
	padding: 0.85em 2em;
	min-width: 12em;
}

.sglb-btn.is-size-large {
	font-size: 1.13rem;
	padding: 1.05em 2.6em;
	min-width: 15em;
}

.sglb-btn.is-full {
	display: flex;
	width: 100%;
	min-width: 0;
}

.sglb-wrap:has(.sglb-btn.is-full) {
	display: block;
}

/* ---- 角丸 ---- */

.sglb-btn.is-radius-none { border-radius: 0; }
.sglb-btn.is-radius-round { border-radius: 8px; }
.sglb-btn.is-radius-pill { border-radius: 999px; }

/* ---- デザイン: 塗りつぶし ---- */

.sglb-btn.is-style-fill {
	background-color: var(--sglb-main);
	color: #fff;
	border: 2px solid var(--sglb-main);
}

.sglb-btn.is-style-fill:hover {
	opacity: 0.85;
	color: #fff;
}

/* ---- デザイン: 枠線 ---- */

.sglb-btn.is-style-outline {
	background-color: transparent;
	color: var(--sglb-main);
	border: 2px solid var(--sglb-main);
}

.sglb-btn.is-style-outline:hover {
	background-color: var(--sglb-main);
	color: #fff;
}

/* ---- デザイン: グラデーション ---- */

.sglb-btn.is-style-gradient {
	color: #fff;
	border: none;
	background-image: linear-gradient(
		135deg,
		var(--sglb-main) 0%,
		color-mix(in srgb, var(--sglb-main) 55%, #ffffff) 100%
	);
	background-color: var(--sglb-main);
}

.sglb-btn.is-style-gradient:hover {
	filter: brightness(1.06);
	color: #fff;
}

/* ---- デザイン: 影つき（浮き出し） ---- */

.sglb-btn.is-style-shadow {
	background-color: var(--sglb-main);
	color: #fff;
	border: none;
	box-shadow: 0 6px 14px -4px color-mix(in srgb, var(--sglb-main) 70%, transparent);
}

.sglb-btn.is-style-shadow:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 20px -5px color-mix(in srgb, var(--sglb-main) 75%, transparent);
	color: #fff;
}

/* ---- デザイン: 淡色（やわらか） ---- */

.sglb-btn.is-style-soft {
	background-color: color-mix(in srgb, var(--sglb-main) 14%, #ffffff);
	color: color-mix(in srgb, var(--sglb-main) 82%, #000000);
	border: 2px solid color-mix(in srgb, var(--sglb-main) 28%, #ffffff);
}

.sglb-btn.is-style-soft:hover {
	background-color: color-mix(in srgb, var(--sglb-main) 24%, #ffffff);
}

/* ---- デザイン: 立体（押し込み） ---- */

.sglb-btn.is-style-press {
	background-color: var(--sglb-main);
	color: #fff;
	border: none;
	box-shadow: 0 4px 0 0 color-mix(in srgb, var(--sglb-main) 65%, #000000);
	top: 0;
}

.sglb-btn.is-style-press:hover {
	color: #fff;
	top: 2px;
	box-shadow: 0 2px 0 0 color-mix(in srgb, var(--sglb-main) 65%, #000000);
}

.sglb-btn.is-style-press:active {
	top: 4px;
	box-shadow: none;
}

/* ---- color-mix 非対応ブラウザ向けフォールバック ---- */

@supports not (background: color-mix(in srgb, red 50%, blue)) {
	.sglb-btn.is-style-gradient {
		background-image: none;
		background-color: var(--sglb-main);
	}
	.sglb-btn.is-style-shadow {
		box-shadow: 0 6px 14px -4px rgba(0, 0, 0, 0.35);
	}
	.sglb-btn.is-style-soft {
		background-color: #f2f5f8;
		color: var(--sglb-main);
		border-color: var(--sglb-main);
	}
	.sglb-btn.is-style-press {
		box-shadow: 0 4px 0 0 rgba(0, 0, 0, 0.28);
	}
}

/* ---- スマホ調整 ---- */

@media screen and (max-width: 600px) {
	.sglb-btn.is-size-large {
		font-size: 1.02rem;
		padding: 0.95em 1.8em;
		min-width: 0;
	}
	.sglb-btn.is-size-medium {
		min-width: 0;
	}
	.sglb-btn {
		max-width: 100%;
	}
}
