/* Shared motion language. */
.mzs-page [data-reveal]{opacity:1;transform:none}
.mzs-page.mzs-js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .72s var(--mzs-ease),transform .82s var(--mzs-ease);transition-delay:calc(var(--mzs-reveal-index,0)*55ms)}
.mzs-page.mzs-js [data-reveal].is-visible{opacity:1;transform:none}
.mzs-action{isolation:isolate;overflow:hidden;transform:translate3d(var(--mzs-magnet-x,0),var(--mzs-magnet-y,0),0);will-change:transform}
.mzs-action::before{display:none}
.mzs-action>[aria-hidden="true"]{transition:transform .3s var(--mzs-ease),background .3s,color .3s,border-color .3s}
.mzs-action:hover>[aria-hidden="true"],.mzs-action:focus-visible>[aria-hidden="true"]{transform:translate(3px,-2px)}
.mzs-page :where(a,button,input,textarea,select):focus{outline:0}
.mzs-page :where(a,button):not(.mzs-action):focus-visible{box-shadow:0 0 0 1px color-mix(in srgb,var(--mzs-bg-bottom) 72%,transparent),0 0 0 4px color-mix(in srgb,var(--mzs-aqua) 30%,transparent)}
.mzs-page :where(.mzs-builder-step,.mzs-capability-node,.mzs-diagnosis-option):focus-visible{box-shadow:0 0 0 1px color-mix(in srgb,var(--mzs-aqua) 72%,transparent),0 0 0 7px color-mix(in srgb,var(--mzs-aqua) 8%,transparent)}
.mzs-page :where(input,textarea,select):focus-visible{border-color:var(--mzs-aqua);box-shadow:0 0 0 3px color-mix(in srgb,var(--mzs-aqua) 10%,transparent),0 12px 36px rgba(0,12,14,.16)}
.mzs-modal-frame{position:absolute;inset:14px;pointer-events:none;z-index:0}
.mzs-modal-frame i{position:absolute;background:linear-gradient(90deg,transparent,var(--mzs-aqua),transparent);opacity:.66;transform-origin:left}
.mzs-modal-frame i:nth-child(1),.mzs-modal-frame i:nth-child(3){left:0;width:100%;height:1px;transform:scaleX(0)}
.mzs-modal-frame i:nth-child(1){top:0}.mzs-modal-frame i:nth-child(3){bottom:0;transform-origin:right}
.mzs-modal-frame i:nth-child(2),.mzs-modal-frame i:nth-child(4){top:0;width:1px;height:100%;background:linear-gradient(180deg,transparent,var(--mzs-aqua),transparent);transform:scaleY(0)}
.mzs-modal-frame i:nth-child(2){right:0;transform-origin:top}.mzs-modal-frame i:nth-child(4){left:0;transform-origin:bottom}
.mzs-modal[open] .mzs-modal-frame i:nth-child(1){animation:mzs-frame-x .52s .08s var(--mzs-ease) forwards}.mzs-modal[open] .mzs-modal-frame i:nth-child(2){animation:mzs-frame-y .46s .23s var(--mzs-ease) forwards}.mzs-modal[open] .mzs-modal-frame i:nth-child(3){animation:mzs-frame-x .52s .36s var(--mzs-ease) forwards}.mzs-modal[open] .mzs-modal-frame i:nth-child(4){animation:mzs-frame-y .46s .49s var(--mzs-ease) forwards}
.mzs-page.mzs-js.mzs-motion-soft [data-reveal]{transition-duration:.55s}.mzs-motion-soft .mzs-action::before{display:none}
.mzs-page.mzs-motion-off :where(*,*::before,*::after){animation:none;transition:none;scroll-behavior:auto}
@keyframes mzs-frame-x{to{transform:scaleX(1)}}@keyframes mzs-frame-y{to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.mzs-page.mzs-page :where(*,*::before,*::after){animation-duration:.01ms;animation-iteration-count:1;scroll-behavior:auto;transition-duration:.01ms}.mzs-page [data-reveal]{opacity:1;transform:none}}

/* Shared view-transition system for managed pages. */
@view-transition { navigation: auto; }
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-old(mzs-shared-nav),::view-transition-new(mzs-shared-nav),
::view-transition-old(mzs-shared-footer),::view-transition-new(mzs-shared-footer){animation-duration:180ms;animation-timing-function:var(--mzs-ease)}
::view-transition-old(mzs-page-body){animation:mzsPageOut 190ms var(--mzs-ease) both}
::view-transition-new(mzs-page-body){animation:mzsPageIn 260ms var(--mzs-ease) both}
@keyframes mzsPageOut{to{opacity:0;transform:translateY(-6px)}}
@keyframes mzsPageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:960px),(max-width:1100px) and (max-height:620px){
  ::view-transition-old(mzs-page-body){animation-duration:150ms}
  ::view-transition-new(mzs-page-body){animation-duration:210ms}
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(mzs-page-body),::view-transition-new(mzs-page-body),
  ::view-transition-old(mzs-shared-nav),::view-transition-new(mzs-shared-nav),
  ::view-transition-old(mzs-shared-footer),::view-transition-new(mzs-shared-footer){animation:none}
}

