/*
Theme Name: Impreza Child
Template: Impreza
Version: 1.0
Author:	UpSolution
Theme URI: http://impreza.us-themes.com/
Author URI: http://us-themes.com/
*/

/*Add your own styles here:*/

.product-title {  
  font-size: 20px;
  text-align:center;
  text-transform: uppercase;
  display: block !important;
  visibility: visible !important;
  text-align: center;
  margin-bottom: 20px;
  width: 100%;
  text-align: center;
}

/* Override Impreza hidden rules for product titles - MORE COMPREHENSIVE */
.l-section .product-title,
.product-title,
.single-product .product-title,
.product-container .product-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
}

/* Force visibility even with Impreza's responsive hiding classes */
.single-product h1.product-title.hidden_for_tablets,
.single-product .product-title.hidden_for_tablets,
h1.product-title.hidden_for_tablets,
.product-title.hidden_for_tablets,
.single-product h1.product-title.vc_hidden-sm,
.single-product .product-title.vc_hidden-sm,
h1.product-title.vc_hidden-sm,
.product-title.vc_hidden-sm {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Make sure parents of product title don't collapse it */
.l-section,
.wpb_wrapper,
.entry-content {
  display: block !important;
  visibility: visible !important;
}

.single-product .product-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  left: auto !important;
}
.single-product .l-section,
.single-product .l-section-h,
.single-product .l-section-h1 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* MOST IMPORTANT - Override ALL tablet hiding with maximum specificity */
@media (min-width: 601px) and (max-width: 1024px) {
  .single-product .product-title,
  .single-product h1.product-title,
  .product-container .product-title,
  .product-container h1.product-title,
  body.single-product .product-title,
  body.single-product h1.product-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    font-size: 20px !important;
    text-align: center !important;
    text-transform: uppercase !important;
  }
  
  /* Override any Impreza hiding classes specifically on tablets */
  .hidden_for_tablets.product-title,
  .vc_hidden-sm.product-title,
  body.single-product .hidden_for_tablets.product-title,
  body.single-product .vc_hidden-sm.product-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* Also ensure it shows on laptops if there are similar issues */
@media (min-width: 1025px) and (max-width: 1380px) {
  .single-product .product-title,
  .single-product h1.product-title,
  .product-container .product-title,
  .product-container h1.product-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .hidden_for_laptops.product-title,
  .vc_hidden-md.product-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

.home-title {  
  font-size: 32px;
  text-align:center;
  text-transform: uppercase;
  padding-bottom: 10px;
}

.product-categories-nav ul {
  display: flex;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin-bottom: 30px;
}

.product-categories-nav a {
  text-decoration: none;
  font-weight: bold;
  color: #333;
}

.product-categories-nav a:hover {
  color: #d22;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 30px;
}

.product-card {
  border: 1px solid #eee;
  padding: 15px;
  text-align: center;
  transition: box-shadow 0.3s;
}

.product-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.product-thumb img {
  max-width: 100%;
  height: auto;
}

.product-container {
  max-width: 1200px;     /* limit total width */
  margin: 0 auto;        /* center horizontally */
  padding: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  justify-content: center;
}

.product-gallery {
  flex: 1 1 400px;
  max-width: 450px;
}

.product-description {
  flex: 1 1 400px;
  max-width: 650px;
}

/* Contact form below should align nicely too */
.product-container form {
  flex: 1 1 100%;
  max-width: 800px;
  margin: 40px auto 0;
}

/* FIX FOR FIXED HEADER COVERING CONTENT */
/* Add top padding/margin to account for fixed header - reduced desktop spacing */
.single-product .product-container {
  margin-top: 80px; /* Reduced from 120px for desktop */
  padding-top: 20px;
}

/* Tablet-specific header spacing */
@media (min-width: 601px) and (max-width: 1024px) {
  .single-product .product-container {
    margin-top: 100px; /* Keep tablet spacing as-is */
    padding-top: 20px;
  }
}

/* Mobile header spacing */
@media (max-width: 600px) {
  .single-product .product-container {
    margin-top: 80px; /* Mobile spacing */
    padding-top: 20px;
  }
}

/* Alternative approach - add padding to body for single product pages */
.single-product .l-main {
  padding-top: 40px;
}

/* If the above doesn't work, try this more aggressive approach */
.single-product .l-canvas {
  padding-top: 0;
}

.single-product .l-main .l-section:first-child {
  padding-top: 140px; /* Adjust this value based on your header height */
}

@media (min-width: 601px) and (max-width: 1024px) {
  .single-product .l-main .l-section:first-child {
    padding-top: 120px; /* Tablet header height adjustment */
  }
}

@media (max-width: 600px) {
  .single-product .l-main .l-section:first-child {
    padding-top: 100px; /* Mobile header height adjustment */
  }
}

/* Responsive: stack into single column on smaller screens */
@media (max-width: 768px) {
  .product-container {
    flex-direction: column;
    align-items: center;
  }

  .product-gallery,
  .product-description,
  .product-container form {
    max-width: 100%;
    flex: 1 1 100%;
  }

  .product-description {
    margin-top: 20px;
  }
  
  /* Ensure title shows on mobile too */
  .single-product .product-title,
  .product-container .product-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}