.quick-menu.quick-menu--reference{position:fixed;right:28px;bottom:28px;top:auto;left:auto;transform:none;width:56px;height:124px;z-index:950;color:#252525}
.r5-float-trigger{position:absolute;right:0;display:flex;justify-content:center;align-items:center;width:56px;height:56px;border:0;border-radius:50%;padding:0;color:#fff;box-shadow:0 5px 18px #0002;cursor:pointer;transition:opacity .18s,visibility .18s;z-index:2}
.r5-float-trigger--apply{bottom:68px;background:#ce0d0d}
.r5-float-trigger--phone{bottom:0;background:#252525}
.r5-float-trigger svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quick-menu--reference .r5-float-panel{position:absolute;right:-12px;bottom:-12px;width:258px;height:222px;padding:0;border:1px solid #e5e5e5;border-radius:20px;background:#fff;box-shadow:0 12px 42px #0002;opacity:0;visibility:hidden;pointer-events:none;transform:none;transition:opacity .18s,visibility .18s;box-sizing:border-box}
.quick-menu--reference.is-open .r5-float-panel{opacity:1;visibility:visible;pointer-events:auto}
.quick-menu--reference.is-open[data-active="apply"] .r5-float-trigger--apply,.quick-menu--reference.is-open[data-active="phone"] .r5-float-trigger--phone{opacity:0;visibility:hidden;pointer-events:none}
.r5-float-social{position:absolute;left:18px;right:18px;top:14px;display:flex;justify-content:center;align-items:center;gap:18px;padding-bottom:12px;border-bottom:1px solid #eee}
.r5-float-social a{display:flex;align-items:center;justify-content:center;padding:6px;border-radius:8px}
.r5-float-social img{display:block;width:32px;height:32px;max-width:none;filter:none;opacity:1;transition:filter .2s,opacity .2s}
.r5-float-social a:hover img,.r5-float-social a:focus-visible img{filter:none;opacity:1}
.r5-float-link{position:absolute;left:12px;right:12px;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:12px;box-sizing:border-box;color:#252525;font-size:16px;line-height:1.5;font-weight:600;white-space:nowrap;transition:background .18s,color .18s}
.r5-float-link--apply{bottom:80px}
.r5-float-link--phone{bottom:12px}
.r5-float-link svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quick-menu--reference[data-active="apply"] .r5-float-link--apply{background:#ce0d0d;color:#fff}
.quick-menu--reference[data-active="phone"] .r5-float-link--phone{background:#252525;color:#fff}
.r5-float-trigger:focus-visible,.r5-float-link:focus-visible,.r5-float-social a:focus-visible{outline:2px solid #1880db;outline-offset:3px}
body:has(.quick-menu--reference) #top-btn{top:auto;bottom:174px;right:28px;transform:none}
html.menu-opened .quick-menu--reference{visibility:hidden;pointer-events:none}
@media(max-width:900px){.quick-menu.quick-menu--reference{right:max(18px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));width:44px;height:98px}.r5-float-trigger{width:44px;height:44px}.r5-float-trigger--apply{bottom:54px}.r5-float-trigger svg{width:22px;height:22px}.quick-menu--reference .r5-float-panel{height:196px;max-width:calc(100vw - 24px)}.r5-float-link{height:44px;font-size:15px}.r5-float-link--apply{bottom:65px}.r5-float-link--phone{bottom:11px}body:has(.quick-menu--reference) #top-btn{top:auto;bottom:142px;right:18px;transform:none}}
@media(prefers-reduced-motion:reduce){.r5-float-trigger,.quick-menu--reference .r5-float-panel,.r5-float-link{transition:none}}

/* Hide TOP while the expanded contact panel is open, including its SNS area. */
body:has(.quick-menu--reference.is-open) #top-btn{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

@media(min-width:901px){.quick-menu.quick-menu--reference{right:24px;bottom:24px;width:56px;height:122px;gap:10px}.r5-float-trigger--apply{bottom:66px}.r5-float-trigger{box-shadow:0 4px 14px #0002}.r5-float-trigger svg{width:26px;height:26px}body:has(.quick-menu--reference) #top-btn{right:26px;bottom:166px;width:52px;height:52px}#top-btn .top-label{font-size:9px;font-weight:800;line-height:1}}
