/*=== Header ===*/
.site-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-4);
}

.top-header {
    display: inline-flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--space-16);
    padding: var(--space-8);
}

.top-header-logo img {
    height: var(--space-logo);
}

.top-header-list {
    display: inline-flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--space-2);
    font-weight: var(--fw-bold);
    font-size: var(--fs-lg);
    white-space: nowrap;
}

.top-header-list svg {
    height: var(--space-10);
    color: var(--color-primary);
    flex-shrink: 0;
}

.top-header-list p {
    color: var(--color-primary);
    font-size: var(--fs-xs);
}

.top-header-list a {
    color: var(--color-text-main);
    font-size: var(--fs-base);
}

.header-nav {
    background-color: var(--color-primary);
    width: 100%;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 0 var(--space-4);
}

.header-nav ul {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
    margin: 0;
    padding: 0;
}

.header-nav-links,
.header-lang-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: var(--space-16);
    padding: 0 var(--space-3);
    color: var(--color-text-light);
    font-weight: var(--fw-medium);
    font-size: var(--fs-lg);
    transition:
        color 0.3s ease,
        transform 0.3s ease;
    white-space: nowrap;
}

.header-nav-links:hover,
.header-lang-btn:hover {
    color: var(--color-accent);
    transform: translateY(calc(-1 * var(--space-1)));
}

.header-btn-call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    background-color: var(--color-accent);
    color: var(--color-text-main);
    padding: 0 var(--space-6);
    height: var(--space-16);
    font-weight: var(--fw-bold);
    transition: all var(--transition-slow);
    border: none;
    cursor: pointer;
    font-size: var(--fs-lg);
}

.header-btn-call:hover {
    transform: translateY(0);
}

.header-btn-call svg {
    transition: transform var(--transition-fast);
    flex-shrink: 0;
}

.header-btn-call:hover svg {
    transform: rotate(15deg) scale(1.1);
}

.header-nav-mobile-bar {
    display: none;
}

/*=== Footer ===*/
.site-footer {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-top: var(--space-0) solid var(--color-border);
}

.footer-main {
    width: 90%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: var(--space-2);
    padding: var(--space-2) 0;
}

.footer-column {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1 1 var(--container-md);
    padding: var(--space-2) 0;
}

.footer-column h4 {
    color: var(--color-primary);
    font-weight: var(--fw-bold);
    font-size: var(--fs-lg);
}

.footer-column ul {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.footer-column li {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-2);
    font-weight: var(--fw-normal);
    font-size: var(--fs-base);
    color: var(--color-text-muted);
}

.footer-column li a:hover {
    color: var(--color-accent);
}

.footer-column img {
    max-width: 50%;
    height: auto;
}

.social-title {
    color: var(--color-accent);
}

.social-icon {
    margin-top: var(--space-8);
    background-color: var(--color-bg-icon);
    color: var(--color-icon);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: var(--space-10);
    height: auto;
    padding: var(--space-2);
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.social-icon:hover {
    color: var(--color-accent);
}

/* (Copyright) */
.footer-bottom {
    width: 100%;
    border-top: var(--space-0) solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    text-align: center;
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.footer-bottom a:hover {
    color: var(--color-accent);
}

/* Float Buttons*/
.scroll-to-top {
    position: fixed;
    bottom: var(--space-8);
    right: var(--space-8);
    width: var(--space-12);
    height: var(--space-12);
    border-radius: var(--radius-full);
    background-color: var(--color-accent);
    color: var(--color-text-main);
    border: none;
    box-shadow: var(--shadow-base);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-normal);
    z-index: var(--z-modal);
}

.scroll-to-top.show {
    opacity: 1;
    visibility: visible;
}

.scroll-to-top:hover {
    transform: translateY(calc(-1 * var(--space-1)));
    box-shadow: var(--shadow-hover);
}

.mobile-fab-container {
    display: none;
}


/* ==== 📱 Resp. ==== */
@media (max-width: 1250px) {

    .top-header {
        flex-direction: column;
        gap: var(--space-4);
        padding: var(--space-4) 0;
    }

    .top-header-logo {
        padding: 0;
    }

    .top-header-list {
        display: none;
    }

    .header-nav {
        flex-direction: column;
        padding: 0;
    }

    .header-nav-mobile-bar {
        display: flex;
        width: 100%;
        height: var(--space-16);
        justify-content: space-between;
        align-items: center;
        padding: 0 var(--space-4);
        background-color: var(--color-primary);
        box-sizing: border-box;
    }

    .header-nav-mobile-bar .top-header-mobile-btn {
        height: 100%;
        margin: 0;
    }

    .header-burger-btn {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        width: var(--space-8);
        height: var(--space-6);
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: var(--z-header);
    }

    .header-burger-btn span {
        width: 100%;
        height: var(--space-1);
        background: var(--color-text-light);
        border-radius: var(--radius-full);
        transition: all 0.3s linear;
        position: relative;
        transform-origin: var(--space-0);
    }

    .header-burger-btn.open span:nth-child(1) {
        transform: rotate(45deg);
    }

    .header-burger-btn.open span:nth-child(2) {
        opacity: 0;
        transform: translateX(var(--space-6));
    }

    .header-burger-btn.open span:nth-child(3) {
        transform: rotate(-45deg);
    }

    .header-nav ul {
        flex-direction: column;
        gap: 0;
        width: 100%;
        display: none;
        background-color: var(--color-primary);
        padding: 0;
        margin: 0;
        border-top: var(--space-0) solid var(--color-border-light);
    }

    .header-nav ul.open {
        display: flex;
        animation: slideDown 0.3s ease forwards;
    }

    .header-nav ul li {
        width: 100%;
        text-align: center;
        border-bottom: var(--space-0) solid var(--color-border-light);
        box-sizing: border-box;
    }

    .header-nav ul li:last-child {
        border-bottom: none;
    }

    .header-nav-links {
        width: 100%;
        padding: var(--space-4) 0;
        justify-content: center;
        box-sizing: border-box;
    }

    .desktop-btn-li {
        display: none !important;
    }

}

@media (max-width: 768px) {
    .site-footer {
        margin-bottom: 7rem;
    }

    .mobile-fab-container {
        display: flex;
        flex-direction: column;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: var(--z-modal);
        box-shadow: var(--shadow-hover);
    }

    .fab-btn {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: var(--space-2);
        width: 100%;
        padding: var(--space-4);
        font-size: var(--fs-lg);
        font-weight: var(--fw-bold);
        text-decoration: none;
        color: var(--color-text-main);
    }

    .fab-call {
        background-color: var(--color-accent);
    }

    .fab-wa {
        background-color: var(--color-success);
        color: var(--color-text-light);
    }

    .scroll-to-top {
        bottom: var(--container-sm);
        right: var(--space-4);
    }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(calc(-1 * var(--space-3)));
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
