.button span { 
	display: inline-block;
	vertical-align: middle;
}
/* ========================================
// スタンダード button-default（大きい方基準）
=========================================== */
.button:not(.button-simple) { 
	--color-agree-bg: var(--color-black);
	width: var(--button-w);
	height: var(--button-h);
	z-index: 2;
	justify-content: start;
	padding-inline: var(--pad-3);
}
.button.button-default {
	--button-w: 420px;
	--button-h: 100px;
	--trigger-button: 80px;
	--trigger-line-w: calc(var(--trigger-button) - 10px);
}
.button.button-default .text-block {
	right: unset;
	left: 0;
	text-align: left;
	text-transform: uppercase;
}
.button.button-default .text-block .ja { 
	font-size: 1.5em;
	letter-spacing: 0;
}
.button.button-default .text-block .en {
	display: block;
	font-size: 0.9375em;
}

/* ========================================
// ボタン右の丸い部分（基準 default)
=========================================== */
.button span.trigger {
	display: inline-block;
	width: var(--trigger-button);
	height: var(--trigger-button);
	position: absolute;
	right: 10px;
}
.button span.trigger::before {
	content: '';
	display: inline-block;
	width: var(--trigger-button);
	height: var(--trigger-button);
	aspect-ratio:  1 / 1;
	background: var(--button-circle, url(../_img/common/button/button-circle-white.svg)) no-repeat;
	background-size: contain;
	z-index: 1;
	transform: translateX(0);
	transition: transform .1s ease-in;
}
.button:hover span.trigger::before {
	transform: translateX(calc(-1 * (var(--trigger-button) / 2)));
}
.button span.trigger::after {
    content: '';
	display: inline-block;
	width: var(--trigger-line-w, 40px);
	height: var(--trigger-line-h, 2px);
	background-color: var(--border-color, var(--button-black-border));
	position: absolute;
	inset: 0;
	margin: auto;
	left: calc(-1 * var(--trigger-line-w));
	z-index: 0;
}

/* ========================================
// middle サイズ
=========================================== */
.button.button-middle {
	--button-w: 150px;
	--button-h: 35.5px;
	--trigger-button: 30px;
	--trigger-line-w: var(--trigger-button);
	min-width: unset;
	padding-inline: var(--pad-2);
}
.button.button-middle .text-block .ja { font-size: 11px; }
.button.button-middle span.trigger { right: 0; }
.button.button-middle span.trigger::before { --button-circle: url(../_img/common/button/button-circle-black.svg); }
.button.button-middle span.trigger::after { --border-color: var(--button-gray-border); }

/* ========================================
// form サイズ
=========================================== */
.button.button-form {
	--button-w: 200px;
	--button-h: 44px;
	--trigger-button: 44px;
	--trigger-line-w: var(--trigger-button);
	min-width: unset;
	padding-inline: var(--pad-2);
}
.button.button-form .text-block .ja { font-size: 11px; }
.button.button-form span.trigger { right: 0; }
.button.button-form span.trigger::before { --button-circle: url(../_img/common/button/button-circle-black.svg); }
.button.button-form span.trigger::after { --border-color: var(--button-gray-border); }

/* ========================================
// small サイズ
=========================================== */
.button.button-small {
	--button-w: 80px;
	--button-h: 30px;
	line-height: var(--button-h);
	--trigger-button: var(--button-h);
	--trigger-line-w: var(--trigger-button);
	min-width: unset;
	padding-inline: 0.8em;
}
.button.button-small span { display: block;}
.button.button-small .text-block .ja { font-size: 14px; }
.button.button-small span.trigger { right: 0; }
.button.button-small span.trigger::before { --button-circle: url(../_img/common/button/button-circle-black.svg); }
.button.button-small span.trigger::after { display: none; }

.button.button-small:hover span.trigger::before {
	transform: translateX(calc(-1 * (var(--trigger-button) / 5)));
}

/* ===== カラーバリエーション ===== */
/* ===== green ===== */
.button_animation:has(.button.green) { --button-animation-color: var(--main-color); }
.button.green { --color-agree-bg: var(--main-color); }
.button.green span.trigger::before { --button-circle: url(../_img/common/button/button-circle-green.svg); }
.button.green span.trigger::after { --border-color: var(--button-green-border); }

/* ===== pink ===== */
.button.pink { background-color: var(--color-pink); }
.button_animation:has(.button.pink) { --button-animation-color: var(--color-pink); }
.button.pink { --color-agree-bg: var(--color-pink); }
.button.pink span.trigger::before { --button-circle: url(../_img/common/button/button-circle-pink.svg); }
.button.pink span.trigger::after { --border-color: var(--button-pink-border); }
/* ===== yellow ===== */
.button.yellow { background-color: var(--color-yellow);}
/* ===== gray ===== */
.button.gray { background-color: var(--color-gray);}
/* ===== white ===== */
.button.white { background-color: var(--color-white);}


/* ===== SNS ===== */
/* ===== instagram ===== */
.button.instagram { 
	background-color: var(--sns-instagram); 
	color: var(--color-white);
	border-color: var(--sns-instagram);
}
/* ===== line ===== */
.button.line { 
	background-color: var(--sns-line);
	color: var(--color-white);
	border-color: var(--sns-line);
}

/* ========================================
// 波紋のアニメーションを導入 
// .button の外側に導入すること。
=========================================== */
.button_animation { 
	margin-top: var(--margin);
	width: fit-content;
	height: fit-content;
}
.button_animation::before, .button_animation::after {
	content: "";
	position: absolute;
	z-index: 0;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	border-radius: var(--button-radius);
	background: var(--button-animation-color, var(--color-black));
	transform: translate3d(0,0,0);
}
.button_animation::before { animation: anime 1s ease-out infinite; }
.button_animation::after { animation: anime 1s ease-out 1s infinite; }
@keyframes anime{
	0%{transform:scale(.95); opacity:1}
	90%{opacity:.1}to{transform:scale(1.2,1.4); opacity:0}
}



