/* Shared floating actions: independent of page-specific section styling. */
.js-floating-actions { opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s ease; }
.js-floating-actions.is-ready { opacity: 1; visibility: visible; }
.js-floating-actions__badge,
.js-floating-actions__entry { position: fixed; bottom: max(24px, env(safe-area-inset-bottom)); z-index: 900; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.js-floating-actions__badge { left: max(24px, env(safe-area-inset-left)); display: block; width: 76px; filter: drop-shadow(0 4px 12px rgba(0,0,0,.16)); }
.js-floating-actions__badge img { display: block; width: 100%; height: auto; margin: 0; }
.js-floating-actions__entry { right: max(24px, env(safe-area-inset-right)); display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 156px; min-height: 108px; box-sizing: border-box; padding: 16px 20px; background: #168fca; color: #fff; border-top: 3px solid #de021e; box-shadow: 0 6px 24px rgba(15,57,84,.2); font-family: 'Noto Sans JP', sans-serif; line-height: 1.35; }
.js-floating-actions__eyebrow { font-size: 10px; font-weight: 500; letter-spacing: .16em; }
.js-floating-actions__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 27px; font-weight: 700; letter-spacing: .04em; }
.js-floating-actions__title span { font-size: 24px; font-weight: 400; }
.js-floating-actions__label { font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.js-floating-actions a:focus-visible { outline: 3px solid #de021e; outline-offset: 5px; }
@media (hover: hover) {
    .js-floating-actions a:hover { transform: translateY(-4px); }
    .js-floating-actions__entry:hover { color: #fff; background: #087bb5; box-shadow: 0 10px 28px rgba(15,57,84,.28); }
}
body.mobile-menu-open .js-floating-actions { opacity: 0; visibility: hidden; }
@media (max-width: 767px) {
    .js-floating-actions__badge, .js-floating-actions__entry { bottom: max(12px, env(safe-area-inset-bottom)); }
    .js-floating-actions__badge { left: max(12px, env(safe-area-inset-left)); width: 48px; }
    .js-floating-actions__entry { right: max(12px, env(safe-area-inset-right)); width: 126px; min-height: 80px; padding: 10px 14px; gap: 3px; }
    .js-floating-actions__eyebrow { font-size: 9px; }
    .js-floating-actions__title { font-size: 23px; }
    .js-floating-actions__label { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .js-floating-actions, .js-floating-actions a { transition: none; }
    .js-floating-actions a:hover { transform: none; }
}