/* NORM PORTFOLIO GLOBAL STYLES - WORKS FOR BOTH TEMPLATE AND SHORTCODE */

/* GRID CONTAINER OVERRIDE */
#cases,
.norm-portfolio-shortcode #cases,
.wpb_wrapper #cases,
div[class*="norm"] #cases {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: clamp(15px, 2.5vw, 35px) !important;
    padding: clamp(40px, 6vw, 120px) clamp(20px, 4vw, 80px) !important;
    max-width: clamp(1200px, 92vw, 2200px) !important;
    margin: 0 auto !important;
}

/* CASES ITEM */
.cases-item,
#cases .cases-item {
    display: block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* FORCE GRID WITH MAXIMUM SPECIFICITY */
body #cases .cases-item.post.div1 { 
    grid-column: span 1 !important; 
    width: auto !important;
    flex: none !important;
} 

body #cases .cases-item.post.div2 { 
    grid-column: span 2 !important; 
    width: auto !important;
    flex: none !important;
} 

body #cases .cases-item.post.div3 { 
    grid-column: span 1 !important; 
    width: auto !important;
    flex: none !important;
} 

body #cases .cases-item.post.div4,
body #cases .cases-item.post.div5 { 
    grid-column: span 1 !important; 
    width: auto !important;
    flex: none !important;
} 

body #cases .cases-item.post.div6 { 
    grid-column: span 2 !important; 
    width: auto !important;
    flex: none !important;
} 

/* All others small */
body #cases .cases-item.post.div7, body #cases .cases-item.post.div8, 
body #cases .cases-item.post.div9, body #cases .cases-item.post.div10,
body #cases .cases-item.post.div11, body #cases .cases-item.post.div12,
body #cases .cases-item.post.div13, body #cases .cases-item.post.div14,
body #cases .cases-item.post.div15, body #cases .cases-item.post.div16,
body #cases .cases-item.post.div17, body #cases .cases-item.post.div18,
body #cases .cases-item.post.div19, body #cases .cases-item.post.div20,
body #cases .cases-item.post.div21, body #cases .cases-item.post.div22,
body #cases .cases-item.post.div23, body #cases .cases-item.post.div24,
body #cases .cases-item.post.div25, body #cases .cases-item.post.div26,
body #cases .cases-item.post.div27, body #cases .cases-item.post.div28,
body #cases .cases-item.post.div29, body #cases .cases-item.post.div30 {
    grid-column: span 1 !important; 
    width: auto !important;
    flex: none !important;
}

/* IMAGE WRAPPER - RESPONSIVE HEIGHT */
.image-wrapper,
#cases .image-wrapper,
.cases-item .image-wrapper {
    position: relative !important;
    margin: 0 0 20px 0 !important;
    overflow: hidden !important;
    width: 100% !important;
    height: clamp(320px, 28vw, 500px) !important;
}

/* IMAGES - RESPONSIVE HEIGHT */
.cases-item img,
#cases .cases-item img {
    width: 100% !important;
    height: clamp(320px, 28vw, 500px) !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* HOVER OVERLAY */
.case-link,
#cases .case-link {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.case-link::before,
#cases .case-link::before {
    content: 'VIEW' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: clamp(24px, 3vw, 45px) !important;
    font-weight: 600 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
    z-index: 10 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
}

.case-link:hover::before,
#cases .case-link:hover::before {
    opacity: 1 !important;
}

.case-link p,
#cases .case-link p {
    display: none !important;
}

