/* ------------------------------------------------------------
 * ボタン共通スタイル
 * ------------------------------------------------------------ */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family-base);
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	border-radius: 9999px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

/* --- カラー --- */
.btn--primary {
	background: var(--color-primary);
	color: var(--color-white);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	background: var(--color-primary-hover);
}

/*
 * .btn--white
 * 外側に薄い線形グラデーション（ECF0F1 → F0F0E5 の 50% 透過）を配し、
 * 内側は白のピル。透明ボーダー + background-clip でフレーム状に描画する。
 */
.btn--white {
	color: var(--color-text);
	background-image:
		linear-gradient(#fff, #fff),
		linear-gradient(90deg, rgba(236, 240, 241, 0.5), rgba(240, 240, 229, 0.5));
	background-origin: padding-box, border-box;
	background-clip: padding-box, border-box;
	background-repeat: no-repeat, no-repeat;
	border: 8px solid transparent;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

.btn--white:hover,
.btn--white:focus-visible {
	opacity: 0.9;
}

/* --- サイズ --- */
.btn--md {
	width: 120px;
	height: 50px;
	padding: 0 8px;
	font-size: 16px;
}

.btn--lg {
	width: 300px;
	max-width: 100%;
	height: 70px;
	padding: 0 32px;
	font-size: 16px;
}

/* --- 矢印付き --- */
.btn--arrow {
	position: relative;
}

/* 白+矢印の場合、白ピル層と外側フレームの間に円形（線形グラデーション）を挿入 */
.btn--white.btn--arrow {
	background-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><defs><linearGradient id='btnArrowBg' x1='0' y1='0' x2='1' y2='0'><stop offset='0' stop-color='%23E3F1F4'/><stop offset='1' stop-color='%23F8F8E5'/></linearGradient></defs><circle cx='12' cy='12' r='12' fill='url(%23btnArrowBg)'/></svg>"),
		linear-gradient(#fff, #fff),
		linear-gradient(90deg, rgba(236, 240, 241, 0.5), rgba(240, 240, 229, 0.5));
	background-position: right 20px center, 0 0, 0 0;
	background-size: 24px 24px, auto, auto;
	background-repeat: no-repeat, no-repeat, no-repeat;
	background-origin: padding-box, padding-box, border-box;
	background-clip: padding-box, padding-box, border-box;
}

/* 矢印（Poppins → 文字） */
.btn--arrow::after {
	content: "→";
	position: absolute;
	right: 20px;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	font-family: var(--font-family-en);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	color: var(--color-text);
	transform: translateY(-50%);
}

/* 矢印が左向きの場合の背景位置上書き */
.btn--white.btn--arrow.btn--arrow-left {
	background-position: left 20px center, 0 0, 0 0;
}

/* 矢印が左向きの場合の文字（←）と配置上書き */
.btn--arrow.btn--arrow-left::after {
	content: "←";
	right: auto;
	left: 20px;
}
