/* V108 — animated compact action dock + centered appointment callout */

/* Center the entire appointment callout on every screen size. */
.visit .visit-card{
  text-align:center!important;
  align-items:center!important;
  justify-items:center!important;
  margin-inline:auto!important;
}
.visit .visit-card .eyebrow,
.visit .visit-card h2,
.visit .visit-card p{
  width:100%!important;
  max-width:760px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.visit .visit-card .button{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Give the compact floating action dock a visible, premium idle animation. */
@media (max-width:820px){
  .mobile-action-bar.is-visible{
    animation:dockFloat108 4.6s ease-in-out infinite!important;
  }

  .mobile-action-bar a,
  .mobile-action-bar > button:not(.mobile-action-close){
    isolation:isolate!important;
    will-change:transform,box-shadow,filter!important;
    animation:dockButtonEnergy108 3.2s ease-in-out infinite!important;
  }
  .mobile-action-bar.is-visible > :nth-child(2){animation-delay:0s!important}
  .mobile-action-bar.is-visible > :nth-child(3){animation-delay:.42s!important}
  .mobile-action-bar.is-visible > :nth-child(4){animation-delay:.84s!important}

  .mobile-action-bar a::before,
  .mobile-action-bar > button:not(.mobile-action-close)::before{
    content:""!important;
    position:absolute!important;
    inset:-2px!important;
    border-radius:inherit!important;
    z-index:-1!important;
    pointer-events:none!important;
    background:linear-gradient(105deg,transparent 12%,rgba(255,255,255,.32) 43%,rgba(255,48,67,.42) 50%,transparent 62%)!important;
    background-size:230% 100%!important;
    opacity:.65!important;
    animation:dockSweep108 3.4s linear infinite!important;
  }

  .mobile-action-bar .mobile-action-icon{
    animation:dockIconPulse108 2.25s ease-in-out infinite!important;
  }
  .mobile-action-bar.is-visible > :nth-child(3) .mobile-action-icon{animation-delay:.35s!important}
  .mobile-action-bar.is-visible > :nth-child(4) .mobile-action-icon{animation-delay:.7s!important}

  .mobile-action-bar .mobile-action-primary{
    animation:dockPrimaryEnergy108 2.8s ease-in-out infinite!important;
  }

  .mobile-action-bar a:active,
  .mobile-action-bar > button:not(.mobile-action-close):active{
    transform:scale(.97)!important;
    filter:brightness(1.16)!important;
  }
}

@keyframes dockFloat108{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  25%{transform:translate3d(-3px,-5px,0) scale(1.005)}
  50%{transform:translate3d(2px,-8px,0) scale(1.01)}
  75%{transform:translate3d(4px,-3px,0) scale(1.004)}
}
@keyframes dockButtonEnergy108{
  0%,100%{transform:translateX(0) scale(1);box-shadow:0 12px 34px rgba(0,0,0,.48),0 0 0 1px rgba(239,35,51,.13),0 0 10px rgba(239,35,51,.12),inset 0 1px 0 rgba(255,255,255,.08)}
  45%{transform:translateX(-3px) scale(1.018);box-shadow:0 16px 38px rgba(0,0,0,.52),0 0 0 1px rgba(255,69,84,.3),0 0 25px rgba(239,35,51,.34),inset 0 1px 0 rgba(255,255,255,.14)}
  52%{transform:translateX(2px) scale(1.012)}
  58%{transform:translateX(-1px) scale(1.016)}
}
@keyframes dockPrimaryEnergy108{
  0%,100%{filter:brightness(1);box-shadow:0 13px 34px rgba(232,20,37,.34),0 0 10px rgba(232,20,37,.18),inset 0 1px 0 rgba(255,255,255,.26)}
  50%{filter:brightness(1.18);box-shadow:0 16px 42px rgba(232,20,37,.48),0 0 30px rgba(255,31,51,.52),inset 0 1px 0 rgba(255,255,255,.38)}
}
@keyframes dockIconPulse108{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.12);filter:brightness(1.28)}
}
@keyframes dockSweep108{
  0%{background-position:180% 0}
  100%{background-position:-80% 0}
}

@media (prefers-reduced-motion:reduce){
  .mobile-action-bar.is-visible,
  .mobile-action-bar a,
  .mobile-action-bar > button:not(.mobile-action-close),
  .mobile-action-bar .mobile-action-icon,
  .mobile-action-bar a::before,
  .mobile-action-bar > button:not(.mobile-action-close)::before{
    animation:none!important;
  }
}
