/* ==========================================================
   SATO ENGINEERING
   RESPONSIVE STYLESHEET
========================================================== */


/* ==========================================================
   LARGE DESKTOP
========================================================== */

@media (max-width: 1380px) {

    :root {
        --container-width: 1160px;
    }

    .desktop-navigation > ul {
        gap: 20px;
    }

    .desktop-navigation > ul > li > a {
        font-size: 0.73rem;
    }

    .header-phone {
        display: none;
    }

    .hero-content h1,
    .hero-title {
        max-width: 700px;
        font-size: clamp(3rem, 5vw, 5.2rem);
    }

    .about-layout {
        gap: 65px;
    }

    .footer-main {
        gap: 45px;
    }

}


/* ==========================================================
   DESKTOP / SMALL LAPTOP
========================================================== */

@media (max-width: 1180px) {

    :root {
        --header-height: 82px;
    }

    .page-container {
        width: min(calc(100% - 40px), var(--container-width));
    }

    .header-container {
        width: min(calc(100% - 36px), 1480px);
    }

    .desktop-navigation {
        display: none;
    }

    .mobile-menu-toggle {
        display: flex;
    }

    .header-quote-button {
        display: inline-flex;
    }

    .hero-swiper {
        height: 760px;
    }

    .hero-capabilities {
        bottom: -48px;
        width: min(calc(100% - 40px), 930px);
    }

    .hero-capability {
        min-height: 96px;
        padding: 18px 20px;
    }

    .about-layout {
        grid-template-columns: 1fr 1fr;
        gap: 50px;
    }

    .about-visual {
        min-height: 560px;
    }

    .about-main-image {
        height: 460px;
    }

    .about-secondary-image {
        height: 270px;
    }

    .solutions-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 350px;
    }

    .solution-card-large {
        grid-column: span 1;
    }

    .numbers-layout {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .numbers-content {
        max-width: 720px;
    }

    .projects-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .project-card-wide {
        grid-column: span 1;
    }

    .project-card-wide .project-card-image {
        height: 310px;
    }

    .industries-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .industry-card-large {
        grid-column: span 2;
        grid-row: span 1;
    }

    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .insights-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .insight-card:last-child {
        grid-column: span 2;
    }

    .footer-main {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 70px;
    }

}


/* ==========================================================
   TABLET LANDSCAPE
========================================================== */

