/* =========================================================
   SDR Floating Action Dock
   Premium / Modern / Minimal
   Names preserved 100%
   ========================================================= */

#sdr-fab-root {
    position: fixed;
    right: clamp(16px, 2.2vw, 32px);
    bottom: clamp(16px, 2.2vw, 32px);

    z-index: 999999;

    display: flex;
    align-items: center;
    gap: 10px;

    direction: ltr;

    padding: 7px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.72);

    border: 1px solid rgba(255, 255, 255, 0.9);

    box-shadow:
        0 2px 5px rgba(15, 23, 42, 0.04),
        0 8px 24px rgba(15, 23, 42, 0.08),
        0 20px 45px rgba(15, 23, 42, 0.10);

    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);

    isolation: isolate;

    user-select: none;
    -webkit-user-select: none;

    animation: sdr-fab-enter 0.65s cubic-bezier(.16, 1, .3, 1) both;
}


/* =========================================================
   Dock Glow
   ========================================================= */

#sdr-fab-root::before {
    content: "";

    position: absolute;
    inset: -1px;

    border-radius: inherit;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.95),
            rgba(207,244,228,0.35),
            rgba(255,255,255,0.75)
        );

    opacity: 0.65;

    pointer-events: none;

    z-index: -1;
}


/* =========================================================
   Base Button
   ========================================================= */

#sdr-fab-root .sdr-fab-btn {
    position: relative;

    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    text-decoration: none;

    border: 0;
    outline: none;

    cursor: pointer;

    transform: translate3d(0, 0, 0);

    -webkit-tap-highlight-color: transparent;

    transition:
        transform 0.35s cubic-bezier(.16, 1, .3, 1),
        box-shadow 0.35s ease,
        background 0.35s ease,
        border-color 0.35s ease;
}


/* =========================================================
   Premium Light Reflection
   ========================================================= */

#sdr-fab-root .sdr-fab-btn::before {
    content: "";

    position: absolute;

    top: -80%;
    left: -45%;

    width: 55%;
    height: 260%;

    transform: rotate(25deg) translateX(-180%);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,0.38),
            transparent
        );

    pointer-events: none;

    transition:
        transform 0.7s cubic-bezier(.16, 1, .3, 1);
}


#sdr-fab-root .sdr-fab-btn:hover::before {
    transform: rotate(25deg) translateX(420%);
}


/* =========================================================
   HOME BUTTON
   ========================================================= */

#sdr-fab-root .sdr-fab-home {
    width: clamp(48px, 4.2vw, 58px);
    height: clamp(48px, 4.2vw, 58px);

    flex: 0 0 auto;

    border-radius: 50%;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #e8faf2 100%
        );

    border: 1px solid rgba(7, 145, 130, 0.22);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,0.95),
        inset 0 -1px 1px rgba(7,145,130,0.06),
        0 3px 7px rgba(7,145,130,0.08),
        0 9px 20px rgba(7,145,130,0.13);
}


/* Home Inner Ring */

#sdr-fab-root .sdr-fab-home::after {
    content: "";

    position: absolute;
    inset: 5px;

    border-radius: 50%;

    border: 1px solid rgba(7,145,130,0.08);

    pointer-events: none;
}


/* Home Icon */

#sdr-fab-root .sdr-fab-home img {
    position: relative;
    z-index: 2;

    width: 54%;
    height: 54%;

    display: block;

    object-fit: contain;

    transition:
        transform 0.4s cubic-bezier(.16, 1, .3, 1);
}


/* =========================================================
   HOME HOVER
   ========================================================= */

#sdr-fab-root .sdr-fab-home:hover {
    transform:
        translateY(-5px)
        scale(1.035);

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #d9f7e9 100%
        );

    border-color: rgba(7,145,130,0.42);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,1),
        0 5px 10px rgba(7,145,130,0.10),
        0 14px 30px rgba(7,145,130,0.20),
        0 0 0 5px rgba(7,145,130,0.055);
}


#sdr-fab-root .sdr-fab-home:hover img {
    transform:
        scale(1.10)
        rotate(-3deg);
}


/* =========================================================
   CONTACT BUTTON
   ========================================================= */

#sdr-fab-root .sdr-fab-contact {
    min-width: clamp(150px, 14vw, 184px);
    height: clamp(48px, 4.2vw, 58px);

    padding: 0 clamp(16px, 1.5vw, 21px);

    gap: 10px;

    border-radius: 999px;

    background:
        linear-gradient(
            135deg,
            #0b9a89 0%,
            #078e80 45%,
            #05776c 100%
        );

    color: #fbf1e7;

    border: 1px solid rgba(255,255,255,0.20);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,0.20),
        inset 0 -1px 1px rgba(0,0,0,0.08),
        0 4px 8px rgba(7,145,130,0.12),
        0 10px 25px rgba(7,145,130,0.22);
}


/* Contact subtle glow */

#sdr-fab-root .sdr-fab-contact::after {
    content: "";

    position: absolute;

    inset: 1px;

    border-radius: inherit;

    border: 1px solid rgba(255,255,255,0.08);

    pointer-events: none;
}


