/**
 * Geospatial Australia — Neumorphism UI (neumorphism.io / ke1221 + Praashoo7 loader)
 * ke1221 profile: soft dual-shadow buttons with hover lift and pressed inset morph.
 */
:root {
    --gsa-neu-bg: rgb(224, 224, 224);
    --gsa-neu-light: rgb(255, 255, 255);
    --gsa-neu-dark: rgb(190, 190, 190);
    --gsa-neu-text: rgb(26, 26, 26);
    --gsa-neu-radius: 50px;
    --gsa-neu-distance: 7px;
    --gsa-neu-blur: 14px;
    --gsa-neu-distance-hover: 10px;
    --gsa-neu-blur-hover: 18px;
}

/* neumorphism.io preset: page + header share the same base (/#e0e0e0 colour) */
html,
body,
.body-inner {
    background-color: var(--gsa-neu-bg) !important;
}

#header .header-inner,
#header #header-wrap {
    background-color: var(--gsa-neu-bg) !important;
}

/* White panels keep their own surface; buttons on them morph against white */
.card-body .gsa-neu-btn,
.card .card-body .gsa-neu-btn {
    --gsa-neu-bg: rgb(255, 255, 255);
    --gsa-neu-light: rgb(255, 255, 255);
    --gsa-neu-dark: rgb(209, 209, 209);
}

/* —— ke1221-style button base —— */
.gsa-neu-btn,
.btn.gsa-neu-btn,
a.gsa-neu-btn,
input.gsa-neu-btn[type="submit"],
input.gsa-neu-btn[type="button"],
button.gsa-neu-btn {
    position: relative;
    border: none !important;
    outline: none;
    border-radius: var(--gsa-neu-radius) !important;
    background: var(--gsa-neu-bg) !important;
    color: var(--gsa-neu-text) !important;
    font-weight: 600;
    letter-spacing: 0.35px;
    cursor: pointer;
    text-decoration: none !important;
    display: inline-block;
    vertical-align: middle;
    line-height: 1.35;
    padding: 0.65em 1.35em !important;
    transition:
        box-shadow 0.22s ease,
        transform 0.16s ease,
        color 0.2s ease,
        background 0.2s ease;
    box-shadow:
        var(--gsa-neu-distance) var(--gsa-neu-distance) var(--gsa-neu-blur) var(--gsa-neu-dark),
        calc(var(--gsa-neu-distance) * -1) calc(var(--gsa-neu-distance) * -1) var(--gsa-neu-blur) var(--gsa-neu-light);
}

.gsa-neu-btn:hover,
.gsa-neu-btn:focus-visible {
    transform: translateY(-2px);
    color: #1b3d2e !important;
    box-shadow:
        var(--gsa-neu-distance-hover) var(--gsa-neu-distance-hover) var(--gsa-neu-blur-hover) var(--gsa-neu-dark),
        calc(var(--gsa-neu-distance-hover) * -1) calc(var(--gsa-neu-distance-hover) * -1) var(--gsa-neu-blur-hover) var(--gsa-neu-light);
}

.gsa-neu-btn:active,
.gsa-neu-btn.is-pressed,
.gsa-neu-btn.is-sending {
    transform: translateY(0);
    box-shadow:
        inset var(--gsa-neu-distance) var(--gsa-neu-distance) var(--gsa-neu-blur) var(--gsa-neu-dark),
        inset calc(var(--gsa-neu-distance) * -1) calc(var(--gsa-neu-distance) * -1) var(--gsa-neu-blur) var(--gsa-neu-light);
}

.gsa-neu-btn:disabled,
.gsa-neu-btn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
}

/* Dark CTA (slider overlays) */
.gsa-neu-btn--dark {
    --gsa-neu-bg: #3d3d3d;
    --gsa-neu-light: #525252;
    --gsa-neu-dark: #2a2a2a;
    --gsa-neu-text: #f4f4f4;
    --gsa-neu-radius: 40px;
}

.gsa-neu-btn--dark:hover,
.gsa-neu-btn--dark:focus-visible {
    color: #d4e8d4 !important;
}

/* Contact send — warm light neu on card */
.gsa-neu-btn--send {
    --gsa-neu-radius: 40px;
    min-width: 250px;
    color: rgb(27, 61, 46) !important;
}

/* Compact nav pills */
.gsa-neu-btn--nav,
#mainMenu nav > ul > li > a {
    --gsa-neu-radius: 14px;
    --gsa-neu-distance: 5px;
    --gsa-neu-blur: 10px;
    --gsa-neu-distance-hover: 7px;
    --gsa-neu-blur-hover: 12px;
    font-size: 15px !important;
    padding: 8px 12px !important;
    margin: 2px 0;
}

