/* =========================================================
   TYTOZ GALLERY
   Responsive Design
   Tattoo Artist: Akash Kumar
========================================================= */


/* =========================================================
   TABLET
   761px - 1024px
========================================================= */

@media (min-width: 761px) and (max-width: 1024px) {

    /* =============================================
       CONTAINER
    ============================================== */

    .container {
        width: 92%;
        max-width: 960px;
    }


    /* =============================================
       HEADER
    ============================================== */

    .nav-container {
        min-height: 72px;
    }

    .main-navigation {
        gap: 18px;
    }

    .nav-link {
        font-size: 0.88rem;
    }


    /* =============================================
       HERO
    ============================================== */

    .hero-content {
        padding: 100px 0 80px;
    }

    .hero-content h1 {
        font-size: clamp(3.8rem, 8vw, 6rem);
    }


    /* =============================================
       GALLERY
    ============================================== */

    .gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* =============================================
       ABOUT
    ============================================== */

    .about-content {
        grid-template-columns:
            minmax(280px, 0.9fr)
            minmax(0, 1.1fr);

        gap: 40px;
    }


    /* =============================================
       SERVICES
    ============================================== */

    .services-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* =============================================
       CONTACT
    ============================================== */

    .contact-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 18px;
    }

}


/* =========================================================
   MOBILE
   760px AND BELOW
========================================================= */

@media (max-width: 760px) {

    /* =============================================
       GLOBAL
    ============================================== */

    html {
        scroll-padding-top: 78px;
    }

    body {
        overflow-x: hidden;
    }

    body.no-scroll {
        overflow: hidden;
    }


    /* =============================================
       CONTAINER
    ============================================== */

    .container {
        width: 92%;
        max-width: none;
    }


    /* =============================================
       HEADER
    ============================================== */

    .site-header {
        min-height: 68px;
    }

    .nav-container {
        min-height: 68px;
    }


    /* =============================================
       BRAND
    ============================================== */

    .brand-name {
        font-size: 1.35rem;
    }

    .brand-subtitle {
        font-size: 0.55rem;
        letter-spacing: 0.18em;
    }


    /* =============================================
       MOBILE MENU BUTTON
    ============================================== */

    .menu-toggle {
        display: flex;
        width: 42px;
        height: 42px;
        padding: 8px;

        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 5px;

        cursor: pointer;
    }


    .menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    
    background: #ffffff;
    border-radius: 2px;
    
    flex-shrink: 0;
    
    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}


    .menu-toggle.active span:nth-child(1) {
        transform:
            translateY(7px)
            rotate(45deg);
    }


    .menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }


    .menu-toggle.active span:nth-child(3) {
        transform:
            translateY(-7px)
            rotate(-45deg);
    }


    /* =============================================
       NAVIGATION
    ============================================== */

    .main-navigation {
        position: fixed;

        top: 68px;
        left: 0;
        right: 0;

        width: 100%;

        display: flex;

        flex-direction: column;
        align-items: stretch;

        gap: 0;

        padding: 12px 4% 20px;

        opacity: 0;
        visibility: hidden;

        transform: translateY(-12px);

        transition:
            opacity 0.3s ease,
            visibility 0.3s ease,
            transform 0.3s ease;

        z-index: 9998;
    }


    .main-navigation.open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }


    .nav-link {
        display: flex;

        width: 100%;
        min-height: 48px;

        align-items: center;
        justify-content: center;

        padding: 12px 16px;

        font-size: 0.95rem;
    }


    /* =============================================
       SECTIONS
    ============================================== */

    .section {
        padding-top: 72px;
        padding-bottom: 72px;
    }


    /* =============================================
       SECTION HEADING
    ============================================== */

    .section-heading {
        margin-bottom: 34px;
    }


    .section-heading h2 {
        font-size: clamp(
            2rem,
            9vw,
            3rem
        );
    }


    .section-heading > p:last-child {
        max-width: 100%;
    }


    /* =============================================
       HERO
    ============================================== */

    .hero-section {
        min-height: 100svh;
    }


    .hero-content {
        width: 92%;
        padding: 100px 0 70px;

        text-align: center;
    }


    .hero-small-text {
        font-size: 0.7rem;
        letter-spacing: 0.18em;
    }


    .hero-content h1 {
        font-size: clamp(
            3rem,
            16vw,
            5rem
        );

        line-height: 0.95;
    }


    .hero-description {
        font-size: 1rem;
        margin-top: 20px;
    }


    .artist-name {
        font-size: 0.9rem;
    }


    .hero-buttons {
        flex-direction: column;

        width: 100%;
        max-width: 320px;

        margin-left: auto;
        margin-right: auto;

        gap: 12px;
    }


    .hero-buttons .btn {
        width: 100%;
    }


    /* =============================================
       BUTTONS
    ============================================== */

    .btn {
        min-height: 48px;
        padding: 13px 20px;
    }


    /* =============================================
       GALLERY FILTERS
    ============================================== */

    .gallery-filters {
        display: flex;

        width: 100%;

        justify-content: flex-start;

        gap: 8px;

        overflow-x: auto;

        padding-bottom: 8px;

        scrollbar-width: none;

        -webkit-overflow-scrolling: touch;
    }


    .gallery-filters::-webkit-scrollbar {
        display: none;
    }


    .filter-btn {
        flex: 0 0 auto;

        min-height: 42px;

        padding: 10px 18px;

        white-space: nowrap;
    }


    /* =============================================
       GALLERY GRID
    ============================================== */

    .gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 12px;
    }


    /* =============================================
       ABOUT
    ============================================== */

    .about-content {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .about-image {
        width: 100%;
        max-width: 420px;

        margin-left: auto;
        margin-right: auto;
    }


    .about-text h3 {
        font-size: 1.5rem;
    }


    /* =============================================
       SERVICES
    ============================================== */

    .services-grid {
        grid-template-columns: 1fr;

        gap: 16px;
    }


    .service-card {
        padding: 28px 22px;
    }


    /* =============================================
       CUSTOM ORDER
    ============================================== */

    .custom-order-form {
        width: 100%;
    }


    .form-group input,
    .form-group select,
    .form-group textarea {
        width: 100%;
    }


    .custom-order-form .btn {
        width: 100%;
    }


    /* =============================================
       CONTACT
    ============================================== */

    .contact-grid {
        grid-template-columns: 1fr;

        gap: 16px;
    }


    .contact-card {
        padding: 26px 20px;
    }


    .contact-buttons {
        flex-direction: column;

        width: 100%;
        max-width: 320px;

        margin-left: auto;
        margin-right: auto;

        gap: 12px;
    }


    .contact-buttons .btn {
        width: 100%;
    }


    /* =============================================
       FOOTER
    ============================================== */

    .site-footer {
        text-align: center;
    }


    .footer-links {
        display: flex;

        flex-wrap: wrap;

        justify-content: center;

        gap: 10px 18px;
    }


    .footer-social {
        justify-content: center;
    }


    .footer-bottom {
        flex-direction: column;

        gap: 8px;

        text-align: center;
    }


    /* =============================================
       BACK TO TOP
    ============================================== */

    .back-to-top {
        width: 42px;
        height: 42px;

        right: 16px;
        bottom: 16px;
    }

}


