/* ==========================================================================
   GEMA RESPONSIVE ENGINE - MASTER FIX (STABLE VERSION 100%)
   ========================================================================== */

/* --- Tablet Rules (1024px & down) --- */
@media (max-width: 1024px) {
    .container {
        width: 95%;
        padding: 0 16px;
    }

    .header-flex {
        padding: 0 16px !important;
    }

    .main-nav {
        max-height: calc(100vh - 110px);
        overflow-y: auto;
    }

    .nav-links {
        gap: 10px;
        max-height: calc(100vh - 160px);
        overflow-y: auto;
        overflow-x: hidden;
        flex-wrap: wrap;
        padding-right: 6px;
    }

    .nav-links a {
        padding: 4px 0;
        font-size: 0.8rem;
    }

    .nav-dropdown .dropdown-menu {
        max-height: 45vh;
        overflow-y: auto;
    }

    .grid-layout {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
        gap: 20px;
    }

    .product-detail-card {
        grid-template-columns: minmax(300px, 1fr) minmax(320px, 1fr) !important;
    }

    .product-detail-image-wrap {
        min-height: 420px;
    }

    .contact-main-grid,
    .quote-form-grid,
    .line-specs-grid,
    .product-specs-grid {
        gap: 16px !important;
    }

    .contact-main-grid {
        grid-template-columns: 1fr !important;
    }

    .service-body,
    .page-main-offset {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .about-vision-panel {
        margin-top: 60px !important;
        padding: 40px 28px !important;
    }

    .page-title { font-size: 2.8rem; }

    .hero-btns {
        gap: 12px;
    }

    .hero-btns .btn-gold,
    .hero-btns .btn-outline {
        min-width: 200px;
    }
}

/* --- Mobile Rules (768px & down) --- */
@media (max-width: 768px) {
    html,
    body {
        overflow-x: hidden !important;
    }
    
    /* 1. Header and top spacing */
    .main-header {
        height: auto !important;
        min-height: 92px;
        padding: 8px 0 10px !important;
        position: fixed !important;
        width: 100% !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 3000 !important;
        background: #000b1a !important;
    }

    .header-flex {
        padding: 0 12px !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    .logo {
        max-width: calc(100% - 56px);
        font-size: 1rem !important;
        gap: 8px !important;
    }

    .logo img {
        height: 35px !important;
    }

    /* 2. Menu and navigation */
    .menu-toggle {
        display: block !important;
        font-size: 1.5rem !important;
        color: #D4AF37 !important;
        order: 2 !important;
        margin-left: auto;
        line-height: 1;
    }

    .main-nav {
        width: 100% !important;
        order: 4 !important;
    }

    .nav-links {
        display: none !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        position: static !important;
        width: 100% !important;
        background: rgba(0, 11, 26, 0.98) !important;
        padding: 12px !important;
        margin-top: 4px;
        border-top: 1px solid rgba(212, 175, 55, 0.2);
        border-radius: 10px;
        backdrop-filter: blur(15px) !important;
        z-index: 2000 !important;
        gap: 6px !important;
    }

    .nav-links li,
    .nav-links a {
        width: 100%;
    }

    .nav-links a {
        padding: 10px 0 !important;
    }

    .nav-links.active { display: flex !important; }

    .nav-dropdown .dropdown-menu {
        position: static !important;
        display: block !important;
        border: 0 !important;
        min-width: 100% !important;
        padding: 4px 0 0 12px !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* 3. Language switcher */
    .header-actions {
        order: 3 !important;
        width: 100% !important;
        justify-content: flex-end !important;
        margin-left: 0 !important;
        gap: 10px !important;
    }

    .lang-switcher {
        position: relative !important;
        z-index: 3005 !important;
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    .lang-btn {
        max-width: 100% !important;
        white-space: nowrap;
    }

    .lang-dropdown {
        right: 0 !important;
        left: auto !important;
        transform: none !important;
        width: 140px !important;
        max-width: calc(100vw - 24px) !important;
        box-sizing: border-box;
        overflow-x: hidden;
        z-index: 9999 !important;
        background: #001529 !important;
        border: 1px solid #D4AF37 !important;
    }

    .lang-dropdown li {
        padding: 10px 14px !important;
    }

    .lang-dropdown li:hover {
        padding-left: 14px !important;
    }

    /* 4. Body spacing under fixed header */
    body { padding-top: 110px !important; }
    body.home-page,
    body.mfg-page {
        padding-top: 0 !important;
    }

    /* 5. Contact form and inputs */
    .contact-form-container, #contact-form {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important; 
        padding: 20px 15px !important;
        margin-top: 20px !important;
        background: rgba(255, 255, 255, 0.02) !important;
    }
    
    .form-group label {
        font-size: 0.85rem !important;
        margin-bottom: 5px !important;
        display: block !important;
        color: #eee !important;
    }

    input, textarea, select {
        width: 100% !important;
        font-size: 16px !important;
        padding: 12px !important;
        margin-bottom: 10px !important;
    }

    /* 6. Hero and media */
    .home-hero,
    .hero-section {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100svh !important;
        height: auto !important;
        padding: 120px 0 40px !important;
        background-image: none !important;
        background-color: #000b1a !important;
    }

    #video-bg {
        object-position: center !important;
    }

    .hero-video-container {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        width: 100% !important;
        height: 250px !important;
        margin: 20px 0 !important;
        z-index: 10 !important;
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    .hero-video-container video {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* 7. Buttons */
    .hero-btns, .action-btns {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 12px !important;
        align-items: stretch !important;
        margin-top: 18px !important;
    }
    
    .hero-btns .btn,
    .hero-btns .btn-gold,
    .hero-btns .btn-outline,
    .action-btns .btn-gold {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin: 0 !important;
        min-width: 0 !important;
    }

    .hero-btns .btn-outline {
        transform: none !important;
    }

    .d-none-mobile {
        display: none !important;
    }

    /* 8. Search */
    .search-container {
        order: 5 !important;
        width: 100% !important;
        margin: 4px 0 0 !important;
    }

    .search-box {
        width: 100% !important;
    }

    #globalSearch {
        width: 100% !important;
    }

    .search-results-dropdown {
        width: 100% !important;
        max-width: none !important;
        left: 0 !important;
        right: 0 !important;
    }

    /* 9. Typography and grids */
    .hero-content h1 {
        font-size: 1.8rem !important;
        line-height: 1.3 !important;
        padding: 0 10px !important;
    }

    .page-title {
        font-size: 2rem !important;
    }

    .py-100 {
        padding: 60px 0 !important;
    }

    .page-main-offset {
        padding-top: 110px !important;
    }

    .products-page .content-wrapper {
        padding-top: 110px !important;
    }

    .product-detail-shell,
    #product-detail-container {
        min-height: auto !important;
        padding: 8px 0 20px;
    }

    .product-detail-card {
        border-radius: 18px !important;
        grid-template-columns: 1fr !important;
    }

    .product-detail-hero {
        padding: 14px 14px 0 !important;
    }

    .product-detail-image-wrap,
    .product-detail-image-card {
        min-height: 220px !important;
        height: 220px !important;
    }

    .product-info-panel {
        padding: 14px 14px 20px !important;
    }

    .product-specs-grid,
    .quote-form-grid,
    .contact-form-row,
    .line-specs-grid {
        grid-template-columns: 1fr !important;
    }

    .quote-wide {
        grid-column: span 1 !important;
    }

    .contact-form-card,
    .quote-card,
    .service-form,
    .service-overview-card {
        padding: 20px !important;
        border-radius: 14px !important;
    }

    .service-hero {
        height: 48vh !important;
        min-height: 280px;
        margin-top: 0 !important;
        padding-top: 80px;
    }

    .service-header-content h1 {
        font-size: 1.8rem !important;
        line-height: 1.25;
    }

    #s-subtitle {
        font-size: 1rem !important;
    }

    .service-body {
        padding: 30px 16px !important;
    }

    #s-desc {
        font-size: 0.98rem !important;
        line-height: 1.7 !important;
    }

    .benefits-list li {
        padding: 12px !important;
        gap: 10px !important;
    }

    .about-vision-panel {
        margin-top: 36px !important;
        padding: 26px 18px !important;
    }

    .about-vision-text {
        font-size: 1rem !important;
        line-height: 1.75 !important;
    }

    .mfg-page {
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .mfg-slider {
        min-height: 100svh;
        height: auto !important;
    }

    .slide-content {
        width: 100% !important;
        padding: 100px 16px 30px !important;
        text-align: center !important;
    }

    #canvas-container {
        width: 100% !important;
        opacity: 0.3 !important;
    }

    .footer-grid-layout {
        grid-template-columns: 1fr 1fr !important;
        gap: 24px !important;
        padding: 56px 0 24px !important;
    }

    .grid-layout {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .gema-card {
        height: auto !important;
        min-height: 360px;
    }
}

/* --- Small phones (480px & down) --- */
@media (max-width: 480px) {
    .main-header {
        min-height: 86px;
    }

    body {
        padding-top: 100px !important;
    }

    .logo {
        font-size: 0.9rem !important;
    }

    .hero-content h1 {
        font-size: 1.55rem !important;
    }

    .hero-subtitle {
        letter-spacing: 2px !important;
        font-size: 0.72rem !important;
    }

    .container {
        padding: 0 12px !important;
    }

    .product-detail-title {
        font-size: 1.45rem !important;
    }

    .product-actions-row .btn-gold,
    .product-actions-row .btn-outline,
    .product-actions-row .product-order-btn,
    .product-actions-row .product-datasheet-btn {
        width: 100% !important;
        text-align: center !important;
    }

    .service-header-content h1 {
        font-size: 1.55rem !important;
    }

    .contact-form-title,
    .about-vision-title {
        font-size: 1.35rem !important;
    }

    .footer-grid-layout {
        grid-template-columns: 1fr !important;
    }
}

/* --- Tablet Landscape Stabilizer (769px - 1180px) --- */
@media (min-width: 769px) and (max-width: 1180px) and (orientation: landscape) {
    .main-header {
        height: auto !important;
        min-height: 92px;
        padding: 8px 0 !important;
    }

    .header-flex {
        padding: 0 14px !important;
        gap: 10px !important;
        flex-wrap: wrap !important;
    }

    .menu-toggle {
        display: block !important;
        font-size: 1.45rem !important;
        color: #D4AF37 !important;
        line-height: 1;
    }

    .main-nav {
        width: 100% !important;
        order: 4 !important;
    }

    .nav-links {
        display: none !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100% !important;
        max-height: calc(100vh - 180px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: rgba(0, 11, 26, 0.98) !important;
        border: 1px solid rgba(212, 175, 55, 0.18) !important;
        border-radius: 10px !important;
        padding: 10px 14px !important;
        gap: 4px !important;
    }

    .nav-links.active {
        display: flex !important;
    }

    .nav-links li,
    .nav-links a {
        width: 100%;
    }

    .nav-dropdown {
        width: 100% !important;
    }

    .nav-dropdown > a {
        pointer-events: none;
        opacity: 0.9;
    }

    .nav-dropdown .dropdown-menu {
        position: static !important;
        display: block !important;
        width: 100% !important;
        min-width: 100% !important;
        margin-top: 2px !important;
        padding: 4px 0 0 10px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .nav-dropdown .dropdown-menu li a {
        font-size: 0.84rem !important;
        padding: 8px 0 !important;
        color: rgba(255, 255, 255, 0.92) !important;
    }

    .search-container {
        width: 100% !important;
        order: 5 !important;
        margin: 4px 0 0 !important;
    }

    .search-box,
    #globalSearch {
        width: 100% !important;
    }

    .header-actions {
        margin-left: auto !important;
        order: 3 !important;
    }

    .header-actions .btn-gold {
        display: none !important;
    }

    .grid-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-items: stretch !important;
        gap: 18px !important;
    }

    .grid-layout > * {
        min-width: 0 !important;
    }

    .gema-card,
    [class*="-theme"] .gema-card,
    [class*="-theme"] .product-card {
        height: auto !important;
        min-height: 420px !important;
        display: flex !important;
        flex-direction: column !important;
        isolation: isolate;
    }

    .card-content {
        margin: 0 !important;
        height: auto !important;
        min-height: 170px !important;
    }
}

/* --- iPad Landscape Fine-Tuning (1024x768 family) --- */
@media (min-width: 980px) and (max-width: 1080px) and (orientation: landscape) {
    .main-header {
        min-height: 88px !important;
    }

    .header-flex {
        padding: 0 12px !important;
    }

    .logo {
        font-size: 1.02rem !important;
        gap: 8px !important;
    }

    .logo img {
        height: 38px !important;
    }

    .lang-btn {
        padding: 7px 14px !important;
        font-size: 0.8rem !important;
    }

    .home-hero {
        padding-top: 98px !important;
    }

    .hero-content h1 {
        font-size: 2.25rem !important;
    }

    .hero-content p {
        font-size: 1rem !important;
    }

    .hero-btns .btn-gold,
    .hero-btns .btn-outline {
        min-width: 190px !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .grid-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .grid-layout > * {
        min-width: 0 !important;
    }

    .nav-dropdown .dropdown-menu li a {
        font-size: 0.82rem !important;
    }

    .gema-card,
    [class*="-theme"] .gema-card,
    [class*="-theme"] .product-card {
        min-height: 400px !important;
    }
}

/* --- iPad Pro Landscape Fine-Tuning (1180x820 family) --- */
@media (min-width: 1081px) and (max-width: 1220px) and (orientation: landscape) {
    .header-flex {
        max-width: 1140px !important;
        padding: 0 16px !important;
    }

    .main-nav {
        width: 100% !important;
    }

    .nav-links {
        max-height: calc(100vh - 170px) !important;
    }

    .search-container {
        width: 100% !important;
        margin: 6px 0 0 !important;
    }

    #globalSearch {
        width: 100% !important;
    }

    .home-hero {
        padding-top: 102px !important;
    }

    .hero-content {
        max-width: 920px !important;
    }

    .hero-content h1 {
        font-size: 2.5rem !important;
    }

    .hero-btns {
        gap: 14px !important;
    }

    .hero-btns .btn-gold,
    .hero-btns .btn-outline {
        min-width: 210px !important;
    }

    .grid-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    .grid-layout > * {
        min-width: 0 !important;
    }

    .nav-dropdown .dropdown-menu li a {
        font-size: 0.84rem !important;
    }

    .gema-card,
    [class*="-theme"] .gema-card,
    [class*="-theme"] .product-card {
        min-height: 430px !important;
    }
}