/* ==========================================================================
   1. Reset & Box Sizing
   ========================================================================== */
*, *:before, *:after {
    box-sizing: border-box;
}

body {
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   2. Mobile (max-width: 767px)
   ========================================================================== */
@media screen and (max-width: 767px) {
    h1 {
        font-size: 24px !important;
        line-height: 1.2 !important;
    }
    
    h2 {
        font-size: 20px !important;
    }
    
    p {
        font-size: 16px !important;
    }

    .row, .container, .columns {
        display: flex;
        flex-direction: column;
        width: 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    img {
        max-width: 100% !important;
        height: auto !important;
    }

    .hide-on-mobile {
        display: none !important;
    }
}

/* ==========================================================================
   3. Small Mobile (max-width: 375px)
   ========================================================================== */
@media screen and (max-width: 375px) {
    h1 {
        font-size: 20px !important;
    }
    
    .section, .element {
        padding: 10px !important;
    }
}

/* ==========================================================================
   4. Tablet (768px - 1024px)
   ========================================================================== */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    h1 {
        font-size: 32px !important;
    }

    .gallery-item, .card {
        width: 50% !important;
        float: right;
    }
}