/* Global responsive foundations */

:root {
    --wl-break-sm: 480px;
    --wl-break-md: 768px;
    --wl-break-lg: 1024px;
    --wl-break-xl: 1280px;
    --wl-container: 1280px;
    --wl-gutter: 20px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

img,
video,
svg {
    max-width: 100%;
    height: auto;
}

.weblazem-preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    transition: opacity 0.5s ease;
}

.weblazem-preloader.is-hidden {
    opacity: 0;
    pointer-events: none;
}

.weblazem-preloader__spinner {
    width: 52px;
    height: 52px;
    border: 4px solid rgba(79, 28, 97, 0.15);
    border-top-color: #4f1c61;
    border-radius: 50%;
    animation: weblazem-spin 0.8s linear infinite;
}

@keyframes weblazem-spin {
    to {
        transform: rotate(360deg);
    }
}

.container,
.weblazem-header__container {
    width: 100%;
    max-width: var(--wl-container);
    margin-inline: auto;
    padding-inline: var(--wl-gutter);
}

@media (max-width: 768px) {
    :root {
        --wl-gutter: 16px;
    }
}

@media (max-width: 480px) {
    :root {
        --wl-gutter: 12px;
    }
}

/* Prevent common overflow issues */
table {
    width: 100%;
    border-collapse: collapse;
}

iframe {
    max-width: 100%;
}

/* Touch-friendly minimum tap targets in mobile nav contexts */
@media (max-width: 1024px) {
    .weblazem-consult-trigger,
    button,
    a.weblazem-header-consult-btn,
    a.weblazem-header-ticket-btn {
        min-height: 44px;
    }
}

/* Shared responsive typography helpers */
@media (max-width: 768px) {
    .section-title,
    .portfolio-page-section__title,
    .webdesign-section__title {
        font-size: clamp(1.35rem, 5vw, 1.75rem) !important;
    }
}

/* Webdesign / service page shared grids safety net */
@media (max-width: 1024px) {
    .webdesign-hero__grid,
    .seo-hero__grid,
    .webdesign-advantages__grid,
    .webdesign-process__steps {
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .webdesign-split,
    .service-split {
        flex-direction: column !important;
    }

    .webdesign-split__media,
    .webdesign-split__content,
    .service-split__media,
    .service-split__content {
        width: 100% !important;
        max-width: 100% !important;
    }

    .webdesign-faq__grid,
    .faq-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 600px) {
    .webdesign-process__cards,
    .webdesign-clients__grid {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Consult float bar spacing on small screens */
@media (max-width: 480px) {
    body.weblazem-consult-modal-open .weblazem-consult-float {
        display: none;
    }
}