/* =========================================================
   CONTACT TEXT
   ========================================================= */

#sdr-fab-root .sdr-fab-contact span {
    position: relative;
    z-index: 2;

    font-size: clamp(13px, 1.05vw, 15px);

    font-weight: 750;

    line-height: 1;

    letter-spacing: -0.015em;

    white-space: nowrap;

    color: #fbf1e7;

    text-shadow:
        0 1px 2px rgba(0,0,0,0.08);

    transition:
        color 0.3s ease,
        transform 0.3s cubic-bezier(.16, 1, .3, 1);
}


/* =========================================================
   CONTACT ICON
   ========================================================= */

#sdr-fab-root .sdr-fab-contact img {
    position: relative;
    z-index: 2;

    width: clamp(21px, 1.9vw, 27px);
    height: clamp(21px, 1.9vw, 27px);

    display: block;

    object-fit: contain;

    filter:
        brightness(0)
        saturate(100%)
        invert(95%)
        sepia(10%)
        saturate(500%)
        hue-rotate(320deg)
        brightness(105%);

    transition:
        transform 0.4s cubic-bezier(.16, 1, .3, 1);
}


/* =========================================================
   CONTACT HOVER
   ========================================================= */

#sdr-fab-root .sdr-fab-contact:hover {
    transform:
        translateY(-5px)
        scale(1.025);

    background:
        linear-gradient(
            135deg,
            #dff9ec 0%,
            #c9f2df 55%,
            #bcebd7 100%
        );

    color: #067d70;

    border-color: rgba(7,145,130,0.20);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,0.95),
        0 5px 10px rgba(7,145,130,0.10),
        0 15px 32px rgba(7,145,130,0.20),
        0 0 0 5px rgba(7,145,130,0.045);
}


#sdr-fab-root .sdr-fab-contact:hover span {
    color: #067d70;

    transform: translateX(-1px);
}


#sdr-fab-root .sdr-fab-contact:hover img {
    transform:
        scale(1.12)
        translateX(1px);
}


/* =========================================================
   ACTIVE / PRESS
   ========================================================= */

#sdr-fab-root .sdr-fab-btn:active {
    transform:
        translateY(-1px)
        scale(0.96);

    transition-duration: 0.12s;
}


#sdr-fab-root .sdr-fab-btn:active img {
    transform: scale(0.94);
}


/* =========================================================
   ACCESSIBILITY / KEYBOARD
   ========================================================= */

#sdr-fab-root .sdr-fab-btn:focus-visible {
    outline: none;

    box-shadow:
        0 0 0 3px rgba(255,255,255,0.95),
        0 0 0 6px rgba(7,145,130,0.35),
        0 12px 28px rgba(7,145,130,0.20);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    #sdr-fab-root {
        right: 10px;
        bottom: 10px;

        gap: 7px;

        padding: 5px;

        box-shadow:
            0 4px 12px rgba(15,23,42,0.08),
            0 12px 28px rgba(15,23,42,0.12);

        backdrop-filter: blur(16px) saturate(140%);
        -webkit-backdrop-filter: blur(16px) saturate(140%);
    }


    #sdr-fab-root .sdr-fab-home {
        width: 50px;
        height: 50px;
    }


    #sdr-fab-root .sdr-fab-contact {
        min-width: 143px;
        height: 50px;

        padding: 0 13px;

        gap: 8px;
    }


    #sdr-fab-root .sdr-fab-contact span {
        font-size: 13px;
    }


    #sdr-fab-root .sdr-fab-contact img {
        width: 22px;
        height: 22px;
    }
}


/* =========================================================
   VERY SMALL SCREENS
   ========================================================= */

@media (max-width: 380px) {

    #sdr-fab-root {
        right: 7px;
        bottom: 7px;

        gap: 6px;

        padding: 4px;
    }


    #sdr-fab-root .sdr-fab-home {
        width: 45px;
        height: 45px;
    }


    #sdr-fab-root .sdr-fab-contact {
        min-width: 122px;
        height: 45px;

        padding: 0 10px;

        gap: 7px;
    }


    #sdr-fab-root .sdr-fab-contact span {
        font-size: 12px;
    }


    #sdr-fab-root .sdr-fab-contact img {
        width: 20px;
        height: 20px;
    }


    #sdr-fab-root .sdr-fab-home::after {
        inset: 4px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    #sdr-fab-root {
        animation: none;
    }

    #sdr-fab-root .sdr-fab-btn,
    #sdr-fab-root .sdr-fab-btn::before,
    #sdr-fab-root .sdr-fab-btn img,
    #sdr-fab-root .sdr-fab-contact span {
        transition: none;
    }
}


/* =========================================================
   ENTRANCE ANIMATION
   ========================================================= */

@keyframes sdr-fab-enter {

    from {
        opacity: 0;

        transform:
            translateY(18px)
            scale(0.92);

        filter: blur(4px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);

        filter: blur(0);
    }
}