/**
 * Global site overrides loaded on every page.
 *
 * - Offset Chaty floating WhatsApp widget so it does not cover Astra
 *   #ast-scroll-top button (client request 05 Apr 21:23).
 */
#chaty-widget-0,
[id^="chaty-widget"],
.chaty-widget-is-active,
.chaty-widget {
    bottom: 90px !important;
}

@media (max-width: 768px) {
    #chaty-widget-0,
    [id^="chaty-widget"],
    .chaty-widget-is-active,
    .chaty-widget {
        bottom: 80px !important;
    }
}

/* ─── Elementor icon-box icons: hard fallback ──────────────────────────────
 * Some inline SVGs ship with width/height="16" or "512" attributes that
 * only render correctly once Elementor's per-element rules size them. When
 * LiteSpeed UCSS strips those one-off rules, the WhatsApp glyph collapses
 * to 16px and visually disappears next to siblings. Force a sane size + a
 * sensible currentColor target so the icons stay visible regardless.
 */
.elementor-icon-box-icon .elementor-icon {
    color: #2C7158;
}
.elementor-icon-box-icon .elementor-icon svg {
    width: 32px;
    height: 32px;
    fill: currentColor;
}

/* Make icon-box wrappers feel like a single clickable card. The actual
 * navigation is wired in JS (see afs-icon-box-link.js) — this rule only
 * sells the affordance. */
.elementor-icon-box-wrapper.afs-clickable {
    cursor: pointer;
}

/* ─── Astra scroll-to-top: keep visible after scroll ───────────────────────
 * Astra renders #ast-scroll-top inline but its display/transform rules can
 * be UCSS-pruned. Re-state the essentials so the button always works. */
#ast-scroll-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 99;
    background: #2C7158;
    color: #fff;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
#ast-scroll-top.ast-scroll-top-show {
    display: flex;
}
#ast-scroll-top svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}
