/* Contact disclosure below Maxi (1200), site menus and native modal dialogs. */
.fp-mobile-contact { display: none; }

@media (max-width: 768px) {
  body.fp-mobile-contact-ready .sticky-cta { display: none; }
  .fp-mobile-contact {
    display: block;
    position: fixed;
    z-index: 1100;
    left: max(16px, env(safe-area-inset-left, 0px));
    bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    font-family: var(--sans, "Barlow", system-ui, sans-serif);
    font-size: 16px;
    line-height: 1.3;
    color: #173c2c;
  }
  .fp-mobile-contact-toggle {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 116px;
    min-height: 52px;
    margin: 0;
    padding: 12px 17px;
    border: 0;
    border-radius: 999px;
    background: #0f6e45;
    color: #fff;
    box-shadow: 0 3px 8px rgb(15 55 35 / 18%);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    touch-action: manipulation;
    transition: background-color 160ms ease-out;
  }
  .fp-mobile-contact-toggle:active { background: #095332; }
  .fp-mobile-contact svg {
    display: block;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    color: inherit;
  }
  .fp-mobile-contact .fp-mobile-contact-close,
  .fp-mobile-contact.is-open .fp-mobile-contact-chat { display: none; }
  .fp-mobile-contact.is-open .fp-mobile-contact-close { display: block; }
  .fp-mobile-contact-links {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 0;
    /* Leave the right side free for the separate Maxi registration widget. */
    width: min(248px, calc(100vw - 128px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
    box-sizing: border-box;
    max-height: calc(100vh - 112px - env(safe-area-inset-bottom, 0px));
    max-height: calc(100dvh - 112px - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 7px;
    border: 0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 20px rgb(15 55 35 / 20%);
  }
  .fp-mobile-contact-links[hidden] { display: none; }
  .fp-mobile-contact-links a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    box-sizing: border-box;
    padding: 10px;
    border-radius: 8px;
    color: #173c2c;
    background: #fff;
    font: inherit;
    font-weight: 500;
    text-decoration: none;
    overflow-wrap: anywhere;
    touch-action: manipulation;
  }
  .fp-mobile-contact-links a:active { background: #e9f5ef; }
  .fp-mobile-contact-links .ic-whatsapp { color: #0f6e45; }
  .fp-mobile-contact-toggle:focus-visible,
  .fp-mobile-contact-links a:focus-visible {
    outline: 3px solid #0f6e45;
    outline-offset: 3px;
  }
  body.fp-mnav-lock .fp-mobile-contact,
  body:has(.mm-panel.open) .fp-mobile-contact,
  body:has(dialog[open]) .fp-mobile-contact,
  body:has(.cookie-banner.visible) .fp-mobile-contact,
  body:has(.cookie-modal-overlay.visible) .fp-mobile-contact {
    visibility: hidden;
    pointer-events: none;
  }
}

@media (max-width: 768px) and (hover: hover) {
  .fp-mobile-contact-toggle:hover { background: #095332; }
  .fp-mobile-contact-links a:hover { background: #e9f5ef; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-mobile-contact-toggle { transition: none; }
}
@media print {
  .fp-mobile-contact { display: none; }
}
