/* =========================================================
   ZANCK — RESPONSIVE SYSTEM
   File: assets/css/responsive.css

   Purpose:
   Global responsive behavior across the ZANCK website.

   Breakpoints:
   1440px  — Large desktop
   1280px  — Desktop
   1024px  — Tablet / small desktop
   768px   — Mobile landscape / tablet
   576px   — Mobile
   400px   — Small mobile

   Dependencies:
   - variables.css
   - reset.css
   - typography.css
   - layout.css
   - navigation.css
   - components.css
   - animations.css

   NOTE:
   Page-specific responsive rules should remain inside:
   - homepage.css
   - services.css
   - industries.css
   - solutions.css
   - company.css
   - insights.css
   - contact.css
   - legal.css
   ========================================================= */


/* =========================================================
   1. LARGE DESKTOP
   ========================================================= */

@media (max-width: 1440px) {

    :root {
        --container-max-width: 1280px;
    }

    .container {
        width: min(
            calc(100% - 80px),
            var(--container-max-width)
        );
    }

    .hero-title {
        font-size: clamp(4rem, 7vw, 6.5rem);
    }

    .section-title {
        font-size: clamp(2.5rem, 5vw, 4.5rem);
    }
}


/* =========================================================
   2. DESKTOP
   ========================================================= */

