/* WooCommerce styling for the Gemini Power Systems theme (child theme) */

/* ---------- Keep the header identical on WooCommerce pages ----------
   WooCommerce's own stylesheet restyles every <img> and every a.button on
   shop pages, which changed the logo size and the "Request a Quote" button. */
.woocommerce .site-header .brand-logo-header,
.woocommerce-page .site-header .brand-logo-header { height: 92px; width: auto; }
@media (max-width: 1100px) {
  .woocommerce .site-header .brand-logo-header,
  .woocommerce-page .site-header .brand-logo-header { height: 76px; }
}
@media (max-width: 640px) {
  .woocommerce .site-header .brand-logo-header,
  .woocommerce-page .site-header .brand-logo-header { height: 70px; }
}
.woocommerce .site-header a.button,
.woocommerce-page .site-header a.button {
  min-height: 42px; padding: 0 17px; display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border: 1px solid var(--blue); border-radius: 5px;
  background: linear-gradient(135deg, var(--blue), #0546b8); color: #fff;
  font-size: .78rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; line-height: 1;
  box-shadow: 0 12px 28px rgba(7,93,232,.2);
}
.woocommerce .site-header a.button:hover,
.woocommerce-page .site-header a.button:hover { background: linear-gradient(135deg, var(--blue), #0546b8); color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(7,93,232,.3); }
.woocommerce .site-footer img,
.woocommerce-page .site-footer img { width: 255px; height: auto; }

/* ---------- Theme colors for WooCommerce components ---------- */
:root {
  --wc-primary: var(--blue);
  --wc-primary-text: #fff;
  --wc-highlight: var(--blue);
  --wc-highligh-text: #fff;
  --wc-secondary: var(--ice);
  --wc-secondary-text: var(--ink);
  --wc-form-border-color: var(--line);
  --wc-form-border-radius: 8px;
}

/* Section wrapper added by the child theme around WooCommerce content */
.woocommerce-section { padding-block: 64px; }
.woocommerce-section .woocommerce-breadcrumb { color: var(--muted); font-size: .85rem; margin-bottom: 18px; }
.woocommerce-section .woocommerce-breadcrumb a { color: var(--blue); }
.woocommerce-section .woocommerce-products-header__title { margin: 0 0 18px; font-size: 2.2rem; font-weight: 800; color: var(--ink); }

/* Product grid */
.woocommerce ul.products li.product { text-align: left; }
.woocommerce ul.products li.product a img { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; line-height: 1.35; color: var(--ink); min-height: 2.7em; }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price { color: var(--ink); font-weight: 700; }
.woocommerce ul.products li.product .price del,
.woocommerce div.product p.price del { color: var(--muted); font-weight: 400; opacity: 1; }
.woocommerce ul.products li.product .price ins,
.woocommerce div.product p.price ins { text-decoration: none; color: var(--blue); }
.woocommerce span.onsale { background: var(--yellow); color: var(--ink); font-weight: 800; }
.woocommerce .woocommerce-result-count { color: var(--muted); }

/* Buttons inside the shop (not the header) */
.woocommerce #main-content a.button,
.woocommerce #main-content button.button,
.woocommerce #main-content input.button,
.woocommerce-page #main-content a.button,
.woocommerce-page #main-content button.button,
.woocommerce-page #main-content input.button,
.woocommerce #main-content a.button.alt,
.woocommerce #main-content button.button.alt,
.woocommerce #main-content input.button.alt,
.woocommerce-page #main-content a.button.alt,
.woocommerce-page #main-content button.button.alt,
.woocommerce-page #main-content input.button.alt {
  background: var(--blue); color: #fff; border-radius: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
}
.woocommerce #main-content a.button:hover,
.woocommerce #main-content button.button:hover,
.woocommerce #main-content input.button:hover,
.woocommerce-page #main-content a.button:hover,
.woocommerce-page #main-content button.button:hover,
.woocommerce-page #main-content input.button:hover { background: var(--blue-2); color: #fff; }
.woocommerce #main-content a.button.disabled,
.woocommerce #main-content button.button.disabled,
.woocommerce #main-content button.button:disabled { background: var(--blue); color: #fff; opacity: .5; }

/* Single product */
.woocommerce div.product .product_title { font-size: 2rem; font-weight: 800; color: var(--ink); }
.woocommerce div.product div.images img { border: 1px solid var(--line); border-radius: 12px; }
.woocommerce div.product .stock.in-stock { color: #1a7f37; font-weight: 700; }
.woocommerce div.product .stock.out-of-stock { color: var(--red); font-weight: 700; }
.woocommerce div.product .product_meta { color: var(--muted); font-size: .9rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.25rem; font-weight: 800; color: var(--ink); }
.woocommerce .quantity .qty { border: 1px solid var(--line); border-radius: 8px; padding: 10px 6px; }

/* Cart / checkout / account */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: 10px; }
.woocommerce table.shop_table th { color: var(--ink); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { border: 1px solid var(--line); border-radius: 8px; padding: 11px 12px; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--blue); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--blue); }
.woocommerce-error { border-top-color: var(--red); }
.woocommerce-error::before { color: var(--red); }

/* ---------- Stock status on product cards ---------- */
.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product .gps-stock-badge {
  position: absolute; top: 10px; left: 10px; z-index: 5;
  padding: 5px 10px; border-radius: 999px;
  background: var(--red); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
}
.woocommerce ul.products li.product .gps-stock-line { margin: -4px 0 10px; font-size: .82rem; font-weight: 700; }
.woocommerce ul.products li.product .gps-stock-line.is-in-stock { color: #1a7f37; }
.woocommerce ul.products li.product .gps-stock-line.is-out-of-stock { color: var(--red); }
.woocommerce ul.products li.product.outofstock a img { opacity: .75; }
.woocommerce span.onsale { left: auto; right: 10px; }

/* ---------- Quote list on the Request a Quote page ---------- */
.gps-quote-list { margin: 0 0 22px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--ice); }
.gps-quote-list h3 { margin: 0 0 10px; font-size: 1rem; font-weight: 800; color: var(--ink); }
.gps-quote-list ul { list-style: none; margin: 0; padding: 0; }
.gps-quote-list li { display: flex; align-items: baseline; gap: 10px; padding: 8px 0; border-bottom: 1px solid #dfe7f0; font-size: .92rem; }
.gps-quote-list li:last-child { border-bottom: 0; }
.gps-quote-list-qty { flex: 0 0 auto; font-weight: 800; color: var(--blue); }
.gps-quote-list-name { flex: 1 1 auto; color: var(--ink); }
.gps-quote-list-name a { color: var(--ink); font-weight: 700; }
.gps-quote-list-name small { color: var(--muted); }
.gps-quote-list-stock { color: var(--red); font-style: normal; font-weight: 700; font-size: .8rem; }
.gps-quote-list-remove { flex: 0 0 auto; color: var(--muted); font-size: .8rem; text-decoration: underline; }
.gps-quote-list-remove:hover { color: var(--red); }
.gps-quote-list p { margin: 10px 0 0; font-size: .85rem; }
.gps-quote-list p a { color: var(--blue); font-weight: 700; }

/* ---------- Shop category bar ---------- */
.gps-cat-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; padding: 0 0 22px; border-bottom: 1px solid var(--line); }
.gps-cat-link { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: .85rem; font-weight: 700; transition: background .15s, border-color .15s, color .15s; }
.gps-cat-link span { padding: 1px 7px; border-radius: 999px; background: var(--ice); color: var(--muted); font-size: .72rem; font-weight: 800; }
.gps-cat-link:hover { border-color: var(--blue); color: var(--blue); }
.gps-cat-link.is-current { background: var(--blue); border-color: var(--blue); color: #fff; }
.gps-cat-link.is-current span { background: rgba(255,255,255,.2); color: #fff; }
@media (max-width: 640px) {
  .gps-cat-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 14px; scrollbar-width: none; }
  .gps-cat-bar::-webkit-scrollbar { display: none; }
  .gps-cat-link { white-space: nowrap; }
}
