/*
 * Envirosafe Ireland – Product Page Styles
 * Add to: /wp-content/themes/goya-child/style.css
 * Targets Goya's native WooCommerce single product template.
 */

/* =============================================
   PAGE BACKGROUND
============================================= */
.single-product #page,
.single-product .site-content {
  background: #f4f6f4 !important;
}

/* =============================================
   OUTER SHOWCASE WRAPPER
============================================= */
.single-product .product-showcase {
  background: transparent !important;
  padding-top: 20px !important;
}

.single-product .showcase-inner {
  background: transparent !important;
}

/* =============================================
   BREADCRUMB
============================================= */
.single-product .woocommerce-breadcrumb {
  font-size: 12px !important;
  color: #999 !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
  background: none !important;
}

.single-product .woocommerce-breadcrumb a {
  color: #999 !important;
  text-decoration: none !important;
}

.single-product .woocommerce-breadcrumb a:hover {
  color: #0c914f !important;
}

.single-product .woocommerce-breadcrumb i {
  color: #ccc !important;
  font-size: 10px !important;
  margin: 0 5px !important;
}

/* =============================================
   IMAGE GALLERY
   IMPORTANT: We do NOT touch FlexSlider's core
   layout (flex-viewport, slides, li visibility).
   Only visual styling here. Thumbnail repositioning
   is handled entirely by product-page.js.
============================================= */
.single-product .product-gallery.woocommerce-product-gallery-parent {
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid #e5e9e5 !important;
  padding: 16px !important;
}

/* Main image styling only — no layout changes */
.single-product .woocommerce-product-gallery__image img {
  border-radius: 6px !important;
  background: #fafafa !important;
}

/* Thumbnail strip — styled but NOT repositioned here */
.single-product ol.flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  list-style: none !important;
  padding: 12px 0 0 !important;
  margin: 0 !important;
}

.single-product ol.flex-control-thumbs li {
  flex: 0 0 68px !important;
  width: 68px !important;
  height: 68px !important;
  margin: 0 !important;
  float: none !important;
}

.single-product ol.flex-control-thumbs li img {
  width: 68px !important;
  height: 68px !important;
  object-fit: contain !important;
  border-radius: 6px !important;
  border: 2px solid #e5e5e5 !important;
  padding: 4px !important;
  cursor: pointer !important;
  background: #fafafa !important;
  transition: border-color 0.15s !important;
  display: block !important;
}

.single-product ol.flex-control-thumbs li img:hover,
.single-product ol.flex-control-thumbs li img.flex-active {
  border-color: #0c914f !important;
}

/* Hide Goya's vertical up/down arrows */
.single-product .flex-prev,
.single-product .flex-next {
  display: none !important;
}

/* =============================================
   RIGHT COLUMN — product-information / summary
============================================= */
.single-product .product-information {
  padding-left: 32px !important;
}

.single-product .summary.entry-summary {
  background: transparent !important;
  padding: 0 !important;
}

/* ---- Title ---- */
.single-product h1.product_title.entry-title {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 10px !important;
}

/* ---- Price ---- */
.single-product p.price,
.single-product .et-pro-summary-top .price {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #0c914f !important;
  margin: 0 0 16px !important;
}

/* ---- Price separator ---- */
.single-product .price-separator {
  border: none !important;
  border-top: 1px solid #eee !important;
  margin: 12px 0 16px !important;
}

/* ---- Short description ---- */
.single-product .woocommerce-product-details__short-description {
  font-size: 14px !important;
  color: #555 !important;
  line-height: 1.8 !important;
  margin-bottom: 20px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #eee !important;
}

.single-product .woocommerce-product-details__short-description p {
  font-size: 14px !important;
  color: #555 !important;
  line-height: 1.8 !important;
  margin-bottom: 8px !important;
}

/* ---- et-pro-summary-content wrapper ---- */
.single-product .et-pro-summary-content {
  padding-top: 4px !important;
}

/* ---- Add to cart / Get a Quote button ---- */
.single-product .single_add_to_cart_button,
.single-product button.button.alt,
.single-product input.button.alt,
.single-product .cart .button {
  background: #0c914f !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  padding: 13px 32px !important;
  border-radius: 6px !important;
  border: none !important;
  box-shadow: 0 2px 10px rgba(46,139,58,0.28) !important;
  transition: background 0.18s, transform 0.12s, box-shadow 0.18s !important;
  text-transform: none !important;
  cursor: pointer !important;
  display: inline-block !important;
}