@media (max-width: 1280px) {

    .container {
        width: min(
            calc(100% - 64px),
            var(--container-max-width)
        );
    }

    .site-header__inner {
        gap: 28px;
    }

    .main-navigation {
        gap: 24px;
    }

    .main-navigation > li > a {
        font-size: 0.78rem;
    }

    .hero {
        min-height: 720px;
    }

    .hero-content {
        max-width: 850px;
    }

    .grid--4 {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .grid--5 {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }
}


/* =========================================================
   3. TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1024px) {

    :root {
        --header-height: 72px;

        --section-padding:
            clamp(70px, 10vw, 110px);
    }


    /* -----------------------------------------------------
       Container
       ----------------------------------------------------- */

    .container {
        width: min(
            calc(100% - 48px),
            var(--container-max-width)
        );
    }


    /* -----------------------------------------------------
       Header
       ----------------------------------------------------- */

    .site-header__inner {
        height: 72px;
    }

    .main-navigation {
        display: none;
    }

    .header-actions {
        margin-left: auto;
    }

    .mobile-menu-toggle {
        display: inline-flex;
    }


    /* -----------------------------------------------------
       Hero
       ----------------------------------------------------- */

    .hero {
        min-height: auto;

        padding-top:
            calc(var(--header-height) + 80px);

        padding-bottom: 90px;
    }

    .hero-content {
        max-width: 760px;
    }

    .hero-title {
        font-size:
            clamp(3.5rem, 8vw, 5.5rem);
    }


    /* -----------------------------------------------------
       Grid
       ----------------------------------------------------- */

    .grid--4 {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .grid--5 {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Two Column Layout
       ----------------------------------------------------- */

    .two-column,
    .split-layout,
    .content-layout {
        grid-template-columns:
            1fr;
    }

    .two-column__sidebar,
    .content-layout__sidebar {
        order: -1;
    }


    /* -----------------------------------------------------
       Service Cards
       ----------------------------------------------------- */

    .service-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Industry Cards
       ----------------------------------------------------- */

    .industry-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Process
       ----------------------------------------------------- */

    .process {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Statistics
       ----------------------------------------------------- */

    .stats-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Footer
       ----------------------------------------------------- */

    .footer-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .footer-brand {
        grid-column: 1 / -1;
    }
}


/* =========================================================
   4. TABLET
   ========================================================= */

@media (max-width: 900px) {

    .container {
        width: min(
            calc(100% - 44px),
            var(--container-max-width)
        );
    }


    /* -----------------------------------------------------
       Buttons
       ----------------------------------------------------- */

    .btn,
    .button {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
    }


    /* -----------------------------------------------------
       Typography
       ----------------------------------------------------- */

    .display-1 {
        font-size:
            clamp(3.4rem, 8vw, 5rem);
    }

    .display-2 {
        font-size:
            clamp(3rem, 7vw, 4.5rem);
    }

    .section-title {
        font-size:
            clamp(2.4rem, 6vw, 4rem);
    }


    /* -----------------------------------------------------
       Navigation
       ----------------------------------------------------- */

    .header-actions .btn {
        display: none;
    }


    /* -----------------------------------------------------
       Hero
       ----------------------------------------------------- */

    .hero-grid {
        grid-template-columns:
            minmax(0, 1fr);
    }

    .hero-visual {
        margin-top: 45px;
    }


    /* -----------------------------------------------------
       Generic Cards
       ----------------------------------------------------- */

    .card-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Article Grid
       ----------------------------------------------------- */

    .article-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       CTA
       ----------------------------------------------------- */

    .cta-panel {
        padding:
            clamp(45px, 7vw, 70px);
    }
}


/* =========================================================
   5. MOBILE LANDSCAPE / LARGE MOBILE
   ========================================================= */

@media (max-width: 768px) {

    :root {
        --header-height: 68px;

        --section-padding:
            clamp(60px, 12vw, 90px);
    }


    /* -----------------------------------------------------
       Global Container
       ----------------------------------------------------- */

    .container {
        width:
            calc(100% - 40px);
    }


    /* -----------------------------------------------------
       Header
       ----------------------------------------------------- */

    .site-header__inner {
        height: 68px;
    }

    .site-logo img {
        max-width: 120px;
        max-height: 34px;
    }


    /* -----------------------------------------------------
       Hero
       ----------------------------------------------------- */

    .hero {
        padding-top:
            calc(var(--header-height) + 65px);

        padding-bottom: 70px;
    }

    .hero-title {
        font-size:
            clamp(3rem, 12vw, 4.5rem);

        letter-spacing:
            -0.055em;
    }

    .hero-description {
        max-width: 600px;

        font-size: 0.95rem;
    }

    .hero-actions {
        flex-direction: column;

        align-items: stretch;

        max-width: 360px;
    }

    .hero-actions .btn {
        width: 100%;
    }


    /* -----------------------------------------------------
       Section Headers
       ----------------------------------------------------- */

    .section-header {
        display: block;
    }

    .section-header__action {
        margin-top: 25px;
    }


    /* -----------------------------------------------------
       Grids → Single Column
       ----------------------------------------------------- */

    .grid--2,
    .grid--3,
    .grid--4,
    .grid--5,
    .card-grid,
    .service-grid,
    .industry-grid,
    .article-grid {
        grid-template-columns: 1fr;
    }


    /* -----------------------------------------------------
       Explicit Two Column Systems
       ----------------------------------------------------- */

    .two-column,
    .split-layout,
    .content-layout,
    .hero-grid,
    .contact-layout {
        grid-template-columns: minmax(0, 1fr);
    }


    /* -----------------------------------------------------
       Order Utilities
       ----------------------------------------------------- */

    .mobile-order-first {
        order: -1;
    }

    .mobile-order-last {
        order: 10;
    }


    /* -----------------------------------------------------
       Process
       ----------------------------------------------------- */

    .process {
        grid-template-columns: 1fr;
    }

    .process__item {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .process__item:last-child {
        border-bottom: 0;
    }


    /* -----------------------------------------------------
       Stats
       ----------------------------------------------------- */

    .stats-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       Logo Grid
       ----------------------------------------------------- */

    .logo-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* -----------------------------------------------------
       CTA
       ----------------------------------------------------- */

    .cta-panel {
        padding: 50px 30px;

        border-radius:
            var(--radius-lg);
    }

    .cta-panel__title {
        font-size:
            clamp(2.4rem, 9vw, 4rem);
    }


    /* -----------------------------------------------------
       Forms
       ----------------------------------------------------- */

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .form-actions .btn {
        width: 100%;
    }


    /* -----------------------------------------------------
       Tables
       ----------------------------------------------------- */

    .table-wrapper {
        width: 100%;

        overflow-x: auto;

        -webkit-overflow-scrolling: touch;
    }

    .table-wrapper table {
        min-width: 680px;
    }


    /* -----------------------------------------------------
       Breadcrumbs
       ----------------------------------------------------- */

    .breadcrumbs {
        margin-bottom: 18px;

        font-size: 0.68rem;
    }


    /* -----------------------------------------------------
       Footer
       ----------------------------------------------------- */

    .footer-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        flex-direction: column;

        align-items: flex-start;

        gap: 15px;
    }
}


/* =========================================================
   6. MOBILE
   ========================================================= */

@media (max-width: 576px) {

    :root {
        --header-height: 64px;
    }


    /* -----------------------------------------------------
       Container
       ----------------------------------------------------- */

    .container {
        width:
            calc(100% - 32px);
    }


    /* -----------------------------------------------------
       Header
       ----------------------------------------------------- */

    .site-header__inner {
        height: 64px;
    }

    .site-logo img {
        max-width: 112px;
    }


    /* -----------------------------------------------------
       Typography
       ----------------------------------------------------- */

    html {
        font-size: 15px;
    }

    .display-1,
    .display-2 {
        font-size:
            clamp(2.75rem, 13vw, 4rem);

        line-height: 0.98;
    }

    .section-title {
        font-size:
            clamp(2.2rem, 10vw, 3.2rem);

        line-height: 1.02;
    }

    .section-description {
        font-size: 0.9rem;
    }


    /* -----------------------------------------------------
       Hero
       ----------------------------------------------------- */

    .hero {
        padding-top:
            calc(var(--header-height) + 55px);

        padding-bottom: 60px;
    }

    .hero-title {
        font-size:
            clamp(2.8rem, 14vw, 4rem);

        line-height: 0.95;
    }

    .hero-description {
        font-size: 0.9rem;

        line-height: 1.7;
    }

    .hero-actions {
        width: 100%;

        max-width: none;
    }


    /* -----------------------------------------------------
       Section
       ----------------------------------------------------- */

    .section {
        padding-top:
            var(--section-padding);

        padding-bottom:
            var(--section-padding);
    }


    /* -----------------------------------------------------
       Cards
       ----------------------------------------------------- */

    .service-card,
    .feature-card,
    .industry-card,
    .article-card,
    .solution-card {
        border-radius:
            var(--radius-md);
    }


    /* -----------------------------------------------------
       Stats
       ----------------------------------------------------- */

    .stats-grid {
        grid-template-columns: 1fr;
    }

    .stat-card {
        padding:
            24px 0;
    }

    .stat-card__value {
        font-size:
            clamp(2.7rem, 14vw, 4rem);
    }


    /* -----------------------------------------------------
       Logo Grid
       ----------------------------------------------------- */

    .logo-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .logo-grid__item {
        min-height: 90px;

        padding: 15px;
    }

    .logo-grid__item img {
        max-width: 105px;
        max-height: 36px;
    }


    /* -----------------------------------------------------
       Timeline
       ----------------------------------------------------- */

    .timeline__item {
        padding-left: 30px;
    }


    /* -----------------------------------------------------
       CTA
       ----------------------------------------------------- */

    .cta-panel {
        padding:
            40px 24px;
    }

    .cta-panel__title {
        font-size:
            clamp(2.25rem, 12vw, 3.5rem);
    }

    .cta-panel__text {
        font-size: 0.875rem;
    }


    /* -----------------------------------------------------
       Footer
       ----------------------------------------------------- */

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-brand {
        grid-column: auto;
    }

    .footer-column {
        padding-top: 10px;
    }

    .footer-bottom {
        font-size: 0.72rem;
    }
}


/* =========================================================
   7. SMALL MOBILE
   ========================================================= */

@media (max-width: 400px) {

    .container {
        width:
            calc(100% - 28px);
    }


    /* -----------------------------------------------------
       Header
       ----------------------------------------------------- */

    .site-logo img {
        max-width: 100px;
    }


    /* -----------------------------------------------------
       Typography
       ----------------------------------------------------- */

    .hero-title {
        font-size:
            clamp(2.55rem, 14vw, 3.4rem);
    }

    .section-title {
        font-size:
            clamp(2rem, 11vw, 2.8rem);
    }


    /* -----------------------------------------------------
       Buttons
       ----------------------------------------------------- */

    .btn {
        min-height: 44px;

        padding:
            12px 17px;

        font-size: 0.78rem;
    }


    /* -----------------------------------------------------
       Cards
       ----------------------------------------------------- */

    .service-card,
    .feature-card,
    .industry-card {
        padding: 21px;
    }


    /* -----------------------------------------------------
       Article
       ----------------------------------------------------- */

    .article-card__content {
        padding: 20px;
    }


    /* -----------------------------------------------------
       Logo Grid
       ----------------------------------------------------- */

    .logo-grid__item {
        min-height: 80px;
    }


    /* -----------------------------------------------------
       CTA
       ----------------------------------------------------- */

    .cta-panel {
        padding:
            36px 20px;
    }
}


/* =========================================================
   8. LANDSCAPE MOBILE
   ========================================================= */

@media (max-width: 900px) and (orientation: landscape) {

    .hero {
        min-height: auto;

        padding-top:
            calc(var(--header-height) + 45px);

        padding-bottom: 55px;
    }

    .hero-title {
        font-size:
            clamp(2.8rem, 8vw, 4rem);
    }

    .mobile-menu {
        max-height:
            calc(100vh - var(--header-height));

        overflow-y: auto;
    }
}


/* =========================================================
   9. VERY SHORT SCREENS
   ========================================================= */

@media (max-height: 650px) and (min-width: 769px) {

    .hero {
        min-height: auto;

        padding-top:
            calc(var(--header-height) + 50px);

        padding-bottom: 60px;
    }
}


/* =========================================================
   10. TOUCH DEVICES
   ========================================================= */

@media (hover: none) and (pointer: coarse) {

    /*
       Remove exaggerated hover movement on touch devices.
    */

    .hover-lift:hover,
    .hover-scale:hover,
    .hover-rotate:hover,
    .motion-card:hover {
        transform: none;
    }

    .motion-image:hover img,
    .image-card:hover img {
        transform: none;
    }

    .service-card:hover,
    .feature-card:hover,
    .industry-card:hover,
    .article-card:hover {
        transform: none;
    }

    /*
       Increase touch target size.
    */

    .btn,
    .main-navigation a,
    .mobile-menu a,
    button {
        min-height: 44px;
    }
}


/* =========================================================
   11. PRINT
   ========================================================= */

@media print {

    .site-header,
    .mobile-menu,
    .mobile-menu-toggle,
    .site-footer,
    .btn,
    .hero-actions,
    .cookie-banner,
    .modal,
    .page-transition {
        display: none !important;
    }

    body {
        color: #000000;
        background: #ffffff;
    }

    .container {
        width: 100%;
        max-width: none;
    }

    a {
        color: inherit;
        text-decoration: underline;
    }

    .section {
        padding-top: 30px;
        padding-bottom: 30px;
    }
}


/* =========================================================
   12. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .reveal,
    .reveal--up,
    .reveal--down,
    .reveal--left,
    .reveal--right,
    .reveal--scale,
    .reveal--fade,
    .stagger > *,
    .stat-animate {
        opacity: 1 !important;
        transform: none !important;
    }

    .image-reveal {
        clip-path: none !important;
    }

    .text-reveal > span {
        opacity: 1 !important;
        transform: none !important;
    }

    .marquee,
    .float-slow,
    .glow-pulse {
        animation: none !important;
    }
}


/* =========================================================
   END OF ZANCK RESPONSIVE SYSTEM
   ========================================================= */