/* ========================================
// headerのnavにも使用
// シンプルタイプのボタン
=========================================== */
.button-simple {
	width: var(--simple-w);
	height: var(--simple-h);
	line-height: var(--simple-h);
	--color-agree-fr: var(--color-black);
	border: var(--border-base);
	background-color: var(--simple-bg-color, var(--main-color));
}
.button-simple > .icon {
	display: flex;
	align-items: center;
	gap: var(--gap-1);
}
.button-simple > .icon::before {
	content: '';
	display: block;
	width: var(--icon-w);
	height: var(--icon-h);
	background: var(--icon-img) no-repeat center / contain;
}
.button.button-simple .text-block .ja { font-size: 1.2em; }
.button.button-simple .text-block .en { text-transform: uppercase; }


/* ========================================
// circleボタン
=========================================== */
.button.button-circle {
    width: var(--size);
    height: var(--size);
	min-width: 160px;
    background-color: var(--circle-bg);
    border: var(--border-base);
    border-radius: var(--radius-inner);
    border-width: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
	font-size: 1rem;
	color: var(--color-black);
    letter-spacing: 0;
    padding-block: 27px var(--pad-2);
	padding-inline: 0;
    margin: 0;
}

.button-circle > .icon::before {
	content: '';
	display: block;
	width: var(--icon-w);
	height: var(--icon-h);
	background: var(--icon-img) no-repeat center / contain;
}
.button-circle > .icon {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--gap-1);
}

/* ========================================
// snsボタン　instagram / line
=========================================== */
.sns-link a {
	display: flex;
	justify-content: center;
	align-items: center;
	--size: 60px;
	width: var(--size);
	height: var(--size);
	border-radius: var(--button-radius);
	background-color: var(--bg-color);
}
.sns-link .instagram { --bg-color: var(--sns-instagram); }
.sns-link .line { --bg-color: var(--sns-line); }


@media (max-width: 920px) {
	/* ========================================
	// default 920
	=========================================== */
	.button.button-default {
		--button-w: 300px;
		--button-h: 80px;
		--trigger-button: 64px;
	}
	.button.button-default .text-block .ja { font-size: 1.2em; }
	.button.button-default .text-block .en { font-size: 0.75em; }


	/* ========================================
	// middle 920
	=========================================== */
	.button.button-middle {
		--button-w: 120px;
		--button-h: 28.5px;
		--trigger-button: 24px;
		font-size: 11px;
		padding-left: 11px;
	}

	/* ========================================
	// circleボタン 920
	=========================================== */
	.button.button-circle { border-width: 3px; }
}


/* ===== ボタンicon関係 ===== */
.icon::before {
    content: '';
    display: block;
    width: var(--icon-w);
    height: var(--icon-h);
    background: var(--icon-img) no-repeat center / contain;
}
.icon.info {
    --icon-w: clamp(38px, 5vw ,47px);
	--icon-h: 100%;
    aspect-ratio: 47 / 49;
    left: -5px;
    --icon-img: url(../_img/common/icon/icon-info-session.svg);
}
.icon.recruit { /*recruitの眼鏡の男性*/
    --icon-w: 31px;
    --icon-h: 40px;
    --icon-img: url(../_img/common/icon/icon-recruit.svg);
    --icon-left: .5em;
}
.icon.recruit-contact { /*recruitのお問い合わせ*/
    --icon-w: 19px;
    --icon-h: 36px;
    --icon-img: url(../_img/common/icon/icon-recruit-contact.svg);
}
.icon.form { /* お問い合わせフォーム */
    --icon-w: 19px;
    --icon-h: 36px;
    --icon-img: url(../_img/common/icon/icon-contact-form.svg);
}
.icon.apply {/*アプリ*/
    --icon-w: 19px;
    --icon-h: 36px;
    --icon-img: url(../_img/common/icon/icon-contact-apply.svg);
}

.icon.arrow {
    --icon-w: 15px;
    --icon-h: 15px;
    --icon-img: url(../_img/common/button/arrow-right-top.svg);
}
.icon.instagram {
	--icon-w: 38px;
	--icon-h: 38px;
	--icon-img: url(../_img/common/icon/icon-instagram.svg);
}
.icon.line {
	--icon-w: 40px;
	--icon-h: 40px;
	--icon-img: url(../_img/common/icon/icon-line.svg);
}

.icon.location-info {
	--icon-w: clamp(50px, 6.7vw, 96px);
	--icon-h: 100%;
	aspect-ratio: 96 / 80;
	--icon-img: url(../_img/location/icon-location-info.svg);
}
.icon.location-contact {
	--icon-w: clamp(40px, 5.1vw, 74px);
	--icon-h: 100%;
	aspect-ratio: 74 / 74;
	--icon-img: url(../_img/location/icon-location-contact.svg);
}

.icon.fees {
    --icon-w: 36px;
    --icon-h: 47px;
    --icon-img: url(../_img/index/icon-fees.svg);
}
.icon.faq {
    --icon-w: 48px;
    --icon-h: 55px;
    --icon-img: url(../_img/index/icon-faq.svg);
} 
.icon.map {
	--icon-w: 14px;
	--icon-h: 19px;
	--icon-img: url(../_img/location/icon-location.svg);
}
.icon.location {
	--icon-w: 65px;
	--icon-h: 68px;
	--icon-img: url(../_img/support/price/icon-location.svg);
}