/* 上に戻るボタン（0.4.0・全ページ）。SWELL の #pagetop は隠して子テーマのものに
   A＝ゴリライダーのバイクが前を上げて走って上がる／B＝紋章がタイヤのように回って上がる */
#pagetop { display: none !important; }
.gr-totop { position: fixed; right: 22px; bottom: 26px; z-index: 90; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 0; border: 0; background: none; cursor: pointer; color: #fff;
	opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s, transform .3s, visibility 0s .3s; -webkit-tap-highlight-color: transparent; }
.gr-totop.is-show { opacity: 1; visibility: visible; transform: none; transition: opacity .3s, transform .3s; }
.gr-totop__img { display: block; }
.gr-totop__img img { display: block; width: 100%; height: auto; pointer-events: none; }
.gr-totop__txt { font-family: "Barlow", "Noto Sans JP", sans-serif; font-weight: 800; font-style: italic; font-size: 13px; letter-spacing: .12em; line-height: 1; padding: 4px 10px 3px; background: #ff5900; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.gr-totop:focus-visible { outline: 3px solid #222; outline-offset: 4px; border-radius: 8px; }
/* A：バイク */
.gr-totop--a .gr-totop__img { width: 84px; filter: drop-shadow(0 6px 10px rgba(0,0,0,.45)); transform-origin: 30% 90%; }
.gr-totop--a:hover .gr-totop__img { animation: gr-rev .18s linear 4; }
@keyframes gr-rev { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(1px,-1px) rotate(-2deg); } }
.gr-totop--a.is-go .gr-totop__img { animation: gr-ride-up .9s cubic-bezier(.5,0,.75,0) forwards; }
.gr-totop--a.is-go .gr-totop__txt { opacity: 0; transition: opacity .2s; }
@keyframes gr-ride-up { 0% { transform: translateY(0) rotate(0); } 18% { transform: translateY(6px) rotate(-8deg); } 100% { transform: translateY(-110vh) rotate(-4deg); } }
/* B：紋章 */
.gr-totop--b .gr-totop__img { width: 66px; border-radius: 50%; background: #111; box-shadow: 0 6px 14px rgba(0,0,0,.4); }
.gr-totop--b:hover .gr-totop__img { animation: gr-spin 1.2s linear infinite; }
.gr-totop--b.is-go .gr-totop__img { animation: gr-spin-up .9s cubic-bezier(.5,0,.75,0) forwards; }
.gr-totop--b.is-go .gr-totop__txt { opacity: 0; transition: opacity .2s; }
@keyframes gr-spin { to { transform: rotate(-360deg); } }
@keyframes gr-spin-up { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-110vh) rotate(-1080deg); } }
@media (max-width: 767px) {
	.gr-totop { right: 10px; bottom: 14px; }
	.gr-totop--a .gr-totop__img { width: 64px; }
	.gr-totop--b .gr-totop__img { width: 52px; }
	.gr-totop__txt { font-size: 11px; padding: 3px 8px 2px; }
}
@media (prefers-reduced-motion: reduce) {
	.gr-totop .gr-totop__img { animation: none !important; }
}
/* 0.4.6：スマホでは本文の文字にかぶらない大きさ・位置（小さく・端へ・下に余白） */
@media (max-width: 767px) {
	.gr-totop { right: 6px; bottom: 10px; }
	.gr-totop--a .gr-totop__img { width: 46px; }
	.gr-totop--b .gr-totop__img { width: 40px; }
	.gr-totop__txt { font-size: 10px; padding: 2px 6px 1px; }
	.gr-site .l-footer, .gr-site .s-footer { padding-bottom: 70px; }
}
