.site-footer { margin-top: 48px; padding: 32px 5% 48px; border: 0; background: var(--color-ink); color: var(--color-surface); }
.footer-service { padding-bottom: 20px; }
.footer-service__title { display: flex; align-items: center; margin-bottom: 8px; }
.footer-service__title > strong,
.footer-service__title > a { color: var(--color-surface); font-size: 16px; font-weight: 700; line-height: 24px; }
.footer-service__title > strong { margin-right: 8px; }
.footer-service__title > a { display: inline-flex; align-items: center; }
.footer-service__title svg { width: 24px; height: 24px; margin-left: -2px; }
.footer-service p { color: #9a9a9a; font-size: 12px; line-height: 16px; }
.footer-service p span { display: block; margin-bottom: 2px; }
.shop-info-single-v1-moment-goods-footer { display: block; padding-top: 12px; }
.shop-info-single-v1-moment-goods-footer .business-details { border: 0; }
.shop-info-single-v1-moment-goods-footer .business-details summary { display: flex; align-items: center; width: max-content; min-height: 44px; padding: 0; color: var(--color-surface); font-size: 13px; font-weight: 700; line-height: 18px; cursor: pointer; list-style: none; }
.shop-info-single-v1-moment-goods-footer .business-details summary::-webkit-details-marker { display: none; }
.shop-info-single-v1-moment-goods-footer .business-details summary::after { width: 7px; height: 7px; margin: -4px 0 0 8px; border-right: 1.5px solid var(--color-surface); border-bottom: 1.5px solid var(--color-surface); content: ""; transform: rotate(45deg); }
.shop-info-single-v1-moment-goods-footer .business-details[open] summary::after { margin-top: 4px; transform: rotate(225deg); }
.shop-info-single-v1-moment-goods-footer .business-info { padding-bottom: 16px; color: var(--color-surface); font-size: 12px; line-height: 18px; }
.shop-info-single-v1-moment-goods-footer .business-info > div { margin-bottom: 4px; }
.shop-info-single-v1-moment-goods-footer .business-info > div > span { margin-right: 4px; color: #9a9a9a; }
.shop-info-single-v1-moment-goods-footer .footer-copy { margin-top: 0; color: #9a9a9a; font-size: 12px; }
.footer-links { display: flex; align-items: center; flex-wrap: wrap; gap: 0; }
.footer-links a { display: inline-flex; position: relative; align-items: center; min-height: 44px; color: #9a9a9a; font-size: 13px; line-height: 18px; }
.footer-links a:not(:last-child) { margin-right: 17px; }
.footer-links a:not(:last-child)::after { position: absolute; top: 17px; right: -9px; width: 1px; height: 10px; background: #6a6a6a; content: ""; }
.footer-links .footer-links__privacy { color: var(--color-surface); }
.footer-social { display: flex; align-items: center; gap: 8px; margin-top: 32px; }
.footer-social a { display: block; width: 32px; height: 32px; }
.footer-social img { width: 32px; height: 32px; }
.footer-scroll-top { position: fixed; z-index: 20; right: calc(50% - 440px); bottom: 70px; visibility: hidden; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: transparent; opacity: 0; transition: opacity var(--motion-snap), visibility var(--motion-snap); }
.footer-scroll-top.is-visible { visibility: visible; opacity: 1; }
.footer-scroll-top svg { width: 48px; height: 48px; }
.footer-scroll-top rect { fill: var(--color-surface); stroke: var(--color-border); }
.footer-scroll-top path { stroke: var(--color-ink); }
.mobile-bottom-nav { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; display: none; visibility: hidden; max-width: 480px; height: 0; margin: 0 auto; overflow: hidden; border-top: 1px solid var(--color-border); background: rgb(255 255 255 / 97%); opacity: 0; transition: height var(--motion-snap), opacity var(--motion-snap), visibility var(--motion-snap); }
.mobile-bottom-nav.is-visible { visibility: visible; height: 64px; opacity: 1; }
.mobile-bottom-nav > a,
.mobile-bottom-nav > button { display: flex; align-items: center; justify-content: center; flex: 1; flex-direction: column; gap: 4px; min-width: 0; border: 0; background: transparent; color: var(--color-muted-strong); font-size: 10px; }
.mobile-bottom-nav > a:first-child { color: var(--color-ink); }
.mobile-bottom-nav svg { width: 21px; height: 21px; }
@media (max-width: 1024px) {
  .site-footer { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  .footer-scroll-top { right: max(20px, calc(50% - 220px)); bottom: calc(76px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav { display: flex; padding-bottom: env(safe-area-inset-bottom); }
  .mobile-bottom-nav.is-visible { height: calc(64px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-scroll-top,
  .mobile-bottom-nav { transition-duration: .01ms; }
}
