/* ABMART contact dock. */
.contact-form-trap { display: none; }
#btn-submit-form:disabled { cursor: wait; opacity: .68; }
#form-status[data-state="pending"] { border-color: #4bdde84a; color: #a9e8ef; }
#form-status[data-state="success"] { border-color: #58dcb75e; color: #b3ead8; }
#form-status[data-state="error"], #form-status[data-state="activation"] { border-color: #f4b07b55; color: #edc5ac; }
.contact-dock { --dock-bottom: max(24px, env(safe-area-inset-bottom)); --dock-height: 58px; position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: var(--dock-bottom); z-index: 1400; font-family: var(--font-body, sans-serif); color: #eefaff; }
.contact-dock button, .contact-dock a { font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; text-decoration: none; }
.contact-dock button:focus-visible, .contact-dock a:focus-visible { outline: 2px solid #87f7ff; outline-offset: 4px; }
.contact-dock__launcher { position: relative; display: flex; align-items: center; gap: 11px; min-height: 58px; padding: 11px 21px 11px 13px; border: 1px solid #54d9ed7a; border-radius: 19px; color: #effdff; background: linear-gradient(120deg, #103440, #14203c 75%, #251b42); box-shadow: 0 10px 32px #0008, 0 0 25px #16b4d21c, inset 0 1px #baf6ff1a; transition: border-color .25s, box-shadow .25s, transform .25s; }
.contact-dock__launcher:hover { transform: translateY(-2px); border-color: #8bf0fa; box-shadow: 0 14px 38px #0009, 0 0 28px #16b4d235; }
.contact-dock__launcher:active { transform: scale(.97); }
.contact-dock__launcher-text { font-weight: 700; font-size: .87rem; letter-spacing: -.015em; }
.contact-dock__launcher-icon { position: relative; display: grid; place-items: center; width: 32px; height: 32px; color: #76eff7; }
.contact-dock__launcher-icon svg { position: absolute; width: 25px; height: 25px; transition: opacity .2s, transform .3s cubic-bezier(.2,.8,.2,1); }
.contact-dock__x { opacity: 0; transform: rotate(-90deg) scale(.65); }
.contact-dock.is-open .contact-dock__chat { opacity: 0; transform: rotate(65deg) scale(.6); }
.contact-dock.is-open .contact-dock__x { opacity: 1; transform: rotate(0) scale(1); }
.contact-dock__signal { position: absolute; top: -2px; right: -2px; width: 6px; height: 6px; border-radius: 50%; background: #6ef4f6; box-shadow: 0 0 9px #3ce4ef88; transition: opacity .2s; }
.contact-dock__signal::after { content: ''; position: absolute; inset: -4px; border: 1px solid #6ef4f670; border-radius: 50%; animation: contactSignal 3s ease-out infinite; }
.contact-dock.is-open .contact-dock__signal { opacity: 0; }
@keyframes contactSignal { 0%,30% { transform: scale(.6); opacity: .7; } 85%,100% { transform: scale(1.45); opacity: 0; } }
.contact-dock__panel { position: absolute; bottom: calc(100% + 14px); right: 0; width: 334px; max-width: calc(100vw - 32px); max-height: calc(100dvh - var(--dock-bottom) - var(--dock-height) - 14px - 12px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding: 22px 18px 14px; border: 1px solid #789dbe3b; border-radius: 25px; background: radial-gradient(ellipse at top left, #11425166, transparent 65%), linear-gradient(150deg, #101d30fa, #100e23fc); box-shadow: 0 26px 90px #000a, 0 0 45px #2dbad018, inset 0 1px #b6fcff20; transform: translateY(18px) scale(.94); transform-origin: bottom right; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, transform .3s cubic-bezier(.18,.89,.32,1.12), visibility .3s; }
.contact-dock__panel[hidden] { display: none; }
.contact-dock__panel::before { content: ''; position: absolute; top: 0; left: 24px; right: 24px; height: 1px; background: linear-gradient(90deg, transparent, #69e9f2, #ae8ce9, transparent); }
.contact-dock.is-open .contact-dock__panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.contact-dock__heading { display: flex; align-items: center; gap: 11px; padding-right: 32px; margin-bottom: 15px; }
.contact-dock__brand { width: 35px; height: 35px; flex-shrink: 0; }
.contact-dock__eyebrow { color: #78e4ee; font-size: .59rem; letter-spacing: .2em; font-weight: 700; margin-bottom: 3px; }
.contact-dock__title { font-size: 1rem; line-height: 1.4; letter-spacing: -.025em; margin: 0; color: #f2faff; }
.contact-dock__intro { font-size: .73rem; color: #a7b8cd; line-height: 1.65; margin: 0 0 18px; }
.contact-dock__close { position: absolute; top: 12px; right: 10px; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 12px; color: #8dabc5; background: transparent; transition: color .2s, background .2s; }
.contact-dock__close:hover { color: white; background: #99caff10; }
.contact-dock__close svg { width: 18px; height: 18px; }
.contact-dock__choices { display: grid; gap: 9px; }
.contact-dock__choice { position: relative; }
.contact-dock__led { position: absolute; left: 1px; top: 1px; width: calc(100% - 2px); height: calc(100% - 2px); overflow: visible; pointer-events: none; fill: none; filter: drop-shadow(0 0 3px var(--contact-color)); }
.contact-dock__led rect { stroke: var(--contact-color); stroke-width: 1.2; stroke-dasharray: 14 86; animation: contactFrameLed 3.2s linear infinite; animation-play-state: paused; opacity: .75; }
.contact-dock__led .contact-dock__led-head { stroke: #e9fdff; stroke-width: 1.6; stroke-dasharray: 0 12 2 86; opacity: .85; }
.contact-dock.is-open .contact-dock__led rect { animation-play-state: running; }
.contact-dock__choice:nth-child(2) .contact-dock__led rect { animation-delay: -1.05s; }
.contact-dock__choice:nth-child(3) .contact-dock__led rect { animation-delay: -2.1s; }
@keyframes contactFrameLed { to { stroke-dashoffset: -100; } }
.contact-dock__choice { --contact-color: #6aaaff; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 66px; text-align: left; padding: 11px 12px; border: 1px solid #a1bedb1e; border-radius: 16px; color: #edf8ff; background: #91c9ff07; opacity: 0; transform: translateY(9px); transition: opacity .25s ease, transform .3s ease, background .2s, border-color .2s; }
.contact-dock.is-open .contact-dock__choice { opacity: 1; transform: translateY(0); }
.contact-dock.is-open .contact-dock__choice:nth-child(1) { transition-delay: .035s, .035s, 0s, 0s; }
.contact-dock.is-open .contact-dock__choice:nth-child(2) { transition-delay: .075s, .075s, 0s, 0s; }
.contact-dock.is-open .contact-dock__choice:nth-child(3) { transition-delay: .115s, .115s, 0s, 0s; }
.contact-dock__choice:hover { background: #9bceff0c; border-color: #a1bedb55; }
.contact-dock.is-open .contact-dock__choice:hover { transform: translateX(-2px); }
.contact-dock__choice[data-channel="phone"] { --contact-color: #5ee1c2; }
.contact-dock__choice[data-channel="gmail"] { --contact-color: #f1bd9f; }
.contact-dock__channel-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; background: #5094ff1b; color: var(--contact-color); }
.contact-dock__channel-icon svg { width: 24px; height: 24px; }
.contact-dock__choice[data-channel="phone"] .contact-dock__channel-icon { background: #1de2ac13; }
.contact-dock__choice[data-channel="gmail"] .contact-dock__channel-icon { background: #f0b38d12; }
.contact-dock__choice-text { flex: 1; min-width: 0; }
.contact-dock__choice-name { display: block; font-size: .82rem; font-weight: 700; line-height: 1.5; }
.contact-dock__choice-detail { display: block; margin-top: 1px; font-size: .73rem; color: #a4b5cb; line-height: 1.5; }
.contact-dock__arrow { width: 17px; height: 17px; flex-shrink: 0; color: #6e8ca7; transition: color .2s, transform .2s; }
.contact-dock__choice:hover .contact-dock__arrow { color: var(--contact-color); transform: translate(2px,-2px); }
.contact-dock__note { display: block; min-height: 32px; padding: 13px 3px 0; margin: 0; color: #8da5bc; font-size: .61rem; line-height: 1.6; }
.contact-dock__note::before { content: ''; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: #ab97dd; margin: 0 6px 2px 0; }
@media (max-width: 600px) {
 .contact-dock { --dock-bottom: max(16px, env(safe-area-inset-bottom)); --dock-height: 56px; right: max(16px, env(safe-area-inset-right)); }
 .contact-dock__launcher { min-height: 56px; padding: 10px 18px 10px 12px; border-radius: 18px; }
 .contact-dock__panel { width: 326px; }
}
@media (max-width: 359px) {
 .contact-dock { --dock-bottom: max(12px, env(safe-area-inset-bottom)); right: max(12px, env(safe-area-inset-right)); }
 .contact-dock__panel { max-width: calc(100vw - 24px); padding: 20px 15px 12px; }
}
@media (prefers-reduced-motion: reduce) {
 .contact-dock *, .contact-dock *::after { animation: none !important; transition: none !important; }
 .contact-dock__panel, .contact-dock__choice { transform: none; }
}

