/* ==========================================================
   FOOTER
   ========================================================== */

.site-footer {
    position: relative;

    overflow: hidden;

    padding:
        clamp(var(--space-10),
            9vw,
            var(--space-15)) 0 var(--space-5);

    background:
        var(--color-surface-dark);

    color:
        var(--color-text-inverse);
}


/* ==========================================================
   DETALHE AMBIENTAL
   ========================================================== */

.site-footer::before {
    content: "";

    position: absolute;

    right: -220px;
    bottom: -280px;

    width: 620px;
    height: 620px;

    border-radius: 50%;

    background:
        radial-gradient(circle,
            rgba(181, 154, 104, 0.09) 0%,
            rgba(181, 154, 104, 0.025) 45%,
            transparent 72%);

    pointer-events: none;
}


/* ==========================================================
   GRID
   ========================================================== */

.site-footer__grid {
    position: relative;

    z-index: 1;

    display: grid;

    grid-template-columns:
        minmax(280px, 1.7fr) repeat(3, minmax(140px, 0.7fr));

    gap:
        clamp(var(--space-5),
            6vw,
            var(--space-12));
}


/* ==========================================================
   BRAND
   ========================================================== */

.site-footer__brand {
    max-width:
        420px;
}


.site-footer__logo {
    display:
        inline-block;

    color:
        var(--color-text-inverse);

    font-size:
        1.7rem;

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        -0.05em;

    line-height:
        1;
}


.site-footer__logo span {
    color:
        var(--color-accent);
}


.site-footer__description {
    max-width:
        380px;

    margin-top:
        var(--space-3);

    color:
        var(--color-text-muted-inverse);

    line-height:
        1.75;
}


/* ==========================================================
   DEMO LINK
   ========================================================== */

.site-footer__demo {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        0.65rem;

    margin-top:
        var(--space-4);

    color:
        var(--color-accent-soft);

    font-size:
        var(--font-size-sm);

    font-weight:
        var(--font-weight-semibold);
}


.site-footer__demo span {
    position:
        relative;
}


.site-footer__demo span::after {
    content:
        "";

    position:
        absolute;

    left:
        0;
    bottom:
        -5px;

    width:
        100%;

    height:
        1px;

    background:
        currentColor;

    transform:
        scaleX(0);

    transform-origin:
        right center;

    transition:
        transform var(--transition-base);
}


.site-footer__demo svg {
    width:
        17px;

    height:
        17px;

    fill:
        none;

    transition:
        transform var(--transition-base);
}


.site-footer__demo:hover span::after {
    transform:
        scaleX(1);

    transform-origin:
        left center;
}


.site-footer__demo:hover svg {
    transform:
        translate(2px, -2px);
}


/* ==========================================================
   COLUNAS
   ========================================================== */

.site-footer__title {
    color:
        var(--color-text-inverse);

    font-family:
        var(--font-body);

    font-size:
        var(--font-size-sm);

    font-weight:
        var(--font-weight-semibold);

    letter-spacing:
        0.04em;

    line-height:
        1.4;
}


/* ==========================================================
   LINKS
   ========================================================== */

.site-footer__links {
    display:
        grid;

    gap:
        0.85rem;

    margin-top:
        var(--space-3);
}


.site-footer__links a {
    position:
        relative;

    display:
        inline-block;

    width:
        fit-content;

    color:
        var(--color-text-muted-inverse);

    font-size:
        var(--font-size-sm);

    line-height:
        1.5;

    transition:
        color var(--transition-base);
}


.site-footer__links a::after {
    content:
        "";

    position:
        absolute;

    left:
        0;
    bottom:
        -3px;

    width:
        100%;

    height:
        1px;

    background:
        var(--color-accent);

    transform:
        scaleX(0);

    transform-origin:
        right center;

    transition:
        transform var(--transition-base);
}


.site-footer__links a:hover {
    color:
        var(--color-text-inverse);
}