.single-product .single_add_to_cart_button:hover,
.single-product button.button.alt:hover,
.single-product .cart .button:hover {
  background: #096e3b !important;
  box-shadow: 0 4px 18px rgba(46,139,58,0.38) !important;
  transform: translateY(-1px) !important;
  color: #ffffff !important;
}

/* ---- Product meta — categories ---- */
.single-product .product_meta {
  margin-top: 20px !important;
  padding-top: 16px !important;
  border-top: 1px solid #eee !important;
}

.single-product .product_meta .posted_in {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12px !important;
  color: #aaa !important;
}

.single-product .product_meta .posted_in .label,
.single-product .product_meta .posted_in > span:not(:has(a)) {
  font-size: 11px !important;
  color: #aaa !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

.single-product .product_meta .posted_in a {
  display: inline-block !important;
  background: #e6f5ee !important;
  color: #096e3b !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s !important;
}

.single-product .product_meta .posted_in a:hover {
  background: #0c914f !important;
  color: #ffffff !important;
}

/* ---- Post share ---- */
.single-product .post-share {
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid #eee !important;
  font-size: 12px !important;
  color: #aaa !important;
}

/* =============================================
   TABS — woocommerce-tabs wc-tabs-wrapper
============================================= */
.single-product .woocommerce-tabs.wc-tabs-wrapper {
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid #e5e9e5 !important;
  overflow: hidden !important;
  margin-top: 32px !important;
}

.single-product .woocommerce-tabs ul.tabs.wc-tabs {
  display: flex !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #eee !important;
  background: #fafafa !important;
}

.single-product .woocommerce-tabs ul.tabs.wc-tabs li {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
}

/* Goya adds decorative pseudo-elements to tabs — kill them */
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
  display: block !important;
  padding: 13px 24px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #666 !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent !important;
  transition: color 0.15s, border-color 0.15s !important;
  background: none !important;
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: #0c914f !important;
  background: none !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li.active {
  background: none !important;
  border-bottom-color: transparent !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
  color: #0c914f !important;
  border-bottom: 2px solid #0c914f !important;
}

.single-product .woocommerce-tabs .panel {
  padding: 28px 32px !important;
  background: #ffffff !important;
  border: none !important;
}

.single-product .woocommerce-tabs .panel h2 {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin-bottom: 14px !important;
}

.single-product .woocommerce-tabs .panel p {
  font-size: 14px !important;
  color: #555 !important;
  line-height: 1.8 !important;
  margin-bottom: 14px !important;
}

.single-product .woocommerce-tabs .panel ul,
.single-product .woocommerce-tabs .panel ol {
  padding-left: 20px !important;
  margin-bottom: 14px !important;
}

.single-product .woocommerce-tabs .panel li {
  font-size: 14px !important;
  color: #555 !important;
  line-height: 1.8 !important;
  margin-bottom: 4px !important;
}

/* =============================================
   RELATED PRODUCTS
   Goya renders these as a Slick slider.
   We disable Slick's inline styles and reflow
   as a standard CSS grid.
============================================= */
.single-product section.related.products {
  padding: 0 !important;
  margin-top: 40px !important;
  clear: both !important;
}

.single-product section.related.products > .container {
  padding: 0 !important;
}

.single-product section.related.products > h2,
.single-product section.related.products .container > h2 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin-bottom: 20px !important;
  letter-spacing: -0.01em !important;
}

/* Unwrap the slick track/list wrappers */
.single-product section.related.products .slick-list,
.single-product section.related.products .slick-track {
  transform: none !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
  overflow: visible !important;
}

/* The <ul> — override Slick classes */
.single-product section.related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  width: 100% !important;
  transform: none !important;
}

/* Each <li> — Slick sets inline width:55px, we override */
.single-product section.related.products ul.products li.product,
.single-product section.related.products ul.products li[class*="col-"],
.single-product section.related.products ul.products li.slick-slide {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  height: auto !important;
  background: #ffffff !important;
  border-radius: 10px !important;
  border: 1px solid #e5e9e5 !important;
  overflow: hidden !important;
  transition: box-shadow 0.18s, transform 0.15s !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.single-product section.related.products ul.products li.product:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.08) !important;
  transform: translateY(-2px) !important;
}