/* Host-theme interaction isolation. Broad WordPress theme button states cannot override the agency UI. */
.mzs-page.mzs-page.mzs-page :where(
  button:not(.mzs-action):not(.mzs-radio-play):not(.mzs-radio-station):not(.mzs-mobile-swipe-next):not([data-mzs-native-swipe-next]):not([disabled]):not(.is-active):not(.is-selected):not(.is-chosen):not([aria-pressed="true"]):not([aria-selected="true"]):hover,
  button:not(.mzs-action):not(.mzs-radio-play):not(.mzs-radio-station):not(.mzs-mobile-swipe-next):not([data-mzs-native-swipe-next]):not([disabled]):not(.is-active):not(.is-selected):not(.is-chosen):not([aria-pressed="true"]):not([aria-selected="true"]):focus,
  button:not(.mzs-action):not(.mzs-radio-play):not(.mzs-radio-station):not(.mzs-mobile-swipe-next):not([data-mzs-native-swipe-next]):not([disabled]):not(.is-active):not(.is-selected):not(.is-chosen):not([aria-pressed="true"]):not([aria-selected="true"]):focus-visible,
  button:not(.mzs-action):not(.mzs-radio-play):not(.mzs-radio-station):not(.mzs-mobile-swipe-next):not([data-mzs-native-swipe-next]):not([disabled]):not(.is-active):not(.is-selected):not(.is-chosen):not([aria-pressed="true"]):not([aria-selected="true"]):active
){
  -webkit-appearance:none;appearance:none;
  background:var(--mzs-hover-surface);
  background-color:color-mix(in srgb,var(--mzs-hover-surface) 72%,transparent);
  background-image:none;
  text-shadow:none;
  filter:none;
}
.mzs-page.mzs-page.mzs-page :where(
  button.is-active:hover,button.is-active:focus,button.is-active:focus-visible,
  button.is-selected:hover,button.is-selected:focus,button.is-selected:focus-visible,
  button.is-chosen:hover,button.is-chosen:focus,button.is-chosen:focus-visible,
  button[aria-pressed="true"]:hover,button[aria-pressed="true"]:focus,button[aria-pressed="true"]:focus-visible,
  button[aria-selected="true"]:hover,button[aria-selected="true"]:focus,button[aria-selected="true"]:focus-visible
){
  -webkit-appearance:none;appearance:none;
  background:var(--mzs-hover-surface);
  background-color:color-mix(in srgb,var(--mzs-hover-surface) 88%,var(--mzs-bg-bottom));
  background-image:none;
  text-shadow:none;
  filter:none;
}

/* Shared PJAX entry: dim first, then a restrained content settle. */
.mzs-view-is-entering{opacity:.94;transform:translate3d(0,6px,0);transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}
.mzs-view-is-entering.is-entered{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.mzs-view-is-entering{transition:none;transform:none;opacity:1}}

/* PJAX uses one restrained dim transition on desktop and mobile. */
body.mzs-ajax-loading::before,
body.mzs-route-transition::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:998;
  pointer-events:none;
  background:rgba(0,18,18,.14);
  -webkit-backdrop-filter:brightness(.96) saturate(.97);
  backdrop-filter:brightness(.96) saturate(.97);
}
body.mzs-ajax-loading::before{animation:mzsAjaxDimIn .14s ease-out both}
body.mzs-route-transition::before{animation:mzsAjaxDimOut .42s cubic-bezier(.22,1,.36,1) both;transform:none}
body.mzs-ajax-loading::after{
  content:"";position:fixed;left:0;right:0;top:0;z-index:1000;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,#aeefe5,#f0c66f,transparent);
  transform-origin:left;animation:mzsAjaxProgress 1s ease-in-out infinite;
}
@keyframes mzsAjaxProgress{0%{transform:scaleX(.08);opacity:.5}55%{transform:scaleX(.72);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes mzsAjaxDimIn{from{opacity:0}to{opacity:1}}
@keyframes mzsAjaxDimOut{from{opacity:1}to{opacity:0}}

/* Route direction never changes the visual language. */
body[data-mzs-route-direction="back"].mzs-route-transition::before{transform:none;animation-name:mzsAjaxDimOut}

@media (prefers-reduced-motion:reduce){
  body.mzs-ajax-loading::before{animation:none;opacity:.12}
  body.mzs-route-transition::before{animation:none;opacity:0}
  body.mzs-ajax-loading::after{animation:none;opacity:.7}
}
