/* =========================================================
   HIROTECH — GLOBAL INTERACTION MOTION SYSTEM
   Gentle Press -> Bounce -> Settle
   No background/canvas styling is defined here.
   ========================================================= */
:root { --ht-muted-blue:#7B9BC7; --ht-motion-duration:340ms; --ht-motion-ease:cubic-bezier(.22,1.16,.36,1); }
.hiro-bounce-target,button,[role="button"] { transform-origin:center center; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
.hiro-bounce-target,button:not([data-no-hiro-bounce]),[role="button"]:not([data-no-hiro-bounce]),[data-hiro-bounce-bound="true"] { transition-property:color,background-color,border-color,opacity,scale,filter; transition-duration:180ms; transition-timing-function:ease; }
.hiro-bounce-target.hiro-is-pressing,button.hiro-is-pressing:not([data-no-hiro-bounce]),[role="button"].hiro-is-pressing:not([data-no-hiro-bounce]),[data-hiro-bounce-bound="true"].hiro-is-pressing { scale:.978; }
.hiro-bounce-target.hiro-touch-feedback,button.hiro-touch-feedback:not([data-no-hiro-bounce]),[role="button"].hiro-touch-feedback:not([data-no-hiro-bounce]),[data-hiro-bounce-bound="true"].hiro-touch-feedback { filter:brightness(1.09) saturate(1.03)!important; }
.hiro-bounce-target.hiro-bounce-play,button.hiro-bounce-play:not([data-no-hiro-bounce]),[role="button"].hiro-bounce-play:not([data-no-hiro-bounce]),[data-hiro-bounce-bound="true"].hiro-bounce-play { animation:hiroButtonBounce var(--ht-motion-duration) var(--ht-motion-ease) both; }
@keyframes hiroButtonBounce { 0%{scale:1} 24%{scale:.978} 58%{scale:1.012} 78%{scale:.996} 100%{scale:1} }

/* Mouse focus should never leave a gray browser ring/shadow on Hirotech controls.
   Keyboard focus remains visible through :focus-visible where the component
   already defines it. */
.hiro-bounce-target:focus:not(:focus-visible),
button:not([data-no-hiro-bounce]):focus:not(:focus-visible),
[role="button"]:not([data-no-hiro-bounce]):focus:not(:focus-visible),
[data-hiro-bounce-bound="true"]:focus:not(:focus-visible) {
    outline: none !important;
    -webkit-focus-ring-color: transparent !important;
}

.hiro-muted-blue,.hiro-muted-blue-icon { color:var(--ht-muted-blue)!important; }
.hiro-contact-widget { position:fixed;right:22px;bottom:22px;z-index:900;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none; }
.hiro-contact-widget>* { pointer-events:auto; }
.hiro-contact-action { display:inline-flex;align-items:center;gap:8px;min-width:0;padding:4px 6px;text-decoration:none;border:0;border-radius:10px;color:#F8FAFC;background:transparent;box-shadow:none;opacity:0;translate:0 8px;scale:.92;transition:opacity 180ms ease,translate 220ms var(--ht-motion-ease),scale 220ms var(--ht-motion-ease),color 180ms ease,text-shadow 180ms ease; }
.hiro-contact-widget.is-open .hiro-contact-action { opacity:1;translate:0 0;scale:1; }
.hiro-contact-action:hover { color:#FFFFFF;text-shadow:0 0 14px rgba(74,143,247,.34); }
.hiro-contact-icon { width:auto;height:auto;border-radius:0;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#4A8FF7;background:transparent;box-shadow:none;font-size:18px;line-height:1;transition:filter 180ms ease,transform 180ms ease; }
.hiro-contact-label { font-size:12px;font-weight:800;letter-spacing:.01em;white-space:nowrap;color:#F8FAFC;transition:color 180ms ease,text-shadow 180ms ease; }
.hiro-contact-main { width:54px;height:54px;border:1px solid rgba(74,143,247,.55);border-radius:18px;display:inline-flex;align-items:center;justify-content:center;color:#FFFFFF;background:#4A8FF7;box-shadow:0 14px 34px rgba(0,0,0,.30),0 0 28px rgba(74,143,247,.24);cursor:pointer;font-size:20px; }
.hiro-contact-main:hover { box-shadow:0 16px 38px rgba(0,0,0,.34),0 0 34px rgba(74,143,247,.30); }
.hiro-contact-main i { transition:transform 180ms ease; }
.hiro-contact-widget.is-open .hiro-contact-main i { transform:rotate(8deg) scale(1.03); }
.hiro-contact-widget.is-open .hiro-contact-action .hiro-contact-icon { filter:drop-shadow(0 0 7px rgba(74,143,247,.22)); }
.hiro-contact-widget.is-open .hiro-contact-action .hiro-contact-label { text-shadow:0 0 12px rgba(74,143,247,.16); }
.hiro-contact-action:nth-child(1){transition-delay:20ms}.hiro-contact-action:nth-child(2){transition-delay:50ms}
@media(max-width:767px){.hiro-contact-widget{right:16px;bottom:16px}.hiro-contact-main{width:52px;height:52px;border-radius:17px}}
@media(prefers-reduced-motion:reduce){.hiro-bounce-target,button:not([data-no-hiro-bounce]),[role="button"]:not([data-no-hiro-bounce]),[data-hiro-bounce-bound="true"],.hiro-contact-action,.hiro-contact-main i{animation:none!important;transition-duration:1ms!important}}
.hiro-danger-solid{background:var(--ht-danger)!important;color:#FFFFFF!important;border:1px solid rgba(230,0,18,.65)!important}.hiro-danger-solid:hover,.hiro-danger-solid:focus-visible{background:#B8000F!important;color:#FFFFFF!important}

/* Hirotech — Soft Hover / Touch Presence */
.hiro-bounce-target:hover {
    scale: 1.015;
    filter: brightness(1.06) saturate(1.02);
}

.hiro-bounce-target:active {
    scale: .978;
    filter: brightness(1.09) saturate(1.03);
}

@media (hover: none) {
    .hiro-bounce-target:active {
        scale: .978;
        filter: brightness(1.09) saturate(1.03);
    }
}