.site-footer__links a:hover::after {
    transform:
        scaleX(1);

    transform-origin:
        left center;
}


/* ==========================================================
   DIVISOR
   ========================================================== */

.site-footer__divider {
    margin:
        clamp(var(--space-8),
            7vw,
            var(--space-12)) 0 var(--space-4);

    border-top:
        1px solid var(--color-border-dark);
}


/* ==========================================================
   BOTTOM
   ========================================================== */

.site-footer__bottom {
    position:
        relative;

    z-index:
        1;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        var(--space-5);
}


.site-footer__copyright {
    display:
        grid;

    gap:
        0.25rem;
}


.site-footer__copyright p {
    color:
        rgba(248, 247, 243, 0.52);

    font-size:
        0.75rem;

    line-height:
        1.5;
}


/* ==========================================================
   VOLTAR AO TOPO
   ========================================================== */

.site-footer__back-top {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        0.75rem;

    color:
        var(--color-text-muted-inverse);

    font-size:
        var(--font-size-sm);

    font-weight:
        var(--font-weight-medium);
}


.site-footer__back-top-icon {
    display:
        grid;

    place-items:
        center;

    width:
        42px;

    height:
        42px;

    border:
        1px solid var(--color-border-dark);

    border-radius:
        50%;

    transition:
        background-color var(--transition-base),
        border-color var(--transition-base),
        transform var(--transition-base);
}


.site-footer__back-top svg {
    width:
        17px;

    height:
        17px;

    fill:
        none;
}


.site-footer__back-top:hover {
    color:
        var(--color-text-inverse);
}


.site-footer__back-top:hover .site-footer__back-top-icon {
    background:
        var(--color-accent);

    border-color:
        var(--color-accent);

    color:
        var(--color-surface-dark);

    transform:
        translateY(-3px);
}


/* ==========================================================
   WHATSAPP FLUTUANTE
   ========================================================== */

.floating-whatsapp {
    position: fixed;

    right:
        clamp(1rem,
            2vw,
            2rem);

    bottom:
        max(1rem,
            env(safe-area-inset-bottom));

    z-index:
        var(--z-overlay);

    display: block;

    width: 58px;
    height: 58px;

    border-radius: 50%;
}


/* ==========================================================
   ÍCONE
   ========================================================== */

.floating-whatsapp__icon {
    display:
        grid;

    place-items:
        center;

    width:
        58px;

    height:
        58px;

    border-radius:
        50%;

    background:
        var(--color-whatsapp);

    color:
        #FFFFFF;

    box-shadow:
        0 14px 38px rgba(37, 211, 102, 0.26);

    transition:
        transform var(--transition-base),
        box-shadow var(--transition-base);
}


.floating-whatsapp__icon svg {
    width:
        25px;

    height:
        25px;

    fill:
        none;
}


.floating-whatsapp:hover .floating-whatsapp__icon {
    transform:
        translateY(-3px);

    box-shadow:
        0 18px 44px rgba(37, 211, 102, 0.34);
}


/* ==========================================================
   TOOLTIP
   ========================================================== */

.floating-whatsapp__tooltip {
    position: absolute;

    top: 50%;
    right: calc(100% + 0.75rem);

    width: max-content;

    padding:
        0.65rem 0.9rem;

    border-radius:
        var(--radius-pill);

    background:
        var(--color-surface-dark);

    color:
        var(--color-text-inverse);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-semibold);

    box-shadow:
        var(--shadow-card);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform:
        translate(8px,
            -50%);

    transition:
        opacity var(--transition-base),
        visibility var(--transition-base),
        transform var(--transition-base);
}


.floating-whatsapp:hover .floating-whatsapp__tooltip,
.floating-whatsapp:focus-visible .floating-whatsapp__tooltip {
    opacity: 1;

    visibility: visible;

    transform:
        translate(0,
            -50%);
}