

.arail{position:fixed; right:14px; top:50%; transform:translateY(-50%); z-index:8800;
  display:flex; flex-direction:column; gap:2px; padding:6px; border-radius:14px;
  background:var(--rail-bg,rgba(8,26,36,.86)); border:1px solid var(--rail-line,rgba(255,255,255,.14));
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 20px 50px -24px rgba(0,0,0,.6)}
.arail a{display:grid; place-items:center; width:42px; height:42px; border-radius:10px;
  color:var(--rail-fg,#E6F2F8); transition:background .22s ease,color .22s ease}
.arail a:hover,.arail a:focus-visible{background:var(--rail-hover,#0F6DAD); color:var(--rail-hover-fg,#fff)}
.arail a svg{width:19px; height:19px; fill:currentColor}
.arail .lbl{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

.arail .arail-chat{display:grid}

.arail .arail-top{display:none}

@media (min-width:861px) and (max-width:1380px){
  .arail{top:auto; right:auto; left:50%; bottom:calc(14px + env(safe-area-inset-bottom,0px));
    transform:translateX(-50%); flex-direction:row}
  body:has(.arail){padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));
    --sw-b:calc(78px + env(safe-area-inset-bottom,0px)); --sw-tb:calc(66px + env(safe-area-inset-bottom,0px))}
}
.atop{position:fixed; right:14px; bottom:80px; z-index:8800; width:44px; height:44px;
  display:grid; place-items:center; border:1px solid var(--rail-line,rgba(255,255,255,.14));
  border-radius:12px; background:var(--rail-bg,rgba(8,26,36,.86)); color:var(--rail-fg,#E6F2F8);
  cursor:pointer; opacity:0; pointer-events:none; transform:translateY(8px);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:opacity .3s ease, transform .3s ease, background .22s ease}
.atop.on{opacity:1; pointer-events:auto; transform:none}
.atop:hover{background:var(--rail-hover,#0F6DAD); color:var(--rail-hover-fg,#fff)}
.atop svg{width:19px; height:19px; fill:currentColor}

@media (max-width:860px){
  .arail{top:auto; bottom:0; left:0; right:0; transform:none; flex-direction:row; gap:0;
    padding:0 0 env(safe-area-inset-bottom); border-radius:0; border:0; border-top:1px solid var(--rail-line,#DCE9F1);
    background:var(--rail-bg,rgba(255,255,255,.97)); box-shadow:0 -10px 30px -18px rgba(7,52,79,.35)}
  .arail a{flex:1; width:auto; height:58px; border-radius:0; flex-direction:column; gap:3px; display:flex;
    align-items:center; justify-content:center}
  .arail a + a{border-left:1px solid var(--rail-line,#DCE9F1)}
  .arail .lbl{position:static; width:auto; height:auto; overflow:visible; clip:auto;
    font:600 10.5px/1 Inter,system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase}
  body:has(.arail){padding-bottom:calc(58px + env(safe-area-inset-bottom))}
  .atop{bottom:calc(70px + env(safe-area-inset-bottom)); right:12px; width:40px; height:40px}
  body:has(.arail){--sw-b:calc(70px + env(safe-area-inset-bottom)); --sw-tb:calc(58px + env(safe-area-inset-bottom))}
  .arail .arail-chat{display:flex}
  .arail .arail-top{display:flex}
}

@media (pointer:coarse){
  .svc-card .svc-more,.tile .tile-more,.card .card-more{opacity:1 !important; transform:none !important}
}

.proof-sent{margin:14px 0 0; padding:13px 16px; border-radius:6px; font-size:14px; line-height:1.55;
  background:var(--proof-note-bg,rgba(79,179,232,.14));
  border:1px solid var(--proof-note-line,rgba(79,179,232,.42)); color:inherit}

@media (pointer:coarse){
  .d1-contact-phone,.d1-contact-mail,.plq-link,.rating,.drawer-foot a,.hero-phone,
  .tb-left a,.tb-right a,.topbar-in a,.tb-phones a,.tb-email,.foot-bottom a,.ftr-legal a,
  .areas-all,.svc-more,.rc-badge,.rev-src{min-height:40px; display:inline-flex; align-items:center}
  
  
  .foot-col a,.foot-contact a,.ftr-areas a,.ftr-about a,.foot-col span{padding-block:10px}
  .spine-nav a,.toc a{min-height:38px}
  .cline a,.contact-lines a,.cta-phone,.foot-col p a{min-height:40px; display:inline-flex; align-items:center}
  .form-note a,.contact-form a,.mailto-line a,.stats .n a,.sec .lead a,.lede a,
  .intro-copy a,.cf-note a,.rc-sources a{padding-block:11px; display:inline-block}
  
  .hero-dots button,.rev-dots button,.rc-dot{position:relative}
  .hero-dots button::after,.rev-dots button::after,.rc-dot::after{
    content:""; position:absolute; left:50%; top:50%; width:44px; height:44px;
    transform:translate(-50%,-50%)}
}

@media (max-width:640px){
  body:has(.rchat.on) 
}