/* Product inner wrapper */
.single-product section.related.products .product-inner {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* Thumbnail */
.single-product section.related.products .product-inner figure,
.single-product section.related.products .product-inner .product_thumbnail {
  margin: 0 !important;
}

.single-product section.related.products ul.products li.product img {
  width: 100% !important;
  height: 160px !important;
  object-fit: contain !important;
  padding: 16px !important;
  background: #fafafa !important;
  border-bottom: 1px solid #f0f0f0 !important;
  display: block !important;
  margin: 0 !important;
}

/* Caption area */
.single-product section.related.products .caption {
  padding: 10px 14px 14px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Product title */
.single-product section.related.products .product-title,
.single-product section.related.products .woocommerce-loop-product__title {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #222 !important;
  line-height: 1.4 !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
}

.single-product section.related.products .product-title a,
.single-product section.related.products .woocommerce-loop-product__title a {
  color: #222 !important;
  text-decoration: none !important;
}

.single-product section.related.products .product-title a:hover {
  color: #0c914f !important;
}

/* Price */
.single-product section.related.products .price {
  font-size: 13px !important;
  color: #0c914f !important;
  font-weight: 600 !important;
  display: block !important;
  margin-top: auto !important;
}

/* Hide Slick arrows and dots on related products */
.single-product section.related.products .slick-prev,
.single-product section.related.products .slick-next,
.single-product section.related.products .slick-dots,
.single-product section.related.products .data-navigation {
  display: none !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .single-product section.related.products ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 767px) {
  .single-product section.related.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .single-product section.related.products ul.products {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
}

/* =============================================
   STICKY BAR (Goya's sticky add-to-cart bar)
============================================= */
.single-product .sticky-product-bar {
  background: #ffffff !important;
  border-top: 1px solid #e5e9e5 !important;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.06) !important;
}

.single-product .sticky-product-bar .button,
.single-product .sticky-product-bar button {
  background: #0c914f !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  border: none !important;
  font-weight: 700 !important;
}

/* =============================================
   RESPONSIVE
============================================= */
@media (max-width: 991px) {
  .single-product .product-information {
    padding-left: 0 !important;
    margin-top: 24px !important;
  }

  .single-product h1.product_title.entry-title {
    font-size: 22px !important;
  }
}

@media (max-width: 575px) {
  .single-product .woocommerce-tabs .panel {
    padding: 20px 18px !important;
  }

  .single-product h1.product_title.entry-title {
    font-size: 20px !important;
  }
}

/* =============================================
   GET A QUOTE BUTTON
   Shown on products with no price set.
   Triggers an Elementor popup.
============================================= */
.single-product .esi-quote-wrap {
  margin: 4px 0 20px !important;
}

.single-product .esi-quote-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: #0c914f !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  padding: 13px 32px !important;
  border-radius: 6px !important;
  border: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 2px 10px rgba(46,139,58,0.28) !important;
  transition: background 0.18s, transform 0.12s, box-shadow 0.18s !important;
}

.single-product .esi-quote-btn::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

.single-product .esi-quote-btn:hover {
  background: #096e3b !important;
  color: #ffffff !important;
  box-shadow: 0 4px 18px rgba(46,139,58,0.38) !important;
  transform: translateY(-1px) !important;
  text-decoration: none !important;
}

.single-product .esi-quote-note {
  margin: 10px 0 0 !important;
  font-size: 12.5px !important;
  color: #888 !important;
  line-height: 1.5 !important;
}

/* =============================================
   ACCORDION / TABS — Description panel
============================================= */
.single-product .woocommerce-tabs ul.tabs.wc-tabs li a,
.single-product .wc-tabs li a {
  padding-left: 20px !important;
}

/* Green top border on the tabs/accordion card */
.single-product .woocommerce-tabs.wc-tabs-wrapper {
  border-top: 3px solid #0c914f !important;
  border-radius: 0 0 12px 12px !important;
}

/* If it's rendered as an accordion rather than tabs */
.single-product .woocommerce-Tabs-panel,
.single-product .wc-tab,
.single-product .panel.entry-content {
  padding-left: 20px !important;
}

/* Accordion title row (Goya sometimes uses this) */
.single-product .accordion-title,
.single-product .wc-accordion-title,
.single-product .product-collateral .toggle-title {
  padding-left: 20px !important;
  border-top: 3px solid #0c914f !important;
}

/* Goya desc-layout-boxed accordion */
.single-product .woocommerce-tabs.desc-layout-boxed {
  border-top: 3px solid #0c914f !important;
  border-radius: 0 0 12px 12px !important;
  overflow: hidden !important;
}

.single-product .woocommerce-tabs.desc-layout-boxed .wc-tab-title,
.single-product .woocommerce-tabs.desc-layout-boxed .tab-title,
.single-product .woocommerce-tabs.desc-layout-boxed li a,
.single-product .woocommerce-tabs.desc-layout-boxed > ul > li > a {
  padding-left: 20px !important;
}

/* =============================================
   ACCORDION — exact classes from DevTools
   .woocommerce-tabs.tabs-accordion.wc-tabs-wrapper
============================================= */

/* Green top border on the whole accordion */
.single-product .woocommerce-tabs.tabs-accordion {
  border-top: 3px solid #0c914f !important;
  border-radius: 0 0 12px 12px !important;
  overflow: hidden !important;
}

.single-product a.envirosafe-view-product {
  display: none !important;
}

/* Accordion title row */
.single-product .woocommerce-tabs.tabs-accordion .tab-title {
  padding: 14px 20px !important;
  background: #ffffff !important;
  border-bottom: 1px solid #eee !important;
  cursor: pointer !important;
}

/* The tab link text */
.single-product .woocommerce-tabs.tabs-accordion .tab-link {
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  text-decoration: none !important;
}

/* Panel content area */
.single-product .woocommerce-tabs.tabs-accordion .woocommerce-Tabs-panel {
  padding: 20px 20px !important;
}

/* =============================================
   RELATED PRODUCTS — equal top/bottom padding
============================================= */
.single-product section.related.products {
  padding-bottom: 40px !important;
  margin-bottom: 40px !important;
}

/* =============================================
   GALLERY — stop column stretching with accordion
   and reduce whitespace around image
============================================= */

/* Align gallery column to top so it doesn't stretch */
.single-product .showcase-row {
  align-items: flex-start !important;
}

.single-product .product-gallery.woocommerce-product-gallery-parent {
  align-self: flex-start !important;
  position: sticky !important;
  top: 100px !important;
}

/* Reduce whitespace inside the gallery card */
.single-product .product-gallery.woocommerce-product-gallery-parent {
  padding: 8px 8px 10px !important;
}

/* =============================================
   BREADCRUMBS — styled with brand green #0c914f
============================================= */
.single-product .woocommerce-breadcrumb {
  font-size: 12px !important;
  color: #888 !important;
  margin-bottom: 20px !important;
  padding: 10px 14px !important;
  background: #e8f5ee !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 2px !important;
  border-left: 3px solid #0c914f !important;
}

.single-product .woocommerce-breadcrumb a {
  color: #0c914f !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  transition: color 0.15s !important;
}

.single-product .woocommerce-breadcrumb a:hover {
  color: #096e3b !important;
  text-decoration: underline !important;
}

/* Separator */
.single-product .woocommerce-breadcrumb i,
.single-product .woocommerce-breadcrumb .separator {
  color: #0c914f !important;
  margin: 0 4px !important;
  opacity: 0.5 !important;
  font-size: 10px !important;
}

/* Current page — last item, not a link */
.single-product .woocommerce-breadcrumb > span:last-child,
.single-product .woocommerce-breadcrumb > a:last-child {
  color: #1a1a1a !important;
  font-weight: 600 !important;
}

/* =============================================
   MOBILE — fix summary overlapping product image
   Exact classes from DevTools:
   div.summary.entry-summary (no .sticked class)
============================================= */
@media (max-width: 991px) {

  /* Remove ALL sticky/fixed positioning from summary */
  .single-product div.summary.entry-summary {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    transform: none !important;
  }

  /* Kill Goya's JS-injected sticky styles */
  .single-product .et-pro-summary-top,
  .single-product .et-pro-summary-content {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }

  /* Remove sticky from gallery on mobile */
  .single-product .product-gallery.woocommerce-product-gallery-parent {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }

  /* Ensure breadcrumb sits in normal flow */
  .single-product .woocommerce-breadcrumb {
    position: static !important;
    z-index: auto !important;
  }

  /* Stack columns properly */
  .single-product .showcase-row {
    flex-direction: column !important;
  }

  .single-product .product-gallery,
  .single-product .product-information {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
  }
}