@media (max-width: 900px) {

    .section-padding {
        padding: 90px 0;
    }

    .section-heading-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 28px;
        margin-bottom: 44px;
    }

    .hero-swiper {
        height: 720px;
    }

    .hero-slide-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(4, 18, 34, 0.94) 0%,
                rgba(4, 18, 34, 0.78) 65%,
                rgba(4, 18, 34, 0.5) 100%
            ),
            linear-gradient(
                0deg,
                rgba(4, 18, 34, 0.72) 0%,
                rgba(4, 18, 34, 0) 55%
            );
    }

    .hero-slide-container {
        padding-top: 70px;
    }

    .hero-content {
        max-width: 660px;
    }

    .hero-content h1,
    .hero-title {
        font-size: clamp(2.8rem, 7vw, 4.5rem);
    }

    .hero-slider-controls {
        right: 24px;
        bottom: 120px;
    }

    .hero-capabilities {
        position: relative;
        bottom: auto;
        left: auto;
        width: 100%;
        grid-template-columns: 1fr;
        box-shadow: none;
        transform: none;
    }

    .hero-capability {
        border-right: 0;
        border-bottom: 1px solid var(--sato-border);
    }

    .hero-capability:last-child {
        border-bottom: 0;
    }

    .about-section {
        padding-top: 90px;
    }

    .about-layout {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .about-content {
        max-width: 760px;
    }

    .about-visual {
        width: min(100%, 720px);
        min-height: 610px;
    }

    .about-main-image {
        width: 78%;
        height: 500px;
    }

    .about-secondary-image {
        width: 48%;
        height: 290px;
    }

    .statistics-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .industries-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .industry-card-large {
        grid-column: span 2;
    }

    .contact-cta-content {
        padding: 65px 50px 145px;
    }

    .contact-cta-details {
        grid-template-columns: 1fr;
    }

    .contact-cta-details > a {
        min-height: 88px;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .contact-cta-details > a:last-child {
        border-bottom: 0;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        padding: 22px 0;
    }

}


/* ==========================================================
   TABLET PORTRAIT
========================================================== */

@media (max-width: 768px) {

    :root {
        --header-height: 76px;
    }

    .page-container {
        width: min(calc(100% - 32px), var(--container-width));
    }

    .header-container {
        width: calc(100% - 26px);
    }

    .logo-symbol {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }

    .logo-text strong {
        font-size: 1.08rem;
    }

    .logo-text small {
        font-size: 0.49rem;
    }

    .header-quote-button {
        display: none;
    }

    .hero-swiper {
        height: 680px;
    }

    .hero-slide-container {
        align-items: flex-end;
        padding-top: 110px;
        padding-bottom: 120px;
    }

    .hero-category {
        margin-bottom: 20px;
        font-size: 0.68rem;
    }

    .hero-content h1,
    .hero-title {
        font-size: clamp(2.45rem, 8vw, 3.8rem);
    }

    .hero-content > p {
        font-size: 0.96rem;
    }

    .hero-slider-controls {
        right: 16px;
        bottom: 38px;
    }

    .hero-slider-button {
        width: 44px;
        height: 44px;
    }

    .hero-slider-pagination {
        display: none;
    }

    .hero-capability {
        padding: 18px;
    }

    .section-heading h2 {
        font-size: clamp(2rem, 7vw, 3.2rem);
    }

    .about-benefits {
        grid-template-columns: 1fr;
    }

    .about-visual {
        min-height: 540px;
    }

    .about-main-image {
        width: 82%;
        height: 440px;
    }

    .about-secondary-image {
        width: 52%;
        height: 250px;
    }

    .about-experience-card {
        width: 135px;
        min-height: 145px;
        padding: 20px;
    }

    .about-experience-card strong {
        font-size: 2.7rem;
    }

    .about-caption {
        width: 52%;
        padding: 20px;
    }

    .solutions-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 360px;
    }

    .solution-card-bottom p {
        max-height: 120px;
        margin-top: 12px;
        opacity: 1;
    }

    .numbers-layout {
        padding-block: 85px;
    }

    .statistics-grid {
        grid-template-columns: 1fr 1fr;
    }

    .statistic-card {
        min-height: 160px;
        padding: 22px;
    }

    .statistic-card strong {
        font-size: 2.65rem;
    }

    .projects-grid {
        grid-template-columns: 1fr;
    }

    .project-card-image,
    .project-card-wide .project-card-image {
        height: 330px;
    }

    .project-card-arrow {
        transform: translateY(0);
    }

    .industries-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 280px;
    }

    .industry-card-large {
        grid-column: span 1;
    }

    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .insights-grid {
        grid-template-columns: 1fr;
    }

    .insight-card:last-child {
        grid-column: span 1;
    }

    .contact-cta-card {
        min-height: 650px;
    }

    .contact-cta-content {
        padding: 55px 32px 230px;
    }

    .contact-cta-content h2 {
        font-size: clamp(2.2rem, 8vw, 3.5rem);
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 42px;
        padding: 70px 0 55px;
    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 560px) {

    .section-padding {
        padding: 74px 0;
    }

    .page-container {
        width: calc(100% - 26px);
    }

    .mobile-menu {
        width: 100%;
        padding: 22px;
    }

    .hero-swiper {
        height: 640px;
    }

    .hero-slide-container {
        padding-bottom: 105px;
    }

    .hero-content h1,
    .hero-title {
        font-size: clamp(2.25rem, 10vw, 3.2rem);
    }

    .hero-content > p {
        margin-top: 20px;
        font-size: 0.9rem;
    }

    .hero-buttons {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-buttons .button {
        width: 100%;
    }

    .hero-location {
        font-size: 0.76rem;
    }

    .hero-slider-controls {
        right: 13px;
        bottom: 30px;
    }

    .hero-slider-button {
        width: 42px;
        height: 42px;
    }

    .hero-capability {
        min-height: 90px;
        padding: 16px;
    }

    .hero-capability-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .section-heading h2 {
        font-size: 2rem;
    }

    .section-heading p {
        font-size: 0.92rem;
    }

    .about-section {
        padding-top: 74px;
    }

    .about-lead {
        font-size: 1rem;
    }

    .about-visual {
        min-height: 460px;
    }

    .about-main-image {
        width: 88%;
        height: 370px;
    }

    .about-secondary-image {
        width: 58%;
        height: 210px;
        border-width: 8px;
    }

    .about-experience-card {
        top: 28px;
        width: 118px;
        min-height: 125px;
        padding: 16px;
    }

    .about-experience-card strong {
        font-size: 2.25rem;
    }

    .about-experience-card span {
        font-size: 0.62rem;
    }

    .about-caption {
        right: 0;
        bottom: 20px;
        width: 58%;
        padding: 16px;
    }

    .about-caption strong {
        font-size: 0.84rem;
    }

    .solutions-grid {
        grid-auto-rows: 390px;
    }

    .solution-card-content {
        padding: 22px;
    }

    .solution-card-bottom h3 {
        font-size: 1.25rem;
    }

    .numbers-section,
    .numbers-layout {
        min-height: auto;
    }

    .numbers-layout {
        padding-block: 74px;
    }

    .statistics-grid {
        grid-template-columns: 1fr;
    }

    .statistic-card {
        min-height: 145px;
    }

    .project-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 7px;
        scrollbar-width: none;
    }

    .project-filters::-webkit-scrollbar {
        display: none;
    }

    .project-filter {
        flex: 0 0 auto;
    }

    .project-card-image,
    .project-card-wide .project-card-image {
        height: 270px;
    }

    .project-card-content {
        padding: 20px;
    }

    .project-card h3 {
        font-size: 1.12rem;
    }

    .industries-grid {
        grid-auto-rows: 250px;
    }

    .industry-card-content {
        padding: 18px;
    }

    .partners-grid {
        grid-template-columns: 1fr 1fr;
    }

    .partner-logo {
        min-height: 86px;
    }

    .partner-logo span {
        font-size: 0.7rem;
    }

    .insight-card-image {
        height: 220px;
    }

    .contact-cta-section {
        padding-bottom: 74px;
    }

    .contact-cta-card {
        min-height: 710px;
    }

    .contact-cta-content {
        padding: 46px 22px 265px;
    }

    .contact-cta-content p {
        font-size: 0.9rem;
    }

    .contact-cta-buttons {
        align-items: stretch;
        flex-direction: column;
    }

    .contact-cta-buttons .button {
        width: 100%;
    }

    .contact-cta-details > a {
        padding: 18px 20px;
    }

    .contact-cta-details strong {
        font-size: 0.73rem;
    }

    .footer-legal-links {
        gap: 14px;
    }

    .floating-whatsapp,
    .scroll-to-top {
        right: 14px;
        width: 46px;
        height: 46px;
    }

    .floating-whatsapp {
        bottom: 16px;
    }

    .scroll-to-top {
        bottom: 72px;
    }

}


/* ==========================================================
   VERY SMALL MOBILE
========================================================== */

@media (max-width: 390px) {

    .site-logo {
        gap: 9px;
    }

    .logo-symbol {
        width: 37px;
        height: 37px;
    }

    .logo-text strong {
        font-size: 0.98rem;
    }

    .mobile-menu-toggle {
        width: 42px;
        height: 42px;
    }

    .hero-swiper {
        height: 620px;
    }

    .hero-content h1,
    .hero-title {
        font-size: 2.1rem;
    }

    .hero-content > p {
        font-size: 0.84rem;
    }

    .hero-category {
        gap: 9px;
        font-size: 0.61rem;
    }

    .hero-category-line {
        width: 25px;
    }

    .about-visual {
        min-height: 420px;
    }

    .about-main-image {
        height: 330px;
    }

    .about-secondary-image {
        height: 185px;
    }

    .about-experience-card {
        width: 104px;
        min-height: 112px;
        padding: 13px;
    }

    .about-experience-card strong {
        font-size: 2rem;
    }

    .about-caption {
        width: 62%;
    }

    .partners-grid {
        grid-template-columns: 1fr;
    }

    .contact-cta-details strong {
        overflow-wrap: anywhere;
    }

}