/* FORCE TYPOGRAPHY WITH MAXIMUM SPECIFICITY - FOR BOTH TEMPLATE AND SHORTCODE */
body .container-wrap .container .norm-portfolio-container #cases .cases-item.post .title,
body .container-wrap .container #cases .cases-item.post .title,
body #cases .cases-item.post .title,
#cases .cases-item.post .title,
#cases .title,
#cases h2.title,
#cases .cases-item .title,
#cases .cases-item h2.title,
.cases-item .title,
.cases-item h2.title,
body #cases .title,
body #cases h2.title,
body .cases-item .title,
body .cases-item h2.title,
.wpb_wrapper #cases .title,
.wpb_wrapper #cases h2.title,
.wpb_wrapper .cases-item .title,
.wpb_wrapper .cases-item h2.title,
.norm-portfolio-shortcode #cases .title,
.norm-portfolio-shortcode #cases h2.title,
.norm-portfolio-shortcode .cases-item .title,
.norm-portfolio-shortcode .cases-item h2.title,
div[class*="norm"] #cases .title,
div[class*="norm"] #cases h2.title,
div[class*="norm"] .cases-item .title,
div[class*="norm"] .cases-item h2.title,
.vc_column_container #cases .title,
.vc_column_container #cases h2.title,
.vc_column_container .cases-item .title,
.vc_column_container .cases-item h2.title {
    font-size: 18px !important;
    font-weight: 500 !important;
    margin: 0 0 16px 0 !important;
    color: #000000 !important;
    line-height: 1.3 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

.cases-excerpt p,
#cases .cases-excerpt p,
body #cases .cases-item.post .cases-excerpt p {
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: #666666 !important;
    margin: 0 0 16px 0 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    font-weight: 400 !important;
}

.tags,
#cases .tags {
    font-size: clamp(12px, 1.2vw, 16px) !important;
    color: #999999 !important;
    font-weight: 400 !important;
    margin: 0 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    letter-spacing: 0.2px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

.tags a,
#cases .tags a {
    color: #999999 !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.tags a:hover,
#cases .tags a:hover {
    color: #000000 !important;
}

.tags span,
#cases .tags span {
    margin: 0 6px !important;
    color: #cccccc !important;
}

.tags p,
#cases .tags p {
    margin: 0 !important;
    display: inline !important;
}

/* PLACEHOLDER */
.norm-image-placeholder,
#cases .norm-image-placeholder {
    width: 100% !important;
    height: clamp(320px, 28vw, 500px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #cccccc !important;
    font-size: clamp(16px, 1.5vw, 22px) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* RESPONSIVE - TABLET */
@media (max-width: 800px) {
    #cases {
        padding: clamp(30px, 5vw, 60px) clamp(15px, 3vw, 40px) !important;
        grid-template-columns: 1fr 1fr !important;
        gap: clamp(12px, 2vw, 25px) !important;
    }
    
    .cases-item:nth-child(1) {
        grid-column: span 2 !important;
    }
    
    .cases-item:nth-child(n+2) {
        grid-column: span 1 !important;
    }
    
    .cases-item:nth-child(1) .image-wrapper,
    .cases-item:nth-child(1) img,
    .cases-item:nth-child(1) .norm-image-placeholder {
        height: clamp(250px, 22vw, 350px) !important;
    }
    
    .cases-item:nth-child(n+2) .image-wrapper,
    .cases-item:nth-child(n+2) img,
    .cases-item:nth-child(n+2) .norm-image-placeholder {
        height: clamp(200px, 18vw, 280px) !important;
    }
}

/* RESPONSIVE - MOBILE */
@media (max-width: 480px) {
    #cases {
        padding: clamp(15px, 3vw, 25px) clamp(8px, 2vw, 15px) !important;
        grid-template-columns: 1fr 1fr !important;
        gap: clamp(8px, 1.5vw, 15px) !important;
    }
    
    .cases-item:first-child .image-wrapper,
    .cases-item:first-child img,
    .cases-item:first-child .norm-image-placeholder {
        height: clamp(160px, 16vw, 220px) !important;
    }
    
    .cases-item:not(:first-child) .image-wrapper,
    .cases-item:not(:first-child) img,
    .cases-item:not(:first-child) .norm-image-placeholder {
        height: clamp(120px, 12vw, 160px) !important;
    }
}
