/* Lightweight progressive enhancement: no canvas, video or animation dependency. */
:root{--cx-panel:var(--white);--cx-glow-a:#007de82a;--cx-glow-b:#00d5ff20;--cx-dot:#168dbe55;--cx-tray-space:0px}
[data-cx-skin=dark]{--cx-glow-a:#335dff2d;--cx-glow-b:#00dbff1f;--cx-dot:#29d3ee55}
.cx-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict}
.cx-atmosphere>i{position:absolute;display:block;will-change:transform}
.cx-glow-a{width:78vmax;height:78vmax;max-width:1200px;max-height:1200px;left:-26vmax;top:-22vmax;background:radial-gradient(circle,var(--cx-glow-a),transparent 65%);animation:cx-drift-a 26s ease-in-out infinite alternate}
.cx-glow-b{width:66vmax;height:66vmax;max-width:1000px;max-height:1000px;right:-22vmax;bottom:-16vmax;background:radial-gradient(circle,var(--cx-glow-b),transparent 65%);animation:cx-drift-b 31s ease-in-out infinite alternate}
.cx-packets{inset:8% 0;background-image:radial-gradient(circle,var(--cx-dot) 1.2px,transparent 1.8px);background-size:92px 92px;mask-image:radial-gradient(ellipse at 80% 30%,#000,transparent 62%);opacity:.55;animation:cx-breathe 9s ease-in-out infinite alternate;will-change:opacity!important}
@keyframes cx-drift-a{to{transform:translate3d(30vw,25vh,0) scale(1.1)}}
@keyframes cx-drift-b{to{transform:translate3d(-25vw,-22vh,0) scale(.88)}}
@keyframes cx-breathe{to{opacity:.16}}
.cx-motion-paused .cx-atmosphere>i,.cx-motion-hidden .cx-atmosphere>i,.cx-dialog-open .cx-atmosphere>i{animation-play-state:paused}
.cx-motion-control{position:fixed;right:18px;bottom:calc(18px + var(--cx-tray-space));z-index:75;display:flex;align-items:center;gap:8px;min-height:40px;padding:9px 13px;border:1px solid var(--line);border-radius:30px;background:var(--white);color:var(--ink);font:inherit;font-size:11px;cursor:pointer;box-shadow:0 5px 20px #00162c16;transition:bottom .2s}
.cx-motion-control svg{width:15px;height:15px;fill:none;stroke:var(--green);stroke-width:1.8}
.cx-motion-control:disabled{cursor:default;opacity:.8}
.cx-motion-control:focus-visible,.cx-compare-add:focus-visible,.cx-copy:focus-visible,.cx-compare-tray button:focus-visible,.cx-compare-dialog button:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.equipment-card,.service-card,.storage-card{position:relative;transition:box-shadow .25s,border-color .25s,transform .25s}
.equipment-card:focus-within,.storage-card:focus-within{border-color:var(--green);box-shadow:0 0 0 1px var(--green),0 12px 38px #006cc217}
@media(hover:hover) and (pointer:fine){.equipment-card:hover,.service-card:hover,.storage-card:hover{transform:translateY(-4px);border-color:var(--green);box-shadow:0 14px 38px #006cc221}.equipment-card:hover .equipment-card-meta>span:first-child{color:var(--green)}}
.equipment-card-actions{flex-wrap:wrap}
.cx-compare-add,.cx-copy{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:12px;line-height:1.4;padding:9px 14px;cursor:pointer}
.equipment-card-actions .cx-compare-add{flex:1 0 100%;margin-top:8px}
.cx-compare-add:before{content:'＋';color:var(--green);font-size:18px;font-weight:500}
.cx-compare-add:hover,.cx-copy:hover{background:var(--surface-hover);border-color:var(--green)}
.cx-compare-add[aria-pressed=true]{border-color:var(--green);color:var(--green);background:var(--surface)}
.cx-compare-add[aria-pressed=true]:before{content:'✓'}
.component-product .cx-compare-add{margin:0 12px 16px 0;min-height:44px}
.cx-copy{margin-left:12px;font-family:inherit;font-size:11px;min-height:32px;padding:5px 10px;vertical-align:middle;color:var(--muted)}
.cx-compare-tray{position:fixed;z-index:80;left:50%;bottom:18px;transform:translateX(-50%);width:min(940px,calc(100% - 36px));padding:14px 18px;display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:15px;background:var(--white);color:var(--ink);box-shadow:0 14px 60px #00132935}
.cx-compare-tray[hidden]{display:none}.cx-compare-tray p{margin:0;line-height:1.4;font-size:13px;flex:1;min-width:0}.cx-compare-tray p small{display:block;font-size:11px;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-compare-tray button,.cx-compare-dialog button{font:inherit;font-size:13px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);padding:9px 14px;cursor:pointer}
.cx-compare-tray button:disabled{opacity:.45;cursor:default}.cx-compare-tray .cx-compare-open{background:var(--green);border-color:var(--green);color:var(--button-ink);font-weight:600;white-space:nowrap}
.has-compare-tray{--cx-tray-space:100px;padding-bottom:112px}
.cx-compare-dialog{color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 90px #00132955;width:min(1220px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:auto}
.cx-compare-dialog::backdrop{background:#051122b8;backdrop-filter:blur(4px)}
.cx-compare-dialog>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line);background:var(--white)}
.cx-compare-dialog h2{font-size:clamp(22px,3vw,30px);margin:0;letter-spacing:-.025em}
.cx-compare-body{padding:18px 24px 26px}.cx-compare-note{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 14px;max-width:940px}
.cx-compare-differences{display:flex;align-items:center;gap:9px;font-size:13px;margin:16px 0}.cx-compare-differences input{width:17px;height:17px;accent-color:var(--green)}
.cx-compare-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:10px}
.cx-compare-table{width:100%;min-width:690px;border-collapse:collapse;table-layout:fixed;font-size:13px;line-height:1.6}
.cx-compare-table th,.cx-compare-table td{padding:15px 17px;vertical-align:top;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);overflow-wrap:anywhere;white-space:pre-line}
.cx-compare-table th:first-child{width:21%}.cx-compare-table thead th{background:var(--surface);font-weight:600}.cx-compare-table tbody th{color:var(--muted);font-weight:500}.cx-compare-table th:last-child,.cx-compare-table td:last-child{border-right:0}.cx-compare-table tr:last-child>*{border-bottom:0}
.cx-compare-table thead a{display:block;color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:4px;margin:5px 0 11px}.cx-compare-table thead small{display:block;color:var(--muted);font-size:11px;font-weight:400}.cx-compare-table thead button{font-size:11px;min-height:30px;padding:4px 10px;margin-top:10px}
.cx-compare-table .cx-different{background:color-mix(in srgb,var(--green) 6%,var(--white))}
.cx-compare-table tr[hidden]{display:none}.cx-compare-loading,.cx-compare-error{padding:24px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.7}.cx-compare-error a{color:var(--green);text-decoration:underline}
.cx-toast{position:fixed;z-index:110;left:50%;bottom:calc(28px + var(--cx-tray-space));transform:translateX(-50%);max-width:calc(100% - 40px);padding:12px 19px;background:var(--ink);color:var(--paper);border-radius:10px;font:inherit;font-size:13px;line-height:1.5;text-align:center;box-shadow:0 10px 35px #00132933;pointer-events:none}
.cx-toast:empty{display:none}
@media(max-width:650px){.cx-motion-control{right:12px;bottom:calc(12px + var(--cx-tray-space));min-height:36px;padding:8px 10px}.cx-compare-tray{gap:8px;padding:12px;width:calc(100% - 24px);bottom:12px;border-radius:12px;flex-wrap:wrap}.cx-compare-tray p{flex-basis:100%}.cx-compare-tray .cx-compare-open{flex:1}.cx-compare-tray p small{max-width:100%}.has-compare-tray{--cx-tray-space:140px;padding-bottom:150px}.cx-compare-dialog{border-radius:12px;max-height:calc(100dvh - 20px);width:calc(100vw - 20px);max-width:calc(100vw - 20px)}.cx-compare-dialog>header{padding:15px}.cx-compare-body{padding:15px}.cx-compare-table{min-width:660px}.cx-compare-table th,.cx-compare-table td{padding:12px}.cx-copy{margin-left:0;display:flex;margin-top:8px;width:max-content}.cx-glow-a{width:120vmax;height:120vmax}.cx-glow-b{width:100vmax;height:100vmax}}
@media(prefers-reduced-motion:reduce){.cx-atmosphere>i{animation:none!important;will-change:auto!important}.equipment-card,.service-card,.storage-card,.cx-motion-control{transition:none!important}.equipment-card:hover,.service-card:hover,.storage-card:hover{transform:none!important}}
/* Original QuakeLogic wordmark uses grey lettering: keep its colours on a light plate. */
.clients-grid .client-logo-card--quakelogic{background:#f4f8fc;border-color:#b6cbdc}
.clients-grid .client-logo-card--quakelogic:hover{background:#fff}
