/* Responsive navigation and quick contact share the existing site palette. */
@media (min-width: 601px) { .fa-hide-desktop { display: none !important; } }
@media (max-width: 600px) { .fa-hide-mobile { display: none !important; } }
.fa-contact-details dd, .fa-footer-address, .fa-footer-company, .fa-brand-name { overflow-wrap: anywhere; }
.fa-header .fa-wordmark, .fa-footer .fa-wordmark { min-width: 0; max-width: 100%; white-space: normal; }
.fa-brand-name { min-width: 0; }
:root {
  --fa-dock-size: 56px;
  --fa-dock-edge: clamp(16px, 2.2vw, 32px);
  --fa-dock-right: max(var(--fa-dock-edge), env(safe-area-inset-right, 0px));
  --fa-dock-bottom: max(var(--fa-dock-edge), env(safe-area-inset-bottom, 0px));
}

.fa-contact-dock {
  position: fixed;
  z-index: 40;
  right: var(--fa-dock-right);
  bottom: var(--fa-dock-bottom);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
}
.fa-contact-dock :is(.fa-dock-control, .fa-back-to-top) {
  position: relative;
  inset: auto;
  display: grid;
  flex: 0 0 var(--fa-dock-size);
  place-items: center;
  width: var(--fa-dock-size);
  height: var(--fa-dock-size);
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 1px solid #eb692d66;
  border-radius: 50%;
  color: var(--fa-signal);
  background: var(--fa-white);
  box-shadow: 0 5px 22px #10252d12;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}
.fa-contact-dock svg {
  display: block;
  width: 26px;
  height: 26px;
  pointer-events: none;
}
.fa-contact-dock .fa-dock-whatsapp {
  border-color: #128c50;
  color: var(--fa-white);
  background: #128c50;
}
.fa-contact-dock .fa-back-to-top > span:not(.screen-reader-text):not(.fa-dock-label) {
  display: block;
  width: 13px;
  height: 13px;
  margin-top: 6px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  font-size: 0;
  transform: rotate(45deg);
}
.fa-contact-dock .fa-back-to-top:hover {
  color: var(--fa-signal);
  background: var(--fa-white);
  transform: none;
}
.fa-dock-label {
  position: absolute;
  top: 50%;
  right: calc(100% + 12px);
  width: max-content;
  max-width: min(240px, calc(100vw - var(--fa-dock-size) - 52px));
  padding: 8px 12px;
  border-radius: 5px;
  color: var(--fa-white);
  background: var(--fa-ink);
  box-shadow: 0 4px 14px #10252d18;
  font: 600 .78rem/1.5 var(--fa-body);
  text-align: left;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(4px, -50%);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.fa-contact-dock :focus-visible .fa-dock-label {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}
.fa-contact-dock :is(.fa-dock-control, .fa-back-to-top):active { transform: scale(.96); }
.fa-contact-dock[hidden],
.fa-contact-dock [hidden],
body:has(.wp-block-navigation__responsive-container.is-menu-open) .fa-contact-dock,
.fa-support-open .fa-contact-dock,
.fa-contact-dock.is-editing { display: none !important; }

.fa-support-dialog {
  position: fixed;
  inset: auto calc(var(--fa-dock-right) + var(--fa-dock-size) + 16px) var(--fa-dock-bottom) auto;
  width: min(420px, calc(100vw - 40px));
  max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  margin: 0;
  padding: 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--fa-line);
  border-radius: 16px;
  color: var(--fa-ink);
  background: var(--fa-white);
  box-shadow: 0 20px 70px #10252d33;
  font-family: var(--fa-body);
}
.fa-support-dialog:not([open]) { display: none; }
.fa-support-dialog[open] { animation: fa-support-enter .2s ease both; }
.fa-support-dialog::backdrop { background: #10252d80; }
.fa-support-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.fa-support-heading h2 { margin: 0; padding-top: 5px; font-size: 1.55rem; line-height: 1.2; letter-spacing: -.025em; }
.fa-support-close {
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: -7px -7px 0 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--fa-muted);
  background: var(--fa-paper);
  cursor: pointer;
}
.fa-support-close svg { width: 20px; height: 20px; }
.fa-support-dialog > p { margin: 18px 0; color: var(--fa-muted); font-size: .9rem; line-height: 1.65; }
.fa-support-dialog .fa-support-product { padding: 12px 14px; border-left: 2px solid var(--fa-signal); color: var(--fa-ink); background: var(--fa-paper); font-weight: 600; overflow-wrap: anywhere; }
.fa-support-links { display: flex; flex-direction: column; gap: 10px; }
.fa-support-links > a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 16px; border: 1px solid var(--fa-line); border-radius: 5px; font-size: .875rem; font-weight: 600; line-height: 1.45; text-decoration: none; overflow-wrap: anywhere; }
.fa-support-links > .fa-support-quote { justify-content: space-between; border-color: var(--fa-signal); }
.fa-support-links > .fa-support-email { color: var(--fa-ink); background: var(--fa-white); }
.fa-support-links > .fa-support-whatsapp { border-color: #128c50; color: var(--fa-white); background: #128c50; }
.fa-support-dialog .fa-support-phone { margin-bottom: 0; text-align: center; font-size: .8rem; }
.fa-support-phone a { display: inline-block; min-height: 44px; padding-block: 12px; color: var(--fa-muted); }

@media (hover: hover) and (pointer: fine) {
  .fa-contact-dock :is(.fa-dock-control, .fa-back-to-top):hover { border-color: var(--fa-signal); box-shadow: 0 8px 26px #10252d24; transform: translateY(-3px); }
  .fa-contact-dock .fa-dock-whatsapp:hover { border-color: #087742; background: #087742; }
  .fa-contact-dock :is(.fa-dock-control, .fa-back-to-top):hover .fa-dock-label { opacity: 1; visibility: visible; transform: translate(0, -50%); }
  .fa-support-close:hover { color: var(--fa-ink); background: #e7ece9; }
  .fa-support-links > .fa-support-email:hover { border-color: var(--fa-signal); background: var(--fa-paper); }
  .fa-support-links > .fa-support-whatsapp:hover { border-color: #087742; background: #087742; }
}

@media (max-width: 1050px) {
  :root { --fa-dock-size: 54px; }
  .fa-header { justify-content: space-between; }
  .fa-navigation .wp-block-navigation__responsive-container-open,
  .fa-navigation .wp-block-navigation__responsive-container-close {
    position: relative;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 10px;
    border: 0;
    border-radius: 3px;
    color: var(--fa-white);
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .fa-navigation .wp-block-navigation__responsive-container-open svg { display: none; }
  .fa-navigation .wp-block-navigation__responsive-container-open::before { display: block; width: 24px; height: 2px; border-radius: 1px; background: currentColor; box-shadow: 0 -7px 0 currentColor, 0 7px 0 currentColor; content: ''; }
  .fa-navigation .wp-block-navigation__responsive-container-close { position: absolute; top: 0; right: 0; display: flex; }
  .fa-navigation .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open {
    inset: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    padding: max(20px, env(safe-area-inset-top, 0px)) max(var(--fa-gutter), env(safe-area-inset-right, 0px)) max(28px, env(safe-area-inset-bottom, 0px)) max(var(--fa-gutter), env(safe-area-inset-left, 0px)) !important;
    overflow: hidden;
    overscroll-behavior: contain;
    transform: none !important;
  }
  .fa-navigation .is-menu-open .wp-block-navigation__responsive-container-close { position: fixed; top: max(20px, env(safe-area-inset-top, 0px)); right: max(var(--fa-gutter), env(safe-area-inset-right, 0px)); z-index: 2; background: var(--fa-ink); }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; max-height: calc(100vh - 48px); max-height: calc(100dvh - max(20px, env(safe-area-inset-top, 0px)) - max(28px, env(safe-area-inset-bottom, 0px))); overflow-y: auto; overscroll-behavior: contain; }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { align-items: stretch; }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container { width: 100%; min-width: 0; align-items: stretch; padding: 6px 0 0 18px; border-left: 1px solid #ffffff40; }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; align-items: stretch; }
  .fa-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: 100%; justify-content: flex-start; text-align: left; }
  .fa-navigation .is-menu-open .wp-block-navigation__responsive-close { width: 100%; max-width: 640px; margin-inline: auto; }
  .fa-navigation .is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; padding-top: 76px; padding-bottom: 24px; animation: fa-menu-enter .22s ease both; }
  .fa-navigation .is-menu-open .wp-block-navigation__container { width: 100%; align-items: stretch; gap: 6px; font-size: clamp(1.15rem, 3vw, 1.45rem); }
  .fa-navigation .is-menu-open .wp-block-navigation-item { width: 100%; align-items: stretch; }
  .fa-navigation .is-menu-open .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: flex-start; width: 100%; min-height: 48px; padding: 10px 0; text-align: left; }
  .fa-navigation .is-menu-open .wp-block-navigation__submenu-container { width: 100%; }
  .fa-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 44px; font-size: 1rem; }
  .fa-navigation .is-menu-open .wp-block-navigation-submenu__toggle { min-width: 44px; min-height: 44px; }
  .fa-header .fa-navigation .is-menu-open .wp-block-navigation-item.fa-nav-cta > .wp-block-navigation-item__content { display: flex; min-height: 48px; justify-content: center; padding: 12px 20px; }
}

@media (max-width: 600px) {
  :root { --fa-dock-size: 48px; --fa-dock-edge: 14px; }
  .fa-contact-dock svg { width: 23px; height: 23px; }
  .fa-contact-dock .fa-back-to-top > span:not(.screen-reader-text):not(.fa-dock-label) { width: 12px; height: 12px; }
  .fa-support-dialog {
    inset: auto 0 0;
    width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px - env(safe-area-inset-top, 0px));
    padding: 24px max(20px, env(safe-area-inset-right, 0px)) max(20px, env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
    border-bottom: 0;
    border-radius: 18px 18px 0 0;
  }
  .fa-support-heading h2 { font-size: 1.4rem; }
}

@media (max-height: 480px) and (min-width: 601px) {
  .fa-support-dialog { bottom: 16px; padding: 22px; }
  .fa-support-dialog > p { margin-block: 12px; }
}

@keyframes fa-menu-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fa-support-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .fa-contact-dock :is(.fa-dock-control, .fa-back-to-top), .fa-dock-label { transition: none; }
  .fa-contact-dock :is(.fa-dock-control, .fa-back-to-top):is(:hover, :active) { transform: none; }
  .fa-support-dialog[open], .fa-navigation .is-menu-open .wp-block-navigation__responsive-container-content { animation: none; }
}