#mainMenu nav > ul > li > a {
    display: inline-block;
    border: none !important;
    border-radius: var(--gsa-neu-radius) !important;
    background: var(--gsa-neu-bg) !important;
    color: var(--gsa-neu-text) !important;
    font-weight: 600;
    text-decoration: none !important;
    letter-spacing: 0.35px;
    transition:
        box-shadow 0.22s ease,
        transform 0.16s ease,
        color 0.2s ease;
    box-shadow:
        var(--gsa-neu-distance) var(--gsa-neu-distance) var(--gsa-neu-blur) var(--gsa-neu-dark),
        calc(var(--gsa-neu-distance) * -1) calc(var(--gsa-neu-distance) * -1) var(--gsa-neu-blur) var(--gsa-neu-light);
}

#mainMenu nav > ul > li > a:hover,
#mainMenu nav > ul > li > a:focus {
    transform: translateY(-2px);
    color: #1b3d2e !important;
    text-decoration: none !important;
    box-shadow:
        var(--gsa-neu-distance-hover) var(--gsa-neu-distance-hover) var(--gsa-neu-blur-hover) var(--gsa-neu-dark),
        calc(var(--gsa-neu-distance-hover) * -1) calc(var(--gsa-neu-distance-hover) * -1) var(--gsa-neu-blur-hover) var(--gsa-neu-light);
}

#mainMenu nav > ul > li > a:active,
#mainMenu nav > ul > li > a.is-pressed {
    transform: translateY(0);
    box-shadow:
        inset var(--gsa-neu-distance) var(--gsa-neu-distance) var(--gsa-neu-blur) var(--gsa-neu-dark),
        inset calc(var(--gsa-neu-distance) * -1) calc(var(--gsa-neu-distance) * -1) var(--gsa-neu-blur) var(--gsa-neu-light);
}

#mainMenu nav > ul > li > a:after {
    display: none !important;
}

#header.header-mini .header-inner #mainMenu > .container nav > ul > li > a,
#header.header-mini #header-wrap #mainMenu > .container nav > ul > li > a {
    font-size: 14px !important;
}

/* Icon-only header control */
.gsa-neu-btn--icon {
    --gsa-neu-radius: 50%;
    --gsa-neu-distance: 4px;
    --gsa-neu-blur: 8px;
    width: 42px;
    height: 42px;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* Bootstrap .btn-dark → neu on this site */
.btn.btn-dark:not(.no-neu),
a.btn.btn-dark:not(.no-neu),
button.btn.btn-dark:not(.no-neu) {
    --gsa-neu-radius: 40px;
}

.inspiro-slider .gsa-neu-btn--cta {
    margin-top: 8px;
    font-size: 15px;
}

.gsa-contact-send-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

/* —— Praashoo7-style neumorphic sending loader —— */
.gsa-prashoo7-loader {
    display: none;
    align-items: center;
    gap: 12px;
}

.gsa-prashoo7-loader.is-active {
    display: inline-flex;
    animation: gsa-prashoo7-fadein 0.35s ease;
}

.gsa-prashoo7-loader__shell {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    border-radius: 18px;
    background: var(--gsa-neu-bg);
    box-shadow:
        inset 4px 4px 8px var(--gsa-neu-dark),
        inset -4px -4px 8px var(--gsa-neu-light);
}

.gsa-prashoo7-loader__bar {
    width: 7px;
    height: 26px;
    border-radius: 6px;
    background: var(--gsa-neu-bg);
    box-shadow:
        3px 3px 6px var(--gsa-neu-dark),
        -3px -3px 6px var(--gsa-neu-light);
    animation: gsa-prashoo7-wave 0.85s ease-in-out infinite;
    transform-origin: center bottom;
}

.gsa-prashoo7-loader__bar:nth-child(2) {
    animation-delay: 0.14s;
}

.gsa-prashoo7-loader__bar:nth-child(3) {
    animation-delay: 0.28s;
}

.gsa-prashoo7-loader__label {
    font-size: 13px;
    font-weight: 600;
    color: #1b3d2e;
    letter-spacing: 0.2px;
}

@keyframes gsa-prashoo7-wave {
    0%, 100% {
        transform: scaleY(0.4);
        opacity: 0.55;
    }
    50% {
        transform: scaleY(1);
        opacity: 1;
    }
}

@keyframes gsa-prashoo7-fadein {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 991.98px) {
    #mainMenu nav > ul > li {
        float: none;
        margin: 4px 0;
    }

    #mainMenu nav > ul > li > a {
        font-size: 16px !important;
        padding: 10px 12px !important;
    }

    .gsa-contact-send-wrap {
        flex-direction: column;
        align-items: flex-start;
    }
}