/* =========================================================
   SMALL MOBILE
   480px AND BELOW
========================================================= */

@media (max-width: 480px) {

    /* =============================================
       CONTAINER
    ============================================== */

    .container {
        width: 94%;
    }


    /* =============================================
       HEADER
    ============================================== */

    .site-header {
        min-height: 64px;
    }

    .nav-container {
        min-height: 64px;
    }


    .main-navigation {
        top: 64px;
    }


    /* =============================================
       HERO
    ============================================== */

    .hero-content {
        width: 94%;
        padding-top: 90px;
    }


    .hero-content h1 {
        font-size: clamp(
            2.7rem,
            17vw,
            4.5rem
        );
    }


    .hero-small-text {
        font-size: 0.62rem;
    }


    .hero-description {
        font-size: 0.92rem;
    }


    .artist-name {
        font-size: 0.82rem;
    }


    /* =============================================
       SECTIONS
    ============================================== */

    .section {
        padding-top: 60px;
        padding-bottom: 60px;
    }


    .section-heading {
        margin-bottom: 28px;
    }


    .section-heading h2 {
        font-size: clamp(
            1.8rem,
            10vw,
            2.5rem
        );
    }


    /* =============================================
       GALLERY
    ============================================== */

    .gallery-grid {
        grid-template-columns: 1fr;

        gap: 14px;
    }


    .filter-btn {
        padding-left: 15px;
        padding-right: 15px;
    }


    /* =============================================
       ABOUT
    ============================================== */

    .about-text h3 {
        font-size: 1.3rem;
    }


    /* =============================================
       SERVICES
    ============================================== */

    .service-card {
        padding: 24px 18px;
    }


    /* =============================================
       FORM
    ============================================== */

    .form-group {
        margin-bottom: 18px;
    }


    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px;
    }


    /* =============================================
       FOOTER
    ============================================== */

    .footer-links {
        flex-direction: column;
        gap: 8px;
    }


    .footer-bottom {
        font-size: 0.8rem;
    }


    /* =============================================
       BACK TO TOP
    ============================================== */

    .back-to-top {
        width: 40px;
        height: 40px;

        right: 12px;
        bottom: 12px;
    }

}


/* =========================================================
   VERY SMALL DEVICES
   360px AND BELOW
========================================================= */

@media (max-width: 360px) {

    .container {
        width: 95%;
    }


    .brand-name {
        font-size: 1.2rem;
    }


    .menu-toggle {
        width: 38px;
        height: 38px;
    }


    .menu-toggle span {
        width: 22px;
    }


    .hero-content h1 {
        font-size: 2.65rem;
    }


    .hero-buttons,
    .contact-buttons {
        max-width: 100%;
    }


    .btn {
        padding-left: 16px;
        padding-right: 16px;
    }

}
