/* ============================================================================
   ATLATECH SRL — RESPONSIVE
   ----------------------------------------------------------------------------
   Mobile-first overrides. I breakpoint seguono i dispositivi reali + densità.

   Breakpoints:
     sm  ≥ 480px    — phone landscape
     md  ≥ 768px    — tablet portrait
     lg  ≥ 1024px   — tablet landscape / small desktop
     xl  ≥ 1280px   — desktop
     2xl ≥ 1536px   — large desktop
   ============================================================================ */

/* ==========================================================================
   MOBILE FIRST — override base per schermi piccoli (default < 768px)
   ========================================================================== */
.site-header .nav-menu,
.site-header .nav-actions-desktop {
    display: none;
}

.site-header .hamburger {
    display: flex;
}

.grid-2,
.grid-3,
.grid-4 {
    grid-template-columns: 1fr;
}

.footer-grid {
    grid-template-columns: 1fr;
    gap: var(--space-7);
}

.footer-bottom {
    flex-direction: column;
    gap: var(--space-3);
    text-align: center;
}

.btn-group {
    flex-direction: column;
    align-items: stretch;
}
.btn-group .btn { width: 100%; }

.hero-title,
.display {
    font-size: clamp(2.5rem, 10vw, 3.5rem);
}

/* ==========================================================================
   sm ≥ 480px — phone landscape / phablet
   ========================================================================== */
@media (min-width: 480px) {
    .btn-group {
        flex-direction: row;
        align-items: center;
    }
    .btn-group .btn { width: auto; }

    .grid-2 { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   md ≥ 768px — tablet portrait
   ========================================================================== */
@media (min-width: 768px) {
    .site-header .nav-menu,
    .site-header .nav-actions-desktop {
        display: flex;
    }
    .site-header .hamburger {
        display: none;
    }

    .grid-3 { grid-template-columns: repeat(2, 1fr); }
    .grid-4 { grid-template-columns: repeat(2, 1fr); }

    .footer-grid {
        grid-template-columns: 1.5fr 1fr 1fr;
        gap: var(--space-6);
    }

    .footer-bottom {
        flex-direction: row;
        text-align: left;
    }
}

/* ==========================================================================
   lg ≥ 1024px — tablet landscape / small desktop
   ========================================================================== */
@media (min-width: 1024px) {
    .grid-3 { grid-template-columns: repeat(3, 1fr); }
    .grid-4 { grid-template-columns: repeat(4, 1fr); }

    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr 1.3fr;
        gap: var(--space-8);
    }
}

/* ==========================================================================
   xl ≥ 1280px — desktop pieno
   ========================================================================== */
@media (min-width: 1280px) {
    :root {
        --section-py: 8rem;
    }
}

/* ==========================================================================
   2xl ≥ 1536px — large desktop
   ========================================================================== */
@media (min-width: 1536px) {
    :root {
        --container-max: 1440px;
    }
}

/* ==========================================================================
   MOBILE MENU (hamburger) — drawer da destra
   ========================================================================== */
.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: var(--z-menu);
    background: rgba(14, 14, 14, 0.97);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-5);
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    transition:
        opacity var(--dur-base) var(--ease-standard),
        transform var(--dur-base) var(--ease-out),
        visibility 0s linear var(--dur-base);
}

.mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    transition-delay: 0s, 0s, 0s;
}

.mobile-menu a {
    font-family: var(--font-display);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.mobile-menu a.active,
.mobile-menu a:hover {
    color: var(--color-primary);
}

.mobile-menu-actions {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

/* Light theme adjust */
html.theme-light .mobile-menu {
    background: rgba(250, 247, 242, 0.97);
}

/* ==========================================================================
   HEADER: logo più piccolo su mobile
   ========================================================================== */
@media (max-width: 767px) {
    .logo {
        font-size: var(--fs-md);
    }
    .logo-icon {
        width: 30px;
        height: 30px;
    }
}

/* ==========================================================================
   SECTION HEADER: minore padding su mobile
   ========================================================================== */
@media (max-width: 767px) {
    .section-header { margin-bottom: var(--space-7); }
    h1, .h1 { font-size: clamp(2.25rem, 9vw, 3rem); }
    h2, .h2 { font-size: clamp(1.75rem, 7vw, 2.25rem); }
    h3, .h3 { font-size: var(--fs-xl); }
}

/* ==========================================================================
   UTILITY RESPONSIVE
   ========================================================================== */
.hide-mobile  { display: none; }
.show-mobile  { display: block; }

@media (min-width: 768px) {
    .hide-mobile   { display: block; }
    .show-mobile   { display: none; }
    .hide-tablet   { display: none; }
}

@media (min-width: 1024px) {
    .hide-tablet   { display: block; }
    .hide-desktop  { display: none; }
}

/* ==========================================================================
   PRINT
   ========================================================================== */
@media print {
    .site-header,
    .site-footer,
    .cookie-banner,
    .scroll-top,
    .cursor-dot,
    .cursor-ring,
    .mobile-menu,
    .newsletter-form {
        display: none !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
    }

    .section {
        padding-block: 2rem !important;
        break-inside: avoid;
    }

    a { color: #000; text-decoration: underline; }
}
