/* v32: an uninterrupted page, with two persistent actions at the lower right. */
html{scroll-padding-top:20px;scroll-padding-bottom:100px}
.floating-layout{--dock-right:max(24px,env(safe-area-inset-right));--dock-bottom:max(24px,env(safe-area-inset-bottom));--dock-height:64px}
.floating-layout main{padding-bottom:calc(var(--dock-height) + var(--dock-bottom) + 24px)}
.floating-layout .hero{height:min(900px,100svh)}
.floating-actions{position:fixed;z-index:40;right:var(--dock-right);bottom:var(--dock-bottom);display:grid;gap:10px;width:216px;isolation:isolate}
.floating-action{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-height:64px;padding:11px 18px;border:1px solid transparent;border-radius:16px;text-align:left;text-decoration:none;box-shadow:0 4px 10px #152d4110,0 10px 32px #152d411a;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.floating-action .cta-line-icon{width:30px;height:30px;flex:none}
.floating-action-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.floating-action small{font:400 10px/1.5 var(--font);letter-spacing:.02em;white-space:nowrap}
.floating-action strong{font:700 14px/1.5 var(--font);letter-spacing:0;white-space:nowrap}
.floating-line{background:var(--line-green);color:#fff;border-color:#ffffff26}
.floating-line[aria-expanded=true]{background:#007537;box-shadow:0 4px 20px #003b1b26}
.floating-action:focus-visible{outline:3px solid #3a799e;outline-offset:4px}
.floating-layout .line-popup{top:auto;right:var(--dock-right);bottom:calc(var(--dock-bottom) + var(--dock-height) + 12px);width:310px;max-width:calc(100vw - 32px);max-height:calc(100svh - var(--dock-bottom) - var(--dock-height) - 32px);padding:25px 23px 22px;overflow-y:auto;box-shadow:0 12px 48px #20364b20}
.floating-layout .line-popup.is-open{animation:floating-popup-in .24s ease-out both}
@keyframes floating-popup-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover){
 .floating-action:hover{transform:translateY(-3px);box-shadow:0 8px 14px #152d4114,0 16px 36px #152d4126}
 .floating-line:hover{background:#007537}
}
.floating-action:active{transform:translateY(0)}
@media(max-width:720px){
 html{scroll-padding-top:12px;scroll-padding-bottom:88px}
 .floating-layout{--dock-right:max(12px,env(safe-area-inset-right));--dock-bottom:max(12px,env(safe-area-inset-bottom));--dock-height:58px}
 .floating-layout .hero{height:auto;padding-top:26px}
 .floating-layout main{padding-bottom:calc(var(--dock-height) + var(--dock-bottom) + 24px)}
 .floating-actions{grid-template-columns:1fr;gap:0;width:min(194px,calc(100vw - 24px))}
 .floating-action{min-height:58px;padding:9px 11px;gap:8px;border-radius:13px}
 .floating-action .cta-line-icon{width:26px;height:26px}
 .floating-action small{font-size:9px;line-height:1.4;letter-spacing:0}
 .floating-action strong{font-size:12px;line-height:1.5}
 .floating-layout .line-popup{width:300px;max-width:calc(100vw - 24px);padding:25px 21px 20px}
}
@media(max-width:360px){
 .floating-action{padding-inline:9px;gap:7px}
 .floating-action strong{font-size:11px}
}
@media(max-height:480px) and (min-width:721px){
 .floating-layout{--dock-height:58px;--dock-bottom:12px}
 .floating-actions{grid-template-columns:1fr;width:216px}
 .floating-action{min-height:58px;padding-inline:13px}
 .floating-action strong{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.floating-action{transition:none}.floating-layout .line-popup.is-open{animation:none}.floating-action:hover{transform:none}}
@media print{.floating-actions,.floating-layout .line-popup{display:none!important}.floating-layout main{padding-bottom:0}}

/* Product inquiries sit below each in-page LINE button. */
.cta-contact{display:flex;align-items:center;justify-content:center;gap:9px;width:420px;max-width:100%;min-height:44px;margin-top:10px;color:#315d80;text-decoration:none;font:400 13px/1.6 var(--font);letter-spacing:.01em;border-radius:10px;transition:background-color .2s,color .2s}
.cta-contact .contact-icon{width:19px;height:19px;flex:none}
.cta-contact-arrow{font-size:15px;line-height:1;margin-left:2px}
.quiet-line-action .cta-contact{width:450px}
.cta-contact:focus-visible{outline:2px solid #3a799e;outline-offset:3px}
@media(hover:hover){.cta-contact:hover{background:#eaf3fa;color:#234b68}}
@media(min-width:721px) and (max-width:1100px){.hero-copy .cta-contact{width:360px}}
@media(max-width:720px){.hero-copy .cta-contact{grid-row:7;grid-column:1}.cta-contact,.quiet-line-action .cta-contact{width:100%;margin-top:8px;font-size:12px}.cta-contact .contact-icon{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.cta-contact{transition:none}}
